From 80e7408a7161c9f9b01c8ba2ee1e8a04eaca5ef4 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 17 Feb 2007 23:21:28 +0000 Subject: [PATCH 0001/1518] NuttX RTOS git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 121 + Documentation/NuttxUserGuide.html | 4105 ++++++++++++++++++++++++++ 2 files changed, 4226 insertions(+) create mode 100644 Documentation/NuttxPortingGuide.html create mode 100644 Documentation/NuttxUserGuide.html diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html new file mode 100644 index 0000000000..576e2c86d7 --- /dev/null +++ b/Documentation/NuttxPortingGuide.html @@ -0,0 +1,121 @@ + + + +Nuttx Porting Manual + + + + +
+ +

Nuttx Operating System

+

Porting Guide

+
+

by

+

Gregory Nutt

+

Last Update: February 8, 2007

+
+ +

Table of Contents

+
  • 1.0 1.0 Introduction
  • +
  • 2.0 Directory Structure
  • + +
  • 3.0 Configuring and Building
  • + +
    +

    1.0 Introduction

    + +

    Overview + This document provides and overview of the Nuttx build and configuration + logic and provides hints for the incorporation of new processor/board archectures + into the build. +

    +

    + See also arch/README.txt. +

    + +

    General Philosophy. + +


    +

    2.0 Directory Structure

    + +

    The general directly layout for Nuttx is very similar to the directory structure +of the Linux kernel -- at least at the most superficial layers. +At the top level is the main makefile and a series of sub-directories identified +below and discussed in the following paragraphs:

    + + + +

    2.1 Documentation

    +

    2.2 arch

    +

    2.3 drivers

    +

    2.4 examples

    +

    2.5 fs

    +

    2.6 include

    +

    2.7 lib

    +

    2.8 mm

    +

    2.9 sched

    +

    2.10 tools

    + +
    +

    3.0 Configuring and Building

    + + + + + diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html new file mode 100644 index 0000000000..c8e26278d3 --- /dev/null +++ b/Documentation/NuttxUserGuide.html @@ -0,0 +1,4105 @@ + + + +Nuttx Users Manual + + + + +
    +Nuttx Operating System +

    +User's Manual + +

    +by +

    +Gregory Nutt +

    +Last Update: January 28, 2007 +

    + +

    1.0 Introduction

    + +

    +This user's manual is divided into five sections: +

    +
    + +

    2.0 OS Interfaces

    + +

    +This section describes each C-callable interface to the Nuttx +Operating System. The description of each interface is presented +in the following format: +

    +Function Prototype: The C prototype of the interface function +is provided. +

    +Description: The operation performed by the interface function +is discussed. +

    +Input Parameters: All input parameters are listed along +with brief descriptions of each input parameter. +

    +Returned Values: All possible values returned by the interface +function are listed. Values returned as side-effects (through +pointer input parameters or through global variables) will be +addressed in the description of the interface function. +

    +Assumptions/Limitations: Any unusual assumptions made by +the interface function or any non-obvious limitations to the use +of the interface function will be indicated here. +

    +POSIX Compatibility: Any significant differences between the +Nuttx interface and its corresponding POSIX interface will be noted +here. +

    +NOTE: In order to achieve an independent name space for the Nuttx +interface functions, differences in function names and types are +to be expected and will not be identified as differences in these +paragraphs. +


    + +

    2.1 Task Control Interfaces

    + +

    +Tasks. +Nuttx is a flat address OS. As such it does not support "processes" +in the way that, say, Linux does. +Nuttx only supports simple threads running within the same address space. +However, the programming model makes a distinction between "tasks" +and pthreads: +

    +

    +File Descriptors and Streams. +This applies, in particular, in the area of opened file descriptors and streams. +When a task is started using the interfaces in this section, it will be created +with at most three open files. + +If CONFIG_DEV_CONSOLE is defined, the first three file descriptors (corresponding +to stdin, stdout, stderr) will be duplicated for the 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 +on other tasks. +Since the three file descriptors are duplicated, it is also possible to perform +some level of redirection. +

    +pthreads, on the other hand, will always share file descriptors with the parent +thread. In this case, file operations will have effect only all pthreads the +were started from the same parent thread. + +

    2.1.1 task_create

    + +

    +Function Prototype: +

    +   #include <sched.h>
    +    int task_create(
    +        char *name,
    +        int priority,
    +        int stack_size,
    +        main_t entry,
    +        char *arg1, char *arg2, char *arg3, char *arg4);
    +
    + +

    +Description: + This function creates and activates a new task with a + specified priority and returns its system-assigned ID. +

    + +

    The entry address entry is the address of the "main" + function of the task. + This function will be called once the C environment has been set up. + The specified function will be called with four arguments. + Should the specified routine return, a call to exit() will automatically be made. +

    +

    + Note that four (and only four) arguments must be passed for the + spawned functions. +

    +

    + The newly created task does not inherity characteristics + from the parent task: The new task is started at the + default system priority and with the SCHED_FIFO scheduling + policy. These characteristcs may be modified after the new + task has been started. +

    +

    +Input Parameters: +

    +

    + Returned Values: +

    + + +

    +Assumptions/Limitations: +

    +POSIX Compatibility: This is a NON-POSIX interface. +VxWorks provides the following similar interface: +

    +   int taskSpawn(
    +      char *name,
    +      int priority,
    +      int options,
    +      int stackSize,
    +      FUNCPTR entryPt,
    +      int arg1, int arg2, int arg3, int arg4, int arg5,
    +      int arg6, int arg7, int arg8, int arg9, int arg10);
    +
    + +

    +The Nuttx task_create() differs from VxWorks' taskSpawn() in the +following ways: +

    + +

    2.1.2 task_init

    + +

    +Function Prototype: +

    +   #include <sched.h>
    +   STATUS task_init(
    +      _TCB *tcb,
    +      char *name,
    +      int priority,
    +      uint32 *stack,
    +      uint32 stack_size,
    +      maint_t entry,
    +      int arg1, int arg2, int arg3, int arg4);
    +
    + +

    +Description: +

    + This function initializes a Task Control Block (TCB) + in preparation for starting a new thread. +

    +

    + Unlike task_create(), task_init() does not activate the task. + This must be done by calling task_activate(). +

    +

    +Input Parameters: +

    +

    +

    +Returned Values: +

    + +

    +Assumptions/Limitations: +

    +

    +POSIX Compatibility: This is a NON-POSIX interface. +VxWorks provides the following similar interface: +

    +   STATUS taskInit(
    +      WIND_TCB *pTcb,
    +      char *name,
    +      int priority,
    +      int options,
    +      uint32 *pStackBase,
    +      int stackSize,
    +      FUNCPTR entryPt,
    +      int arg1, int arg2, int arg3, int arg4, int arg5,
    +      int arg6, int arg7, int arg8, int arg9, int arg10);
    +
    + +

    +The Nuttx task_init() differs from VxWorks' taskInit() in the +following ways: +

    + +

    2.1.3 task_activate

    + +

    +Function Prototype: +

    +    #include <sched.h>
    +    STATUS task_activate( _TCB *tcb );
    +
    + +

    +Description: This function activates tasks created by task_init(). +Without activation, a task is ineligible for execution by the +scheduler. +

    +Input Parameters: +

    + +

    +Returned Values: +

    + +

    +Assumptions/Limitations: +

    +

    +POSIX Compatibility: This is a NON-POSIX interface. +VxWorks provides the following similar interface: +

    +    STATUS taskActivate( int tid );
    +
    + +

    +The Nuttx task_activate() differs from VxWorks' taskActivate() in the +following ways: +

    + +

    2.1.4 task_delete

    + +

    +Function Prototype: +

    +    #include <sched.h>
    +    STATUS task_delete( pid_t pid );
    +
    + +

    +Description: This function causes a specified task to cease +to exist -- its stack and TCB will be deallocated. This function +is the companion to task_create(). +

    +Input Parameters: +

    + +

    +Returned Values: +

    + +

    +Assumptions/Limitations: +

    +task_delete() must be used with caution: If the task holds resources +(for example, allocated memory or semaphores needed by other tasks), then +task_delete() can strand those resources. +

    +POSIX Compatibility: This is a NON-POSIX interface. +VxWorks provides the following similar interface: +

    +    STATUS taskDelete( int tid );
    +
    + +

    +The Nuttx task_delete() differs from VxWorks' taskDelete() in +the following ways: +

    + +

    2.1.5 exit

    + +

    +Function Prototype: +

    +    #include <sched.h>
    +    void exit( int code );
    +
    +    #include <nuttx/unistd.h>
    +    void _exit( int code );
    +
    + +

    +Description: This function causes the calling task to cease +to exist -- its stack and TCB will be deallocated. exit differs from +_exit in that it flushs streams, closes file descriptors and will +execute any function registered with atexit(). +

    +Input Parameters: +

    + +

    +Returned Values: None. + +

    +Assumptions/Limitations: + +

    +POSIX Compatibility: This is equivalent to the ANSI interface: +

    +    void exit( int code );
    +
    +And the unix interface: +
    +    void _exit( int code );
    +
    + +

    +The Nuttx exit() differs from ANSI exit() in +the following ways: +

    + +

    2.1.6 task_restart

    + +

    +Function Prototype: +

    +    #include <sched.h>
    +    STATUS task_restart( pid_t pid );
    +
    + +

    +Description: This function "restarts" a task. +The task is first terminated and then reinitialized with same +ID, priority, original entry point, stack size, and parameters +it had when it was first started. +

    +Input Parameters: +

    + +

    +Returned Values: +

    + +

    +Assumptions/Limitations: +

    +POSIX Compatibility: This is a NON-POSIX interface. +VxWorks provides the following similar interface: +

    +    STATUS taskRestart (int tid);
    +
    + +

    +The Nuttx task_restart() differs from VxWorks' taskRestart() in +the following ways: +

    + +

    2.1.7 getpid

    + +

    +Function Prototype: +

    +    #include <unistd.h>
    +    pid_t getpid( void );
    +
    + +

    +Description: This function returns the task ID of the +calling task. The task ID will be invalid if called at the interrupt +level. +

    +Input Parameters: None. +

    +Returned Values: +

    + +

    +Assumptions/Limitations: +

    +POSIX Compatibility: +Compatible with the POSIX interface of the same name. + +

    2.2 Task Scheduling Interfaces

    + +

    +Nuttx performs strict priority scheduling: Tasks of higher +priority have exclusive access to the CPU until they become blocked. +At that time, the CPU is available to tasks of lower priority. +Tasks of equal priority are scheduled FIFO. +

    +The OS interfaces described in the following paragraphs provide +a POSIX- compliant interface to the Nuttx scheduler. However, these +POSIX interfaces assume a greater range of scheduling options +than those provided by the Nuttx scheduler. As a result, many of +these POSIX interfaces are little more than stubs. + +

    2.2.1 sched_setparam

    + +

    +Function Prototype: +

    +    #include <sched.h>
    +    int sched_setparam( pid_t pid, const struct sched_param *param );
    +
    + +

    +Description: This function sets the priority of the task +specified by pid input parameter. +

    +NOTE: Setting a task's priority to the same value has the similar +effect to sched_yield() -- The task will be moved to after all +other tasks with the same priority. +

    +Input Parameters: +

    + +

    +Returned Values: +

    + +

    +Assumptions/Limitations: +

    + POSIX Compatibility: Comparable to the POSIX +interface of the same name. +Differences from the full POSIX implementation include: +

    + +

    2.2.2 sched_getparam

    + +

    +Function Prototype: +

    +    #include <sched.h>
    +    int sched_getparam (pid_t pid, struct sched_param *param);
    +
    + +

    +Description: This function gets the scheduling priority +of the task specified by pid. +

    +Input Parameters: +

    + +

    +Returned Values: +

    + +

    +Assumptions/Limitations: +

    + POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.2.3 sched_setscheduler

    +

    +Function Prototype: +

    +    #include <sched.h>
    +    int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param);
    +
    +

    + Description: + sched_setscheduler() sets both the scheduling policy + and the priority for the task identified by pid. + If pid equals zero, the scheduler of the calling + thread will be set. + The parameter 'param' holds the priority of the thread under the new policy. +

    +

    +Input Parameters: +

    +

    + Returned Values: + On success, sched_setscheduler() returns OK (zero). On + error, ERROR (-1) is returned, and errno is set appropriately: +

    + + +

    +Assumptions/Limitations: +

    + POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.2.4 sched_getscheduler

    +

    +Function Prototype: +

    +    #include <sched.h>
    +    int sched_getscheduler (pid_t pid);
    +
    +

    + Description: + sched_getscheduler() returns the scheduling policy + currently applied to the process identified by pid. If + pid equals zero, the policy of the calling process will + be retrieved. + * + * Inputs: + * + * Return Value: + + This function returns the current scheduling +policy. +

    +Input Parameters: +

    +

    +Returned Values: +

    +

    +Assumptions/Limitations: +

    + POSIX Compatibility: Comparable to the POSIX +interface of the same name. +Differences from the full POSIX implementation include: +

    + +

    2.2.5 sched_yield

    + +

    +Function Prototype: +

    +    #include <sched.h>
    +    int sched_yield( void );
    +
    + +

    +Description: This function forces the calling task to give +up the CPU (only to other tasks at the same priority). +

    +Input Parameters: None. +

    +Returned Values: +

    + +

    +Assumptions/Limitations: +

    + POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.2.6 sched_get_priority_max

    + +

    +Function Prototype: +

    +    #include <sched.h>
    +    int sched_get_priority_max (int policy)
    +
    + +

    +Description: This function returns the value of the highest +possible task priority for a specified scheduling policy. +

    +Input Parameters: +

    + +

    +Returned Values: +

    + +

    +Assumptions/Limitations: +

    + POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.2.7 sched_get_priority_min

    + +

    +Function Prototype: +

    +    #include <sched.h>
    +    int sched_get_priority_min (int policy);
    +
    + +

    +Description: This function returns the value of the lowest +possible task priority for a specified scheduling policy. +

    +Input Parameters: +

    + +

    +Returned Values: +

    + +

    +Assumptions/Limitations: +

    + POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.2.8 sched_get_rr_interval

    + +

    +Function Prototype: +

    +    #include <sched.h>
    +    int sched_get_rr_interval (pid_t pid, struct timespec *interval);
    +
    + +

    + Description: + sched_rr_get_interval() writes the timeslice interval + for task identified by pid into the timespec structure + pointed to by interval. If pid is zero, the timeslice + for the calling process is written into 'interval. The + identified process should be running under the SCHED_RR + scheduling policy.' +

    +

    + Input Parameters: +

    + + +

    + Returned Values: + On success, sched_rr_get_interval() returns OK (0). On + error, ERROR (-1) is returned, and errno is set to: +

    + + +

    + Assumptions/Limitations: +

    + POSIX Compatibility: Comparable to the POSIX + interface of the same name. +

    + +

    2.3 Task Switching Interfaces

    + +

    2.3.1 sched_lock

    + +

    +Function Prototype: +

    +    #include <sched.h>
    +    STATUS sched_lock( void );
    +
    + +

    +Description: This function disables context switching by +Disabling addition of new tasks to the ready-to-run task list. +The task that calls this function will be the only task that is +allowed to run until it either calls sched_unlock (the appropriate +number of times) or until it blocks itself. +

    +Input Parameters: None. +

    +Returned Values: +

    + +

    +Assumptions/Limitations: +

    + POSIX Compatibility: This is a NON-POSIX interface. +VxWorks provides the comparable interface: +

    +    STATUS taskLock( void );
    +
    + +

    2.3.2 sched_unlock

    + +

    +Function Prototype: +

    +    #include <sched.h>
    +    STATUS sched_unlock( void );
    +
    + +

    +Description: This function decrements the preemption lock +count. Typically this is paired with sched_lock() and concludes +a critical section of code. Preemption will not be unlocked until +sched_unlock() has been called as many times as sched_lock(). +When the lockCount is decremented to zero, any tasks that were +eligible to preempt the current task will execute. +

    +Input Parameters: None. +

    +Returned Values: +

    + +

    +Assumptions/Limitations: +

    + POSIX Compatibility: This is a NON-POSIX interface. +VxWorks provides the comparable interface: +

    +    STATUS taskUnlock( void );
    +
    + +

    2.3.3 sched_lockcount

    + +

    +Function Prototype: +

    +    #include <sched.h>
    +    sint32 sched_lockcount( void )
    +
    + +

    +Description: This function returns the current value of +the lockCount. If zero, preemption is enabled; if non-zero, this +value indicates the number of times that sched_lock() has been called +on this thread of execution. +

    +Input Parameters: None. +

    +Returned Values: +

    + +

    +Assumptions/Limitations: +

    + POSIX Compatibility: None. +


    + +

    2.4 Named Message Queue Interfaces

    + +

    +The Nuttx supports POSIX named message queues for intertask communication. +Any task may send or receive messages on named message queues. +Interrupt handlers may send messages via named message queues. + +

    2.4.1 mq_open

    + +

    +Function Prototype: +

    +    #include <mqueue.h>
    +    mqd_t mq_open( const char *mqName, int oflags, ... );
    +
    + +

    +Description: This function establish a connection between +a named message queue and the calling task. After a successful +call of mq_open(), the task can reference the message queue using +the address returned by the call. The message queue remains usable +until it is closed by a successful call to mq_close(). +

    +Input Parameters: +

    + +

    +Returned Values: +

    + +

    +Assumptions/Limitations: +

    + POSIX Compatibility: Comparable to the POSIX interface +of the same name. +Differences from the full POSIX implementation include: +

    + +

    2.4.2 mq_close

    + +

    +Function Prototype: +

    +    #include <mqueue.h>
    +    int mq_close( mqd_t mqdes );
    +
    + +

    +Description: This function is used to indicate that the +calling task is finished with the specified message queued mqdes. +The mq_close() deallocates any system resources allocated by the +system for use by this task for its message queue. +

    +If the calling task has attached a notification request to the message +queue via this mqdes (see mq_notify()), this attachment will be +removed and the message queue is available for another task to attach +for notification. +

    +Input Parameters: +

    + +

    +Returned Values: +

    + +

    +Assumptions/Limitations: +

    +

    +

    + POSIX Compatibility: Comparable to the POSIX interface +of the same name. + +

    2.4.3 mq_unlink

    + +

    +Function Prototype: +

    +    #include <mqueue.h>
    +    int mq_unlink( const char *mqName );
    +
    + +

    +Description: This function removes the message queue named +by "mqName." If one or more tasks have the message queue +open when mq_unlink() is called, removal of the message queue +is postponed until all references to the message queue have been +closed. +

    +Input Parameters: +

    + +

    +Returned Values: None. +

    +Assumptions/Limitations: +

    + POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.4.4 mq_send

    + +

    +Function Prototype: +

    +    #include <mqueue.h>
    +    int mq_send( mqd_t mqdes, const void *msg, size_t msgLen, int msgPrio );
    +
    + +

    +Description: This function adds the specified message (msg) +to the message queue (mqdes). The "msgLen" parameter +specifies the length of the message in bytes pointed to by "msg." +This length must not exceed the maximum message length from the +mq_getattr(). +

    +If the message queue is not full, mq_send() will in the message +in the message queue at the position indicated by the "msgPrio" +argument. Messages with higher priority will be inserted before +lower priority messages. The value of "msgPrio" must +not exceed MQ_PRIO_MAX. +

    +If the specified message queue is full and O_NONBLOCK is not +set in the message queue, then mq_send() will block until space +becomes available to the queue the message. +

    +If the message queue is full and osNON_BLOCK is set, the message +is not queued and ERROR is returned. +

    +Input Parameters: +

    + +

    +Returned Values: None. +

    +Assumptions/Limitations: +

    + POSIX Compatibility: Comparable to the POSIX +interface of the same name. +Differences from the full POSIX implementation include: +

    + +

    2.4.5 mq_receive

    + +

    +Function Prototype: +

    +    #include <mqueue.h>
    +    int mq_receive( mqd_t mqdes, void *msg, size_t msgLen, int *msgPrio );
    +
    + +

    +Description: This function receives the oldest of the highest +priority messages from the message queue specified by "mqdes." +If the size of the buffer in bytes (msgLen) is less than the "mq_msgsize" +attribute of the message queue, mq_receive will return an error. +Otherwise, the select message is removed from the queue and copied +to "msg." +

    +If the message queue is empty and O_NONBLOCK was not set, mq_receive() +will block until a message is added to the message queue. If more +than one task is waiting to receive a message, only the task with +the highest priority that has waited the longest will be unblocked. +

    +If the queue is empty and O_NONBLOCK is set, ERROR will be +returned. +

    +Input Parameters: +

    + +

    +Returned Values: +

    + +

    +Assumptions/Limitations: +

    + POSIX Compatibility: Comparable to the POSIX +interface of the same name. +Differences from the full POSIX implementation include: +

    + +

    2.4.6 mq_notify

    + +

    +Function Prototype: +

    +    #include <mqueue.h>
    +    int mq_notify( mqd_t mqdes, const struct sigevent *notification );
    +
    + +

    +Description: If the "notification" input parameter +is not NULL, this function connects the task with the message queue such +that the specified signal will be sent to the task whenever the message +changes from empty to non-empty. One notification can be attached +to a message queue. +

    +If "notification" is NULL, the attached notification +is detached (if it was held by the calling task) and the queue +is available to attach another notification. +

    +When the notification is sent to the registered task, its registration +will be removed. The message queue will then be available for +registration. +

    +Input Parameters: +

    + +

    +Returned Values: None. +

    +Assumptions/Limitations: +

    + POSIX Compatibility: Comparable to the POSIX interface +of the same name. +Differences from the full POSIX implementation include: +

    + +

    2.4.7 mq_setattr

    + +

    +Function Prototype: +

    +    #include <mqueue.h>
    +    int mq_setattr( mqd_t mqdes, const struct mq_attr *mqStat,
    +                     struct mq_attr *oldMqStat);
    +
    + +

    +Description: This function sets the attributes associated +with the specified message queue "mqdes." Only the "O_NONBLOCK" +bit of the "mq_flags" can be changed. +

    +If "oldMqStat" is non-null, mq_setattr() will store +the previous message queue attributes at that location (just as +would have been returned by mq_getattr()). +

    +Input Parameters: +

    + +

    +Returned Values: +

    + +

    +Assumptions/Limitations: +

    + POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.4.8 mq_getattr

    + +

    +Function Prototype: +

    +    #include <mqueue.h>
    +    int mq_getattr( mqd_t mqdes, struct mq_attr *mqStat);
    +
    + +

    +Description: This functions gets status information and +attributes associated with the specified message queue. +

    +Input Parameters: +

    + +

    +Returned Values: +

    + +

    +Assumptions/Limitations: +

    + POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.5 Counting Semaphore Interfaces

    + +

    +Semaphores. Semaphores are the basis for +synchronization and mutual exclusion in Nuttx. Nuttx supports +POSIX semaphores. +

    +Semaphores are the preferred mechanism for gaining exclusive access to a +resource. sched_lock() and sched_unlock() can also be used for this purpose. +However, sched_lock() and sched_unlock() have other undesirable side-affects +in the operation of the system: sched_lock() also prevents higher-priority +tasks from running that do not depend upon the semaphore-managed resource +and, as a result, can adversely affect system response times. +

    +Priority Inversion. Proper use of semaphores avoids the issues of +sched_lock(). However, consider the following example: +

      +
    1. Some low-priority task, Task C, acquires a semphore in order to +get exclusive access to a protected resource. +
    2. Task C is suspended to allow some high-priority task, +Task A, to execute. +
    3. Task A attempts to acquire the semaphore held by Task C and +gets blocked until Task C relinquishes the semaphore. +
    4. Task C is allowed to execute again, but gets suspended by some +medium-priority Task B. +
    +At this point, the high-priority Task A cannot execute until +Task B (and possibly other medium-priority tasks) completes and until +Task C relinquishes the semaphore. In effect, the high-priority task, +Task A behaves as though it were lower in priority than the +low-priority task, Task C! This phenomenon is called priority +inversion. +

    +Some operating systems avoid priority inversion by automatically +increasing the priority of the low-priority Task C (the operable +buzz-word for this behavior is mutex semaphores). The Nuttx does not +support this behavior. As a consequence, it is left to the designer to +provide implementations that will not suffer from priority inversion. +The designer may, as examples: +

    +

    + +

    2.5.1 sem_init

    + +

    +Function Prototype: +

    +    #include <semaphore.h>
    +    int sem_init ( sem_t *sem, int pshared, unsigned int value );
    +
    + +

    +Description: This function initializes the UN-NAMED semaphore +sem. Following a successful call to sem_init(), the semaphore +may be used in subsequent calls to sem_wait(), sem_post(), and +sem_trywait(). The semaphore remains usable until it is destroyed. +

    +Only sem itself may be used for performing synchronization. The +result of referring to copies of sem in calls to sem_wait(), +sem_trywait(), sem_post(), and sem_destroy(), is +not defined. +

    +Input Parameters: +

    + +

    +Returned Values: +

    + +

    +Assumptions/Limitations: +

    + POSIX Compatibility: Comparable to the POSIX +interface of the same name. +Differences from the full POSIX implementation include: +

    + +

    2.5.2 sem_destroy

    + +

    +Function Prototype: +

    +    #include <semaphore.h>
    +    int sem_destroy ( sem_t *sem );
    +
    + +

    +Description: This function is used to destroy the un-named semaphore +indicated by sem. Only a semaphore that was created using +sem_init() may be destroyed using sem_destroy(). The effect +of calling sem_destroy() with a named semaphore is undefined. The +effect of subsequent use of the semaphore sem is undefined until +sem is re-initialized by another call to sem_init(). +

    +The effect of destroying a semaphore upon which other tasks are currently +blocked is undefined. +

    +Input Parameters: +

    + +

    +Returned Values: +

    + +

    +Assumptions/Limitations: +

    + POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.5.3 sem_open

    + +

    +Function Prototype: +

    +    #include <semaphore.h>
    +    sem_t *sem_open ( const char *name, int oflag, ...);
    +
    + +

    +Description: This function establishes a connection between +named semaphores and a task. Following a call to sem_open() with +the semaphore name, the task may reference the semaphore associated +with name using the address returned by this call. The semaphore +may be used in subsequent calls to sem_wait(), sem_trywait(), +and sem_post(). The semaphore remains usable until the semaphore +is closed by a successful call to sem_close(). +

    +If a task makes multiple calls to sem_open() with the same name, +then the same semaphore address is returned (provided there have +been no calls to sem_unlink()). +

    +Input Parameters: +

    + +

    +Returned Values: +

    + +

    +Assumptions/Limitations: +

    + POSIX Compatibility: Comparable to the POSIX +interface of the same name. +Differences from the full POSIX implementation include: +

    + +

    2.5.4 sem_close

    + +

    +Function Prototype: +

    +    #include <semaphore.h>
    +    int sem_close ( sem_t *sem );
    +
    + +

    +Description: This function is called to indicate that the +calling task is finished with the specified named semaphore, sem. +The sem_close() deallocates any system resources allocated by +the system for this named semaphore. +

    +If the semaphore has not been removed with a call to sem_unlink(), +then sem_close() has no effect on the named semaphore. However, +when the named semaphore has been fully unlinked, the semaphore +will vanish when the last task closes it. +

    +Care must be taken to avoid risking the deletion of a semaphore +that another calling task has already locked. +

    +Input Parameters: +

    + +

    +Returned Values: +

    + +

    +Assumptions/Limitations: +

    +

    + POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.5.5 sem_unlink

    + +

    +Function Prototype: +

    +    #include <semaphore.h>
    +    int sem_unlink ( const char *name );
    +
    + +

    +Description: This function will remove the semaphore named by the +input name parameter. If one or more tasks have the semaphore named by +name oepn when sem_unlink() is called, destruction of the semaphore will +be postponed until all references have been destroyed by calls to +sem_close(). +

    +Input Parameters: +

    + +

    +Returned Values: +

    + +

    +Assumptions/Limitations: +

    +

    + POSIX Compatibility: Comparable to the POSIX +interface of the same name. +Differences from the full POSIX implementation include: +

    + +

    2.5.6 sem_wait

    + +

    +Function Prototype: +

    +    #include <semaphore.h>
    +    int sem_wait ( sem_t *sem );
    +
    + +

    +Description: This function attempts to lock the semaphore +referenced by sem. If the semaphore as already locked by another +task, the calling task will not return until it either successfully acquires +the lock or the call is interrupted by a signal. +

    +Input Parameters: +

    + +

    +Returned Values: +

    +

    +If sem_wait returns -1 (ERROR) then the cause of the failure +will be indicated by the thread-specific errno value (a pointer +to this value can be obtained using get_errno_ptr()). The following +lists the possible values for errno: +

    +

    +

    +Assumptions/Limitations: +

    + POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.5.7 sem_trywait

    + +

    +Function Prototype: +

    +    #include <semaphore.h>
    +    int sem_trywait ( sem_t *sem );
    +
    + +

    +Description: This function locks the specified semaphore +only if the semaphore is currently not locked. In any event, the call +returns without blocking. +

    +Input Parameters: +

    + +

    +Returned Values: +

    +If sem_wait returns -1 (ERROR) then the cause of the failure +will be indicated by the thread-specific errno value (a pointer +to this value can be obtained using get_errno_ptr()). The following +lists the possible values for errno: +

    +

    +

    + +

    +Assumptions/Limitations: +

    + POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.5.8 sem_post

    + +

    +Function Prototype: +

    +    #include <semaphore.h>
    +    int sem_post ( sem_t *sem );
    +
    + +

    +Description: When a task has finished with a semaphore, +it will call sem_post(). This function unlocks the semaphore referenced +by sem by performing the semaphore unlock operation. +

    +If the semaphore value resulting from this operation is positive, then +no tasks were blocked waiting for the semaphore to become unlocked; +The semaphore value is simply incremented. +

    +If the value of the semaphore resulting from this operation is zero, then +on of the tasks blocked waiting for the semaphore will be allowed to +return successfully from its call to sem_wait(). +

    +NOTE: sem_post() may be called from an interrupt handler. +

    +Input Parameters: +

    + +

    +Returned Values: +

    + +

    +Assumptions/Limitations: This function cannot be called +from an interrupt handler. It assumes the currently executing +task is the one that is performing the unlock. +

    + POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.5.9 sem_getvalue

    + +

    +Function Prototype: +

    +    #include <semaphore.h>
    +    int sem_getvalue ( sem_t *sem, int *sval );
    +
    + +

    +Description: This function updates the location referenced +by sval argument to have the value of the semaphore referenced +by sem without effecting the state of the semaphore. The updated +value represents the actual semaphore value that occurred at some +unspecified time during the call, but may not reflect the actual +value of the semaphore when it is returned to the calling task. +

    +If sem is locked, the value return by sem_getvalue() will either +be zero or a negative number whose absolute value represents the +number of tasks waiting for the semaphore. +

    +Input Parameters: +

    + +

    +Returned Values: +

    + +

    +Assumptions/Limitations: +

    + POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +


    + +

    2.6 Watchdog Timer Interfaces

    + +

    +The Nuttx provides a general watchdog timer facility. This +facility allows the Nuttx user to specify a watchdog timer function +that will run after a specified delay. The watchdog timer function +will run in the context of the timer interrupt handler. Because +of this, a limited number of Nuttx interfaces are available to +the watchdog timer function. However, the watchdog timer function +may use mq_send(), and sigqueue() to communicate with Nuttx tasks. + +

    2.6.1 wd_create

    + +

    +Function Prototype: +

    +    #include <wdog.h>
    +    WDOG_ID wd_create (void);
    +
    + +

    +Description: The wd_create function will create a watchdog +by allocating the appropriate resources for the watchdog. +

    +Input Parameters: None. +

    +Returned Values: +

    + +

    +Assumptions/Limitations: +

    + POSIX Compatibility: This is a NON-POSIX interface. +VxWorks provides the following comparable interface: +

    +    WDOG_ID wdCreate (void);
    +
    + +

    +Differences from the VxWorks interface include: +

    + +

    2.6.2 wd_delete

    + +

    +Function Prototype: +

    +    #include <wdog.h>
    +    STATUS wd_delete (WDOG_ID wdId);
    +
    + +

    +Description: The wd_delete function will deallocate a +watchdog. The watchdog will be removed from the timer queue if +has been started. +

    +Input Parameters: +

    + +

    +Returned Values: +

    + +

    +Assumptions/Limitations: It is the responsibility of the +caller to assure that the watchdog is inactive before deleting +it. +

    + POSIX Compatibility: This is a NON-POSIX interface. +VxWorks provides the following comparable interface: +

    +    STATUS wdDelete (WDOG_ID wdId);
    +
    + +

    +Differences from the VxWorks interface include: +

    + +

    2.6.3 wd_start

    + +

    +Function Prototype: +

    +    #include <wdog.h>
    +    STATUS wd_start( WDOG_ID wdId, int delay, wdentry_t wdentry,
    +                     int parm1, int parm2, int parm3, int parm4 );
    +
    + +

    +Description: This function adds a watchdog to the timer +queue. The specified watchdog function will be called from the +interrupt level after the specified number of ticks has elapsed. +Watchdog timers may be started from the interrupt level. +

    +Watchdog times execute in the context of the timer interrupt handler, but +with the PIC/PID address environment that was in place when wd_start() +was called. +

    +Watchdog timers execute only once. +

    +To replace either the timeout delay or the function to be executed, +call wd_start again with the same wdId; only the most recent +wd_start() on a given watchdog ID has any effect. +

    +Input Parameters: +

    + +

    +Returned Values: +

    + +

    +Assumptions/Limitations: The watchdog routine runs in the +context of the timer interrupt handler and is subject to all ISR +restrictions. +

    + POSIX Compatibility: This is a NON-POSIX interface. +VxWorks provides the following comparable interface: +

    +    STATUS wdStart (WDOG_ID wdId, int delay, FUNCPTR wdentry, int parameter);
    +
    + +

    +Differences from the VxWorks interface include: +

    + +

    2.6.4 wd_cancel

    + +

    +Function Prototype: +

    +    #include <wdog.h>
    +    STATUS wd_cancel (WDOG_ID wdId);
    +
    + +

    +Description: This function cancels a currently running +watchdog timer. Watchdog timers may be canceled from the interrupt +level. +

    +Input Parameters: +

    + +

    +Returned Values: +

    + +

    +Assumptions/Limitations: +

    + POSIX Compatibility: This is a NON-POSIX interface. +VxWorks provides the following comparable interface: +

    +    STATUS wdCancel (WDOG_ID wdId);
    +
    + +
    + +

    2.7 Signal Interfaces

    + +

    +The Nuttx provides signal interfaces for tasks. Signals are +used to alter the flow control of tasks by communicating asynchronous +events within or between task contexts. Any task or interrupt +handler can post (or send) a signal to a particular task. The +task being signaled will execute task-specified signal handler +function the next time that the task has priority. +The signal handler is a user-supplied function that is bound to +a specific signal and performs whatever actions are necessary +whenever the signal is received. +

    +Signal handlers execute in the context of the task that registered +the signal handler. +

    +There are no predefined actions for any signal. +The default action for all signals (i.e., when no signal handler has +been supplied by the user) is to ignore the signal. +

    +Tasks may also suspend themselves and wait until a signal is received. + +

    2.7.1 sigemptyset

    + +

    +Function Prototype: +

    +    #include <signal.h>
    +    int sigemptyset(sigset_t *set);
    +
    + +

    +Description: This function initializes the signal set specified +by set such that all signals are excluded. +

    +Input Parameters: +

    + +

    +Returned Values: +

    + +

    +Assumptions/Limitations: +

    + POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.7.2 sigfillset

    + +

    +Function Prototype: +

    +    #include <signal.h>
    +    int sigfillset(sigset_t *set);
    +
    + +

    +Description: This function initializes the signal set specified +by set such that all signals are included. +

    +Input Parameters: +

    + +

    +Returned Values: +

    + +

    +Assumptions/Limitations: +

    + POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.7.3 sigaddset

    + +

    +Function Prototype: +

    +    #include <signal.h>
    +    int sigaddset(sigset_t *set, int signo);
    +
    + +

    +Description: This function adds the signal specified by +signo to the signal set specified by set. +

    +Input Parameters: +

    + +

    +Returned Values: +

    + +

    +Assumptions/Limitations: +

    + POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.7.4 sigdelset

    + +

    +Function Prototype: +

    +    #include <signal.h>
    +    int sigdelset(sigset_t *set, int signo);
    +
    + +

    +Description: This function deletes the signal specified +by signo from the signal set specified by set. +

    +Input Parameters: +

    + +

    +Returned Values: +

    + +

    +Assumptions/Limitations: +

    + POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.7.5 sigismember

    + +

    +Function Prototype: +

    +    #include <signal.h>
    +    int  sigismember(const sigset_t *set, int signo);
    +
    + +

    +Description: This function tests whether the signal specified +by signo is a member of the set specified by set. +

    +Input Parameters: +

    + +

    +Returned Values: +

    + +

    +Assumptions/Limitations: +

    + POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.7.6 sigaction

    + +

    +Function Prototype: +

    +    #include <signal.h>
    +    int sigaction( int signo, const struct sigaction *act,
    +                   struct sigaction *oact );
    +
    + +

    +Description: This function allows the calling task to +examine and/or specify the action to be associated with a specific +signal. +

    +The structure sigaction, used to describe an action to be taken, is defined +to include the following members: +

    +

    +If the argument act is not NULL, it points to a structure specifying the +action to be associated with the specified signal. If the argument oact +is not NULL, the action previously associated with the signal is stored +in the location pointed to by the argument oact. If the argument act is +NULL, signal handling is unchanged by this function call; thus, the call +can be used to enquire about the current handling of a given signal. +

    +When a signal is caught by a signal-catching function installed by the +sigaction() function, a new signal mask is calculated and installed for +the duration of the signal-catching function. This mask is formed by taking +the union of the current signal mask and the value of the sa_mask for the +signal being delivered, and then including the signal being delivered. If +and when the signal handler returns, the original signal mask is restored. +

    +Signal catching functions execute in the same address environment as the +task that called sigaction() to install the signal-catching function. +

    +Once an action is installed for a specific signal, it remains installed +until another action is explicitly requested by another call to +sigaction(). +

    +Input Parameters: +

    + +

    +Returned Values: +

    + +

    +Assumptions/Limitations: +

    + POSIX Compatibility: Comparable to the POSIX +interface of the same name. +Differences from the POSIX implementation include: +

    + +

    2.7.7 sigprocmask

    + +

    +Function Prototype: +

    +    #include <signal.h>
    +    int sigprocmask(int how, const sigset_t *set, sigset_t *oset);
    +
    + +

    +Description: This function allows the calling task to +examine and/or change its signal mask. If the set is not NULL, +then it points to a set of signals to be used to change the currently +blocked set. The value of how indicates the manner in which the +set is changed. +

    +If there are any pending unblocked signals after the call to sigprocmask(), +those signals will be delivered before sigprocmask() returns. +

    +If sigprocmask() fails, the signal mask of the task is not changed. +

    +Input Parameters: +

    + +

    +Returned Values: +

    + +

    +Assumptions/Limitations: +

    + POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.7.8 sigpending

    + +

    +Function Prototype: +

    +    #include <signal.h>
    +    int sigpending( sigset_t *set );
    +
    + +

    +Description: This function stores the returns the set of +signals that are blocked for delivery and that are pending for +the calling task in the space pointed to by set. +

    +If the task receiving a signal has the signal blocked via its +sigprocmask, the signal will pend until it is unmasked. Only one pending +signal (for a given signo) is retained by the system. This is consistent +with POSIX which states: "If a subsequent occurrence of a pending +signal is generated, it is implementation defined as to whether the signal +is delivered more than once." +

    +Input Parameters: +

    + +

    +Returned Values: +

    + +

    +Assumptions/Limitations: +

    + POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.7.9 sigsuspend

    + +

    +Function Prototype: +

    +    #include <signal.h>
    +    int sigsuspend( const sigset_t *set );
    +
    + +

    +Description: The sigsuspend() function replaces the signal mask +with the set of signals pointed to by the argument set and then suspends +the task until delivery of a signal to the task. +

    +If the effect of the set argument is to unblock a pending signal, then +no wait is performed. +

    +The original signal mask is restored when sigsuspend() returns. +

    +Waiting for an empty signal set stops a task without freeing any +resources (a very bad idea). +

    +Input Parameters: +

    + +

    +Returned Values: +

    + +

    +Assumptions/Limitations: +

    + POSIX Compatibility: Comparable to the POSIX +interface of the same name. +Differences from the POSIX specification include: +

    + +

    2.7.10 sigwaitinfo

    + +

    +Function Prototype: +

    +    #include <signal.h>
    +    int sigwaitinfo(const sigset_t *set, struct siginfo *info);
    +
    + +

    +Description: This function is equivalent to sigtimedwait() +with a NULL timeout parameter. (see below). +

    +Input Parameters: +

    + +

    +Returned Values: +

    + +

    +Assumptions/Limitations: +

    + POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.7.11 sigtimedwait

    + +

    +Function Prototype: +

    +    #include <signal.h>
    +    int sigtimedwait( const sigset_t *set, struct siginfo *info,
    +                      const struct timespec *timeout );
    +
    + +

    +Description: This function selects the pending signal set +specified by the argument set. If multiple signals are pending in set, +it will remove and return the lowest numbered one. If no signals in set +are pending at the time of the call, the calling task will be suspended +until one of the signals in set becomes pending OR until the task +interrupted by an unblocked signal OR until the time interval specified by +timeout (if any), has expired. If timeout is NULL, then the timeout interval +is forever. +

    +If the info argument is non-NULL, the selected signal number is +stored in the si_signo member and the cause of the signal is store +in the si_code member. The content of si_value is only meaningful +if the signal was generated by sigqueue(). The following values +for si_code are defined in signal.h: +

    + +

    +Input Parameters: +

    + +

    +Returned Values: +

    + +

    +Assumptions/Limitations: +

    + POSIX Compatibility: Comparable to the POSIX +interface of the same name. +Differences from the POSIX interface include: +

    + +

    2.7.12 sigqueue

    + +

    +Function Prototype: +

    +    #include <signal.h>
    +    int sigqueue (int tid, int signo, const union sigval value);
    +
    + +

    +Description: This function sends the signal specified by +signo with the signal parameter value to the task specified +by tid. +

    +If the receiving task has the signal blocked via its sigprocmask, +the signal will pend until it is unmasked. Only one pending signal +(for a given signo) is retained by the system. This is consistent with +POSIX which states: "If a subsequent occurrence of a pending signal +is generated, it is implementation defined as to whether the signal +is delivered more than once." +

    +Input Parameters: +

    + +

    +Returned Values: +

    + +

    +Assumptions/Limitations: +

    + POSIX Compatibility: Comparable to the POSIX +interface of the same name. +Differences from the POSIX interface include: +

    + +

    2.8 Pthread Interfaces

    +

    +

    2.8.1 pthread_attr_init

    +

    +Function Prototype: +

    +

    +    #include <pthread.h>
    +    int pthread_attr_init(pthread_attr_t *attr);
    +
    +

    +Description: +Initializes a thread attributes object (attr) with default values +for all of the individual attributes used by the implementation. +

    +Input Parameters: +

    +

    +

    +Returned Values: +

    +If successful, the xxx() function will return +zero (OK). Otherwise, an error number will be +returned to indicate the error: +

    +

    +Assumptions/Limitations: +

    +POSIX Compatibility: Comparable to the POSIX +interface of the same name. +

    +

    2.8.2 pthread_attr_destroy

    +

    +Function Prototype: +

    +

    +    #include <pthread.h>
    +    int pthread_attr_destroy(pthread_attr_t *attr);
    +
    +

    +Description: +An attributes object can be deleted when it is no longer needed. +

    +Input Parameters: +

    +

    +

    +Returned Values: +

    +If successful, the xxx() function will return +zero (OK). Otherwise, an error number will be +returned to indicate the error: +

    +

    +Assumptions/Limitations: +

    +POSIX Compatibility: Comparable to the POSIX +interface of the same name. +

    +

    2.8.3 pthread_attr_setschedpolicy

    +

    +Function Prototype: +

    +

    +    #include <pthread.h>
    +    int pthread_attr_setschedpolicy(pthread_attr_t *attr, int policy);
    +
    +

    +Description: +

    +Input Parameters: +

    +

    +

    +Returned Values: +

    +If successful, the xxx() function will return +zero (OK). Otherwise, an error number will be +returned to indicate the error: +

    +

    +Assumptions/Limitations: +

    +POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.8.4 pthread_attr_getschedpolicy

    +

    +Function Prototype: +

    +

    +    #include <pthread.h>
    +    int pthread_attr_getschedpolicy(pthread_attr_t *attr, int *policy);
    +
    +

    +Description: +

    +Input Parameters: +

    +

    +

    +Returned Values: +

    +If successful, the xxx() function will return +zero (OK). Otherwise, an error number will be +returned to indicate the error: +

    +

    +Assumptions/Limitations: +

    +POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.8.5 pthread_attr_setschedparam

    +

    +Function Prototype: +

    +

    +   #include <pthread.h>
    +    int pthread_attr_setschedparam(pthread_attr_t *attr,
    +				      const struct sched_param *param);
    +
    +

    +Description: +

    +Input Parameters: +

    +

    +

    +Returned Values: +

    +If successful, the xxx() function will return +zero (OK). Otherwise, an error number will be +returned to indicate the error: +

    +

    +Assumptions/Limitations: +

    +POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.8.6 pthread_attr_getschedparam

    +

    +Function Prototype: +

    +

    +   #include <pthread.h>
    +     int pthread_attr_getschedparam(pthread_attr_t *attr,
    +				      struct sched_param *param);
    +
    +

    +Description: +

    +Input Parameters: +

    +

    +

    +Returned Values: +

    +If successful, the xxx() function will return +zero (OK). Otherwise, an error number will be +returned to indicate the error: +

    +

    +Assumptions/Limitations: +

    +POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.8.7 pthread_attr_setinheritsched

    +

    +Function Prototype: +

    +

    +   #include <pthread.h>
    +    int pthread_attr_setinheritsched(pthread_attr_t *attr,
    +					int inheritsched);
    +
    +

    +Description: +

    +Input Parameters: +

    +

    +

    +Returned Values: +

    +If successful, the xxx() function will return +zero (OK). Otherwise, an error number will be +returned to indicate the error: +

    +

    +Assumptions/Limitations: +

    +POSIX Compatibility: Comparable to the POSIX +interface of the same name. +

    +

    2.8.8 pthread_attr_getinheritsched

    +

    +Function Prototype: +

    +

    +   #include <pthread.h>
    +     int pthread_attr_getinheritsched(const pthread_attr_t *attr,
    +					int *inheritsched);
    +
    +

    +Description: +

    +Input Parameters: +

    +

    +

    +Returned Values: +

    +If successful, the xxx() function will return +zero (OK). Otherwise, an error number will be +returned to indicate the error: +

    +

    +Assumptions/Limitations: +

    +POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.8.9 pthread_attr_setstacksize

    +

    +Function Prototype: +

    +

    +   #include <pthread.h>
    +    int pthread_attr_setstacksize(pthread_attr_t *attr, long stacksize);
    +
    +

    +Description: +

    +Input Parameters: +

    +

    +

    +Returned Values: +

    +If successful, the xxx() function will return +zero (OK). Otherwise, an error number will be +returned to indicate the error: +

    +

    +Assumptions/Limitations: +

    +POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.8.10 pthread_attr_getstacksize

    +

    +Function Prototype: +

    +

    +    #include <pthread.h>
    +   int pthread_attr_getstacksize(pthread_attr_t *attr, long *stackaddr);
    +
    +

    +Description: +

    +Input Parameters: +

    +

    +

    +Returned Values: +

    +If successful, the xxx() function will return +zero (OK). Otherwise, an error number will be +returned to indicate the error: +

    +

    +Assumptions/Limitations: +

    +POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.8.11 pthread_create

    +

    +Function Prototype: +

    +

    +    #include <pthread.h>
    +    int pthread_create(pthread_t *thread, pthread_attr_t *attr,
    +			  pthread_startroutine_t startRoutine,
    +			  pthread_addr_t arg);
    +
    +

    +Description: +To create a thread object and runnable thread, a routine +must be specified as the new thread's start routine. An +argument may be passed to this routine, as an untyped +address; an untyped address may also be returned as the +routine's value. An attributes object may be used to +specify details about the kind of thread being created. +

    +Input Parameters: +

    +

    +

    +Returned Values: +

    +If successful, the xxx() function will return +zero (OK). Otherwise, an error number will be +returned to indicate the error: +

    +

    +Assumptions/Limitations: +

    +POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.8.12 pthread_detach

    +

    +Function Prototype: +

    +

    +    #include <pthread.h>
    +    int pthread_detach(pthread_t thread);
    +
    +

    +Description: +A thread object may be "detached" to specify that the +return value and completion status will not be requested. +

    +Input Parameters: +

    +

    +

    +Returned Values: +

    +If successful, the xxx() function will return +zero (OK). Otherwise, an error number will be +returned to indicate the error: +

    +

    +Assumptions/Limitations: +

    +POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.8.13 pthread_exit

    +

    +Function Prototype: +

    +

    +    #include <pthread.h>
    +    void pthread_exit(pthread_addr_t pvValue);
    +
    +

    +Description: +A thread may terminate it's own execution. +

    +Input Parameters: +

    +

    +

    +Returned Values: +

    +If successful, the xxx() function will return +zero (OK). Otherwise, an error number will be +returned to indicate the error: +

    +

    +Assumptions/Limitations: +

    +POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.8.14 pthread_cancel

    +

    +Function Prototype: +

    +

    +    #include <pthread.h>
    +    int pthread_cancel(pthread_t thread);
    +
    +

    +Description: + +

    The pthread_cancel() function shall request that thread +be canceled. The target thread's cancelability state determines +when the cancellation takes effect. When the +cancellation is acted on, thread shall be terminated.

    + +

    When cancelability is disabled, all cancels are held pending +in the target thread until the thread changes the cancelability. +When cancelability is deferred, all cancels are held pending in +the target thread until the thread changes the cancelability or +calls pthread_testcancel().

    + +

    Cancelability is asynchronous; all cancels are acted upon +immediately (when enable), interrupting the thread with its processing.

    + +

    +Input Parameters: +

    +

    +

    +Returned Values: +

    +If successful, the ptnread_cancel() function will return zero (OK). +Otherwise, an error number will be returned to indicate the error: +

    +

    +Assumptions/Limitations: +

    +POSIX Compatibility: Comparable to the POSIX +interface of the same name. Except:

    + + +

    2.8.15 pthread_setcancelstate

    +

    +Function Prototype: +

    +

    +    #include <pthread.h>
    +    int pthread_setcancelstate(int state, int *oldstate);
    +
    +

    +Description: +

    The pthread_setcancelstate() function atomically +sets both the calling thread's cancelability state to the indicated +state and returns the previous cancelability state at the location +referenced by oldstate. +Legal values for state are PTHREAD_CANCEL_ENABLE and PTHREAD_CANCEL_DISABLE.<.li> + +

    Any pending thread cancelation may occur at the time that the +cancelation state is set to PTHREAD_CANCEL_ENABLE.

    + +Input Parameters: +

    +

    +

    +Returned Values: +

    +If successful, the pthread_setcancelstate() function will return +zero (OK). Otherwise, an error number will be returned to indicate the error: +

    +

    +Assumptions/Limitations: +

    +POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.8.16 pthread_setcancelstate

    +

    +Function Prototype: +

    +

    +    #include <pthread.h>
    +    int pthread_setcancelstate(int state, int *oldstate);
    +
    +

    +Description: +

    +Input Parameters: +

    +

    +

    +Returned Values: +

    +If successful, the xxx() function will return +zero (OK). Otherwise, an error number will be +returned to indicate the error: +

    +

    +Assumptions/Limitations: +

    +POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.8.17 pthread_join

    +

    +Function Prototype: +

    +

    +    #include <pthread.h>
    +    int pthread_join(pthread_t thread, pthread_addr_t *ppvValue);
    +
    +

    +Description: +A thread can await termination of another thread and retrieve +the return value of the thread. +

    +Input Parameters: +

    +

    +

    +Returned Values: +

    +If successful, the xxx() function will return +zero (OK). Otherwise, an error number will be +returned to indicate the error: +

    +

    +Assumptions/Limitations: +

    +POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.8.18 pthread_yield

    +

    +Function Prototype: +

    +

    +    #include <pthread.h>
    +    void pthread_yield(void);
    +
    +

    +Description: +A thread may tell the scheduler that its processor can be +made available. +

    +Input Parameters: +

    +

    +

    +Returned Values: +

    +If successful, the xxx() function will return +zero (OK). Otherwise, an error number will be +returned to indicate the error: +

    +

    +Assumptions/Limitations: +

    +POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.8.19 pthread_self

    +

    +Function Prototype: +

    +

    +    #include <pthread.h>
    +    pthread_t pthread_self(void);
    +
    +

    +Description: +A thread may obtain a copy of its own thread handle. +

    +Input Parameters: +

    +

    +

    +Returned Values: +

    +If successful, the xxx() function will return +zero (OK). Otherwise, an error number will be +returned to indicate the error: +

    +

    +Assumptions/Limitations: +

    +POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.8.20 pthread_getschedparam

    +

    +Function Prototype: +

    +

    +    #include <pthread.h>
    +    int pthread_getschedparam(pthread_t thread, int *policy,
    +				 struct sched_param *param);
    +
    +

    +Description: +

    +Input Parameters: +

    +

    +

    +Returned Values: +

    +If successful, the xxx() function will return +zero (OK). Otherwise, an error number will be +returned to indicate the error: +

    +

    +Assumptions/Limitations: +

    +POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.8.21 pthread_setschedparam

    +

    +Function Prototype: +

    +

    +    #include <pthread.h>
    +    int pthread_setschedparam(pthread_t thread, int policy,
    +				 const struct sched_param *param);
    +
    +

    +Description: +

    +Input Parameters: +

    +

    +

    +Returned Values: +

    +If successful, the xxx() function will return +zero (OK). Otherwise, an error number will be +returned to indicate the error: +

    +

    +Assumptions/Limitations: +

    +POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.8.22 pthread_key_create

    +

    +Function Prototype: +

    +

    +    #include <pthread.h>
    +    int pthread_key_create( pthread_key_t *key, void (*destructor)(void*) )
    +
    +

    +Description: +

    +This function creates a thread-specific data key visible +to all threads in the system. Although the same key value +may be used by different threads, the values bound to +the key by pthread_setspecific() are maintained on a +per-thread basis and persist for the life of the calling +thread. +

    +Upon key creation, the value NULL will be associated with +the the new key in all active threads. Upon thread +creation, the value NULL will be associated with all +defined keys in the new thread. +

    +Input Parameters: +

    +

    +

    +Returned Values: +

    +If successful, the pthread_key_create() function will +store the newly created key value at *key and return +zero (OK). Otherwise, an error number will be +returned to indicate the error: +

    +

    +Assumptions/Limitations: +

    +POSIX Compatibility: Comparable to the POSIX +interface of the same name. +

    + +

    2.8.23 pthread_setspecific

    +

    +Function Prototype: +

    +

    +    #include <pthread.h>
    +    int pthread_setspecific( pthread_key_t key, void *value )
    +
    +

    +Description: +

    +The pthread_setspecific() function associates a thread- +specific value with a key obtained via a previous call +to pthread_key_create(). Different threads may bind +different values to the same key. These values are +typically pointers to blocks of dynamically allocated +memory that have been reserved for use by the calling +thread. +

    +The effect of calling pthread_setspecific() with a key value +not obtained from pthread_key_create() or after a key has been +deleted with pthread_key_delete() is undefined. +

    +Input Parameters: +

    +

    +

    +Returned Values: +

    +If successful, pthread_setspecific() will return zero (OK). +Otherwise, an error number will be returned: +

    +

    +

    +Assumptions/Limitations: +

    +POSIX Compatibility: Comparable to the POSIX +interface of the same name. +

    + +

    2.8.24 pthread_getspecific

    +

    +Function Prototype: +

    +

    +    #include <pthread.h>
    +    void *pthread_getspecific( pthread_key_t key )
    +
    +

    +Description: +

    +The pthread_getspecific() function returns the value +currently bound to the specified key on behalf of the +calling thread. +

    +The effect of calling pthread_getspecific() with a key value +not obtained from pthread_key_create() or after a key has been +deleted with pthread_key_delete() is undefined. +

    +Input Parameters: +

    +

    +

    +Returned Values: +

    +The function pthread_getspecific() returns the thread- +specific data associated with the given key. If no +thread specific data is associated with the key, then +the value NULL is returned. +

    +Assumptions/Limitations: +

    +POSIX Compatibility: Comparable to the POSIX +interface of the same name. +

    + +

    2.8.25 pthread_key_delete

    +

    +Function Prototype: +

    +

    +    #include <pthread.h>
    +    int pthread_key_delete( pthread_key_t key )
    +
    +

    +Description: +

    +This POSIX function should delete a thread-specific data +key previously returned by pthread_key_create(). However, +this function does nothing in the present implementation. +

    +Input Parameters: +

    +

    +

    +Returned Values: +

    +

    +

    +Assumptions/Limitations: +

    +POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.8.26 pthread_mutexattr_init

    +

    +Function Prototype: +

    +

    +    #include <pthread.h>
    +    int pthread_mutexattr_init(pthread_mutexattr_t *attr);
    +
    +

    +Description: +

    +Input Parameters: +

    +

    +

    +Returned Values: +

    +If successful, the xxx() function will return +zero (OK). Otherwise, an error number will be +returned to indicate the error: +

    +

    +Assumptions/Limitations: +

    +POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.8.27 pthread_mutexattr_destroy

    +

    +Function Protoype: +

    +

    +    #include <pthread.h>
    +    int pthread_mutexattr_destroy(pthread_mutexattr_t *attr);
    +
    +

    +Description: +

    +Input Parameters: +

    +

    +

    +Returned Values: +

    +If successful, the xxx() function will return +zero (OK). Otherwise, an error number will be +returned to indicate the error: +

    +

    +Assumptions/Limitations: +

    +POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.8.28 pthread_mutexattr_getpshared

    +

    +Function Prototype: +

    +

    +    #include <pthread.h>
    +    int pthread_mutexattr_getpshared(pthread_mutexattr_t *attr,
    +					int *pshared);
    +
    +

    +Description: +

    +Input Parameters: +

    +

    +

    +Returned Values: +

    +If successful, the xxx() function will return +zero (OK). Otherwise, an error number will be +returned to indicate the error: +

    +

    +Assumptions/Limitations: +

    +POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.8.29 pthread_mutexattr_setpshared

    +

    +Function Prototype: +

    +

    +    #include <pthread.h>
    +   int pthread_mutexattr_setpshared(pthread_mutexattr_t *attr,
    +					int pshared);
    +
    +

    +Description: +

    +Input Parameters: +

    +

    +

    +Returned Values: +

    +If successful, the xxx() function will return +zero (OK). Otherwise, an error number will be +returned to indicate the error: +

    +

    +Assumptions/Limitations: +

    +POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.8.30 pthread_mutex_init

    +

    +Function Prototype: +

    +

    +    #include <pthread.h>
    +    int pthread_mutex_init(pthread_mutex_t *mutex,
    +			      pthread_mutexattr_t *attr);
    +
    +

    +Description: +

    +Input Parameters: +

    +

    +

    +Returned Values: +

    +If successful, the xxx() function will return +zero (OK). Otherwise, an error number will be +returned to indicate the error: +

    +

    +Assumptions/Limitations: +

    +POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.8.31 pthread_mutex_destroy

    +

    +Function Prototype: +

    +

    +    #include <pthread.h>
    +    int pthread_mutex_destroy(pthread_mutex_t *mutex);
    +
    +

    +Description: +

    +Input Parameters: +

    +

    +

    +Returned Values: +

    +If successful, the xxx() function will return +zero (OK). Otherwise, an error number will be +returned to indicate the error: +

    +

    +Assumptions/Limitations: +

    +POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.8.32 pthread_mutex_lock

    +

    +Function Prototype: +

    +

    +    #include <pthread.h>
    +    int pthread_mutex_lock(pthread_mutex_t *mutex);
    +
    +

    +Description: +

    +Input Parameters: +

    +

    +

    +Returned Values: +

    +If successful, the xxx() function will return +zero (OK). Otherwise, an error number will be +returned to indicate the error: +

    +

    +Assumptions/Limitations: +

    +POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.8.33 pthread_mutex_trylock

    +

    +Function Prototype: +

    +

    +    #include <pthread.h>
    +    int pthread_mutex_trylock(pthread_mutex_t *mutex);
    +
    +

    +Description: +

    +Input Parameters: +

    +

    +

    +Returned Values: +

    +If successful, the xxx() function will return +zero (OK). Otherwise, an error number will be +returned to indicate the error: +

    +

    +Assumptions/Limitations: +

    +POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.8.34 pthread_mutex_unlock

    +

    +Function Prototype: +

    +

    +    #include <pthread.h>
    +    int pthread_mutex_unlock(pthread_mutex_t *mutex);
    +
    +

    +Description: +

    +Input Parameters: +

    +

    +

    +Returned Values: +

    +If successful, the xxx() function will return +zero (OK). Otherwise, an error number will be +returned to indicate the error: +

    +

    +Assumptions/Limitations: +

    +POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.8.35 pthread_condattr_init

    +

    +Function Prototype: +

    +

    +    #include <pthread.h>
    +    int pthread_condattr_init(pthread_condattr_t *attr);
    +
    +

    +Description: +

    +Input Parameters: +

    +

    +

    +Returned Values: +

    +If successful, the xxx() function will return +zero (OK). Otherwise, an error number will be +returned to indicate the error: +

    +

    +Assumptions/Limitations: +

    +POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.8.36 pthread_condattr_destroy

    +

    +Function Prototype: +

    +

    +    #include <pthread.h>
    +    int pthread_condattr_destroy(pthread_condattr_t *attr);
    +
    +

    +Description: +

    +Input Parameters: +

    +

    +

    +Returned Values: +

    +If successful, the xxx() function will return +zero (OK). Otherwise, an error number will be +returned to indicate the error: +

    +

    +Assumptions/Limitations: +

    +POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.8.37 pthread_cond_init

    +

    +Function Prototype: +

    +

    +    #include <pthread.h>
    +    int pthread_cond_init(pthread_cond_t *cond, pthread_condattr_t *attr);
    +
    +

    +Description: +

    +Input Parameters: +

    +

    +

    +Returned Values: +

    +If successful, the xxx() function will return +zero (OK). Otherwise, an error number will be +returned to indicate the error: +

    +

    +Assumptions/Limitations: +

    +POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.8.38 pthread_cond_destroy

    +

    +Function Prototype: +

    +

    +    #include <pthread.h>
    +    int pthread_cond_destroy(pthread_cond_t *cond);
    +
    +

    +Description: +

    +Input Parameters: +

    +

    +

    +Returned Values: +

    +If successful, the xxx() function will return +zero (OK). Otherwise, an error number will be +returned to indicate the error: +

    +

    +Assumptions/Limitations: +

    +POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.8.39 pthread_cond_broadcast

    +

    +Function Prototype: +

    +

    +    #include <pthread.h>
    +    int pthread_cond_broadcast(pthread_cond_t *cond);
    +
    +

    +Description: +

    +Input Parameters: +

    +

    +

    +Returned Values: +

    +If successful, the xxx() function will return +zero (OK). Otherwise, an error number will be +returned to indicate the error: +

    +

    +Assumptions/Limitations: +

    +POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.8.40 pthread_cond_signal

    +

    +Function Prototype: +

    +

    +    #include <pthread.h>
    +    int pthread_cond_signal(pthread_cond_t *dond);
    +
    +

    +Description: +

    +Input Parameters: +

    +

    +

    +Returned Values: +

    +If successful, the xxx() function will return +zero (OK). Otherwise, an error number will be +returned to indicate the error: +

    +

    +Assumptions/Limitations: +

    +POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.8.41 pthread_cond_wait

    +

    +Function Prototype: +

    +

    +    #include <pthread.h>
    +    int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex);
    +
    +

    +Description: +

    +Input Parameters: +

    +

    +

    +Returned Values: +

    +If successful, the xxx() function will return +zero (OK). Otherwise, an error number will be +returned to indicate the error: +

    +

    +Assumptions/Limitations: +

    +POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    2.8.42 pthread_cond_timedwait

    +

    +Function Prototype: +

    +

    +    #include <pthread.h>
    +    int pthread_cond_timedwait(pthread_cond_t *cond, pthread_mutex_t *mutex,
    +				  const struct timespec *abstime);
    +
    +

    +Description: +

    +Input Parameters: +

    +

    +

    +Returned Values: +

    +If successful, the xxx() function will return +zero (OK). Otherwise, an error number will be +returned to indicate the error: +

    +

    +Assumptions/Limitations: +

    +POSIX Compatibility: Comparable to the POSIX +interface of the same name. + +

    +


    +

    3.0 OS Data Structures

    +

    3.1 Scalar types

    +

    +Many of the types used to communicate with Nuttx are simple +scalar types. These types are used to provide architecture independence +of the OS from the application. The scalar types used at the Nuttx +interface include: +

    + +

    3.2 Hidden Interface Structures

    +

    +Several of the types used to interface with Nuttx are +structures that are intended to be hidden from the application. +From the standpoint of the application, these structures (and +structure pointers) should be treated as simple handles to reference +OS resources. These hidden structures include: +

    +

    +In order to maintain portability, applications should not reference +specific elements within these hidden structures. These hidden +structures will not be described further in this user's manual. +

    + +

    3.3. Access to the errno Variable

    +

    +A pointer to the thread-specific errno. value is available through a +function call: +

    +Function Prototype: +

    +

        int *get_errno_ptr( void )
    +

    +Description: osGetErrnorPtr() returns a pointer to +the thread-specific errno value. +

    +This differs somewhat from the use for errno in a multi-threaded process environment: +Each pthread will have its own private copy of errno and the errno will not be shared +between pthreads. +

    +Input Parameters: None +

    +Returned Values: +

    +

    +

    + +

    3.4 User Interface Structures

    +

    +

    3.4.1 main_t

    +

    +main_t defines the type of a task entry point. main_t is declared +in sys/types.h as: +

    +    typedef int (*main_t)(int argc, char *argv[]);
    +
    + +

    3.4.2 struct sched_param

    + +

    +This structure is used to pass scheduling priorities to and from +Nuttx; +

    +    struct sched_param
    +    {
    +      int sched_priority;
    +    };
    +
    + +

    3.4.3 struct timespec

    + +

    +This structure is used to pass timing information between the +Nuttx and a user application: +

    +    struct timespec
    +    {
    +      time_t tv_sec;  /* Seconds */
    +      long   tv_nsec; /* Nanoseconds */
    +    };
    +
    + +

    3.4.4 struct mq_attr

    + +

    +This structure is used to communicate message queue attributes +between Nuttx and a MoBY application: +

    +    struct mq_attr {
    +      size_t       mq_maxmsg;   /* Max number of messages in queue */
    +      size_t       mq_msgsize;  /* Max message size */
    +      unsigned     mq_flags;    /* Queue flags */
    +      size_t       mq_curmsgs;  /* Number of messages currently in queue */
    +    };
    +
    + +

    3.4.5 struct sigaction

    + +

    +The following structure defines the action to take for given signal: +

    +    struct sigaction {
    +      union {
    +        saHandType      *_sa_handler;
    +        saVxHandType    *_sa_sigaction;
    +      } sa_u;
    +      sigset_t           sa_mask;
    +      int                sa_flags;
    +    };
    +    #define sa_handler   sa_u._sa_handler
    +    #define sa_sigaction sa_u._sa_sigaction
    +
    + +

    +where: +

    +    typedef void saHandType( int signo );
    +    typedef void saVxHandType( int signo, siginfo_t *info, void *context );
    +
    + +

    3.4.6 struct siginfo/siginfo_t

    + +

    +The following types is used to pass parameters to/from signal +handlers: +

    +    typedef struct siginfo
    +    {
    +      int          si_signo;
    +      int          si_code;
    +      union sigval si_value;
    +   } siginfo_t;
    +
    + +

    3.4.7 union sigval

    + +

    +This defines the type of the struct siginfo si_value field and +is used to pass parameters with signals. +

    +    union sigval
    +    {
    +      int   sival_int;
    +      void *sival_ptr;
    +    };
    +
    + +

    3.4.8 struct sigevent

    + +

    +The following is used to attach a signal to a message queue to +notify a task when a message is available on a queue. +

    +    struct sigevent
    +    {
    +      int          sigev_signo;
    +      union sigval sigev_value;
    +      int          sigev_notify;
    +    };
    +
    +
    + +

    4.0 Known Problems

    + +

    +This section documents know problems with Nuttx at the time +of this writing. +

    +


    +Problem: +There is a problem with the unblock logic in os_signal.c when message queue +becomes not-empty -- sig_mqnotempty() calls sig_received(). +sig_received() relies on task_state == TSTATE_WAIT_SIG and will ignore +tasks that are waiting on a message queue to become non-empty. +

    +Priority: LOW. If a task is blocked a waiting for a message +queue to become non-empty, it will be re-started anyway. +


    + +Problem: task_restart won't restart a running task +

    +Priority: LOW. + + + From 17ecaed27c9806c677c24696358bd5df19c3676a Mon Sep 17 00:00:00 2001 From: patacongo Date: Wed, 21 Feb 2007 02:19:19 +0000 Subject: [PATCH 0002/1518] Eliminating SDCC compilation errors git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@17 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxUserGuide.html | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index c8e26278d3..213f75d751 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -4019,10 +4019,12 @@ between Nuttx and a MoBY application:

    The following structure defines the action to take for given signal:

    -    struct sigaction {
    -      union {
    -        saHandType      *_sa_handler;
    -        saVxHandType    *_sa_sigaction;
    +    struct sigaction
    +    {
    +      union
    +      {
    +        void (*_sa_handler)(int);
    +        void (*_sa_sigaction)(int, siginfo_t *, void *);
           } sa_u;
           sigset_t           sa_mask;
           int                sa_flags;
    @@ -4031,13 +4033,6 @@ The following structure defines the action to take for given signal:
         #define sa_sigaction sa_u._sa_sigaction
     
    -

    -where: -

    -    typedef void saHandType( int signo );
    -    typedef void saVxHandType( int signo, siginfo_t *info, void *context );
    -
    -

    3.4.6 struct siginfo/siginfo_t

    From b5d671776c6ee22d7253aed8e97054785b80e44b Mon Sep 17 00:00:00 2001 From: patacongo Date: Wed, 21 Feb 2007 21:55:16 +0000 Subject: [PATCH 0003/1518] Progress toward clean SDCC compilation git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@18 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxUserGuide.html | 63 ++++++++++++++++++++++++------- 1 file changed, 49 insertions(+), 14 deletions(-) diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 213f75d751..8396651c66 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -1806,7 +1806,7 @@ initialization time). Function Prototype:

         #include <wdog.h>
    -    STATUS wd_delete (WDOG_ID wdId);
    +    STATUS wd_delete (WDOG_ID wdog);
     

    @@ -1816,7 +1816,7 @@ has been started.

    Input Parameters:

    @@ -1834,7 +1834,7 @@ it. POSIX Compatibility: This is a NON-POSIX interface. VxWorks provides the following comparable interface:
    -    STATUS wdDelete (WDOG_ID wdId);
    +    STATUS wdDelete (WDOG_ID wdog);
     

    @@ -1850,8 +1850,8 @@ before de-allocating it (i.e., never returns ERROR). Function Prototype:

         #include <wdog.h>
    -    STATUS wd_start( WDOG_ID wdId, int delay, wdentry_t wdentry,
    -                     int parm1, int parm2, int parm3, int parm4 );
    +    STATUS wd_start( WDOG_ID wdog, int delay, wdentry_t wdentry,
    +                     intt argc, ....);
     

    @@ -1867,15 +1867,16 @@ was called. Watchdog timers execute only once.

    To replace either the timeout delay or the function to be executed, -call wd_start again with the same wdId; only the most recent +call wd_start again with the same wdog; only the most recent wd_start() on a given watchdog ID has any effect.

    Input Parameters:

    @@ -1892,14 +1893,15 @@ restrictions. POSIX Compatibility: This is a NON-POSIX interface. VxWorks provides the following comparable interface:

    -    STATUS wdStart (WDOG_ID wdId, int delay, FUNCPTR wdentry, int parameter);
    +    STATUS wdStart (WDOG_ID wdog, int delay, FUNCPTR wdentry, int parameter);
     

    Differences from the VxWorks interface include:

    2.6.4 wd_cancel

    @@ -1908,7 +1910,7 @@ to wdentry; VxWorks supports only a single parameter. Function Prototype:
         #include <wdog.h>
    -    STATUS wd_cancel (WDOG_ID wdId);
    +    STATUS wd_cancel (WDOG_ID wdog);
     

    @@ -1918,7 +1920,7 @@ level.

    Input Parameters:

    @@ -1933,7 +1935,7 @@ level. POSIX Compatibility: This is a NON-POSIX interface. VxWorks provides the following comparable interface:

    -    STATUS wdCancel (WDOG_ID wdId);
    +    STATUS wdCancel (WDOG_ID wdog);
     

    @@ -4073,6 +4075,39 @@ notify a task when a message is available on a queue. int sigev_notify; }; + +

    3.4.9 Watchdog Data Types

    + +

    + When a watchdog expires, the callback function with this + type is called: +

    +
    +    typedef void (*wdentry_t)(int argc, ...);
    +
    +

    + Where argc is the number of uint32 type arguments that follow. +

    + The arguments are passed as uint32 values. + For systems where the sizeof(pointer) < sizeof(uint32), the + following union defines the alignment of the pointer within the + uint32. For example, the SDCC MCS51 general pointer is + 24-bits, but uint32 is 32-bits (of course). +

    +
    +    union wdparm_u
    +    {
    +      void   *pvarg;
    +      uint32 *dwarg;
    +    };
    +    typedef union wdparm_u wdparm_t;
    +
    +

    + For most 32-bit systems, pointers and uint32 are the same size + For systems where sizeof(pointer) > sizeof(uint32), we will + have to do some redesign. +

    +

    4.0 Known Problems

    From eed9c51a9a831726039591ceaea2fed7f5dbf007 Mon Sep 17 00:00:00 2001 From: patacongo Date: Thu, 22 Feb 2007 01:50:30 +0000 Subject: [PATCH 0004/1518] Updated docs git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@19 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 37 +++++++++++++++++++++++++++ Documentation/NuttXBanner.html | 20 +++++++++++++++ Documentation/NuttxPortingGuide.html | 3 +++ Documentation/backgd.gif | Bin 0 -> 1097 bytes Documentation/index.html | 14 ++++++++++ 5 files changed, 74 insertions(+) create mode 100644 Documentation/NuttX.html create mode 100644 Documentation/NuttXBanner.html create mode 100644 Documentation/backgd.gif create mode 100644 Documentation/index.html diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html new file mode 100644 index 0000000000..4487471b95 --- /dev/null +++ b/Documentation/NuttX.html @@ -0,0 +1,37 @@ + + +NuttX + + +
    +
    +

    Under Construction

    +
    +
    +

    Overview

    +

    + Nuttx is a real timed embedded operating system (RTOS). + Its goals are: +

    +

      +
    1. A very small footprint usable in all but the tightest micro-controller environments,
    2. +
    3. Fully scalable from tiny (8-bit) to moderate embedded (32-bit),
    4. +
    5. High degree of standards compliance.
    6. +
    7. Totally open.
    8. +
    + +

    Supported Platforms

    + +
  • x86 Linux Simulation. Fully functional.
  • +
  • ARM7 (TI C5471). In progress -- my board is dead at the moment
  • +
  • 8051. In progress
  • +
  • Freescale M68. Next in the queue
  • + +

    Other Documentation

    + +
  • User Guide
  • +
  • Porting Guide
  • + + + + diff --git a/Documentation/NuttXBanner.html b/Documentation/NuttXBanner.html new file mode 100644 index 0000000000..fa49d7db7f --- /dev/null +++ b/Documentation/NuttXBanner.html @@ -0,0 +1,20 @@ + + +XFLAT Banner + + + + + + + + + \ No newline at end of file diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 576e2c86d7..9898b7b1a2 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -6,6 +6,9 @@ +
    +

    Under Construction

    +

    Nuttx Operating System

    diff --git a/Documentation/backgd.gif b/Documentation/backgd.gif new file mode 100644 index 0000000000000000000000000000000000000000..e81f153aa2b42c18c627621aba029e7db952e154 GIT binary patch literal 1097 zcmV-P1h)G}Nk%v~VI%+~0QUd@00030004jh009300Du4h0RI30fdBshfPeu10RMmh zfB^sh0Dyo20RaL60s{jB1qB5L1_lQQ2M7oV2?+@b3JMDg3k(bl4Gj$r4h|0w4-gO# z5fKp*5)u;=6BQK|78Vv47Z(^97#SHE8X6iK8yg%P9334U9v&VaA0HqfAR!?kA|fIq zBO@gxB_<{&CnqN;C@3i@DJm)|D=RB3EG#W8EiNuDFE1}JFfcJOF)}hTGcz+aH8nOi zHa9mnI5;>tIXOByIy*Z%JUl!-Jv}}?K0iM{KtMo2K|w-7LPJACMMXtMMn*?RM@UFW zNl8gcN=i#hOH52mO-)TsPEJoxPf$=$QBhG+Qc_b>Q&m+}R#sM5S65hASXo(FT3T9L zTU%UQTwPsVUS3{bUteHgU}0flVq#)rV`F7yWoBk(XJ=<Cc=sHmx_sj8}~tE;Q5tgNlAt*)-FudlDLu&}YQv9hwVv$M0cwY9dkwzs#p zxVX5vxw*Q!y1To(yu7@dCU$jHda z$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~>g((4 z?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF){QUg= z{r&#_{{R2~EC2ui03-k;000R70OO^LM=;&Lf(HdAG>EXF!h!|UNt7s%;=qU(Cr+$5 zP$R>CAmbebIg(&Vkt0Kr9H{ajLz4tWI=uL>=1ZD47wVk3($a&-!);f_U3^z=%!PFC>eYKQ@?N-LOWLqo zoK;ghq|BJBYP=l7cGPTCcI=OjMLQ+!w)aw(2`Sfgoi(`enXQHY{5*8|(dQd00#%sU zsZ`z7)t-E#Lq9%WNbV0(ZGM3n>N0C{Z#Ok8|Q5e-!jhm(#wC&zgc!)?ma12 P(|pH;C*WiR1q1*)rw| + +eXtended FLAT + + + + + + <body> + <p>This page uses frames, but your browser doesn't support them.</p> + </body> + + + From 979bf1ccedd3a1de5e490611dbe635e4c18f863d Mon Sep 17 00:00:00 2001 From: patacongo Date: Wed, 28 Feb 2007 01:16:49 +0000 Subject: [PATCH 0005/1518] Updated documentation git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@22 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 38 +++++++++++++++++++++++++--- Documentation/NuttXBanner.html | 2 +- Documentation/NuttxPortingGuide.html | 4 +-- Documentation/NuttxUserGuide.html | 9 +++++-- Documentation/index.html | 2 +- 5 files changed, 45 insertions(+), 10 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 4487471b95..4802c9e6de 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -22,10 +22,40 @@

    Supported Platforms

    -
  • x86 Linux Simulation. Fully functional.
  • -
  • ARM7 (TI C5471). In progress -- my board is dead at the moment
  • -
  • 8051. In progress
  • -
  • Freescale M68. Next in the queue
  • +
      +
    • x86 Linux Simulation. Fully functional.
    • +
    • TI TMS320C5471 (also called TMS320DM180). + NuttX operates on the ARM7 of this dual core processor. + This port uses the Spectrum Digital + evaluation board with a GNU arm-elf toolchain*. + This port is in progress and partially functional (However, + my board is dead at the moment so it will be awhile before I fix it)
    • +
    • 8051 Microcontroller. + This port uses the PJRC 87C52 development system + and the SDCC toolchain. + This port will require a few more weeks before it is ready for time prime.
    • +
    • Motorola (Freescale) MC68HC908GP32 Microcontroller. + Using the Axiom CMS8GP32 development board. + This is next in the queue.Other ports. + I also have partial ports for the TI TMS320DM270 and for MIPS. +
    + +
    * A highly modified buildroot +is available that be used to build a NuttX-compatible arm-elf toolchain.
    + +

    Memory Footprint

    + +

    To be provided

    + +

    Licensing

    + +

    NuttX is available under the highly permissive + BSD license. + Other than some fine print that you agree to respect my copyright + you should feel absolutely free to use NuttX in any environment and + without any concern for jeopardizing any proprietary software that + you may link with it.

    Other Documentation

    diff --git a/Documentation/NuttXBanner.html b/Documentation/NuttXBanner.html index fa49d7db7f..42a6018d63 100644 --- a/Documentation/NuttXBanner.html +++ b/Documentation/NuttXBanner.html @@ -1,6 +1,6 @@ -XFLAT Banner +NuttX Banner
    + + SourceForge + + + NuttX RTOS
    + Project
    + Home +
    diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 9898b7b1a2..1065d00977 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -1,11 +1,11 @@ -Nuttx Porting Manual +NuttX Porting Manual - +

    Under Construction


    diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 8396651c66..6894d84608 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -1,11 +1,16 @@ -Nuttx Users Manual +NuttX Users Manual - + +
    +
    +

    Under Construction

    +
    +
    Nuttx Operating System

    diff --git a/Documentation/index.html b/Documentation/index.html index 8404c7f5f5..7320bb5aa4 100644 --- a/Documentation/index.html +++ b/Documentation/index.html @@ -1,6 +1,6 @@ -eXtended FLAT +NuttX From e93031920d51a5cb41d8b971fb94bd948d88dee8 Mon Sep 17 00:00:00 2001 From: patacongo Date: Thu, 1 Mar 2007 21:05:55 +0000 Subject: [PATCH 0006/1518] This creates a 8051 build that can run in 24Kb of RAM git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@26 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 4802c9e6de..1bf69dd70b 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -46,7 +46,17 @@ is available that be used to build a NuttX-compatible arm-elf toolchain.Memory Footprint -

    To be provided

    +

    Details to be provided

    + +

    + I have a complete build for an ARM7 target that includes most of the OS + features and a broad range of OS tests. + That builds to an executable that requires about 85Kb for .text, .data., and .bss. +

    +

    + I have a stripped down OS test for the 8051 target that requires only + 24Kb. +

    Licensing

    From 931f411a92a9671b1f2cda946a3e906cba17645f Mon Sep 17 00:00:00 2001 From: patacongo Date: Thu, 1 Mar 2007 21:46:29 +0000 Subject: [PATCH 0007/1518] Add logic to suppress clock_ APIs git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@27 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 ++- Documentation/codesize-070301.xls | Bin 0 -> 104448 bytes 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 Documentation/codesize-070301.xls diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 1bf69dd70b..cb2fcdda80 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -55,7 +55,8 @@ is available that be used to build a NuttX-compatible arm-elf toolchain.

    I have a stripped down OS test for the 8051 target that requires only - 24Kb. + 18Kb. A substantial effort was required to get to this size + (see spreadsheet for details).

    Licensing

    diff --git a/Documentation/codesize-070301.xls b/Documentation/codesize-070301.xls new file mode 100644 index 0000000000000000000000000000000000000000..22fed5abf449eff0e028b9f979b3c900c63777ec GIT binary patch literal 104448 zcmeI54R}@6neTTXKt#lV=%B@&fS?3H3E~IVkAQ*@g^~a&(J_SN1VTQ^N%)Fb#E2G= z(TJ#+I_S3y2U(|IeTFopuo`8Wzi6waYAp2E2l zCQvw!!bA$^Q=lr~O`qcDfUl@#Vum`C9%3RhE@PobQ`0t(kqSV-Yo3fECUoz!q6 zeg7ndn<(5&;T8(FQmCM?n8FeYw^6vA!cq#$DBM9|IfWGzDkStgt9m|e;r=3@__^Z5e5*h%t#CZ7|2aj}ipP%e z{^Y#BK$GXT|2N(!@2iD>Mt?o;ZzO{=erbV@Y7Ef&<8=zEx4W9P+Bib7_|gI_qo`yzVkJC?3mTD|x#zi_N~luG1P{FwXVFM9uXu#}R}ZJ-o(6pZcv zl%E}$h>D-dj#Q)K|NFInku)tu@q$ftzEX5}Kh<8A!9F*GeNG1ZIgxgc>p-at=Zu#8 zjA1*C#Sc!JR8&}0=oKD5AN64j)u956(K|BP3nmqLQSmYON7ym!VM|M&dK&6RTszGj zc0{EQd+{VMluuKxxj{ZXDVN9jFZI0AAe}UOkk2%GkbbItW`_7PQ{$tp5x2q3zsb)A zS08InEmu%~HrRBY8AU?v@doi(yk|6jPTDh;KPT@g(yr}^y5?jV5!N*A zN>Gv3ws+OF6wy4ap|-23HPI=%$*#K2F3KWVo7$SXn(A68HWh-t*Vna?h~sGnmrQil zazx4*f3Z<1>)jo-WJHAeW<;Q`Z5xr5+OE1}Gfl(E(wXS!Y-;Z$z^+7XXICc)!`7BW zow|~WAyY@9t)Z!H6AdL~?C9>QpTc`|9uu9N-5p)E_3gB~16ijCHb0VZ@Ev*TN=O<_ z4K2am=0shC}cu|T3rj3770CkZ(?y;nvz{zbsJldIK<+DP&MX#$sPIfx4QbS zrfmeF^TDnhmCi1*K_yIfb+*-a>?9=ZwItdo`?N!~sWzEt?W$`|IEGD4+Y%DBp}RwN zjB|afS~hpmq1HreGSNkON^YgI*xK0CnY7>P8tHUUj_6ojLqkiQ9-=Ryi1dvkQfdvH z2&G0l8i^F6Jl1ZnYw8MiJKB?7$S+y#nGKG?fZWirh6EL{eJ54HWc}tu164cJI;tr0 zm9kA0g;Z^%CX=M<6*7x9NjEO42*(ARQ=}w1>N@LM>H1L&q(J+&1nJtalNw)l8&v>3 zz*V`cexm_(CfLL&QY(;n9i8p=wUWi6oF=f z9OFEyjojqBts&Hi#6-EICMNsbIFSH>Ll$aDCI!hD;!q7Gk=nW%sj_WrlwA^`5giaU zvXBL8QS8RXmhR+c>@>ha4C;GBx>Dg`*p`&Es1W#?>}rrxN)?&E%TdZRz6H7>Kcp=z zjeHh@w3tYx(qjw`67HGB|R)0O<=E*F;qu_@1rQ@r$gUI z(}XR29FxayhK`S+$=;{OTK};$1uY4EA4hpD8E21E7gNwVUcP&y=xo#W691(mUePG3 zFtnZH{STR&7M#yEd^yMa6(92g8%|8B4U@}M8%|EDjk=^X8`TQ3{ha>N7BJ|vrP*-e zQ{y4;sW$3f(rnZ?(rl=TsrjR3ofZ#Tr81ynsxK5wjYs1_nvI%YnvI6QG#d?oX*SfK zR0a+4X*Qa&r`c#Ko@T?6a%y^X`I=_?M1+mz?-b9i8<$4d{0JMCti!&);!Z)9yFE%1 z=dgelzES@QMxlm`qHkg!O?!M%!}daBA47Y5k;C?}#y*brP!}bgBKn3sq*opS<3eELR9)kGW3G@ni< zXrm2{dmGQ%l{T8nP!h5$Z8YWI(ncE^boS}Y3Jn*&CEfzc6ljHpR*1eWWLH`t(`a?fM&EB|yaqRRBs(Gk0GwDW7_#Z|p)G_pt zKHp42LB?_E-zEoWJv1GRiT5+A9%5Im$B}Q?u3Do8`8`KEp=<`iTlnpbJ5^qk>W-%p`GE88awJU7` z({P&(sZO9%EB(;~rlH-5U1=C$eZJiZ+IdWSsX$_#XK3d!&DxcA9@DH{Y3DJ`+LZ2{AGe)0A5}{qlw0|JU z;C-Q?UC6Wr!6ibqbH}mvABe!DP>j?q7YzbqbH}xPr+v zy5ma5r+?B$rg7lCg>C7e&|Wa`oCM_i|HJu2ZsSSM4DmZvyrJ;EwUDP=76iW%h%U(F)k zjEH!+N=Wsc8R0uCBHrZ@wkslhXGhq|B5ZRaY*$9u=0@1&McA&2uw5Nto6okN(_h+x z)t++NP1SEfgzcIL+rkLjwGp=KB5c=3*lu8(o4-X7@otQ;(H+{fa@-VQyE(#k3)@`o ztts(vMOaFx1o^ecNT5 z7C+z=?los|J~74!$@H2xghpRDg?r6eTnOuAdd*ZP?KM$r(R*d8wdlos4}VemE4cJO zqdY_FD~#4xZ~;*iv8&csa2c#!wZ4M0Y3-^t`bVE1hXrjm(_Rizoo#5dnP%-uo6R(9 zSK4f*S-aBE^ZNYYEofy-`#I^2GL#uwnNzkhGy0Y}Wh*mnq|7NB?n=n$JBMlb3)&o} z)dXe3?Gb7Ja~#?nL!0B!<`~)>hc?I1Fk1NhFfnLXGVStU?E|-AgmxvI6_jt2C?NE;m}2 za{;YgwJzr}Si5Rn&e^nf)f%%HpC7CTZ2{9>4cf>8LtDT!YggI=rcDgS)CDAg%=H&A z4ML+ISzuZu=0`q1!VlUtO#AboY}XjtHB7U1rCq}`YggJeOtW?^8)jZU|5yODg-rXG zpl@4fXbYKU?Mhq7G;3GdLZ@sCP1!J~^Z9W((5_|Lj{+sHHMDD)X6;J5mT6;6e5GCM z(5^K!%octA0R(8*iIRc$b%u7GC~53UyH1oecBNe>N*cQ=iFv5cKeYhudZzs?oi|kZ z>xnjlj?*^#*$SL$#>ttHw zy^pz0;TDNmb*2`H*|pCnmZf2 z(mu&FYggJQnP%-u!?lJ_WfIy=OxqQ-$eRr9CZ<`t(r#j!wJYr=rdhkva24b8kAa}% z%}jfnXsAUu6D_EQ2JZB^nH{*&g`v5>sz^i)~;IL%4N{Ia<`hE{Z`JV zwL@#HCR7kD^$K}$gl$QL?Y0Qp?Gd)65w>L!wmTwh%Oh+nB5airwmTzicSYD%M%Y$G z*gnNJ_ey$oM7*kqc-0ZMH4(P85w>*^w!7K(EBZ@Yfjm=l5ACL&%X=ei>mzKK&8Pa_ z7h$_U!uH#2b9H$jB3^AuJlt!pAe+xW_(N^4;M)Fsbo(8(y~5P?3Te(kZ(3olEGkTk zmH67TRG3C7cI{bEvwiLlL0inU%CSOQY-o#_Hj3iHd$FM{c4&)D+gj|<7Mrnt3DeM? zL0iJKTY@qyF|;L2`xnB2w#3kuIJ6~(w#1<=F*LMBpEMKNZA^P@yrg=Yq20zbYuA3` zHl|s-DtVhjyUozh&VABGXty)%U{HqJ4efTOS-aA1XPUJu?RJNDyP=^6@ktw@EoIuW zpq4B(w53e5cBL(4+P4Dbml`FPGR@kxmY{F)`NyU>Z_Aj5RTG?_WrntlX%Eo2BzC1O zbI#i`LtEyQZJ8+>dOhERo}k^qv^Kh_fK=}=v^$t)?Ml0YX;=l3_^RX`4($#@Lx1Y? z4`@MK&a|-?i}!LvTh6q-L7A7EI=P%_)~>YWOtW@X5n=FDQ&(JI3+FFOU*0le%4sETWt#xQ?4GnWZpI>BvvaMs9AIx0vEO;r8 z9_yH9?OL{V4sD&Gt#fGW3=OkOpI?~(+TBe1AfVlCXm>Ns+Ld;4DBAKS-aBiacK7#+C2{K9z(;7*yq6DnTDrQ(GA~Ev|yC@=~pYvD6tyR2J9$tKWD`{nNcFuDLhKtZ}KT5 zGfGf?98!3cxZe~)oXjYZ>J%O&a2=Itl)&|r&o3%L=^xHY=f!o8@RSxyVmv%PHo>{YWoJKwr?=~7;3gp9h1x(>X>%< zIHA=US{>7@U1@a=t^Q+sHI)SK3C0w$acwI<$?3 zhSuowtCK*hXIfuy-B536^-QyNrPVvMdPA#sX!VAMcJA{_nn1%Z=1ROuDjT}o2BOWN zL*JR+di$}}RN z_wu>!qV$bi`Xw|Vp(k%NS~qe5M+IlR(ab*^r3}Wd*JzEBO=H&)0sW#+ug#HKyNPLf zy}!xOHVKVlAs3qrZIe+<>`L2YL=n5v(Bu02$}N;_Gt({!%C_0iHaoPJj>KpI`0;S`*W10tK23t;wM^8CsJ=YcjMZht_0h7$vNdTO1{~7}^$xw#Cr4 zIJ7N>w#A`sF*J-nKGiBYZ_P~8me*`(%?_>E(3%}uv!OLRv}QxY$ma9w(V%1t(|$%a zoZS{fYjJ2ThSuWHS`4klp|uzq#!R1I#0FX`(+&rqnP%b#^#Pc9^ntI7)UHB{4Vg z`Gt9)ZDm?p(B8Hh+E%7nyVABY&DynWTbX9VIG_+2qY@McT zole<0P1!n~vUQrWVLoMRNs?)Lc9VvdWSX^W*^&+|X=q7@mNYcX)O>#BAj;Oov?GC% zU53`>l&#B@t;?Zx8CsV^>oPRV0eybCA!yx9s}7XxHneVs)@^9r4z1hJx*b}#p<#CE zQ#+HMYa7#kMyrBo0ox31n?u`XXxkjxHbdLy(6$*G=B+-pETL^@nzrukhPIt)ED-`eDhPKRr(5p4z?r|n-~uRy!tRrp3k8?dwKhfG$)$;_sIc-(ag&!!(T z`4lJo%RHyK48rObNvuUhB?4e_+*X|Fq&0Z@a-rk6Kk3_`l zjfnSXgl%7h?Xd{k<7{*D@|g(R{s`YEB5VgDe4mVncQC^CI}yH5McAH>u=Pcx_e?~* zLlL%TBYY1>*q)29Js)9vA;NYf!uDc>tv|x{S+?18gtdh|Wb^q&zi3r^qzwl>`W|Xk zrMzyxha1i@W7qk>9&Q`fu5+C|T>Y(GdkoZApI<2q+QUq{gxWCrn}-eUVWwHT(jI1- zwJYsmrdhkv&=!1t6)|Xgnf8Ck2HIXj+sia-SK3~tS-aBqGR@kRhF0eDYmz~GglRQn zh4zS{J;F3=SK1>?vv#FD!n9Q;9i^fD`usv>(0ZA6Bv7)~(0Z9>?Mmxqnzbvfmuc3n zH1rHUzxo-pN13*zP|EhGp*_kpYggK%OtW^SJ<2p|SK2fs&6I+G9+!cBMVWG;3GdV~&!KnNbY=q|YzT z2JLaCO{RMi7$zPk+6+2Q+mF9cL5+~YSDbuyz^s#ACrdz|xWoy;hf z>J%Qu9_K<>Co_tDJtceLQ4GC))F_7D2ED(}eGW>$pG%MV7+U0hqxF6+ptY;k`?(As zT%_?;>;0TfYu7W2amDu@roW&)!L--t8_NEK)p}30)p|dog|vQxvtpf$)~QZmt)Jk0 zS|_9R??2~~!dgGUg|JRW>r|(())*x-X^qj+=lK9i|0I|G1F}KuCymxmasjPfwSJPz zfI2AgRqH1?o7S#cV;uIW*AuM|GOcpFXnoLX{rEnsz>^+D3u%3jv+@nPc!6LCX`&c3 zhK`3_r?A!sO+LlRXiYgWEeNEr)(1@?#K~x#>J-)*vx-bwV|L+FFD#{hic9|heS>yS zQ9eq!20q0Fw070{DK3MxtJY7MY)U$+HRdfo^}<4XnrU;Wu!!}vp*_tsYggLSOtW^S zJ?+q*Ha%7!)6gfQ9`!Np^58nR&(QjqX6;JrW7-U=3CLX^om%-NN1sFMGc?S#eCmaT z_6*bDjT7|@(Sj=R-9r`T>^?;Y!u9AG&Wd$1^(fUTT#ugNd?NosGW96cDO``9F@+GP z$a;kAh3gS!j+yEaW{^I0_fq<2x%A%%#-eA9*3WVQtzET#mdjx6s`axbn>Yv08m%!m z^*!|0IJ1YD22~O3u%R7hnzbwKFw?AEX@?!!VMD{L*XI!cwC9-iz-Xa8XK2qc&Dxdr z9Mh~_Y0ok3AsRuE>*ov&^J$+tb1B>NOgllDMXcuy?RlnIyV9O#nzbwKd8S#rwn)s> zeGk1c%Ju@&8tEHoFBsYjOtW^Sy}&eUSK13qvv#H78o;MMTxds_))~-_7}^o0S-aAX zFwNSPc7$oxt~6X-_|$<4?M0^ffs!v8+KWs(8Jvd~%~k%3OtbNo_9D})U1_*(@jdjl zP_mzC|3EY}uzsS=pd+*`f1-knw9)+NSwtJK^P_&wighyW|E|#R3#V}V@8^74C)55@ zN#XY2&xJrnBzva)mp<)g&$j>Z{33I-{{nXUtSQr;AO6HTjY44uM)B*=P>DWEWx678 zz=`DTtAFD<6b=-I9L5+2XpXJo`5(FtV+Y2D9L5<3oD6IO|NP%whoXTZcKF})8{07y zfx4z(EAZre;J??vHij~b4X;A`ska(0H+_FOeWw?jzE7R3cv4h)CltTL{d}+R{n>0k z=lx>(Ox;F#S3 zhAzy7a(-G9|5il2F|$h&gxKfgMkY*Q)V7y>3MfdBok=+DP=%ckFtAN}2*|MRCd z7k~L_((j5t{2}z4c4+}k3`M^R`ow%~IR(rO)>5FW2yX)g8q4_Mf%E8d2Zc!#dMT*h zez0FopA{5ztH4fQ=l{C+{x=G+zvs&jCZ`1ZUdNHj1!TK}!c)@OX1H^ zD4?^7Y0IA9r$4FNFFo(al=+fWd;Fagc;=gsVd}~FpH)CAhW#GzO+6WFl3ok8vMA~H zkF%voDoXq}O#zu*zB72H|4je-@8z0n<{K|tI>6k)r?y3%C%SY~G zL-SW^?sU^*mtU$q`2UAEG9iM#cHe8RJE2tp_I5TTQ~AgM;b5u8&h00o>Cu{`_OVgEnW!2!+{a2i!Hn(j@i%J*2j|w?5mDox-Oo(9 z`_0h=IgB?|K(35Y2he6dx()o{(njK$k8h@VZ1*dewN)Kh|2^q_s}7vqem7kc%wziw zVNRJ#tJHGIY*psC*?rTg8XswN9>Oena8T<>>OA%Y&84Rto!>j{UFm&gUaKjL{4+gw zn8&WD#Edpq>ZzK@Y*psC*?rTgHvZ|JU%ZZ4GDcmAS9RcY&zb(dLxY1ioa{Sv`1osw zUL)0BJ9N{#s3(~1zq@Fixe~D{4RYDdE7z&Qgs09D(hZ>pNvbI zUcR4tCJmRd1zPy*|M%m%f)y)i`1Lw09+*o!d)aD|30B(a-OFH3@I@uUL? zvwpQ|szdn{s_UUMbk~~xEw!G=+g z9!ak!?(xju@}q7&pz-3ly=s|0w?_|xkw)h1a;FsIjeN(-EykQP{qNP_ZmGtWaY<9n z{i$a{V#-R=w0D~-m zkp|XJkOE?fCOWsrncw-n(>*JjF@Kj8CX6?*V-AnirkmcKTaW9d!^b7|&_^JlO1@-n zE`QPc+uTO)g*8EZnbmi{a;j%*jy2^l)uyd!oa)gO5HH@+6@X@OAFDM-^a;=Hp^e+a z$~uX9oSjc_(^HZ)lytjmiSoq!8tX4^%+znuRE>qv11X3mP$AsMhMy}r&8;+dE7z3s z`;5*V`pMj+Xif6*ji!ckj8v>9+Q$~tYW-FoiM5B7b&{~>$oHdjmruEn=O}(YzR^^h zS~0J)i6-&ibOl7IvpILS+DGr@I%CmZVvVjR**x@EepJy1KJmDt%Jtz53tsBDgOTQq zMf#+U#yy*#;WH+4^YE%pc2aab(NQCtZl=M(VhOd$)Ezul{H6Q>c=j%*|z< zo@;gvk7!MB1pREbElkyT>2$=3w^)Jv6hJ+S`&eyFqFHJm3w_X^U^Uu4Z4MvwWbZ$M zSzPL~=9*%DpWvp)%xCRAQ-6|=Z!}f&p(%(asePE`>H zDR(33V{`jvqH3-s1$_qHuG>Qo%=7otbFy>m-=lgWYbesTuzK=ljjY}uK0db|YZtk$ zyp$OJ%#^#_<;qk~a<3@CGpcsldbJ0v~Cm-Kvs+MCoeQec%-#$H`W{Sh@SCx&=%(=@o7tN#z zQqAR?nF??1kq`^@DW5(TE75c7Pw=|*aQao@%3q;|EwV2w80q$~B~$&+?VE|JsmFaR z6pFW@D1f??-?)=sEUk-~Kaso4N3$OpiDy2(qFmIt^K!M`4}}g@2c{ggvEa{?7y){?}wi5d5fM~eYyG_(oAB> zZ=U47DC!CB9EUyd+o+<@FNKwAKcjOe_eX84=)Gu7^6`zPD#fNCs>FX&6@XIG9_**8 z_u+hIKV#XM(e)&|j~va9D(cwY6YU1ij!TbvrvFKLy5Pv$`S6AoCpvfe+~3SJkIlz7 znu?rbrFvd7e*Zr>D8KVU?a)5f_M%ul(b_Y#66cN`ox5V{=fTguMc0#je50wL=}Psf z$mdU_7ljs82V{L@XU?~OWG_S1(dgXeQ?5+)Bp=^sD)NVQpo8@0iW^SKwHRW?TdY8C z1yFm2)^lW!{q?tB%dsMfJb^l#Z6u!g_=;ZPaR;T9RU`Mw9IV;kw@k8{gwg4}8hn$U zN1oe}J{hAHe#MflywRHIs!le~aDO7dpOq&U<=rv4JhN${bkQU{?x2jaYUDoqh!y*} z_4@lIj1KQE!Z*=mD|yZDRZZkuw){nFqN_UDJY7xX*RObTQD^4ad^1tiC%k?FO=P@5 zuHNFO?9cQ|J<%s~uwsv2+sbMZV$ZGDSv~Idpk`<)!>uPn)dXe0D2gW+?aW+DnEp8w zO{BKOf5QquQM7@NZp(GXvgIUOpODQ@W**sN;HW4w^gh(cjhsPaPlia>8Rr6vskrYG|sV(teQ9$bn zG#k!ykHhf+EBcJ#NbW7%c5=rK$HrUV6K zZjbr9Y67e5V=w*AvCitldC#^V*2K9{V)(yl z5*DrxBp?03tPOdLH&H+|fl{aqAKeD}aA_m)%*XdA*OPD`D=YTWYlMH3F7MXW8N9x^ z0KXiqI?y(xc|Ej<)G92dM}dw% zX$j_O0M|yv(==FvAL@H@WW`?Y6c6_um^O{mJ@O7r(IkD`aaZZ_&3#9Kjz6|sL)!~$ zA}j9l4$GnTv6zv|n$qy!fvIV%Y?iwKRugyJaaZZ_&3#9Kjz2?F!p073A}j7tqm};W z0UIaNUbu!~MlPC&evd5aFYcih4;&l7R z*&_4UkFx^lWsm3f=_5Mt(^Va}Jec_-ce*wotx1%x%-b>RFYcXB zYqrr;rP&lDUKPDXU7xv0*F?0@-_NG6+H0!$e`d;E`aIS?YolxP(V9fBDPi7@S--qP zI1^R#t#sAI&gNzH9XiN-ANO5wp7b}h>8tjdX8xaQ?( zb9>QuawcLmL60YWDE{vc{BL>Lox@Zc6KROIo)Og~wU5;`6L~kmn>BCsPoSRGrZlp> zaPGpr=uqF~u6<~0^Ax&=j;H0bZDFd7hcv`HtO?@An<@}r17^AgOt*iWEpa_bKl`yJ znKaSfCH{m0Qcq$n!U~8ccC7xW_T+pFj~1S@4K0OysfhP#a_fQbB{9PX15ZWE|7$I4 z1o+;0NPoXHv|MD09nPK1%JJOd>?PrMxyzb~{FVEk^4Dr&Juw%~=6f)Sw-AS^nlqb* zr6XS7p||>*=&4UUgClczT`R#iD5Jk}(v(K}nVP#(J-C~9x<}{Pnm(-hRHNSUvzp+T zddfT>7Tv^oN4#~f;2r+@do|Px{3_}2aaljX_pS7+H~h*;QyJ-J zICnCymgg2R&$emH^Y8eJ@}+AM_SFALM7>?#%$kJLP&#rKZ(#-8KK7$nv6u6RJm?u6 z>gPy2^Ya}^?uJ?#8-FC!{K{onb}wHl;<@9Fea=x<%H=JXSXGi0`#v6nENM7<;oRwZ zIsU)b-0!GI%~qoIJku{@k{*fv3{y3RO~cX=FLm6JF<7;cRVDONvSNSs-_M413yh}w z%607197laxO)%Do=iGYfg`?tITa+d?4NFHncihq6eCc|?KZPeK;6EdJ zlEOg>zeC|E3Qtq$qwov`+#q_E!eI)}QFxxh3lxq}c##4oK%b@X5{2KT@Hq;fr|^3e zzChuN6!4#!9;5IdDEvnXU!w3bg)dY1eG0Eoc$LCeD14Q|A5eIW!XHxj8U@^ZI6>i$ zDEuc1e@x-)6#j(5pHg_8!Z#>oV*>_1}Y&n~EY(xps zM8`MOUQkheL_FdArQ+_t@*hqdfcakf)TT|ToUQO(#M7^@qRq+XgdmjqF%V;j$F~nwann4eH&8PYoz<2 zY8nfJUqMfMSKp$cN1{KYJoTxqXb-i9scMU&Bc40%=#?F=Tf%Qc(p1jIXE=8lZSX&& z;djFrNphucHE}(2`-Z7Xanlew;<@9FJb{HZIgHr+#&{gt$`vVVqiC##8ih1Pc{ zyQhvjh!ysPBDs9SRHcN|&=e3a-ogsR<4#x&*%wXH?}dKY7SM;w7`|tI#9yx_^P2aS zFD+}ToH>1IS<#X=7R_E_bDb!ga`Y=bjpfJ6-+yEl9o=8OxM+WM)q$zB&@uI7*mGs` zsh+T}_59^`Qhhc3uzxD~*Q*KEM!!9E_L5UQOUn{vD=LqbA3m=`Z6X*>XVP8!>?4L^h^=k6vnzG8*4(+clt1O(JD0^ek z-!0ZWPd$l}o$A>~^<-Ar(z1EYvzMT*XgvvguBb#kvA)*xm)}{M;;ZS0{Zq-mPEFE# zx8DrQuTv8}XG8rQejl4(&puR5-mEF^-CupIys1+Ayu#_*j{jb9xR1-Hj5c@D+kK^H zR#{nP)dA@(-PC7JU)lV3i{Gr#bgd@2efJi-p5psv&9|o(PJg*ta*foFl_$#Dl4zUw zzqoAfl$q`G&6>7k;q+tW+HaK~D4f3TmBmHjJ}#TT91r@opzR(`5S`n-MR zh11_yw68qe$7znUeOgVVw?ki8v?NispU&OiEp}7iU;Snc#wJbA)|1@6GpDB6^tI1GvlOOdrNfZ2*=uH2+i$-6J`v%hIzOe}H-2G=Y zQ4jRVZ`P>CgnG<=+midr_ZGJ$XO*pcMg2vSY+k?o&cWnwk|yX;4^m%MSA^#hq|eQ+ ziFy=H-(QV>1AXKhiEn$<*(^o=UX!L_K~owW;zaQ_)Mq1F0ON@e7(1(v{RdeNj^oYBsN5 zen&My+;~$3q@L)v_!A1mn#A=WRv=a&Rv=a&Rv=a&Rv=a&Rv=a&Rv=a&Rv=a&Rv=a& zRv=a&Rv=a&Rv=a&Rv=a&Rv=a&Rv=a&Rv=a&Rv=a&Rv=a&Rv=a&Rv=a&Rv=a&Rv=a& zRv=a&Rv=a&Rv=a&Rv=a&Rv=a&Rv=a&Rv=a&Rv=a&Rv=a&Rv=a&Rv=a&Rv=a&Rv=a& zRv=a&Rv=a&Rv=a&Rv=a&Rv=a&Rv=a&Rv=a&Rv=a&Rv=a&Rv=a&Rv=a&Rv=a&Rv=a& zRv=a&Rv=a&Rv=a&Rv=a&Rv=a&Rv=a&Rv=a&R^Z=~0@YqS{p<2dy`^3oeRg^~hm`$` zyfO5@8Ol~bp2bC@*ndD$StcLu-y7&_1tQaS579flW^W_sqgjkY_&eDfMgKgnkOFd% zk1OJ@ZjzV<-fcu~^*X#yQ69GB7PF3G(72ffYe21;lOf62Z5je~c%-vWHUs zDFJGXx5n$H^0#_*eC}6JEokI(0!x?IMEh-7vNb#4kD)mE@)uFuyDpUqFvh!`2=$zY j1lPc!<>!WBlpp77d6qH__0UlD|9~8Z%E%UfB>evmvm;ZH literal 0 HcmV?d00001 From b4a86b12c55c94a0287e6a50e7cbce0f1f59c44b Mon Sep 17 00:00:00 2001 From: patacongo Date: Fri, 2 Mar 2007 22:44:29 +0000 Subject: [PATCH 0008/1518] 8051 is getting closer. Still have to setup timer and uart. git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@32 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index cb2fcdda80..13f2d7f5b8 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -33,10 +33,10 @@
  • 8051 Microcontroller. This port uses the PJRC 87C52 development system and the SDCC toolchain. - This port will require a few more weeks before it is ready for time prime.
  • + This port will require a few more weeks before it is ready for prime time.
  • Motorola (Freescale) MC68HC908GP32 Microcontroller. Using the Axiom CMS8GP32 development board. - This is next in the queue.
  • Other ports. I also have partial ports for the TI TMS320DM270 and for MIPS. From 04be124b7ea2a15d433f686a2e0142c1982af8d0 Mon Sep 17 00:00:00 2001 From: patacongo Date: Wed, 7 Mar 2007 17:42:58 +0000 Subject: [PATCH 0009/1518] c5471 bringup changes git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@41 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 --- 1 file changed, 3 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 13f2d7f5b8..4eb5658420 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -34,9 +34,6 @@ This port uses the PJRC 87C52 development system and the SDCC toolchain. This port will require a few more weeks before it is ready for prime time.
  • -
  • Motorola (Freescale) MC68HC908GP32 Microcontroller. - Using the Axiom CMS8GP32 development board. - This is next in the queue.
  • Other ports. I also have partial ports for the TI TMS320DM270 and for MIPS. From 3f8a1c1ea495093316df2dedf9c6924bf5f47aaa Mon Sep 17 00:00:00 2001 From: patacongo Date: Fri, 9 Mar 2007 17:22:55 +0000 Subject: [PATCH 0010/1518] Finished C5471 Integration git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@48 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 25 +++++++++++++------------ Documentation/NuttxUserGuide.html | 27 +-------------------------- 2 files changed, 14 insertions(+), 38 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 4eb5658420..f19360a883 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -28,8 +28,8 @@ NuttX operates on the ARM7 of this dual core processor. This port uses the Spectrum Digital evaluation board with a GNU arm-elf toolchain*. - This port is in progress and partially functional (However, - my board is dead at the moment so it will be awhile before I fix it)
  • + This port is complete, verified, and included in the initial NuttX + release.
  • 8051 Microcontroller. This port uses the PJRC 87C52 development system and the SDCC toolchain. @@ -43,17 +43,18 @@ is available that be used to build a NuttX-compatible arm-elf toolchain.Memory Footprint -

    Details to be provided

    - -

    - I have a complete build for an ARM7 target that includes most of the OS - features and a broad range of OS tests. - That builds to an executable that requires about 85Kb for .text, .data., and .bss. +

    C5471 (Arm7) + The build for this ARM7 target that includes most of the OS features and + a broad range of OS tests. The size of this executable as given by the + Linux size command is:

    -

    - I have a stripped down OS test for the 8051 target that requires only - 18Kb. A substantial effort was required to get to this size - (see spreadsheet for details). +

    +   text    data     bss     dec     hex filename
    +  53272     428    3568   57268    dfb4 nuttx
    +
    +

    87C52 + A reduced functionality OS test for the 8051 target requires only + about 18Kb (see spreadsheet for details).

    Licensing

    diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 6894d84608..b7055adbcf 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -27,7 +27,7 @@ Gregory Nutt

    1.0 Introduction

    -This user's manual is divided into five sections: +This user's manual is divided into three sections:

    • Section 1.0, Introduction: This section provides an overview of the Nuttx user's manual. @@ -48,8 +48,6 @@ into several paragraphs that describe different groups of OS interfaces:
    • Section 3.0, OS Data Structures: This section documents the data structures that are used at the Nuttx interface. -
    • Section 4.0, Known Problems. This section -lists known problems in the latest release of Nuttx.

    @@ -4113,28 +4111,5 @@ notify a task when a message is available on a queue. have to do some redesign.

    -
    - -

    4.0 Known Problems

    - -

    -This section documents know problems with Nuttx at the time -of this writing. -

    -


    -Problem: -There is a problem with the unblock logic in os_signal.c when message queue -becomes not-empty -- sig_mqnotempty() calls sig_received(). -sig_received() relies on task_state == TSTATE_WAIT_SIG and will ignore -tasks that are waiting on a message queue to become non-empty. -

    -Priority: LOW. If a task is blocked a waiting for a message -queue to become non-empty, it will be re-started anyway. -


    - -Problem: task_restart won't restart a running task -

    -Priority: LOW. - From 1b305896b6cfb401675c63abbd2f1500a786c4ee Mon Sep 17 00:00:00 2001 From: patacongo Date: Fri, 9 Mar 2007 19:17:40 +0000 Subject: [PATCH 0011/1518] Updated git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@50 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 101 ++++++++++++++++++++++++++++++++------- 1 file changed, 83 insertions(+), 18 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index f19360a883..ab7b55fe01 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -10,32 +10,97 @@


    Overview

    + Goals. Nuttx is a real timed embedded operating system (RTOS). Its goals are:

      -
    1. A very small footprint usable in all but the tightest micro-controller environments,
    2. -
    3. Fully scalable from tiny (8-bit) to moderate embedded (32-bit),
    4. -
    5. High degree of standards compliance.
    6. -
    7. Totally open.
    8. +
    9. Small Footprint
    10. +

      + Usable in all but the tightest micro-controller environments, + The focus is on the tiny-to-small, deeply embedded environment. +

      +
    11. Rich Feature OS Set
    12. +

      + The goal is to provide most standard POSIX OS interfaces to support + a rich multi-threaded development environment. +

      + NON-GOALS: (1) It is not a goal to provide OS subsystems such + as network or USB (but these could obviously be added). + (2) There is no MMU-based support for processes. + At present, NuttX assumes a flat address space. +

      +
    13. Highly Scalable
    14. +

      + Fully scalable from tiny (8-bit) to moderate embedded (32-bit). + Scalability with rich feature set is accomplished with: + Many tiny source files, link from static libraries, highly configurable, use of + weak symbols when available. +

      +
    15. Standards Compliance
    16. +

      + NuttX strives to achieve a high degree of standards compliance. + The primary governing standards are POSIX and ANSI standards. + Additional standard APIs from Unix and other common RTOS's are + adopted for functionality not available under these standards + or for functionaly that is not appropriate for the deeply-embedded + RTOS (such as fork()). +

      +

      + Because of this standards conformance, software developed under other + standard OSs (such as Linux) should port easily to NuttX. +

      +
    17. Real-Time
    18. +

      + Fully pre-emptible, fixed priority and round-robin scheduling. +

      +
    19. Totally Open
    20. +

      + Non-restrictive BSD license. +

    +

    Downloads

    + +

    + The initial release of NuttX (nuttx-0.1.0) is avalable for download + from the SourceForge + website. +

    +

    Supported Platforms

      -
    • x86 Linux Simulation. Fully functional.
    • -
    • TI TMS320C5471 (also called TMS320DM180). - NuttX operates on the ARM7 of this dual core processor. - This port uses the Spectrum Digital - evaluation board with a GNU arm-elf toolchain*. - This port is complete, verified, and included in the initial NuttX - release.
    • -
    • 8051 Microcontroller. - This port uses the PJRC 87C52 development system - and the SDCC toolchain. - This port will require a few more weeks before it is ready for prime time.
    • -
    • Other ports. - I also have partial ports for the TI TMS320DM270 and for MIPS. +
    • Linux User Mode
    • +

      + A user-mode port of NuttX to the x86 Linux platform is available. + The purpose of this port is primarily to support OS feature developement. +

      +

      + STATUS: Does not support interrupts but is otherwise fully functional. +

      +
    • TI TMS320C5471 (also called TMS320DM180).
    • +

      + NuttX operates on the ARM7 of this dual core processor. + This port uses the Spectrum Digital + evaluation board with a GNU arm-elf toolchain*. +

      +

      + STATUS: This port is complete, verified, and included in the initial NuttX + release. +

      +
    • 8051 Microcontroller
    • +

      + This port uses the PJRC 87C52 development system + and the SDCC toolchain. +

      +

      + STATUS: This port will require a few more weeks before it is ready for prime time. +

      +
    • Other ports
    • +

      + There are partial ports for the TI TMS320DM270 and for MIPS. +

    * A highly modified buildroot @@ -61,7 +126,7 @@ is available that be used to build a NuttX-compatible arm-elf toolchain.NuttX is available under the highly permissive BSD license. - Other than some fine print that you agree to respect my copyright + Other than some fine print that you agree to respect the copyright you should feel absolutely free to use NuttX in any environment and without any concern for jeopardizing any proprietary software that you may link with it.

    From f820da8a9e9d0f9c39515302e7a17cc7630e45b1 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 11 Mar 2007 17:37:47 +0000 Subject: [PATCH 0012/1518] task_create now accepts variable number of arguments; 8051 bringup changes git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@56 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxUserGuide.html | 129 +++++++++++++++++------------- 1 file changed, 74 insertions(+), 55 deletions(-) diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index b7055adbcf..48be3bee85 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -12,7 +12,7 @@

    -Nuttx Operating System +NuttX Operating System

    User's Manual @@ -30,9 +30,9 @@ Gregory Nutt This user's manual is divided into three sections:

    • Section 1.0, Introduction: -This section provides an overview of the Nuttx user's manual. +This section provides an overview of the NuttX user's manual.
    • Section 2.0, OS Interfaces: -This section details the interfaces provided by Nuttx from the +This section details the interfaces provided by NuttX from the perspective of the firmware developer. This section is divided into several paragraphs that describe different groups of OS interfaces:
        @@ -46,7 +46,7 @@ into several paragraphs that describe different groups of OS interfaces:
      • Paragraph 2.8 Pthread Interfaces
    • Section 3.0, OS Data Structures: -This section documents the data structures that are used at the Nuttx +This section documents the data structures that are used at the NuttX interface.

    @@ -54,7 +54,7 @@ interface.

    2.0 OS Interfaces

    -This section describes each C-callable interface to the Nuttx +This section describes each C-callable interface to the NuttX Operating System. The description of each interface is presented in the following format:

    @@ -77,10 +77,10 @@ the interface function or any non-obvious limitations to the use of the interface function will be indicated here.

    POSIX Compatibility: Any significant differences between the -Nuttx interface and its corresponding POSIX interface will be noted +NuttX interface and its corresponding POSIX interface will be noted here.

    -NOTE: In order to achieve an independent name space for the Nuttx +NOTE: In order to achieve an independent name space for the NuttX interface functions, differences in function names and types are to be expected and will not be identified as differences in these paragraphs. @@ -90,9 +90,9 @@ paragraphs.

    Tasks. -Nuttx is a flat address OS. As such it does not support "processes" +NuttX is a flat address OS. As such it does not support "processes" in the way that, say, Linux does. -Nuttx only supports simple threads running within the same address space. +NuttX only supports simple threads running within the same address space. However, the programming model makes a distinction between "tasks" and pthreads:

      @@ -129,7 +129,7 @@ were started from the same parent thread. int priority, int stack_size, main_t entry, - char *arg1, char *arg2, char *arg3, char *arg4); + const char *argv[]);

      @@ -144,17 +144,28 @@ were started from the same parent thread. The specified function will be called with four arguments. Should the specified routine return, a call to exit() will automatically be made.

      -

      - Note that four (and only four) arguments must be passed for the - spawned functions. -

      - The newly created task does not inherity characteristics + Note that an arbitrary number of arguments may be passed to the + spawned functions. The maximum umber of arguments is an OS + configuration parameter (CONFIG_MAX_TASK_ARGS). +

      +

      + The arguments are copied (via strdup) so that the + life of the passed strings is not dependent on the life of the + caller to task_create(). +

      +

      + The newly created task does not inherit scheduler characteristics from the parent task: The new task is started at the default system priority and with the SCHED_FIFO scheduling policy. These characteristcs may be modified after the new task has been started.

      +

      + The newly created task does inherit the first three file + descriptors (corresponding to stdin, stdout, and stderr) and + redirection of standard I/O is supported. +

      Input Parameters:

        @@ -162,7 +173,11 @@ were started from the same parent thread.
      • priority. Priority of the new task
      • stack_size. size (in bytes) of the stack needed
      • entry. Entry point of a new task
      • -
      • arg1, arg2, arg3, and arg4. Four required task arguments to pass to the task
      • +
      • argv. A pointer to an array of input parameters. Up to + CONFIG_MAX_TASK_ARG parameters may be provided. + If fewer than CONFIG_MAX_TASK_ARG parameters are + passed, the list should be terminated with a NULL argv[] value. + If no parameters are required, argv may be NULL.

      Returned Values: @@ -192,14 +207,13 @@ VxWorks provides the following similar interface:

      -The Nuttx task_create() differs from VxWorks' taskSpawn() in the +The NuttX task_create() differs from VxWorks' taskSpawn() in the following ways:

        -
      • Function name -
      • Various differences in types or arguments +
      • Interface name +
      • Various differences in types of arguments
      • There is no options arguement. -
      • One four parameters can be passed to a task (VxWorks allows -ten). +
      • A variable number of parameters can be passed to a task (VxWorks supports ten).

      2.1.2 task_init

      @@ -209,20 +223,21 @@ ten).
          #include <sched.h>
          STATUS task_init(
      -      _TCB *tcb,
      -      char *name,
      -      int priority,
      -      uint32 *stack,
      -      uint32 stack_size,
      -      maint_t entry,
      -      int arg1, int arg2, int arg3, int arg4);
      +          _TCB *tcb,
      +          char *name,
      +          int priority,
      +          uint32 *stack,
      +          uint32 stack_size,
      +          maint_t entry,
      +          const char *argv[]);
       

      Description:

      This function initializes a Task Control Block (TCB) - in preparation for starting a new thread. + in preparation for starting a new thread. It performs a subset + of the functionality of task_create() (see above).

      Unlike task_create(), task_init() does not activate the task. @@ -237,7 +252,11 @@ ten).

    • stack. Start of the pre-allocated stack
    • stack_size. size (in bytes) of the pre-allocated stack
    • entry. Entry point of a new task -
    • arg1, arg2, arg3, and arg4. Four required task arguments to pass to the task +
    • argv. A pointer to an array of input parameters. Up to + CONFIG_MAX_TASK_ARG parameters may be provided. + If fewer than CONFIG_MAX_TASK_ARG parameters are + passed, the list should be terminated with a NULL argv[] value. + If no parameters are required, argv may be NULL.

    @@ -272,13 +291,13 @@ VxWorks provides the following similar interface:

    -The Nuttx task_init() differs from VxWorks' taskInit() in the +The NuttX task_init() differs from VxWorks' taskInit() in the following ways:

      -
    • Function name +
    • Interface name
    • Various differences in types or arguments
    • There is no options argument. -
    • One four parameters can be passed to a task (VxWorks allows ten). +
    • A variable number of parameters can be passed to a task (VxWorks supports ten).

    2.1.3 task_activate

    @@ -322,7 +341,7 @@ VxWorks provides the following similar interface:

    -The Nuttx task_activate() differs from VxWorks' taskActivate() in the +The NuttX task_activate() differs from VxWorks' taskActivate() in the following ways:

  • + + + +
    +

    NuttX RTOS

    +

    Last Updated: March 14, 2007

    +
    +

    + + + + +

    Table of Contents

    - -
  • Overview
  • -
  • Downloads
  • -
  • Supported Platforms
  • -
  • Memory Footprint
  • -
  • Licensing
  • -
  • Release History
  • -
  • Other Documentation
  • +
    + +
    + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Overview
    Downloads
    Supported Platforms
    Memory Footprint
    Licensing
    Release History
    Other Documentation
    +
    + + + + + +
    +

    Overview

    +
    -

    Overview

    Goals. Nuttx is a real timed embedded operating system (RTOS). Its goals are:

    -

      -
    1. Small Footprint
    2. +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + Small Footprint +

      Usable in all but the tightest micro-controller environments, The focus is on the tiny-to-small, deeply embedded environment.

      -
    3. Rich Feature OS Set
    4. +
      + Rich Feature OS Set +

      The goal is to provide most standard POSIX OS interfaces to support a rich multi-threaded development environment. @@ -40,14 +104,32 @@ (2) There is no MMU-based support for processes. At present, NuttX assumes a flat address space.

      -
    5. Highly Scalable
    6. +
      + Highly Scalable +

      Fully scalable from tiny (8-bit) to moderate embedded (32-bit). Scalability with rich feature set is accomplished with: Many tiny source files, link from static libraries, highly configurable, use of weak symbols when available.

      -
    7. Standards Compliance
    8. +
      + Standards Compliance +

      NuttX strives to achieve a high degree of standards compliance. The primary governing standards are POSIX and ANSI standards. @@ -60,28 +142,67 @@ Because of this standards conformance, software developed under other standard OSs (such as Linux) should port easily to NuttX.

      -
    9. Real-Time
    10. +
      + Real-Time +

      Fully pre-emptible, fixed priority and round-robin scheduling.

      -
    11. Totally Open
    12. +
      + Totally Open +

      Non-restrictive BSD license.

      - +
      -

      Downloads

      + + + + +
      +

      Downloads

      +

      - The initial release of NuttX (nuttx-0.1.0) is avalable for download + The second release of NuttX (nuttx-0.1.1) is avalable for download from the SourceForge website.

      -

      Supported Platforms

      + + + + +
      +

      Supported Platforms

      +
      -
        -
      • Linux User Mode
      • +
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        + Linux User Mode +

        A user-mode port of NuttX to the x86 Linux platform is available. The purpose of this port is primarily to support OS feature developement. @@ -89,7 +210,17 @@

        STATUS: Does not support interrupts but is otherwise fully functional.

        -
      • TI TMS320C5471 (also called TMS320DM180).
      • +
        + TI TMS320C5471 (also called TMS320DM180). +

        NuttX operates on the ARM7 of this dual core processor. This port uses the Spectrum Digital @@ -99,7 +230,17 @@ STATUS: This port is complete, verified, and included in the initial NuttX release.

        -
      • 8051 Microcontroller
      • +
        + 8052 Microcontroller +

        This port uses the PJRC 87C52 development system and the SDCC toolchain. @@ -109,17 +250,36 @@ There seems to be some issue when the stack pointer enters into the indirect IRAM address space during interrupt handling.

        -
      • Other ports
      • +
        + Other ports +

        There are partial ports for the TI TMS320DM270 and for MIPS.

        - +
        * A highly modified buildroot is available that be used to build a NuttX-compatible arm-elf toolchain.
        -

        Memory Footprint

        + + + + +
        +

        Memory Footprint

        +
        +

          C5471 (Arm7) The build for this ARM7 target that includes most of the OS features and a broad range of OS tests. The size of this executable as given by the @@ -143,19 +303,36 @@ Other memory: EXTERNAL RAM 0x0100 0x02fd 510 7936 ROM/EPROM/FLASH 0x2100 0x6e55 19798 24384 +

        -

        Licensing

        + + + + +
        +

        Licensing

        +
        -

        NuttX is available under the highly permissive +

          +

          + NuttX is available under the highly permissive BSD license. Other than some fine print that you agree to respect the copyright you should feel absolutely free to use NuttX in any environment and without any concern for jeopardizing any proprietary software that - you may link with it.

          + you may link with it. +

          +
        -

        Release History

        + + + + +
        +

        Release History

        +
        -
        +
           0.1.0 2007-03-09  Gregory Nutt 
           
           	* Initial Release
          @@ -189,12 +366,26 @@ Other memory:
           	  when the timer interrupt is enabled.  Seems to be an
           	  issue when SP enters indirect address space.
           	* Documentation updates
          -
          +
      -

      Other Documentation

      + + + + +
      +

      Other Documentation

      +
      -
    13. User Guide
    14. -
    15. Porting Guide
    16. +
        + + + + + + + + + diff --git a/Documentation/NuttXBanner.html b/Documentation/NuttXBanner.html index 42a6018d63..a5f5925602 100644 --- a/Documentation/NuttXBanner.html +++ b/Documentation/NuttXBanner.html @@ -11,9 +11,23 @@ diff --git a/Documentation/favicon.ico b/Documentation/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..5bd4f266ef1ff6cb6d79d0eb08c2a92a2bcf64ee GIT binary patch literal 318 zcma)$K?=h#3BT#VIY-_piv)VM*tC}oTU39Po-BQ()g-mWHK`R_<^JIezMqU?7 U(F^jO$37MYx%Z;!$Nn7r0NiL3`Tzg` literal 0 HcmV?d00001 diff --git a/Documentation/index.html b/Documentation/index.html index 7320bb5aa4..6e62e0d912 100644 --- a/Documentation/index.html +++ b/Documentation/index.html @@ -2,7 +2,7 @@ NuttX - + From 8b625e8e7dea0016cd609831a6b4d2a20b8df096 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 15 Mar 2007 04:13:19 +0000 Subject: [PATCH 0016/1518] update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@65 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/favicon.ico | Bin 318 -> 318 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Documentation/favicon.ico b/Documentation/favicon.ico index 5bd4f266ef1ff6cb6d79d0eb08c2a92a2bcf64ee..f76eec2f9432db5ae57e7c23f5b455e8f5d97c8e 100644 GIT binary patch literal 318 zcmb7;K?(vf3`JAy0UBm--9^CxS0yf8l#p|H8Smqr#NMO+jJlgy*z)trC;2H+z)dNk zMp^>Vk%$&3K^by?@7zykdR?yceB7w_PGgL{)=ghT>VyI?`$NOr*bX16(=0ZrV2OFE p8m*KtvBr`$FsnspRT%KAw%Pjx^f@ulL(WR%{`P$LZhq<y^9}F(9l`(r literal 318 zcma)$K?=h#3<OuW53mUIY|x>BT#VIY-_p<YKmAk4L)?{f3mCd)J+N8}1HzMY=6%B| zz#YI!XS&dl&-8h0IG!);-#2>iv)VM*tC}oTU39Po-BQ()g-mWHK`R_<^JIezMqU?7 U(F^jO$37MYx%Z;!$Nn7r0NiL3`Tzg` From cf89ce12f915af2fb94b870ae013ca44be3d232b Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 16 Mar 2007 22:24:52 +0000 Subject: [PATCH 0017/1518] update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@77 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 54 +++++++++++++++++++++++++++++++++++----- 1 file changed, 48 insertions(+), 6 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 994eaf6fc6..5db2ce4e08 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: March 14, 2007</p> + <p>Last Updated: March 16, 2007</p> </td> </tr> </table> @@ -208,27 +208,51 @@ The purpose of this port is primarily to support OS feature developement. </p> <p> - STATUS: Does not support interrupts but is otherwise fully functional. + <b>STATUS:</b> + Does not support interrupts but is otherwise fully functional. </p> </td> </tr> <tr> <td valign="top"><img src="favicon.ico"></td> <td bgcolor="#5eaee1"> - <b>TI TMS320C5471</b> (also called <b>TMS320DM180</b>). + <b>ARM7TDMI</b>. </td> </tr> <tr> <td><br></td> <td> <p> + <b>TI TMS320C5471</b> (also called a <b>C5471</b> or <b>TMS320DM180</b>). NuttX operates on the ARM7 of this dual core processor. This port uses the <a href="http://www.spectrumdigital.com/">Spectrum Digital</a> evaluation board with a GNU arm-elf toolchain*. </p> <p> - STATUS: This port is complete, verified, and included in the initial NuttX - release. + <b>STATUS:</b> + This port is complete, verified, and included in the initial NuttX release. + </p> + </td> +</tr> +<tr> + <td valign="top"><img src="favicon.ico"></td> + <td bgcolor="#5eaee1"> + <b>ARM9EJS</b>. + </td> +</tr> +<tr> + <td><br></td> + <td> + <p> + <b>TI TMS320DM320</b> (also called <b>DM320</b>). + NuttX operates on the ARM9 of this dual core processor. + This port uses the + <a href="http://wiki.neurostechnology.com/index.php/Developer_Welcome">Neuros OSD</a> + with a GNU arm-elf toolchain*. + </p> + <p> + <b>STATUS:</b> + This port is code complete but totally untested due to hardware issues with my OSD. </p> </td> </tr> @@ -242,11 +266,13 @@ <td><br></td> <td> <p> + <b>PJRC 87C52 Development Board</b>. This port uses the <a href="http://www.pjrc.com/">PJRC</a> 87C52 development system and the <a href="http://sdcc.sourceforge.net/">SDCC</a> toolchain. </p> <p> - STATUS: This port is complete but not stable with timer interrupts enabled. + <b>STATUS:</b> + This port is complete but not stable with timer interrupts enabled. There seems to be some issue when the stack pointer enters into the indirect IRAM address space during interrupt handling. </p> @@ -366,6 +392,22 @@ Other memory: when the timer interrupt is enabled. Seems to be an issue when SP enters indirect address space. * Documentation updates + +0.1.2 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> + + * Add dirent.h, opendir(), readdir(), closedir(), etc. + * Added 'ls' command to nsh + * Added C5471 watchdog driver + * Added support for the Neuros OSD / DM320 + * Fixed another bug where free() is called from IDEL task. + Can't do this; the caller must be able to wait for access + to memory. + * Separated C5471 serial driver; a shareable part is + in drivers/. ; the C5471 specific part is in arch/C5471. + serial.h defines the interface. + * Fixed mq_receive() -- bad memcpy() + + </pre></ul> <table width ="100%"> From bfe401fdfed3d9c84f510e2727f9188d73f4f549 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 17 Mar 2007 16:18:49 +0000 Subject: [PATCH 0018/1518] Add strerror() git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@80 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 5db2ce4e08..3f80f7bbad 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -396,6 +396,7 @@ Other memory: 0.1.2 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> * Add dirent.h, opendir(), readdir(), closedir(), etc. + * Add strerror() * Added 'ls' command to nsh * Added C5471 watchdog driver * Added support for the Neuros OSD / DM320 From d80b59cf39b21d631b5083c77aeb7136bf8fa5fc Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 19 Mar 2007 16:37:46 +0000 Subject: [PATCH 0019/1518] Update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@94 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 3f80f7bbad..fabdd208a1 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -382,7 +382,7 @@ Other memory: the stack usage down for the 8051/2 (which has only 256 bytes of stack). * Attempts to use C5471 console from interrupt handlers - can casue errors. Added a special path for this case. + can cause errors. Added a special path for this case. * Refuse calls to sem_wait and sem_trywait from interrupt handlers. This was happening because interrupt handlers were calling printf-like functions. @@ -393,22 +393,34 @@ Other memory: issue when SP enters indirect address space. * Documentation updates -0.1.2 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> +0.1.2 2007-03-19 Gregory Nutt <spudmonkey@racsa.co.cr> * Add dirent.h, opendir(), readdir(), closedir(), etc. * Add strerror() * Added 'ls' command to nsh * Added C5471 watchdog driver - * Added support for the Neuros OSD / DM320 - * Fixed another bug where free() is called from IDEL task. + * Fixed another bug where free() is called from IDLE task. Can't do this; the caller must be able to wait for access to memory. + * Fixed bugs associated with debug output: + Cannot do dbg() in middle of context switch logic. + because it may require use of semaphores and cause + additional context switches. lldbg() is safe. + * Interrupt must be disabled throughout all context switches. * Separated C5471 serial driver; a shareable part is in drivers/. ; the C5471 specific part is in arch/C5471. serial.h defines the interface. - * Fixed mq_receive() -- bad memcpy() + * Fixed mq_receive() and mq_send() -- bad memcpy() + * Fixed C5471 signal deliver logic: use of dbg() and + other actions by use signal handler can alter errno. + need to protect errno during signal handling. + * Fixed uninitialized variable in filesystem that could + cause various problems + * Added a test for roundrobin scheduler. +0.1.3 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> + * Added support for the Neuros OSD / DM320 </pre></ul> <table width ="100%"> From 7a82bf1afc2df9bf8311ee8ad908d2f841066b65 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 19 Mar 2007 16:52:23 +0000 Subject: [PATCH 0020/1518] updates git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@99 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index fabdd208a1..0fbea39576 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -180,7 +180,7 @@ </table> <p> - The second release of NuttX (nuttx-0.1.1) is avalable for download + The second release of NuttX (nuttx-0.1.2) is avalable for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. </p> From 369c723ff68aa6cd0ccaac9340691ee66b21ec20 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 19 Mar 2007 22:45:58 +0000 Subject: [PATCH 0021/1518] update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@105 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 +- Documentation/NuttxPortingGuide.html | 860 ++++++++++++++++++++++++++- 2 files changed, 857 insertions(+), 5 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 0fbea39576..62e5702dcb 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -180,7 +180,7 @@ </table> <p> - The second release of NuttX (nuttx-0.1.2) is avalable for download + The third release of NuttX (nuttx-0.1.2) is avalable for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. </p> diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 1065d00977..dee837cd7b 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -11,12 +11,12 @@ <hr> <center> <big><b> - <p>Nuttx Operating System</p> + <p>NuttX Operating System</p> <p>Porting Guide</p> </b></big> <p><small>by</small></p> <p>Gregory Nutt</p> - <p><small>Last Update: February 8, 2007</small></p> + <p><small>Last Update: March 20, 2007</small></p> </center> <center><h1>Table of Contents</h1></center> @@ -25,6 +25,12 @@ <ul> <li>2.1 <a href="#DirStructDocumentation">Documentation</a></li> <l1>2.2 <a href="#DirStructArch">arch</a></li> + <ul> + <li><a href="#sudirectorystructure">2.2.1 Subdirectory Structure</a></li> + <li><a href="#summaryoffiles">2.2.2 Summary of Files</a></li> + <li><a href="#supportedarchitectures">2.2.3 Supported Architectures</a></li> + <li><a href="#configuringnuttx">2.2.4 Configuring NuttX</a></li> + </ul> <li>2.3 <a href="#DirStructDrivers">drivers</a></li> <li>2.4 <a href="#DirStructExamples">examples</a></li> <li>2.5 <a href="#DirStructFs">fs</a></li> @@ -35,12 +41,43 @@ <li>2.10 <a href="#DirStructDrivers">tools</a></li> </ul> <li>3.0 <a href="#DirectoryConfiAndBuild">Configuring and Building</a></li> +<li>4.0 <a href="#ArchAPIs">Architecture APIs</a></li> +<ul> + <li><a href="#imports">4.1 APIs Exported by Architecture-Specific Logic to NuttX</a></li> + <ul> + <li><a href="#upinitialize">4.1.1 <code>up_initialize()</code></a></li> + <li><a href="#upidle">4.1.2 <code>up_idle()</code></a></li> + <li><a href="#upinitialstate">4.1.3 <code>up_initial_state()</code></a></li> + <li><a href="#upcreatestack">4.1.4 <code>up_create_stack()</code></a></li> + <li><a href="#upusestack">4.1.5 <code>up_use_stack()</code></a></li> + <li><a href="#upreleasestack">4.1.6 <code>up_release_stack()</code></a></li> + <li><a href="#upunblocktask">4.1.7 <code>up_unblock_task()</code></a></li> + <li><a href="#upblocktask">4.1.8 <code>up_block_task()</code></a></li> + <li><a href="#upreleasepending">4.1.9 <code>up_release_pending()</code></a></li> + <li><a href="#upreprioritizertr">4.1.10 <code>up_reprioritize_rtr()</code></a></li> + <li><a href="#_exit">4.1.11 <code>_exit()</code></a></li> + <li><a href="#upassert">4.1.12 <code>up_assert()</code></a></li> + <li><a href="#upschedulesigaction">4.1.13 <code>up_schedule_sigaction()</code></a></li> + <li><a href="#upallocateheap">4.1.14 <code>up_allocate_heap()</code></a></li> + <li><a href="#upinterruptcontext">4.1.15 <code>up_interrupt_context()</code></a></li> + <li><a href="#updisableirq">4.1.16 <code>up_disable_irq()</code></a></li> + <li><a href="#upenableirq">4.1.17 <code>up_enable_irq()</code></a></li> + <li><a href="#upputc">4.1.18 <code>up_putc()</code></a></li> + </ul> + <li><a href="#exports">4.2 APIs Exported by NuttX to Architecture-Specific Logic</a></li> + <ul> + <li><a href="#osstart">4.2.1 <code>os_start()</code></a></li> + <li><a href="#listmgmt">4.2.2 OS List Management APIs</a></li></li> + <li><a href="#schedprocesstimer">4.2.3 <code>sched_process_timer()</code></a></li> + <li><a href="#irqdispatch">4.2.4 <code>irq_dispatch()</code></a></li> + </ul> +</ul> <hr> <h1>1.0 <a name="Introduction">Introduction</a></h1> <p><b>Overview</b> - This document provides and overview of the Nuttx build and configuration + This document provides and overview of the NuttX build and configuration logic and provides hints for the incorporation of new processor/board archectures into the build. </p> @@ -53,7 +90,7 @@ <hr> <h1>2.0 <a name="DirectoryStructure">Directory Structure</a></h1> -<p>The general directly layout for Nuttx is very similar to the directory structure +<p>The general directly layout for NuttX is very similar to the directory structure of the Linux kernel -- at least at the most superficial layers. At the top level is the main makefile and a series of sub-directories identified below and discussed in the following paragraphs:</p> @@ -105,19 +142,834 @@ below and discussed in the following paragraphs:</p> </pre></ul> <h2>2.1 <a name="DirStructDocumentation">Documentation</a></h2> + +<p> + General documentation for the NuttX OS resides in this directory. +</p> + <h2>2.2 <a name="DirStructArch">arch</a></h2> + +<h3><a name="sudirectorystructure">2.2.1 Subdirectory Structure</a></h3> +<p> + This directory contains several sub-directories, each containing + architecture-specific logic. + The task of porting NuttX to a new processor or board consists of + add a new sudirectory under <code>arch/</code> containing logic specific + to the new architecuture. + Each architecture must provide a subdirectory, &lt;<i>arch-name</i>&gt; + under <code>arch/</code> with the folling characteristics: +</p> +<ul><pre> + &lt;<i>arch-name</i>&gt; + |-- Make.defs + |-- defconfig + |-- setenv.sh + |-- include + | |-- arch.h + | |-- irq.h + | `-- types.h + `-- src + |-- Makefile + `-- (architecture-specific source files) +</pre></ul> + +<h3><a name="summaryoffiles">2.2.2 Summary of Files</a></h3> +<ul> + <li> + <code>Make.defs</code>: This makefile fragment provides architecture and + tool-specific build options. It will be included by all other + makefiles in the build (once it is installed). This make fragment + should define: + <ul> + <li>Tools: CC, LD, AR, NM, OBJCOPY, OBJDUMP</li> + <li>Tool options: CFLAGS, LDFLAGS</li> + </ul> + <p> + When this makefile fragment runs, it will be passed TOPDIR which + is the path to the root directory of the build. This makefile + fragment may include ${TOPDIR}/.config to perform configuration + specific settings. For example, the CFLAGS will most likely be + different if CONFIG_DEBUG=y. + </li> + <li> + <code>defconfig</code>: This is a configuration file similar to the Linux + configuration file. In contains varialble/value pairs like: + <ul> + <li><code>CONFIG_VARIABLE</code>=value</li> + </ul> + <p> + This configuration file will be used at build time: + </p> + <ol> + <li>As a makefile fragment included in other makefiles, and</li> + <li>to generate <code>include/nuttx/config.h</code> which is included by + most C files in the system.</li> + </ol> + </li> + <li> + <code>setenv.sh</code>: This is a script that you can include that will be installed at + the toplevel of the directory structure and can be sourced to set any + necessary environment variables. + </li> + <li> + <code>include/arch.h</code>: + This is a hook for any architecture specific definitions that may + be needed by the system. It is included by <code>include/nuttx/arch.h</code>. + </li> + <li> + <code>include/types.h</code>: + This provides architecture/toolchain-specific definitions for + standard types. This file should <code>typedef</code>: + <ul><code> + sbyte, ubyte, uint8, boolean, sint16, uint16, sint32, uint32 + </code></ul> + <p>and if the architecture supports 64-bit integers</p> + <ul><code> + sint64, uint64 + </code></ul> + <p> + and finally + </p> + <ul><code> + irqstate_t + </code></ul> + <p> + Must be defined to the be the size required to hold the interrupt + enable/disable state. + </p> + <p> + This file will be included by include/sys/types.h and be made + available to all files. + </p> + </li> + <li> + <code>include/irq.h</code>: + This file needs to define some architecture specific functions (usually + inline if the compiler supports inlining) and structure. These include: + <ul> + <li> + <code>struct xcptcontext</code>: + This structures represents the saved context of a thread. + </li> + <li> + <code>irqstate_t irqsave(void)</code>: + Used to disable all interrupts. + </li> + <li> + <code>void irqrestore(irqstate_t flags)<code>: + Used to restore interrupt enables to the same state as before <code>irqsave()</code> was called. + </li> + </ul> + <p> + This file must also define <code>NR_IRQS</code>, the total number of IRQs supported + by the board. + </p> + </li> + <li> + <code>src/Makefile</code>: + This makefile will be executed to build the targets <code>src/libup.a</code> and + <code>src/up_head.o</code>. The <code>up_head.o</code> file holds the entry point into the system + (power-on reset entry point, for example). It will be used in + the final link with <code>libup.a</code> and other system archives to generate the + final executable. + </li> +</ul> + +<h3><a name="supportedarchitectures">2.2.3 Supported Architectures</a></h3> +<ul> + <li><code>arch/sim</code>: + A user-mode port of NuttX to the x86 Linux platform is available. + The purpose of this port is primarily to support OS feature developement. + This port does not support interrupts or a real timer (and hence no + round robin scheduler) Otherwise, it is complete. + <li><code>arch/c5471</code>: + TI TMS320C5471 (also called TMS320DM180 or just C5471). + NuttX operates on the ARM7 of this dual core processor. This port + uses the Spectrum Digital evaluation board with a GNU arm-elf toolchain*. + This port is complete, verified, and included in the NuttX release. + <li><code>arch/dm320</code>: + TI TMS320DM320 (also called just DM320). + NuttX operates on the ARM9EJS of this dual core processor. + This port uses the Neuros OSD with a GNU arm-elf toolchain*: + see http://wiki.neurostechnology.com/index.php/Developer_Welcome . + STATUS: This port is code complete but totally untested due to + hardware issues with my OSD. + <li><code>arch/pjrc-8051</code>: + 8051 Microcontroller. This port uses the PJRC 87C52 development system + and the SDCC toolchain. This port is not quite ready for prime time. +</ul> +<p> + Other ports for the for the TI TMS320DM270 and for MIPS are in various states + of progress +</p> + +<h3><a name="configuringnuttx">2.2.4 Configuring NuttX</a></h3> +<p> + Configuring NuttX requires only copying: +</p> +<ul> + <code>arch/&lt;<i>arch-name</i>&gt;/Make.def</code> to <code>${TOPDIR}/Make.defs</code>, + <code>arch/&lt;<i>arch-name</i>&gt;/setenv.sh</code> to <code>${TOPDIR}/setenv.sh</code>, and + <code.arch/&lt;<i>arch-name</i>&gt;/defconfig</code> to ${TOPDIR}/.config</code> +</ul> +<p> + There is a script that automates these steps. The following steps will + accomplish the same configuration: +</p> +<ul><pre> + cd tools + ./configure.sh &lt;<i>arch-name</i>&gt; +</pre></ul> + <h2>2.3 <a name="DirStructDrivers">drivers</a></h2> + +<p> + This directory holds architecture-independent device drivers. +</p> + <h2>2.4 <a name="DirStructExamples">examples</a></h2> + +<p> + Example and test programs to build against. +</p> + <h2>2.5 <a name="DirStructFs">fs</a></h2> + +<p> + This directory contains the NuttX filesystem. + The NuttX filesystem is very simple; it does not involve any block drivers or + particular filesystem (like FAT or EXT2 etc.). + The NuttX filesystem simply supports a set a filesystem APIs + (<code>open()</code>, <code>close()</code>, <code>read()</code>, <code>write</code>, etc.) + and a registration mechanism that allows devices drivers to a associated with <i>nodes</i> + in a file-system-like name space. +</p> + <h2>2.6 <a name="DirStructInclude">include</a></h2> +<p> + This directory holds NuttX header files. + Standard header files file retained in can be included in the <i>normal</i> fashion: +</p> +<ul> + <code>include &lt:stdio.h&gt</code><br> + <code>include &lt;sys/types.h&gt;</code><br> + etc. +</ul> + <h2>2.7 <a name="DirStructLib">lib</a></h2> + +<p> + This directory holds a collection of standard libc-like functions with custom + interfaces into Nuttx. +</p> + <h2>2.8 <a name="DirStructMm">mm</a></h2> + +<p> + This is the NuttX memory manager. +</p> + <h2>2.9 <a name="DirStructSched">sched</a></h2> + +<p> + The files forming core of the NuttX RTOS reside here. +</p> + <h2>2.10 <a name="DirStructDrivers">tools</a></h2> +<p> + This directory holds a collection of tools and scripts to simplify + configuring and building NuttX. +</p> + <hr> <h1>3.0 <a name="DirectoryConfiAndBuild">Configuring and Building</a></h1> +<h1>4.0 <a name="ArchAPIs">Architecture APIs</a></h1> + +<p> + The file <code>include/nuttx/arch.h</code> identifies by prototype all of the APIs that must + be provided by the architecture specific logic. + The internal OS APIs that architecture-specific logic must + interface with also also identified in <code>include/nuttx/arch.h</code> or in + other header files. +</p> + +<h2><a name="imports">4.1 APIs Exported by Architecture-Specific Logic to NuttX</a></h2> +<h3><a name="upinitialize">4.1.1 <code>up_initialize()</code></a></h3> + +<p><b>Prototype</b>: <code>void up_initialize(void);</code></p> + +<p><b>Description</b>. + <code>up_initialize()</code> will be called once during OS + initialization after the basic OS services have been + initialized. The architecture specific details of + initializing the OS will be handled here. Such things as + setting up interrupt service routines, starting the + clock, and registering device drivers are some of the + things that are different for each processor and hardware + platform. +</p> +<p> + <code>up_initialize()</code> is called after the OS initialized but + before the init process has been started and before the + libraries have been initialized. OS services and driver + services are available. +</p> + +<h3><a name="upidle">4.1.2 <code>up_idle()</code></a></h3> +<p><b>Prototype</b>: <code>void up_idle(void);</code></p> + +<p><b>Description</b>. + <code>up_idle()</code> is the logic that will be executed + when their is no other ready-to-run task. This is processor + idle time and will continue until some interrupt occurs to + cause a context switch from the idle task. +</p> +<p> + Processing in this state may be processor-specific. e.g., + this is where power management operations might be performed. +</p> + +<h3><a name="upinitialstate">4.1.3 <code>up_initial_state()</code></a></h3> +<p><b>Prototype</b>: <code>void up_initial_state(FAR _TCB *tcb);</code></p> + +<p><b>Description</b>. + A new thread is being started and a new TCB + has been created. This function is called to initialize + the processor specific portions of the new TCB. +</p> +<p> + This function must setup the intial architecture registers + and/or stack so that execution will begin at tcb->start + on the next context switch. +</p> + +<h3><a name="upcreatestack">4.1.4 <code>up_create_stack()</code></a></h3> +<p><b>Prototype</b>: <code>STATUS up_create_stack(FAR _TCB *tcb, size_t stack_size);</code></p> + +<p><b>Description</b>. + Allocate a stack for a new thread and setup + up stack-related information in the TCB. +</p> +<p> + The following TCB fields must be initialized: +</p> +<ul> + <li><code>adj_stack_size</code>: Stack size after adjustment for hardware, + processor, etc. This value is retained only for debug + purposes.</li> + <li><code>stack_alloc_ptr</code>: Pointer to allocated stack</li> + <li><code>adj_stack_ptr</code>: Adjusted <code>stack_alloc_ptr</code> for HW. The + initial value of the stack pointer. +</ul> +<p> + This API is <i>NOT</i> required if <code>CONFIG_CUSTOM_STACK</code> + is defined. +</p> + +<p><b>Inputs</b>:</p? +<ul> + <li> + <code>tcb</code>: The TCB of new task. + </li> + <li> + <code>stack_size</code>: The requested stack size. At least this much + must be allocated. + </li> +</ul> + +<h3><a name="upusestack">4.1.5 <code>up_use_stack()</code></a></h3> +<p><b>Prototype</b>: + <code>STATUS up_use_stack(FAR _TCB *tcb, FAR void *stack, size_t stack_size);</code> +</p> + +<p><b>Description</b>. + Setup up stack-related information in the TCB + using pre-allocated stack memory. +</p> +<p> + The following TCB fields must be initialized: +</p> +<ul> + <li><code>adj_stack_size</code>: Stack size after adjustment for hardware, + processor, etc. This value is retained only for debug + purposes.</li> + <li><code>stack_alloc_ptr</code>: Pointer to allocated stack</li> + <li><code>adj_stack_ptr</code>: Adjusted <code>stack_alloc_ptr</code> for HW. The + initial value of the stack pointer. +</ul> +<p> + This API is <i>NOT</i> required if <code>CONFIG_CUSTOM_STACK</code> + is defined. +</p> + +<p><b>Inputs:</b></p> +<ul> + <li> + <code>tcb</code>: The TCB of new task. + </li> + <li> + <code>stack_size</code>: The allocated stack size. + </li> +</ul> + +<h3><a name="upreleasestack">4.1.6 <code>up_release_stack()</code></a></h3> +<p><b>Prototype</b>: <code>void up_release_stack(FAR _TCB *dtcb);</code></p> + +<p><b>Description</b>. + A task has been stopped. Free all stack + related resources retained int the defunct TCB. +</p> +<p> + This API is <i>NOT</i> required if <code>CONFIG_CUSTOM_STACK</code> + is defined. +</p> + +<h3><a name="upunblocktask">4.1.7 <code>up_unblock_task()</code></a></h3> +<p><b>Prototype</b>: <code>void up_unblock_task(FAR _TCB *tcb);</code></p> + +<p><b>Description</b>. + A task is currently in an inactive task list + but has been prepped to execute. Move the TCB to the + ready-to-run list, restore its context, and start execution. +</p> +<p> + This function is called only from the NuttX scheduling + logic. Interrupts will always be disabled when this + function is called. +</p> + +<p><b>Inputs</b>: +<ul> + <li><code>tcb</code>: Refers to the tcb to be unblocked. This tcb is + in one of the waiting tasks lists. It must be moved to + the ready-to-run list and, if it is the highest priority + ready to run taks, executed. + </li> +</ul> + +<h3><a name="upblocktask">4.1.8 <code>up_block_task()</code></a></h3> +<p><b>Prototype</b>: <code>void up_block_task(FAR _TCB *tcb, tstate_t task_state);</code></p> + +<p><b>Description</b>. + The currently executing task at the head of + the ready to run list must be stopped. Save its context + and move it to the inactive list specified by task_state. + + This function is called only from the NuttX scheduling + logic. Interrupts will always be disabled when this + function is called. + +<p><b>Inputs:</b></p> +<ul> + <li><code>tcb</code>: Refers to a task in the ready-to-run list (normally + the task at the 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 + ready to run task must be performed. + </li> + <li><code>task_state</code>: Specifies which waiting task list should be + hold the blocked task TCB. + </li> +</ul> + +<h3><a name="upreleasepending">4.1.9 <code>up_release_pending()</code></a></h3> +<p><b>Prototype</b>: <code>void up_release_pending(void);</code></p> + +<p><b>Description</b>. + When tasks become ready-to-run but cannot run because pre-emption + is disabled, they are placed into a pending task list. + This function releases and makes ready-to-run all of the tasks that have + collected in the pending task list. This can cause a + context switch if a new task is placed at the head of + the ready to run list. +</p> +<p> + This function is called only from the NuttX scheduling logic when + pre-emption is re-enabled. Interrupts will always be disabled when this + function is called. +</p> + +<h3><a name="upreprioritizertr">4.1.10 <code>up_reprioritize_rtr()</code></a></h3> +<p><b>Prototype</b>: <code>void up_reprioritize_rtr(FAR _TCB *tcb, ubyte priority);</code></p> + +<p><b>Description</b>. + Called when the priority of a running or + ready-to-run task changes and the reprioritization will + cause a context switch. Two cases: +</p> +<ol> + <li> + The priority of the currently running task drops and the next + task in the ready to run list has priority. + </li> + <li> + An idle, ready to run task's priority has been raised above the + the priority of the current, running task and it now has the + priority. + </li> +</ol> +<p> + This function is called only from the NuttX scheduling + logic. Interrupts will always be disabled when this + function is called. +</p> + +<p><b>Inputs:</b></p> +<ul> + <li> + <code>tcb</code>: The TCB of the task that has been reprioritized + </li> + <li> + <code>priority</code>: The new task priority + </li> +</ul> + +<h3><a name="_exit">4.1.11 <code>_exit()</code></a></h3> +<p><b>Prototype</b>: <code>void _exit(int status) noreturn_function;</code></p> + +<p><b>Description</b>. + This function causes the currently executing task to cease + to exist. This is a special case of task_delete(). +</p> +<p> + Unlike other UP APIs, this function may be called + directly from user programs in various states. The + implementation of this function should diable interrupts + before performing scheduling operations. +</p> + +<h3><a name="upassert">4.1.12 <code>up_assert()</code></a></h3> +<p><b>Prototype</b>:<br> + <code>void up_assert(FAR const ubyte *filename, int linenum);</code></br> + <code>void up_assert_code(FAR const ubyte *filename, int linenum, int error_code);</code></br> +</p> + +<p><b>Description</b>. + Assertions may be handled in an architecture-specific + way. +</p> + +<h3><a name="upschedulesigaction">4.1.13 <code>up_schedule_sigaction()</code></a></h3> +<p><b>Prototype</b>: + <code>void up_schedule_sigaction(FAR _TCB *tcb, sig_deliver_t sigdeliver);</code> +</p> + +<p><b>Description</b>. + This function is called by the OS when one or more + signal handling actions have been queued for execution. + The architecture specific code must configure things so + that the 'igdeliver' callback is executed on the thread + specified by 'tcb' as soon as possible. +</p> +<p> + This function may be called from interrupt handling logic. +</p> +<p> + This operation should not cause the task to be unblocked + nor should it cause any immediate execution of sigdeliver. + Typically, a few cases need to be considered: +</p> +<ol> + <li> + This function may be called from an interrupt handler + During interrupt processing, all xcptcontext structures + should be valid for all tasks. That structure should + be modified to invoke sigdeliver() either on return + from (this) interrupt or on some subsequent context + switch to the recipient task. + </li> + <li> + If not in an interrupt handler and the tcb is NOT + the currently executing task, then again just modify + the saved xcptcontext structure for the recipient + task so it will invoke sigdeliver when that task is + later resumed. + </li> + <li> + If not in an interrupt handler and the tcb IS the + currently executing task -- just call the signal + handler now. + </li> +</ol> +<p> + This API is <i>NOT</i> required if <code>CONFIG_DISABLE_SIGNALS</code> + is defined. +</p> + +<h3><a name="upallocateheap">4.1.14 <code>up_allocate_heap()</code></a></h3> +<p><b>Prototype</b>: <code>void up_allocate_heap(FAR void **heap_start, size_t *heap_size);</code></p> + +<p><b>Description</b>. + The heap may be statically allocated by + defining CONFIG_HEAP_BASE and CONFIG_HEAP_SIZE. If these + are not defined, then this function will be called to + dynamically set aside the heap region. +</p> +<p> + This API is <i>NOT</i> required if <code>CONFIG_HEAP_BASE</code> + is defined. +</p> + +<h3><a name="upinterruptcontext">4.1.15 <code>up_interrupt_context()</code></a></h3> +<p><b>Prototype</b>: <code>boolean up_interrupt_context(void)</code></p> + +<p><b>Description</b>. + Return TRUE is we are currently executing in + the interrupt handler context. +</p> + +<h3><a name="updisableirq">4.1.16 <code>up_disable_irq()</code></a></h3> +<p><b>Prototype</b>: <code>void up_disable_irq(int irq);</code></p> + +<p><b>Description</b>. + Disable the IRQ specified by 'irq' +</p> + +<h3><a name="upenableirq">4.1.17 <code>up_enable_irq()</code></a></h3> +<p><b>Prototype</b>: <code>void up_enable_irq(int irq);</code></p> + +<p><b>Description</b>. + Enable the IRQ specified by 'irq' +</p> + +<h3><a name="upputc">4.1.18 <code>up_putc()</code></a></h3> + +<p><b>Prototype</b>: <code>int up_putc(int ch);</code></p> +<p><b>Description</b>. + This is a debug interface exported by the architecture-specific logic. + Output one character on the console +<p> + This API is <i>NOT</i> required if <code>CONFIG_HEAP_BASE</code> + is defined. +</p> + +<h2><a name="exports">4.2 APIs Exported by NuttX to Architecture-Specific Logic</a></h2> +<p> + These are standard interfaces that are exported by the OS + for use by the architecture specific logic. +</p> + +<h3><a name="osstart">4.2.1 <code>os_start()</code></a></h3> +<p> + <b><i>To be provided</i></b> +</p> + +<h3><a name="listmgmt">4.2.2 OS List Management APIs</a></h3></h3> +<p> + <b><i>To be provided</i></b> +</p> + +<h3><a name="schedprocesstimer">4.2.3 <code>sched_process_timer()</code></a></h3> +<p><b>Prototype</b>: <code>void sched_process_timer(void);</code></p> + +<p><b>Description</b>. + This function handles system timer events. + The timer interrupt logic itself is implemented in the + architecture specific code, but must call the following OS + function periodically -- the calling interval must be + <code>MSEC_PER_TICK</code>. +</p> + +<h3><a name="irqdispatch">4.2.4 <code>irq_dispatch()</code></a></h3> +<p><b>Prototype</b>: <code>void irq_dispatch(int irq, FAR void *context);</code></p> + +<p><b>Description</b>. + This function must be called from the achitecture- + specific logic in order to dispaly an interrupt to + the appropriate, registered handling logic. +</p> + +<h1><a name="apndxconfigs">Appendix A: NuttX Configuration Settings</a></h1> + +<p> + The following variables are recognized by the build (you may + also include architecture-specific settings). +</p> + +<h2>Architecture selection</h2> + +<ul> + <li><code>CONFIG_ARCH</code>: identifies the arch subdirectory + <li><code>CONFIG_ARCH_name</code>: for use in C code +</ul> + +<h2>General OS setup</h2> + +<ul> + <li> + <code>CONFIG_EXAMPLE</code>: identifies the subdirectory in examples + that will be used in the build. + </li> + <li> + <code>CONFIG_DEBUG</code>: enables built-in debug options + </li> + <li> + <code>CONFIG_DEBUG_VERBOSE</code>: enables verbose debug output + </li> + <li> + <code>CONFIG_HAVE_LOWPUTC</code>: architecture supports low-level, boot + time console output + </li> + <li> + <code>CONFIG_MM_REGIONS</code>: If the architecture includes multiple + regions of memory to allocate from, this specifies the + number of memory regions that the memory manager must + handle and enables the API mm_addregion(start, end); + </li> + <li> + <code>CONFIG_RR_INTERVAL</code>: The round robin timeslice will be set + this number of milliseconds; Round robin scheduling can + be disabled by setting this value to zero. + </li> + <li> + <code>CONFIG_SCHED_INSTRUMENTATION</code>: enables instrumentation in + scheduler to monitor system performance + </li> + <li> + <code>CONFIG_TASK_NAME_SIZE</code>: Spcifies that maximum size of a + task name to save in the TCB. Useful if scheduler + instrumentation is selected. Set to zero to disable. + </li> + <li> + <code>CONFIG_START_YEAR, CONFIG_START_MONTH, CONFIG_START_DAY - + Used to initialize the internal time logic. + </li> + <li> + <code>CONFIG_JULIAN_TIME</code>: Enables Julian time conversions + </li> + <li> + <code>CONFIG_DEV_CONSOLE</code>: Set if architecture-specific logic + provides /dev/console. Enables stdout, stderr, stdin. + </li> +</ul> + +<p> + The following can be used to disable categories of APIs supported + by the OS. If the compiler supports weak functions, then it + should not be necessary to disable functions unless you want to + restrict usage of those APIs. +</p> +<p> + There are certain dependency relationships in these features. +</p> +<ul> + <li> + <code>mq_notify()</code> logic depends on signals to awaken tasks + waiting for queues to become full or empty. + </li> + <li> + <code>pthread_condtimedwait()</code> depends on signals to wake + up waiting tasks. + </li> +</ul> + +<ul> + <code>CONFIG_DISABLE_CLOCK</code>, <code>CONFIG_DISABLE_PTHREAD</code>, + <code>CONFIG_DISABLE_SIGNALS</code>, <code>CONFIG_DISABLE_MQUEUE</code>, +</ul> + +<h2>Miscellaneous libc settings</h2> + +<ul> + <li> + <code>CONFIG_NOPRINTF_FIELDWIDTH</code>: sprintf-related logic is a + little smaller if we do not support fieldwidthes + </li> +</ul> + +<h2>Allow for architecture optimized implementations</h2> + +<p> + The architecture can provide optimized versions of the + following to improve sysem performance. +</p> + +<ul> +<p> + <code>CONFIG_ARCH_MEMCPY</code>, <code>CONFIG_ARCH_MEMCMP</code>, <code>CONFIG_ARCH_MEMMOVE</code>, + <code>CONFIG_ARCH_MEMSET</code>, <code>CONFIG_ARCH_STRCMP</code>, <code>CONFIG_ARCH_STRCPY</code>, + <code>CONFIG_ARCH_STRNCPY</code>, <code>CONFIG_ARCH_STRLEN</code>, <code>CONFIG_ARCH_BZERO</code>, + <code>CONFIG_ARCH_KMALLOC</code>, <code>CONFIG_ARCH_KZMALLOC</code>, <code>ONFIG_ARCH_KFREE</code>, +</p> +</ul> + +<h2>Sizes of configurable things (0 disables)</h2> + +<ul> + <li> + <code>CONFIG_MAX_TASKS</code>: The maximum number of simultaneously + active tasks. This value must be a power of two. + </li> + <li> + <code>CONFIG_NPTHREAD_KEYS</code>: The number of items of thread- + specific data that can be retained + </li> + <li> + <code>CONFIG_NFILE_DESCRIPTORS</code>: The maximum number of file + descriptors (one for each open) + </li> + <li> + <code>CONFIG_NFILE_STREAMS</code>: The maximum number of streams that + can be fopen'ed + </li> + <li> + <code>CONFIG_NAME_MAX</code>: The maximum size of a file name. + </li> + <li> + <code>CONFIG_STDIO_BUFFER_SIZE</code>: Size of the buffer to allocate + on fopen. (Only if CONFIG_NFILE_STREAMS > 0) + </li> + <li> + <code>CONFIG_NUNGET_CHARS</code>: Number of characters that can be + buffered by ungetc() (Only if CONFIG_NFILE_STREAMS > 0) + </li> + <li> + <code>CONFIG_PREALLOC_MQ_MSGS</code>: The number of pre-allocated message + structures. The system manages a pool of preallocated + message structures to minimize dynamic allocations + </li> + <li> + <code>CONFIG_MQ_MAXMSGSIZE</code>: Message structures are allocated with + a fixed payload size given by this settin (does not include + other message structure overhead. + </li> + <li> + <code>CONFIG_PREALLOC_WDOGS</code>: The number of pre-allocated watchdog + structures. The system manages a pool of preallocated + watchdog structures to minimize dynamic allocations + </li> +</ul> + +<h2>Stack and heap information</h2> + +<ul> + <li> + <code>CONFIG_BOOT_FROM_FLASH</code>: Some configurations support XIP + operation from FLASH. + </li> + <li> + <code>CONFIG_STACK_POINTER</code>: The initial stack pointer + </li> + <li> + <code>CONFIG_PROC_STACK_SIZE</code>: The size of the initial stack + </li> + <li> + <code>CONFIG_PTHREAD_STACK_MIN</code>: Minimum pthread stack size + </li> + <li> + <code>CONFIG_PTHREAD_STACK_DEFAULT</code>: Default pthread stack size + </li> + <li> + <code>CONFIG_HEAP_BASE</code>: The beginning of the heap + </li> + <li> + <code>CONFIG_HEAP_SIZE</code>: The size of the heap + </li> +</ul> + </body> </html> From eead9775cb3b442f8330879eebdeaf8971f49eca Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 20 Mar 2007 16:51:12 +0000 Subject: [PATCH 0022/1518] Restructure header files for POSIX compliance; eliminate compile warnings git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@107 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxUserGuide.html | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 48be3bee85..4efacd9fd7 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -1492,7 +1492,8 @@ This parameter is required but not used in the present implementation. <LI><I>value</I>. The value parameter is type unsigned int. The semaphore is created with an initial value of <I>value</I>. Valid initial values for -semaphores must be less than or equal to <I>SEM_MAX_VALUE</I>. +semaphores must be less than or equal to <I>SEM_VALUE_MAX</I> (defined in +<CODE>include/limits.h</CODE>). </UL> </UL> @@ -2406,18 +2407,11 @@ in the si_code member. The content of si_value is only meaningful if the signal was generated by sigqueue(). The following values for si_code are defined in signal.h: <UL> -<LI>Standard: -<UL> -<LI><I>SI_QUEUE</I>. Signal sent from sigqueue -<LI><I>SI_MESGQ</I>. Signal generated by arrival of a message -on an empty message queue -</UL> - -<LI>Unique to this implementation: -<UL> -<LI><I>SI_TIMEOUT</I>. No Signal, restarted by timeout -</UL> - + <LI><I>SI_USER</I>. Signal sent from kill, raise, or abort + <LI><I>SI_QUEUE</I>. Signal sent from sigqueue + <LI><I>SI_TIMER</I>. Signal is result of timer expiration + <LI><I>SI_ASYNCIO</I>. Signal is the result of asynch IO completion + <LI><I>SI_MESGQ</I>. Signal generated by arrival of a message on an empty message queue. </UL> <P> From cc75b020851020cee4fcf4edb01e106329f3ffb9 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 20 Mar 2007 19:03:11 +0000 Subject: [PATCH 0023/1518] Add kill() git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@108 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxUserGuide.html | 801 ++++++++++++++++++++---------- 1 file changed, 545 insertions(+), 256 deletions(-) diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 4efacd9fd7..d20f05c179 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -27,7 +27,7 @@ Gregory Nutt <H1>1.0 <A NAME="Introduction">Introduction</A></H1> <P> -This user's manual is divided into three sections: +This user's manual is divided into three sections plus a index: <UL> <LI><B>Section 1.0, <A HREF="#Introduction">Introduction</A></B>: This section provides an overview of the NuttX user's manual. @@ -37,7 +37,7 @@ perspective of the firmware developer. This section is divided into several paragraphs that describe different groups of OS interfaces: <UL> <LI>Paragraph 2.1 <A HREF="#Task_Control">Task Control Interfaces</A> -<LI>Paragraph 2.2 <A HREF="#Task_Schedule">Task Scheduling Interfaces</A> +8nnnnn<LI>Paragraph 2.2 <A HREF="#Task_Schedule">Task Scheduling Interfaces</A> <LI>Paragraph 2.3 <A HREF="#Task_Switch">Task Switching Interfaces</A> <LI>Paragraph 2.4 <A HREF="#Message_Queue">Named Message Queue Interfaces</A> <LI>Paragraph 2.5 <A HREF="#Semaphores">Counting Semaphore Interfaces</A> @@ -48,7 +48,8 @@ into several paragraphs that describe different groups of OS interfaces: <LI><B>Section 3.0, <A HREF="#Data_Structures">OS Data Structures</A></B>: This section documents the data structures that are used at the NuttX interface. -</UL> +<li><a href="#index">Index</a></li> +</ul> <HR> <H1>2.0 <A NAME="OS_Interfaces">OS Interfaces</A></H1> @@ -89,47 +90,58 @@ paragraphs. <H2>2.1 <A NAME="Task_Control">Task Control Interfaces</A></H2> <p> -<b>Tasks</b>. -NuttX is a flat address OS. As such it does not support &quot;processes&quot; -in the way that, say, Linux does. -NuttX only supports simple threads running within the same address space. -However, the programming model makes a distinction between &quot;tasks&quot; -and pthreads: + <b>Tasks</b>. + NuttX is a flat address OS. As such it does not support &quot;processes&quot; + in the way that, say, Linux does. + NuttX only supports simple threads running within the same address space. + However, the programming model makes a distinction between &quot;tasks&quot; + and pthreads: +</p> <ul> -<li><i>tasks</i> are threads which have a degree of independence -<li><a href="#Pthread"><i>pthreads</i></a> share some resources. + <li><i>tasks</i> are threads which have a degree of independence + <li><a href="#Pthread"><i>pthreads</i></a> share some resources. </ul> <p> -<b>File Descriptors and Streams</b>. -This applies, in particular, in the area of opened file descriptors and streams. -When a task is started using the interfaces in this section, it will be created -with at most three open files. - -If CONFIG_DEV_CONSOLE is defined, the first three file descriptors (corresponding -to stdin, stdout, stderr) will be duplicated for the 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 -on other tasks. -Since the three file descriptors are duplicated, it is also possible to perform -some level of redirection. + <b>File Descriptors and Streams</b>. + This applies, in particular, in the area of opened file descriptors and streams. + When a task is started using the interfaces in this section, it will be created + with at most three open files. +</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. + 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 + on other tasks. + Since the three file descriptors are duplicated, it is also possible to perform + some level of redirection. +</p> <p> -pthreads, on the other hand, will always share file descriptors with the parent -thread. In this case, file operations will have effect only all pthreads the -were started from the same parent thread. + pthreads, on the other hand, will always share file descriptors with the parent + thread. In this case, file operations will have effect only all pthreads the + were started from the same parent thread. +</p> +<p> + The following task control interfaces are provided by Nuttx: +</p> +<ul> + <li><a href="#taskcreate">2.1.1 task_create</a></li> + <li><a href="#taskinit">2.1.2 task_init</a></li> + <li><a href="#taskactivate">2.1.3 task_activate</a></li> + <li><a href="#taskdelete">2.1.4 task_delete</a></li> + <li><a href="#exit">2.1.5 exit</a></li> + <li><a href="#taskrestart">2.1.6 task_restart</a></li> + <li><a href="#getpid">2.1.7 getpid</a></li> +</ul> -<H3>2.1.1 task_create</H3> +<H3><a name="taskcreate">2.1.1 task_create</a></H3> <P> <B>Function Prototype:</B> <PRE> #include &lt;sched.h&gt; - int task_create( - char *name, - int priority, - int stack_size, - main_t entry, - const char *argv[]); + int task_create(char *name, int priority, int stack_size, main_t entry, const char *argv[]); </PRE> <P> @@ -196,19 +208,15 @@ were started from the same parent thread. <B>POSIX Compatibility:</B> This is a NON-POSIX interface. VxWorks provides the following similar interface: <PRE> - int taskSpawn( - char *name, - int priority, - int options, - int stackSize, - FUNCPTR entryPt, - int arg1, int arg2, int arg3, int arg4, int arg5, - int arg6, int arg7, int arg8, int arg9, int arg10); + int taskSpawn(char *name, int priority, int options, int stackSize, FUNCPTR entryPt, + int arg1, int arg2, int arg3, int arg4, int arg5, + int arg6, int arg7, int arg8, int arg9, int arg10); </PRE> <P> -The NuttX task_create() differs from VxWorks' taskSpawn() in the -following ways: + The NuttX task_create() differs from VxWorks' taskSpawn() in the + following ways: +</p> <UL> <LI>Interface name <LI>Various differences in types of arguments @@ -216,20 +224,14 @@ following ways: <LI>A variable number of parameters can be passed to a task (VxWorks supports ten). </UL> -<H3>2.1.2 task_init</H3> +<H3><a name="taskinit">2.1.2 task_init</a></H3> <P> <B>Function Prototype:</B> <PRE> #include &lt;sched.h&gt; - STATUS task_init( - _TCB *tcb, - char *name, - int priority, - uint32 *stack, - uint32 stack_size, - maint_t entry, - const char *argv[]); + STATUS task_init(_TCB *tcb, char *name, int priority, uint32 *stack, uint32 stack_size, + maint_t entry, const char *argv[]); </PRE> <P> @@ -278,21 +280,15 @@ mechanism to initialize and start a new task. <B>POSIX Compatibility:</B> This is a NON-POSIX interface. VxWorks provides the following similar interface: <PRE> - STATUS taskInit( - WIND_TCB *pTcb, - char *name, - int priority, - int options, - uint32 *pStackBase, - int stackSize, - FUNCPTR entryPt, - int arg1, int arg2, int arg3, int arg4, int arg5, - int arg6, int arg7, int arg8, int arg9, int arg10); + STATUS taskInit(WIND_TCB *pTcb, char *name, int priority, int options, uint32 *pStackBase, int stackSize, + FUNCPTR entryPt, int arg1, int arg2, int arg3, int arg4, int arg5, + int arg6, int arg7, int arg8, int arg9, int arg10); </PRE> <P> -The NuttX task_init() differs from VxWorks' taskInit() in the -following ways: + The NuttX task_init() differs from VxWorks' taskInit() in the + following ways: +</p> <UL> <LI>Interface name <LI>Various differences in types or arguments @@ -300,7 +296,7 @@ following ways: <LI>A variable number of parameters can be passed to a task (VxWorks supports ten). </UL> -<H3>2.1.3 task_activate</H3> +<H3><a name="taskactivate">2.1.3 task_activate</a></H3> <P> <B>Function Prototype:</B> @@ -341,15 +337,16 @@ VxWorks provides the following similar interface: </PRE> <P> -The NuttX task_activate() differs from VxWorks' taskActivate() in the -following ways: + The NuttX task_activate() differs from VxWorks' taskActivate() in the + following ways: +</p> <UL> <LI>Function name <LI>With VxWork's taskActivate, the pid argument is supposed to be the pointer to the WIND_TCB cast to an integer. </UL> -<H3>2.1.4 task_delete</H3> +<H3><a name="taskdelete">2.1.4 task_delete</a></H3> <P> <B>Function Prototype:</B> @@ -390,15 +387,16 @@ VxWorks provides the following similar interface: </PRE> <P> -The NuttX task_delete() differs from VxWorks' taskDelete() in -the following ways: + The NuttX task_delete() differs from VxWorks' taskDelete() in + the following ways: +</p> <UL> <LI>No support is provided for calling the tasks deletion routines (because taskDeleteHookAdd() is not supported). <LI>Deletion of self is not supported. Use _exit(); </UL> -<H3>2.1.5 exit</H3> +<H3><a name="exit">2.1.5 exit</a></H3> <P> <B>Function Prototype:</B> @@ -438,13 +436,13 @@ And the unix interface: </PRE> <P> -The NuttX exit() differs from ANSI exit() in -the following ways: + The NuttX exit() differs from ANSI exit() in the following ways: +</p> <UL> <LI>The <I>code</I> parameter is ignored. </UL> -<H3>2.1.6 task_restart</H3> +<H3><a name="taskrestart">2.1.6 task_restart</a></H3> <P> <B>Function Prototype:</B> @@ -487,15 +485,15 @@ VxWorks provides the following similar interface: </PRE> <P> -The NuttX task_restart() differs from VxWorks' taskRestart() in -the following ways: + The NuttX task_restart() differs from VxWorks' taskRestart() in the following ways: +</p> <UL> <LI>Restart of the currently running task is not supported. <LI>The VxWorks description says that the ID, priority, etc. take the value that they had when the task was <I>terminated</I>. </UL> -<H3>2.1.7 getpid</H3> +<H3><a name="getpid">2.1.7 getpid</a></H3> <P> <B>Function Prototype:</B> @@ -524,19 +522,35 @@ Compatible with the POSIX interface of the same name. <H2>2.2 <A NAME="Task_Schedule">Task Scheduling Interfaces</A></H2> -<P> -NuttX performs strict priority scheduling: Tasks of higher -priority have exclusive access to the CPU until they become blocked. -At that time, the CPU is available to tasks of lower priority. -Tasks of equal priority are scheduled FIFO. -<P> -The OS interfaces described in the following paragraphs provide -a POSIX- compliant interface to the NuttX scheduler. However, these -POSIX interfaces assume a greater range of scheduling options -than those provided by the NuttX scheduler. As a result, many of -these POSIX interfaces are little more than stubs. +<p> + By default, NuttX performs strict priority scheduling: Tasks of higher + priority have exclusive access to the CPU until they become blocked. + At that time, the CPU is available to tasks of lower priority. + Tasks of equal priority are scheduled FIFO. +</p> +<p> + Optionally, a Nuttx task or thread can be configured with round-robin + scheduler. This is similar to priority scheduling <i>except</i> that + tasks with equal priority and share CPU time via <i>time-slicing</i>. + The time-slice interval is a constant determined by the configuration + setting <code>CONFIG_RR_INTERVAL</code>. +</p> +<p> + The OS interfaces described in the following paragraphs provide + a POSIX- compliant interface to the NuttX scheduler: +</p> +<ul> + <li><a href="#schedsetparam">2.2.1 sched_setparam</a></li> + <li><a href="#schedgetparam">2.2.2 sched_getparam</a></li> + <li><a href="#schedsetscheduler">2.2.3 sched_setscheduler</a></li> + <li><a href="#setgetscheduler">2.2.4 sched_getscheduler</a></li> + <li><a href="#sched_yield">2.2.5 sched_yield</a></li> + <li><a href="#schedgetprioritymax">2.2.6 sched_get_priority_max</a></li> + <li><a href="#schedgetprioritymin">2.2.7 sched_get_priority_min</a></li> + <li><a href="#schedgetrrinterval">2.2.8 sched_get_rr_interval</a></li> +</ul> -<H3>2.2.1 sched_setparam</H3> +<H3><a name="schedsetparam">2.2.1 sched_setparam</a></H3> <P> <B>Function Prototype:</B> @@ -583,7 +597,7 @@ Differences from the full POSIX implementation include: <LI>The range of priority values for the POSIX call is 0 to 255 </UL> -<H3>2.2.2 sched_getparam</H3> +<H3><a name="schedgetparam">2.2.2 sched_getparam</a></H3> <P> <B>Function Prototype:</B> @@ -617,7 +631,7 @@ element of this structure. <B> POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.2.3 sched_setscheduler</H3> +<H3><a name="schedsetscheduler">2.2.3 sched_setscheduler</a></H3> <P> <B>Function Prototype:</B> <PRE> @@ -660,7 +674,7 @@ interface of the same name. <B> POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.2.4 sched_getscheduler</H3> +<H3><a name="setgetscheduler">2.2.4 sched_getscheduler</a></H3> <P> <B>Function Prototype:</B> <PRE> @@ -670,7 +684,7 @@ interface of the same name. <P> <B>Description:</B> <i>sched_getscheduler()</i> returns the scheduling policy - currently applied to the process identified by pid. If + currently applied to the task identified by pid. If pid equals zero, the policy of the calling process will be retrieved. * @@ -710,7 +724,7 @@ Differences from the full POSIX implementation include: <LI>Does not report errors via <I>errno</I>. </UL> -<H3>2.2.5 sched_yield</H3> +<H3><a name="sched_yield">2.2.5 sched_yield</a></H3> <P> <B>Function Prototype:</B> @@ -736,7 +750,7 @@ up the CPU (only to other tasks at the same priority). <B> POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.2.6 sched_get_priority_max</H3> +<H3><a name="schedgetprioritymax">2.2.6 sched_get_priority_max</a></H3> <P> <B>Function Prototype:</B> @@ -766,7 +780,7 @@ possible task priority for a specified scheduling policy. <B> POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.2.7 sched_get_priority_min</H3> +<H3><a name="schedgetprioritymin">2.2.7 sched_get_priority_min</a></H3> <P> <B>Function Prototype:</B> @@ -796,7 +810,7 @@ possible task priority for a specified scheduling policy. <B> POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.2.8 sched_get_rr_interval</H3> +<H3><a name="schedgetrrinterval">2.2.8 sched_get_rr_interval</a></H3> <P> <B>Function Prototype:</B> @@ -844,7 +858,13 @@ priority of the calling task is returned. <H2>2.3 <A NAME="Task_Switch">Task Switching Interfaces</A></H2> -<H3>2.3.1 sched_lock</H3> +<ul> + <li><a href="#schedlock">2.3.1 sched_lock</a></li> + <li><a href="#schedunlock">2.3.2 sched_unlock</a></li> + <li><a href="#schedlockcount">2.3.3 sched_lockcount</a></li> +</ul> + +<H3><a name="schedlock">2.3.1 sched_lock</a></H3> <P> <B>Function Prototype:</B> @@ -876,7 +896,7 @@ VxWorks provides the comparable interface: STATUS taskLock( void ); </PRE> -<H3>2.3.2 sched_unlock</H3> +<H3><a name="schedunlock">2.3.2 sched_unlock</a></H3> <P> <B>Function Prototype:</B> @@ -909,7 +929,7 @@ VxWorks provides the comparable interface: STATUS taskUnlock( void ); </PRE> -<H3>2.3.3 sched_lockcount</H3> +<H3><a name="schedlockcount">2.3.3 sched_lockcount</a></H3> <P> <B>Function Prototype:</B> @@ -939,12 +959,23 @@ on this thread of execution. <H2>2.4 <A NAME="Message_Queue">Named Message Queue Interfaces</A></H2> -<P> -The NuttX supports POSIX named message queues for intertask communication. -Any task may send or receive messages on named message queues. -Interrupt handlers may send messages via named message queues. +<p> + NuttX supports POSIX named message queues for intertask communication. + Any task may send or receive messages on named message queues. + Interrupt handlers may send messages via named message queues. +</p> +<ul> + <li><a href="#mqopen">2.4.1 mq_open</a></li> + <li><a href="#mqclose">2.4.2 mq_close</a></li> + <li><a href="#mqunlink">2.4.3 mq_unlink</a></li> + <li><a href="#mqsend">2.4.4 mq_send</a></li> + <li><a href="#mqreceive">2.4.5 mq_receive</a></li> + <li><a href="#mqnotify">2.4.6 mq_notify</a></li> + <li><a href="#mqsetattr">2.4.7 mq_setattr</a></li> + <li><a href="#mqgetattr">2.4.8 mq_getattr</a></li> +</ul> -<H3>2.4.1 mq_open</H3> +<H3><a name="mqopen">2.4.1 mq_open</a></H3> <P> <B>Function Prototype:</B> @@ -1013,7 +1044,7 @@ may be sent or received. In the present implementation, this maximum message size is limited at 22 bytes. </UL> -<H3>2.4.2 mq_close</H3> +<H3><a name="mqclose">2.4.2 mq_close</a></H3> <P> <B>Function Prototype:</B> @@ -1058,7 +1089,7 @@ return from mq_close() is undefined. <B> POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.4.3 mq_unlink</H3> +<H3><a name="mqunlink">2.4.3 mq_unlink</a></H3> <P> <B>Function Prototype:</B> @@ -1087,7 +1118,7 @@ closed. <B> POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.4.4 mq_send</H3> +<H3><a name="mqsend">2.4.4 mq_send</a></H3> <P> <B>Function Prototype:</B> @@ -1136,7 +1167,7 @@ Differences from the full POSIX implementation include: <LI>Control is not returned if a signal is received. </UL> -<H3>2.4.5 mq_receive</H3> +<H3><a name="mqreceive">2.4.5 mq_receive</a></H3> <P> <B>Function Prototype:</B> @@ -1186,7 +1217,7 @@ Differences from the full POSIX implementation include: <LI>Control is not returned if a signal is received. </UL> -<H3>2.4.6 mq_notify</H3> +<H3><a name="mqnotify">2.4.6 mq_notify</a></H3> <P> <B>Function Prototype:</B> @@ -1242,7 +1273,7 @@ appropriate <I>mq_receive()</I> ... The resulting behavior is as if the message queue remains empty, and no notification shall be sent.&quot; </UL> -<H3>2.4.7 mq_setattr</H3> +<H3><a name="mqsetattr">2.4.7 mq_setattr</a></H3> <P> <B>Function Prototype:</B> @@ -1281,7 +1312,7 @@ would have been returned by mq_getattr()). <B> POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.4.8 mq_getattr</H3> +<H3><a name="mqgetattr">2.4.8 mq_getattr</a></H3> <P> <B>Function Prototype:</B> @@ -1322,53 +1353,71 @@ interface of the same name. <H2>2.5 <A NAME="Semaphores">Counting Semaphore Interfaces</A></H2> -<P> -<B>Semaphores</B>. Semaphores are the basis for -synchronization and mutual exclusion in NuttX. NuttX supports -POSIX semaphores. -<P> -Semaphores are the preferred mechanism for gaining exclusive access to a -resource. sched_lock() and sched_unlock() can also be used for this purpose. -However, sched_lock() and sched_unlock() have other undesirable side-affects -in the operation of the system: sched_lock() also prevents higher-priority -tasks from running that do not depend upon the semaphore-managed resource -and, as a result, can adversely affect system response times. -<P> -<B>Priority Inversion</B>. Proper use of semaphores avoids the issues of -sched_lock(). However, consider the following example: -<OL> -<LI>Some low-priority task, <I>Task C</I>, acquires a semphore in order to -get exclusive access to a protected resource. -<LI><I>Task C</I> is suspended to allow some high-priority task, -<I>Task A</I>, to execute. -<LI><I>Task A</I> attempts to acquire the semaphore held by <I>Task C</I> and -gets blocked until <I>Task C</I> relinquishes the semaphore. -<LI><I>Task C</I> is allowed to execute again, but gets suspended by some -medium-priority <I>Task B</I>. -</OL> -At this point, the high-priority <I>Task A</I> cannot execute until -<I>Task B</I> (and possibly other medium-priority tasks) completes and until -<I>Task C</I> relinquishes the semaphore. In effect, the high-priority task, -<I>Task A</I> behaves as though it were lower in priority than the -low-priority task, <I>Task C</I>! This phenomenon is called <I>priority -inversion</I>. -<P> -Some operating systems avoid priority inversion by <I>automatically</I> -increasing the priority of the low-priority <I>Task C</I> (the operable -buzz-word for this behavior is <I>mutex</I> semaphores). The NuttX does not -support this behavior. As a consequence, it is left to the designer to -provide implementations that will not suffer from priority inversion. -The designer may, as examples: +<p> + <b>Semaphores</b>. Semaphores are the basis for + synchronization and mutual exclusion in NuttX. NuttX supports + POSIX semaphores. +</p> +<p> + Semaphores are the preferred mechanism for gaining exclusive access to a + resource. sched_lock() and sched_unlock() can also be used for this purpose. + However, sched_lock() and sched_unlock() have other undesirable side-affects + in the operation of the system: sched_lock() also prevents higher-priority + tasks from running that do not depend upon the semaphore-managed resource + and, as a result, can adversely affect system response times. +</p> +<p> + <B>Priority Inversion</B>. Proper use of semaphores avoids the issues of + sched_lock(). However, consider the following example: + <OL> + <LI>Some low-priority task, <I>Task C</I>, acquires a semphore in order to + get exclusive access to a protected resource.</li> + <LI><I>Task C</I> is suspended to allow some high-priority task,</li> + <I>Task A</I>, to execute.</li> + <LI><I>Task A</I> attempts to acquire the semaphore held by <I>Task C</I> and + gets blocked until <I>Task C</I> relinquishes the semaphore.</li> + <LI><I>Task C</I> is allowed to execute again, but gets suspended by some + medium-priority <I>Task B</I>.</li> + </OL> +<p> + At this point, the high-priority <I>Task A</I> cannot execute until + <I>Task B</I> (and possibly other medium-priority tasks) completes and until + <I>Task C</I> relinquishes the semaphore. In effect, the high-priority task, + <I>Task A</I> behaves as though it were lower in priority than the + low-priority task, <I>Task C</I>! This phenomenon is called <I>priority + inversion</I>. +</p> +<p> + Some operating systems avoid priority inversion by <I>automatically</I> + increasing the priority of the low-priority <I>Task C</I> (the operable + buzz-word for this behavior is <I>priority inheritance</I>). NuttX does not + support this behavior. As a consequence, it is left to the designer to + provide implementations that will not suffer from priority inversion. + The designer may, as examples: +</p> <UL> -<LI>Implement all tasks that need the semphore-managed resources at the -same priority level, -<LI>Boost the priority of the low-priority task before the semaphore is -acquired, or -<LI>Use sched_lock() in the low-priority task. + <LI>Implement all tasks that need the semphore-managed resources at the + same priority level,</li> + <LI>Boost the priority of the low-priority task before the semaphore is + acquired, or</li> + <LI>Use sched_lock() in the low-priority task.</li> </UL> -<P> +<p> + POSIX semaphore interfaces: +</p> +<ul> + <li><a href="#seminit">2.5.1 sem_init</a></li> + <li><a href="#semdestroy">2.5.2 sem_destroy</a></li> + <li><a href="#semopen">2.5.3 sem_open</a></li> + <li><a href="#semclose">2.5.4 sem_close</a></li> + <li><a href="#semunlink">2.5.5 sem_unlink</a></li> + <li><a href="#semwait">2.5.6 sem_wait</a></li> + <li><a href="#semtrywait">2.5.7 sem_trywait</a></li> + <li><a href="#sempost">2.5.8 sem_post</a></li> + <li><a href="#semgetvalue">2.5.9 sem_getvalue</a></li> +</ul> -<H3>2.5.1 sem_init</H3> +<H3><a name="seminit">2.5.1 sem_init</a></H3> <P> <B>Function Prototype:</B> @@ -1411,7 +1460,7 @@ Differences from the full POSIX implementation include: <LI>pshared is not used. </UL> -<H3>2.5.2 sem_destroy</H3> +<H3><a name="semdestroy">2.5.2 sem_destroy</a></H3> <P> <B>Function Prototype:</B> @@ -1448,7 +1497,7 @@ blocked is undefined. <B> POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.5.3 sem_open</H3> +<H3><a name="semopen">2.5.3 sem_open</a></H3> <P> <B>Function Prototype:</B> @@ -1514,7 +1563,7 @@ Differences from the full POSIX implementation include: just a counting semaphore. </UL> -<H3>2.5.4 sem_close</H3> +<H3><a name="semclose">2.5.4 sem_close</a></H3> <P> <B>Function Prototype:</B> @@ -1559,7 +1608,7 @@ has already locked. <B> POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.5.5 sem_unlink</H3> +<H3><a name="semunlink">2.5.5 sem_unlink</a></H3> <P> <B>Function Prototype:</B> @@ -1605,7 +1654,7 @@ refer to the same semaphore; POSIX specifies that a new semaphore with the same name should be created after sem_unlink() is called. </UL> -<H3>2.5.6 sem_wait</H3> +<H3><a name="semwait">2.5.6 sem_wait</a></H3> <P> <B>Function Prototype:</B> @@ -1648,7 +1697,7 @@ received by this task. In this case, the semaphore has not be acquired. <B> POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.5.7 sem_trywait</H3> +<H3><a name="semtrywait">2.5.7 sem_trywait</a></H3> <P> <B>Function Prototype:</B> @@ -1690,7 +1739,7 @@ not valid. <B> POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.5.8 sem_post</H3> +<H3><a name="sempost">2.5.8 sem_post</a></H3> <P> <B>Function Prototype:</B> @@ -1733,7 +1782,7 @@ task is the one that is performing the unlock. <B> POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.5.9 sem_getvalue</H3> +<H3><a name="semgetvalue">2.5.9 sem_getvalue</a></H3> <P> <B>Function Prototype:</B> @@ -1777,15 +1826,21 @@ interface of the same name. <H2>2.6 <A NAME="Watchdogs">Watchdog Timer Interfaces</A></H2> <P> -The NuttX provides a general watchdog timer facility. This -facility allows the NuttX user to specify a watchdog timer function -that will run after a specified delay. The watchdog timer function -will run in the context of the timer interrupt handler. Because -of this, a limited number of NuttX interfaces are available to -the watchdog timer function. However, the watchdog timer function -may use mq_send(), and sigqueue() to communicate with NuttX tasks. + NuttX provides a general watchdog timer facility. + This facility allows the NuttX user to specify a watchdog timer function + that will run after a specified delay. + The watchdog timer function will run in the context of the timer interrupt handler. + Because of this, a limited number of NuttX interfaces are available to he watchdog timer function. + However, the watchdog timer function may use mq_send(), sigqueue(), or kill() to communicate with NuttX tasks. +</p> +<ul> + <li><a href="#wdcreate">2.6.1 wd_create</a></li> + <li><a href="#wddelete">2.6.2 wd_delete</a></li> + <li><a href="#wdstart">2.6.3 wd_start</a></li> + <li><a href="#wdcancel">2.6.4 wd_cancel</a></li> +</ul> -<H3>2.6.1 wd_create</H3> +<H3><a name="wdcreate">2.6.1 wd_create</a></H3> <P> <B>Function Prototype:</B> @@ -1823,7 +1878,7 @@ Differences from the VxWorks interface include: initialization time). </UL> -<H3>2.6.2 wd_delete</H3> +<H3><a name="wddelete">2.6.2 wd_delete</a></H3> <P> <B>Function Prototype:</B> @@ -1867,7 +1922,7 @@ Differences from the VxWorks interface include: before de-allocating it (i.e., never returns ERROR). </UL> -<H3>2.6.3 wd_start</H3> +<H3><a name="wdstart">2.6.3 wd_start</a></H3> <P> <B>Function Prototype:</B> @@ -1927,7 +1982,7 @@ to wdentry; VxWorks supports only a single parameter. The maximum number of parameters is determined by </UL> -<H3>2.6.4 wd_cancel</H3> +<H3><a name="wdcancel">2.6.4 wd_cancel</a></H3> <P> <B>Function Prototype:</B> @@ -1965,27 +2020,46 @@ VxWorks provides the following comparable interface: <H2>2.7 <A NAME="Signals">Signal Interfaces</A></H2> -<P> -The NuttX provides signal interfaces for tasks. Signals are -used to alter the flow control of tasks by communicating asynchronous -events within or between task contexts. Any task or interrupt -handler can post (or send) a signal to a particular task. The -task being signaled will execute task-specified signal handler -function the next time that the task has priority. -The signal handler is a user-supplied function that is bound to -a specific signal and performs whatever actions are necessary -whenever the signal is received. -<P> -Signal handlers execute in the context of the task that registered -the signal handler. -<P> -There are no predefined actions for any signal. -The default action for all signals (i.e., when no signal handler has -been supplied by the user) is to ignore the signal. -<P> -Tasks may also suspend themselves and wait until a signal is received. +<p> + NuttX provides signal interfaces for tasks. Signals are used to + alter the flow control of tasks by communicating asynchronous events + within or between task contexts. + Any task or interrupt handler can post (or send) a signal to a particular task. + The task being signaled will execute task-specified signal handler + function the next time that the task has priority. + The signal handler is a user-supplied function that is bound to + a specific signal and performs whatever actions are necessary + whenever the signal is received. +</p> +<p> + There are no predefined actions for any signal. + The default action for all signals (i.e., when no signal handler has + been supplied by the user) is to ignore the signal. + In this sense, all NuttX are <i>real time</i> signals. +</p> +<p> + Tasks may also suspend themselves and wait until a signal is received. +</p> +<p> + The following signal handling interfaces are provided by NuttX: +</p> +<ul> + <li><a href="#sigemptyset">2.7.1 sigemptyset</a></li> + <li><a href="#sigfillset">2.7.2 sigfillset</a></li> + <li><a href="#sigaddset">2.7.3 sigaddset</a></li> + <li><a href="#sigdelset">2.7.4 sigdelset</a></li> + <li><a href="#sigismember">2.7.5 sigismember</a></li> + <li><a href="#sigaction">2.7.6 sigaction</a></li> + <li><a href="#sigprocmask">2.7.7 sigprocmask</a></li> + <li><a href="#sigpending">2.7.8 sigpending</a></li> + <li><a href="#sigsuspend">2.7.9 sigsuspend</a></li> + <li><a href="#sigwaitinfo">2.7.10 sigwaitinfo</a></li> + <li><a href="#sigtimedwait">2.7.11 sigtimedwait</a></li> + <li><a href="#sigqueue">2.7.12 sigqueue</a></li> + <li><a href="#kill">2.7.13 kill</a></li> +</ul> -<H3>2.7.1 sigemptyset</H3> +<H3><a name="sigemptyset">2.7.1 sigemptyset</a></H3> <P> <B>Function Prototype:</B> @@ -2015,7 +2089,7 @@ by set such that all signals are excluded. <B> POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.7.2 sigfillset</H3> +<H3><a name="sigfillset">2.7.2 sigfillset</a></H3> <P> <B>Function Prototype:</B> @@ -2045,7 +2119,7 @@ by set such that all signals are included. <B> POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.7.3 sigaddset</H3> +<H3><a name="sigaddset">2.7.3 sigaddset</a></H3> <P> <B>Function Prototype:</B> @@ -2076,7 +2150,7 @@ signo to the signal set specified by set. <B> POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.7.4 sigdelset</H3> +<H3><a name="sigdelset">2.7.4 sigdelset</a></H3> <P> <B>Function Prototype:</B> @@ -2107,7 +2181,7 @@ by signo from the signal set specified by set. <B> POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.7.5 sigismember</H3> +<H3><a name="sigismember">2.7.5 sigismember</a></H3> <P> <B>Function Prototype:</B> @@ -2140,7 +2214,7 @@ by signo is a member of the set specified by set. <B> POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.7.6 sigaction</H3> +<H3><a name="sigaction">2.7.6 sigaction</a></H3> <P> <B>Function Prototype:</B> @@ -2213,7 +2287,7 @@ not handled (SIG_DFL, SIG_IGN). (all treated like SA_SIGINFO). </UL> -<H3>2.7.7 sigprocmask</H3> +<H3><a name="sigprocmask">2.7.7 sigprocmask</a></H3> <P> <B>Function Prototype:</B> @@ -2263,7 +2337,7 @@ pointed to by the <I>set</I> input parameter. <B> POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.7.8 sigpending</H3> +<H3><a name="sigpending">2.7.8 sigpending</a></H3> <P> <B>Function Prototype:</B> @@ -2301,7 +2375,7 @@ is delivered more than once.&quot; <B> POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.7.9 sigsuspend</H3> +<H3><a name="sigsuspend">2.7.9 sigsuspend</a></H3> <P> <B>Function Prototype:</B> @@ -2349,7 +2423,7 @@ function or to terminate the task.&quot; Only delivery of the signal is required in the present implementation (even if the signal is ignored). </UL> -<H3>2.7.10 sigwaitinfo</H3> +<H3><a name="sigwaitinfo">2.7.10 sigwaitinfo</a></H3> <P> <B>Function Prototype:</B> @@ -2381,7 +2455,7 @@ with a NULL timeout parameter. (see below). <B> POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.7.11 sigtimedwait</H3> +<H3><a name="sigtimedwait">2.7.11 sigtimedwait</a></H3> <P> <B>Function Prototype:</B> @@ -2447,7 +2521,7 @@ that the unblocked signal be caught; the task will be resumed even if the unblocked signal is ignored. </UL> -<H3>2.7.12 sigqueue</H3> +<H3><a name="sigqueue">2.7.12 sigqueue</a></H3> <P> <B>Function Prototype:</B> @@ -2470,7 +2544,7 @@ is delivered more than once.&quot; <P> <B>Input Parameters:</B> <UL> -<LI><I>tid</I>. Process ID of task to receive signal +<LI><I>tid</I>. ID of the task to receive signal <LI><I>signo</I>. Signal number <LI><I>value</I>. Value to pass to task with signal </UL> @@ -2478,7 +2552,15 @@ is delivered more than once.&quot; <P> <B>Returned Values:</B> <UL> -<LI>OK or ERROR +<LI> + On success (at least one signal was sent), zero (OK) is returned. + On error, -1 (ERROR) is returned, and errno is set appropriately. + <ul> + <li><code>EGAIN</code>. The limit of signals which may be queued has been reached.</li> + <li><code>EINVAL</code>. signo was invalid.</li> + <li><code>EPERM</code>. The task does not have permission to send the signal to the receiving process.</li> + <li><code>ESRCH</code>. No process has a PID matching pid.</li> + </ul> </UL> <P> @@ -2490,17 +2572,114 @@ Differences from the POSIX interface include: <UL> <LI>Default action is to ignore signals. <LI>Signals are processed one at a time in order -<LI>Signals will (most likely) be processed on the caller's thread -of execution. <LI>POSIX states that, &quot;If signo is zero (the null signal), error checking will be performed but no signal is actually sent.&quot; There is no null signal in the present implementation; a zero signal will be sent. </UL> -<H2>2.8 <A NAME="Pthread">Pthread Interfaces</A></H2> +<H3><a name="kill">2.7.13 kill</a></H3> + <P> -<H3>2.8.1 pthread_attr_init</A></H3> +<B>Function Prototype:</B> +<PRE> + #include &lt;sys/types.h&gt; + #include &ltsignal.h&gt; + int kill(pid_t pid, int sig); +</PRE> + +<P> +<B>Description:</B> + The kill() system call can be used to send any signal to + any task. +</p> +<p> + If the receiving task has the signal blocked via its sigprocmask, + the signal will pend until it is unmasked. Only one pending signal + (for a given signo) is retained by the system. This is consistent with + POSIX which states: &quot;If a subsequent occurrence of a pending signal + is generated, it is implementation defined as to whether the signal + is delivered more than once.&quot; +</p> +<p> +<b>Input Parameters:</b> +<ul> +<li><I>pid</I>. The id of the task to receive the signal. + The POSIX <code>kill()</code> specification encodes process group + information as zero and negative pid values. + Only positive, non-zero values of pid are supported by this + implementation. ID of the task to receive signal +<LI><I>signo</I>. The signal number to send. +</UL> + +<p> + <B>Returned Values:</B> + <UL> + <LI>OK or ERROR + </UL> +</p> + +<p> + <B>Assumptions/Limitations:</B> +</p> +<p> + <b>POSIX Compatibility:</b> + Comparable to the POSIX interface of the same name. + Differences from the POSIX interface include: +</p> +<ul> + <li>Default action is to ignore signals.</li> + <li>Signals are processed one at a time in order </li> + <li>Sending of signals to 'process groups' is not supported in NuttX.</li> +</ul> + +<H2>2.8 <A NAME="Pthread">Pthread Interfaces</A></H2> +<ul> + <li><a href="#pthreadattrinit">2.8.1 pthread_attr_init</a></li> + <li><a href="#pthreadattrdestroy">2.8.2 pthread_attr_destroy</a></li> + <li><a href="#pthreadattrsetschedpolity">2.8.3 pthread_attr_setschedpolicy</a></li> + <li><a href="#pthreadattrgetschedpolicy">2.8.4 pthread_attr_getschedpolicy</a></li> + <li><a href="#pthreadattrsetschedparam">2.8.5 pthread_attr_setschedparam</a></li> + <li><a href="#pthreadattrgetschedparam">2.8.6 pthread_attr_getschedparam</a></li> + <li><a href="#pthreadattrsetinheritsched">2.8.7 pthread_attr_setinheritsched</a></li> + <li><a href="#pthreadattrgetinheritsched">2.8.8 pthread_attr_getinheritsched</a></li> + <li><a href="#pthreadattrsetstacksize">2.8.9 pthread_attr_setstacksize</a></li> + <li><a href="#pthreadattrgetstacksize">2.8.10 pthread_attr_getstacksize</a></li> + <li><a href="#pthreadcreate">2.8.11 pthread_create</a></li> + <li><a href="#pthreaddetach">2.8.12 pthread_detach</a></li> + <li><a href="#pthreadexit">2.8.13 pthread_exit</a></li> + <li><a href="#pthreadcancel">2.8.14 pthread_cancel</a></li> + <li><a href="#pthreadsetcancelstate">2.8.15 pthread_setcancelstate</a></li> + <li><a href="#pthreadtestcancelstate">2.8.16 pthread_testcancelstate</a></li> + <li><a href="#pthreadjoin">2.8.17 pthread_join</a></li> + <li><a href="#pthreadyield">2.8.18 pthread_yield</a></li> + <li><a href="#pthreadself">2.8.19 pthread_self</a></li> + <li><a href="#pthreadgetschedparam">2.8.20 pthread_getschedparam</a></li> + <li><a href="#pthreadsetschedparam">2.8.21 pthread_setschedparam</a></li> + <li><a href="#pthreadkeycreate">2.8.22 pthread_key_create</a></li> + <li><a href="#pthreadsetspecific">2.8.23 pthread_setspecific</a></li> + <li><a href="#pthreadgetspecific">2.8.24 pthread_getspecific</a></li> + <li><a href="#pthreadkeydelete">2.8.25 pthread_key_delete</a></li> + <li><a href="#pthreadmutexattrinit">2.8.26 pthread_mutexattr_init</a></li> + <li><a href="#pthreadmutexattrdestroy">2.8.27 pthread_mutexattr_destroy</a></li> + <li><a href="#pthreadmutexattrgetpshared">2.8.28 pthread_mutexattr_getpshared</a></li> + <li><a href="#pthreadmutexattrsetpshared">2.8.29 pthread_mutexattr_setpshared</a></li> + <li><a href="#pthreadmutexinit">2.8.30 pthread_mutex_init</a></li> + <li><a href="#pthreadmutexdestrory">2.8.31 pthread_mutex_destroy</a></li> + <li><a href="#pthreadmutexlock">2.8.32 pthread_mutex_lock</a></li> + <li><a href="#pthreadmutextrylock">2.8.33 pthread_mutex_trylock</a></li> + <li><a href="#pthreadmutexunlock">2.8.34 pthread_mutex_unlock</a></li> + <li><a href="#pthreadconaddrinit">2.8.35 pthread_condattr_init</a></li> + <li><a href="#pthreadocndattrdestroy">2.8.36 pthread_condattr_destroy</a></li> + <li><a href="#pthreadcondinit">2.8.37 pthread_cond_init</a></li> + <li><a href="#pthreadconddestroy">2.8.38 pthread_cond_destroy</a></li> + <li><a href="#pthreadcondbroadcast">2.8.39 pthread_cond_broadcast</a></li> + <li><a href="#pthreadcondsignal">2.8.40 pthread_cond_signal</a></li> + <li><a href="#pthreadcondwait">2.8.41 pthread_cond_wait</a></li> + <li><a href="#pthreadcondtimedwait">2.8.42 pthread_cond_timedwait</a></li> +</ul> + +<H3><a name="pthreadattrinit">2.8.1 pthread_attr_init</A></H3> <P> <B>Function Prototype:</B> <P> @@ -2533,7 +2712,7 @@ returned to indicate the error: <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. <P> -<H3>2.8.2 pthread_attr_destroy</A></H3> +<H3><a name="pthreadattrdestroy">2.8.2 pthread_attr_destroy</A></H3> <P> <B>Function Prototype:</B> <P> @@ -2565,7 +2744,7 @@ returned to indicate the error: <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. <P> -<H3>2.8.3 pthread_attr_setschedpolicy</A></H3> +<H3><a name="pthreadattrsetschedpolity">2.8.3 pthread_attr_setschedpolicy</A></H3> <P> <B>Function Prototype:</B> <P> @@ -2596,7 +2775,7 @@ returned to indicate the error: <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.8.4 pthread_attr_getschedpolicy</A></H3> +<H3><a name="pthreadattrgetschedpolicy">2.8.4 pthread_attr_getschedpolicy</A></H3> <P> <B>Function Prototype:</B> <P> @@ -2627,7 +2806,7 @@ returned to indicate the error: <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.8.5 pthread_attr_setschedparam</A></H3> +<H3><a name="pthreadattrsetschedparam">2.8.5 pthread_attr_setschedparam</A></H3> <P> <B>Function Prototype:</B> <P> @@ -2659,7 +2838,7 @@ returned to indicate the error: <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.8.6 pthread_attr_getschedparam</A></H3> +<H3><a name="pthreadattrgetschedparam">2.8.6 pthread_attr_getschedparam</A></H3> <P> <B>Function Prototype:</B> <P> @@ -2691,7 +2870,7 @@ returned to indicate the error: <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.8.7 pthread_attr_setinheritsched</A></H3> +<H3><a name="pthreadattrsetinheritsched">2.8.7 pthread_attr_setinheritsched</A></H3> <P> <B>Function Prototype:</B> <P> @@ -2723,7 +2902,7 @@ returned to indicate the error: <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. <P> -<H3>2.8.8 pthread_attr_getinheritsched</A></H3> +<H3><a name="pthreadattrgetinheritsched">2.8.8 pthread_attr_getinheritsched</A></H3> <P> <B>Function Prototype:</B> <P> @@ -2755,7 +2934,7 @@ returned to indicate the error: <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.8.9 pthread_attr_setstacksize</A></H3> +<H3><a name="pthreadattrsetstacksize">2.8.9 pthread_attr_setstacksize</A></H3> <P> <B>Function Prototype:</B> <P> @@ -2786,7 +2965,7 @@ returned to indicate the error: <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.8.10 pthread_attr_getstacksize</A></H3> +<H3><a name="pthreadattrgetstacksize">2.8.10 pthread_attr_getstacksize</A></H3> <P> <B>Function Prototype:</B> <P> @@ -2817,7 +2996,7 @@ returned to indicate the error: <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.8.11 pthread_create</A></H3> +<H3><a name="pthreadcreate">2.8.11 pthread_create</A></H3> <P> <B>Function Prototype:</B> <P> @@ -2856,7 +3035,7 @@ returned to indicate the error: <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.8.12 pthread_detach</A></H3> +<H3><a name="pthreaddetach">2.8.12 pthread_detach</A></H3> <P> <B>Function Prototype:</B> <P> @@ -2889,7 +3068,7 @@ returned to indicate the error: <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.8.13 pthread_exit</A></H3> +<H3><a name="pthreadexit">2.8.13 pthread_exit</A></H3> <P> <B>Function Prototype:</B> <P> @@ -2921,7 +3100,7 @@ returned to indicate the error: <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.8.14 pthread_cancel</A></H3> +<H3><a name="pthreadcancel">2.8.14 pthread_cancel</A></H3> <P> <B>Function Prototype:</B> <P> @@ -2977,7 +3156,7 @@ the time when cancelation is re-enabled.</li> <li>Thread cancellation at <i>cancellation points</i> is not supported.</li> </UL> -<H3>2.8.15 pthread_setcancelstate</A></H3> +<H3><a name="pthreadsetcancelstate">2.8.15 pthread_setcancelstate</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3019,17 +3198,17 @@ No thread could be found corresponding to that specified by the given thread ID. <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.8.16 pthread_setcancelstate</A></H3> +<H3><a name="pthreadtestcancelstate">2.8.16 pthread_testcancelstate</A></H3> <P> <B>Function Prototype:</B> <P> <PRE> #include &lt;pthread.h&gt; - int pthread_setcancelstate(int state, int *oldstate); + int pthread_setcancelstate(void); </PRE> <P> <B>Description:</B> -<P> +<P><b>NOT SUPPORTED</b> <B>Input Parameters:</B> <P> <UL> @@ -3050,7 +3229,7 @@ returned to indicate the error: <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.8.17 pthread_join</A></H3> +<H3><a name="pthreadjoin">2.8.17 pthread_join</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3083,7 +3262,7 @@ returned to indicate the error: <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.8.18 pthread_yield</A></H3> +<H3><a name="pthreadyield">2.8.18 pthread_yield</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3116,7 +3295,7 @@ returned to indicate the error: <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.8.19 pthread_self</A></H3> +<H3><a name="pthreadself">2.8.19 pthread_self</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3148,7 +3327,7 @@ returned to indicate the error: <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.8.20 pthread_getschedparam</A></H3> +<H3><a name="pthreadgetschedparam">2.8.20 pthread_getschedparam</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3180,7 +3359,7 @@ returned to indicate the error: <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.8.21 pthread_setschedparam</A></H3> +<H3><a name="pthreadsetschedparam">2.8.21 pthread_setschedparam</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3212,7 +3391,7 @@ returned to indicate the error: <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.8.22 pthread_key_create</A></H3> +<H3><a name="pthreadkeycreate">2.8.22 pthread_key_create</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3267,7 +3446,7 @@ interface of the same name. <LI>The present implementation ignores the destructor argument. </UL> -<H3>2.8.23 pthread_setspecific</A></H3> +<H3><a name="pthreadsetspecific">2.8.23 pthread_setspecific</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3317,7 +3496,7 @@ interface of the same name. destructor function. </UL> -<H3>2.8.24 pthread_getspecific</A></H3> +<H3><a name="pthreadgetspecific">2.8.24 pthread_getspecific</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3358,7 +3537,7 @@ interface of the same name. destructor function. </UL> -<H3>2.8.25 pthread_key_delete</A></H3> +<H3><a name="pthreadkeydelete">2.8.25 pthread_key_delete</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3390,7 +3569,7 @@ this function does nothing in the present implementation. <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.8.26 pthread_mutexattr_init</A></H3> +<H3><a name="pthreadmutexattrinit">2.8.26 pthread_mutexattr_init</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3421,7 +3600,7 @@ returned to indicate the error: <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.8.27 pthread_mutexattr_destroy</A></H3> +<H3><a name="pthreadmutexattrdestroy">2.8.27 pthread_mutexattr_destroy</A></H3> <P> <B>Function Protoype:</B> <P> @@ -3452,7 +3631,7 @@ returned to indicate the error: <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.8.28 pthread_mutexattr_getpshared</A></H3> +<H3><a name="pthreadmutexattrgetpshared">2.8.28 pthread_mutexattr_getpshared</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3484,7 +3663,7 @@ returned to indicate the error: <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.8.29 pthread_mutexattr_setpshared</A></H3> +<H3><a name="pthreadmutexattrsetpshared">2.8.29 pthread_mutexattr_setpshared</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3516,7 +3695,7 @@ returned to indicate the error: <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.8.30 pthread_mutex_init</A></H3> +<H3><a name="pthreadmutexinit">2.8.30 pthread_mutex_init</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3548,7 +3727,7 @@ returned to indicate the error: <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.8.31 pthread_mutex_destroy</A></H3> +<H3><a name="pthreadmutexdestrory">2.8.31 pthread_mutex_destroy</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3579,7 +3758,7 @@ returned to indicate the error: <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.8.32 pthread_mutex_lock</A></H3> +<H3><a name="pthreadmutexlock">2.8.32 pthread_mutex_lock</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3610,7 +3789,7 @@ returned to indicate the error: <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.8.33 pthread_mutex_trylock</A></H3> +<H3><a name="pthreadmutextrylock">2.8.33 pthread_mutex_trylock</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3641,7 +3820,7 @@ returned to indicate the error: <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.8.34 pthread_mutex_unlock</A></H3> +<H3><a name="pthreadmutexunlock">2.8.34 pthread_mutex_unlock</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3672,7 +3851,7 @@ returned to indicate the error: <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.8.35 pthread_condattr_init</A></H3> +<H3><a name="pthreadconaddrinit">2.8.35 pthread_condattr_init</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3703,7 +3882,7 @@ returned to indicate the error: <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.8.36 pthread_condattr_destroy</A></H3> +<H3><a name="pthreadocndattrdestroy">2.8.36 pthread_condattr_destroy</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3734,7 +3913,7 @@ returned to indicate the error: <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.8.37 pthread_cond_init</A></H3> +<H3><a name="pthreadcondinit">2.8.37 pthread_cond_init</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3765,7 +3944,7 @@ returned to indicate the error: <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.8.38 pthread_cond_destroy</A></H3> +<H3><a name="pthreadconddestroy">2.8.38 pthread_cond_destroy</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3796,7 +3975,7 @@ returned to indicate the error: <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.8.39 pthread_cond_broadcast</A></H3> +<H3><a name="pthreadcondbroadcast">2.8.39 pthread_cond_broadcast</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3827,7 +4006,7 @@ returned to indicate the error: <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.8.40 pthread_cond_signal</A></H3> +<H3><a name="pthreadcondsignal">2.8.40 pthread_cond_signal</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3858,7 +4037,7 @@ returned to indicate the error: <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.8.41 pthread_cond_wait</A></H3> +<H3><a name="pthreadcondwait">2.8.41 pthread_cond_wait</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3889,7 +4068,7 @@ returned to indicate the error: <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3>2.8.42 pthread_cond_timedwait</A></H3> +<H3><a name="pthreadcondtimedwait">2.8.42 pthread_cond_timedwait</A></H3> <P> <B>Function Prototype:</B> <P> @@ -4124,5 +4303,115 @@ notify a task when a message is available on a queue. have to do some redesign. </p> +<h1><a name="index">Index</a></h1> +<ul> + <li><a href="#Data_Structures">Data structures</a> + <li><a href="#exit">exit</a></li> + <li><a href="#getpid">getpid</a></li> + <li><a href="#Introduction">Introduction</a> + <li><a href="#kill">kill</a></li> + <li><a href="#Message_Queue">Named Message Queue Interfaces</a> + <li><a href="#mqclose">mq_close</a></li> + <li><a href="#mqgetattr">mq_getattr</a></li> + <li><a href="#mqnotify">mq_notify</a></li> + <li><a href="#mqopen">mq_open</a></li> + <li><a href="#mqreceive">mq_receive</a></li> + <li><a href="#mqsend">mq_send</a></li> + <li><a href="#mqsetattr">mq_setattr</a></li> + <li><a href="#mqunlink">mq_unlink</a></li> + <li><a href="#OS_Interfaces">OS Interfaces</a> + <li><a href="#pthreadattrdestroy">pthread_attr_destroy</a></li> + <li><a href="#pthreadattrgetinheritsched">pthread_attr_getinheritsched</a></li> + <li><a href="#pthreadattrgetschedparam">pthread_attr_getschedparam</a></li> + <li><a href="#pthreadattrgetschedpolicy">pthread_attr_getschedpolicy</a></li> + <li><a href="#pthreadattrgetstacksize">0 pthread_attr_getstacksize</a></li> + <li><a href="#pthreadattrinit">pthread_attr_init</a></li> + <li><a href="#pthreadattrsetinheritsched">pthread_attr_setinheritsched</a></li> + <li><a href="#pthreadattrsetschedparam">pthread_attr_setschedparam</a></li> + <li><a href="#pthreadattrsetschedpolity">pthread_attr_setschedpolicy</a></li> + <li><a href="#pthreadattrsetstacksize">pthread_attr_setstacksize</a></li> + <li><a href="#pthreadcancel">pthread_cancel</a></li> + <li><a href="#pthreadconaddrinit">pthread_condattr_init</a></li> + <li><a href="#pthreadcondbroadcast">pthread_cond_broadcast</a></li> + <li><a href="#pthreadconddestroy">pthread_cond_destroy</a></li> + <li><a href="#pthreadcondinit">pthread_cond_init</a></li> + <li><a href="#pthreadcondsignal">pthread_cond_signal</a></li> + <li><a href="#pthreadcondtimedwait">pthread_cond_timedwait</a></li> + <li><a href="#pthreadcondwait">pthread_cond_wait</a></li> + <li><a href="#pthreadcreate">pthread_create</a></li> + <li><a href="#pthreaddetach">pthread_detach</a></li> + <li><a href="#pthreadexit">pthread_exit</a></li> + <li><a href="#pthreadgetschedparam">pthread_getschedparam</a></li> + <li><a href="#pthreadgetspecific">pthread_getspecific</a></li> + <li><a href="#Pthread"><i>pthreads</i></a> share some resources. + <li><a href="#pthreadjoin">pthread_join</a></li> + <li><a href="#pthreadkeycreate">pthread_key_create</a></li> + <li><a href="#pthreadkeydelete">pthread_key_delete</a></li> + <li><a href="#pthreadmutexattrdestroy">pthread_mutexattr_destroy</a></li> + <li><a href="#pthreadmutexattrgetpshared">pthread_mutexattr_getpshared</a></li> + <li><a href="#pthreadmutexattrinit">pthread_mutexattr_init</a></li> + <li><a href="#pthreadmutexattrsetpshared">pthread_mutexattr_setpshared</a></li> + <li><a href="#pthreadmutexdestrory">pthread_mutex_destroy</a></li> + <li><a href="#pthreadmutexinit">pthread_mutex_init</a></li> + <li><a href="#pthreadmutexlock">pthread_mutex_lock</a></li> + <li><a href="#pthreadmutextrylock">pthread_mutex_trylock</a></li> + <li><a href="#pthreadmutexunlock">pthread_mutex_unlock</a></li> + <li><a href="#pthreadocndattrdestroy">pthread_condattr_destroy</a></li> + <li><a href="#Pthread">Pthread Interfaces</a> + <li><a href="#pthreadself">pthread_self</a></li> + <li><a href="#pthreadsetcancelstate">pthread_setcancelstate</a></li> + <li><a href="#pthreadsetschedparam">pthread_setschedparam</a></li> + <li><a href="#pthreadsetspecific">pthread_setspecific</a></li> + <li><a href="#pthreadtestcancelstate">pthread_testcancelstate</a></li> + <li><a href="#pthreadyield">pthread_yield</a></li> + <li><a href="#schedgetparam">sched_getparam</a></li> + <li><a href="#schedgetprioritymax">sched_get_priority_max</a></li> + <li><a href="#schedgetprioritymin">sched_get_priority_min</a></li> + <li><a href="#schedgetrrinterval">sched_get_rr_interval</a></li> + <li><a href="#schedlockcount">sched_lockcount</a></li> + <li><a href="#schedlock">sched_lock</a></li> + <li><a href="#schedsetparam">sched_setparam</a></li> + <li><a href="#schedsetscheduler">sched_setscheduler</a></li> + <li><a href="#schedunlock">sched_unlock</a></li> + <li><a href="#sched_yield">sched_yield</a></li> + <li><a href="#Semaphores">Counting Semaphore Interfaces</a> + <li><a href="#semclose">sem_close</a></li> + <li><a href="#semdestroy">sem_destroy</a></li> + <li><a href="#semgetvalue">sem_getvalue</a></li> + <li><a href="#seminit">sem_init</a></li> + <li><a href="#semopen">sem_open</a></li> + <li><a href="#sempost">sem_post</a></li> + <li><a href="#semtrywait">sem_trywait</a></li> + <li><a href="#semunlink">sem_unlink</a></li> + <li><a href="#semwait">sem_wait</a></li> + <li><a href="#setgetscheduler">sched_getscheduler</a></li> + <li><a href="#sigaction">sigaction</a></li> + <li><a href="#sigaddset">sigaddset</a></li> + <li><a href="#sigdelset">sigdelset</a></li> + <li><a href="#sigemptyset">sigemptyset</a></li> + <li><a href="#sigfillset">sigfillset</a></li> + <li><a href="#sigismember">sigismember</a></li> + <li><a href="#Signals">Signal Interfaces</a> + <li><a href="#sigpending">sigpending</a></li> + <li><a href="#sigprocmask">sigprocmask</a></li> + <li><a href="#sigqueue">sigqueue</a></li> + <li><a href="#sigsuspend">sigsuspend</a></li> + <li><a href="#sigtimedwait">sigtimedwait</a></li> + <li><a href="#sigwaitinfo">sigwaitinfo</a></li> + <li><a href="#taskactivate">task_activate</a></li> + <li><a href="#Task_Control">Task Control Interfaces</a> + <li><a href="#taskcreate">task_create</a></li> + <li><a href="#taskdelete">task_delete</a></li> + <li><a href="#taskinit">task_init</a></li> + <li><a href="#taskrestart">task_restart</a></li> + <li><a href="#Task_Schedule">Task Scheduling Interfaces</a> + <li><a href="#Task_Switch">Task Switching Interfaces</a> + <li><a href="#Watchdogs">Watchdog Timer Interfaces</a> + <li><a href="#wdcancel">wd_cancel</a></li> + <li><a href="#wdcreate">wd_create</a></li> + <li><a href="#wddelete">wd_delete</a></li> + <li><a href="#wdstart">wd_start</a></li> +</ul> + </BODY> </HTML> From 28da5a6c19af1dc32908f7abee71d222379f5468 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 21 Mar 2007 00:56:49 +0000 Subject: [PATCH 0024/1518] Add the framework to support POSIX timers git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@110 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxUserGuide.html | 891 +++++++++++++++++++++++------- 1 file changed, 703 insertions(+), 188 deletions(-) diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index d20f05c179..134a46dbcd 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -42,8 +42,10 @@ into several paragraphs that describe different groups of OS interfaces: <LI>Paragraph 2.4 <A HREF="#Message_Queue">Named Message Queue Interfaces</A> <LI>Paragraph 2.5 <A HREF="#Semaphores">Counting Semaphore Interfaces</A> <LI>Paragraph 2.6 <A HREF="#Watchdogs">Watchdog Timer Interfaces</A> -<LI>Paragraph 2.7 <A HREF="#Signals">Signal Interfaces</A> -<LI>Paragraph 2.8 <A HREF="#Pthread">Pthread Interfaces</A> +<LI>Paragraph 2.7 <A HREF="#ClocksNTimers">Clocks and Timers</A> +<LI>Paragraph 2.8 <A HREF="#Signals">Signal Interfaces</A> +<LI>Paragraph 2.9 <A HREF="#Pthread">Pthread Interfaces</A> +<LI>Paragraph 2.10 <A HREF="#FileSystem">Filesystem Interfaces</A> </UL> <LI><B>Section 3.0, <A HREF="#Data_Structures">OS Data Structures</A></B>: This section documents the data structures that are used at the NuttX @@ -1983,7 +1985,6 @@ number of parameters is determined by </UL> <H3><a name="wdcancel">2.6.4 wd_cancel</a></H3> - <P> <B>Function Prototype:</B> <PRE> @@ -2018,7 +2019,427 @@ VxWorks provides the following comparable interface: <HR> -<H2>2.7 <A NAME="Signals">Signal Interfaces</A></H2> +<H2><A NAME="ClocksNTimers">2.7 Clocks and Timers</A></H2> +<ul> + <li><a href="#clocksettime">2.7.1 clock_settime</a></li> + <li><a href="#clockgettime">2.7.2 clock_gettime</a></li> + <li><a href="#clockgetres">2.7.3 clock_getres</a></li> + <li><a href="#mktime">2.7.4 mktime</a></li> + <li><a href="#gmtimer">2.7.5 gmtime_r</a></li> + <li><a href="#localtimer">2.7.6 localtime_r</a></li> + <li><a href="#timercreate">2.7.7 timer_create</a></li> + <li><a href="#timerdelete">2.7.8 timer_delete</a></li> + <li><a href="#timersettime">2.7.9 timer_settime</a></li> + <li><a href="#timergettime">2.7.10 timer_gettime</a></li> + <li><a href="#timergetoverrun">2.7.11 timer_getoverrun</a></li> +</ul> + +<H3><a name="clocksettime">2.7.1 clock_settime</A></H3> +<p> + <b>Function Prototype:</b> +</p> +<pre> + #include &lt;time.h&gt; + int clock_settime(clockid_t clockid, const struct timespec *tp); +</pre> +<p> + <b>Description:</b> +</p> +<p> + <b>Input Parameters:</b> +</p> +<ul> + <li><code>parm</code>. </li> +</ul> +<p> + <b>Returned Values:</b> +</p> +<p> + If successful, the <I>clock_settime()</I> function will return zero (<I>OK</I>). + Otherwise, an non-zero error number will be returned to indicate the error: +</p> +<ul> + <li><code>Exxx</code>.</li> +</ul> + +<H3><a name="clockgettime">2.7.2 clock_gettime</A></H3> +<p> + <b>Function Prototype:</b> +</p> +<pre> + #include &lt;time.h&gt; + int clock_gettime(clockid_t clockid, struct timespec *tp); +</pre> +<p> + <b>Description:</b> +</p> +<p> + <b>Input Parameters:</b> +</p> +<ul> + <li><code>parm</code>. </li> +</ul> +<p> + <b>Returned Values:</b> +</p> +<p> + If successful, the <I>clock_gettime()</I> function will return zero (<I>OK</I>). + Otherwise, an non-zero error number will be returned to indicate the error: +</p> +<ul> + <li><code>Exxx</code>.</li> +</ul> + +<H3><a name="clockgetres">2.7.3 clock_getres</A></H3> +<p> + <b>Function Prototype:</b> +</p> +<pre> + #include &lt;time.h&gt; + int clock_getres(clockid_t clockid, struct timespec *res); +</pre> +<p> + <b>Description:</b> +</p> +<p> + <b>Input Parameters:</b> +</p> +<ul> + <li><code>parm</code>. </li> +</ul> +<p> + <b>Returned Values:</b> +</p> +<p> + If successful, the <I>clock_getres()</I> function will return zero (<I>OK</I>). + Otherwise, an non-zero error number will be returned to indicate the error: +</p> +<ul> + <li><code>Exxx</code>.</li> +</ul> + +<H3><a name="mktime">2.7.4 mktime</A></H3> +<p> + <b>Function Prototype:</b> +</p> +<pre> + #include &lt;time.h&gt; + time_t mktime(struct tm *tp); +</pre> +<p> + <b>Description:</b> +</p> +<p> + <b>Input Parameters:</b> +</p> +<ul> + <li><code>parm</code>. </li> +</ul> +<p> + <b>Returned Values:</b> +</p> +<p> + If successful, the <I>mktime()</I> function will return zero (<I>OK</I>). + Otherwise, an non-zero error number will be returned to indicate the error: +</p> +<ul> + <li><code>Exxx</code>.</li> +</ul> + +<H3><a name="gmtimer">2.7.5 gmtime_r</A></H3> +<p> + <b>Function Prototype:</b> +</p> +<pre> + #include &lt;time.h&gt; + struct tm *gmtime_r(const time_t *clock, struct tm *result); +</pre> +<p> + <b>Description:</b> +</p> +<p> + <b>Input Parameters:</b> +</p> +<ul> + <li><code>parm</code>. </li> +</ul> +<p> + <b>Returned Values:</b> +</p> +<p> + If successful, the <I>gmtime_r()</I> function will return zero (<I>OK</I>). + Otherwise, an non-zero error number will be returned to indicate the error: +</p> +<ul> + <li><code>Exxx</code>.</li> +</ul> + +<H3><a name="localtimer">2.7.6 localtime_r</A></H3> +<pre> + #include &lt;time.h&gt; + #define localtime_r(c,r) gmtime_r(c,r) +</pre> + +<H3><a name="timercreate">2.7.7 timer_create</A></H3> +<p> + <b>Function Prototype:</b> +</p> +<pre> + #include &lt;time.h&gt; + int timer_create(clockid_t clockid, struct sigevent *evp, timer_t *timerid); +</pre> +<p> + <b>Description:</b> + The <code>timer_create()</code> function creates per-thread timer using the specified + clock, <code>clock_id</code>, as the timing base. + The <code>timer_create()</code> function returns, in + the location referenced by <code>timerid</code>, a timer ID of type timer_t used to identify + the timer in timer requests. + This timer ID is unique until the timer is deleted. + The particular clock, <code>clock_id<code>, is defined in <code>&lt;time.h&gt;<code>. + The timer whose ID is returned will be in a disarmed state upon return from + <code>timer_create()</code>. +</p> +<p> + The <code>evp</code> argument, if non-NULL, points to a <code>sigevent</code> structure. + This structure is allocated by the called and defines the asynchronous notification to occur. + If the <code>evp</code> argument is NULL, the effect is as if the <code>evp</code> argument pointed to + a <code>sigevent</code> structure with the <code>sigev_notify</code> member having the value <code>SIGEV_SIGNAL</code>, + the <code>sigev_signo</code> having a default signal number, and the <code>sigev_value</code> member + having the value of the timer ID. +</p> +<p> + Each implementation defines a set of clocks that can be used as timing bases + for per-thread timers. All implementations shall support a <code>clock_id</code> of + <code>CLOCK_REALTIME</code>. +</p> +<p> + <b>Input Parameters:</b> +</p> +<ul> + <li><code>clockid</code>. Specifies the clock to use as the timing base.</li> + <li><code>evp</code>. Refers to a user allocated sigevent structure that defines the + asynchronous notification. evp may be NULL (see above).</li> + <li><code>timerid</code>. The pre-thread timer created by the call to timer_create().</li> +</ul> +<p> + <b>Returned Values:</b> +</p> +<p> + If the call succeeds, <code>timer_create()</code> will return 0 (<code>OK</code>) and update the + location referenced by <code>timerid</code> to a <code>timer_t</code>, which can be passed to the + other per-thread timer calls. If an error occurs, the function will return + a value of -1 (<code>ERROR</code>) and set errno to indicate the error. +</p> +<ul> + <li><code>EAGAIN</code>. The system lacks sufficient signal queuing resources to honor the + request.</li> + <li><code>EAGAIN</code>. The calling process has already created all of the timers it is + allowed by this implementation.</li> + <li><code>EINVAL</code>. The specified clock ID is not defined.</li> + <li><code>ENOTSUP</code>. The implementation does not support the creation of a timer attached + to the CPU-time clock that is specified by clock_id and associated with a + thread different thread invoking timer_create().</li> +</ul> + +<H3><a name="timerdelete">2.7.8 timer_delete</A></H3> +<p> + <b>Function Prototype:</b> +</p> +<pre> + #include &lt;time.h&gt; + int timer_delete(timer_t timerid); +</pre> +<p> + <b>Description:</b> + The <code>timer_delete()</code> function deletes the specified timer, <code>timerid</code>, previously + created by the <code>timer_create()</code> function. + If the timer is armed when <code>timer_delete()</code> is called, the timer will be automatically disarmed before + removal. + The disposition of pending signals for the deleted timer is unspecified. +</p> +<p> + <b>Input Parameters:</b> +</p> +<ul> + <li><code>timerid</code>. + The pre-thread timer, previously created by the call to timer_create(), to be deleted.</li> +</ul> +<p> + <b>Returned Values:</b> +</p> +<p> + If successful, the <I>timer_delete()</I> function will return zero (<I>OK</I>). + Otherwise, the function will return a value of -1 (ERROR) and set errno to indicate the error: +</p> +<ul> + <li><code>EINVAL</code>. The timer specified timerid is not valid.</li> +</ul> + +<H3><a name="timersettime">2.7.9 timer_settime</A></H3> +<p> + <b>Function Prototype:</b> +</p> +<pre> + #include &lt;time.h&gt; + int timer_settime(timer_t timerid, int flags, const struct itimerspec *value, + struct itimerspec *ovalue); +</pre> +<p> + <b>Description:</b> + The <code>timer_settime()</code> function sets the time until the next expiration of the + timer specified by <code>timerid</code> from the <code>it_value</code> member of the value argument + and arm the timer if the <code>it_value</code> member of value is non-zero. If the + specified timer was already armed when <code>timer_settime()</code> is called, this call + will reset the time until next expiration to the value specified. If the + <code>it_value</code> member of value is zero, the timer will be disarmed. The effect + of disarming or resetting a timer with pending expiration notifications is + unspecified. +</p> +<p> + If the flag <code>TIMER_ABSTIME</code> is not set in the argument flags, <code>timer_settime()</code> + will behave as if the time until next expiration is set to be equal to the + interval specified by the <code>it_value</code> member of value. That is, the timer will + expire in <code>it_value</code> nanoseconds from when the call is made. If the flag + <code>TIMER_ABSTIME</code> is set in the argument flags, <code>timer_settime()</code> will behave as + if the time until next expiration is set to be equal to the difference between + the absolute time specified by the <code>it_value</code> member of value and the current + value of the clock associated with <code>timerid</code>. That is, the timer will expire + when the clock reaches the value specified by the <code>it_value</code> member of value. + If the specified time has already passed, the function will succeed and the + expiration notification will be made. +</p> +<p> + The reload value of the timer will be set to the value specified by the + <code>it_interval</code> member of value. When a timer is armed with a non-zero + <code>it_interval</code>, a periodic (or repetitive) timer is specified. +</p> +<p> + Time values that are between two consecutive non-negative integer multiples + of the resolution of the specified timer will be rounded up to the larger + multiple of the resolution. Quantization error will not cause the timer to + expire earlier than the rounded time value. +</p> +<p> + If the argument <code>ovalue</code> is not NULL, the t<code>imer_settime()</code> function will store, + in the location referenced by <code>ovalue</code>, a value representing the previous + amount of time before the timer would have expired, or zero if the timer was + disarmed, together with the previous timer reload value. Timers will not + expire before their scheduled time. +</p> +<p> + <b>Input Parameters:</b> +</p> +<ul> + <li><code>timerid</code>. The pre-thread timer, previously created by the call to timer_create(), to be be set.</li> + <li><code>flags</code>. Specifie characteristics of the timer (see above)</li> + <li><code>value</code>. Specifies the timer value to set</li> + <li><code>ovalue</code>. A location in which to return the time remaining from the previous timer setting.</li> +</ul> +<p> + <b>Returned Values:</b> +</p> +<p> + If the timer_gettime() succeeds, a value of 0 (OK) will be returned. + If an error occurs, the value -1 (ERROR) will be returned, and errno set to indicate the error. +</p> +<ul> + <li><code>EINVAL</code>. The timerid argument does not correspond to an ID returned by timer_create() but not yet deleted by timer_delete().</li> + <li><code>EINVAL</code>. A value structure specified a nanosecond value less than zero or greater than or equal to 1000 million, + and the it_value member of that structure did not specify zero seconds and nanoseconds.</li> +</ul> + +<H3><a name="timergettime">2.7.10 timer_gettime</A></H3> +<p> + <b>Function Prototype:</b> +</p> +<pre> + #include &lt;time.h&gt; + int timer_gettime(timer_t timerid, struct itimerspec *value); +</pre> +<p> + <b>Description:</b> + The <code>timer_gettime()</code> function will store the amount of time until the + specified timer, <code>timerid</code>, expires and the reload value of the timer into the + space pointed to by the <code>value</code> argument. The <code>it_value</code> member of this structure + will contain the amount of time before the timer expires, or zero if the timer + is disarmed. This value is returned as the interval until timer expiration, + even if the timer was armed with absolute time. The <code>it_interval</code> member of + <code>value</code> will contain the reload value last set by <code>timer_settime()</code>. +</p> +<p> + <b>Input Parameters:</b> +</p> +<ul> + <li><code>timerid</code>. Specifies pre-thread timer, previously created by the call to + t<code>imer_create()</code>, whose remaining count will be returned.</li> +</ul> +<p> + <b>Returned Values:</b> +</p> +<p> + If successful, the <I>timer_gettime()</I> function will return zero (<I>OK</I>). + Otherwise, an non-zero error number will be returned to indicate the error: +</p> +<ul> + <li><code>EINVAL</code>. + The <code>timerid</code> argument does not correspond to an ID returned by + <code>timer_create()</code> but not yet deleted by <code>timer_delete()</code>.</li> +</ul> + +<H3><a name="timergetoverrun">2.7.11 timer_getoverrun</A></H3> +<p> + <b>Function Prototype:</b> +</p> +<pre> + #include &lt;time.h&gt; + int timer_getoverrun(timer_t timerid); +</pre> +<p> + <b>Description:</b> + Only a single signal will be queued to the process for a given timer at any + point in time. When a timer for which a signal is still pending expires, no + signal will be queued, and a timer overrun will occur. When a timer + expiration signal is delivered to or accepted by a process, if the + implementation supports the <i>Realtime Signals Extension</i>, the + <code>timer_getoverrun()</code> function will return the timer expiration overrun count for + the specified timer. The overrun count returned contains the number of extra + timer expirations that occurred between the time the signal was generated + (queued) and when it was delivered or accepted, up to but not including an + implementation-defined maximum of <code>DELAYTIMER_MAX</code>. If the number of such + extra expirations is greater than or equal to <code>DELAYTIMER_MAX</code>, then the + overrun count will be set to <code>DELAYTIMER_MAX</code>. The value returned by + <code>timer_getoverrun()</code> will apply to the most recent expiration signal delivery + or acceptance for the timer. If no expiration signal has been delivered + for the timer, or if the <i>Realtime Signals Extension</i> is not supported, the + return value of <code>timer_getoverrun()</code> is unspecified. +</p> +<p> + <b>Input Parameters:</b> +</p> +<ul> + <li><code>timerid</code>. Specifies pre-thread timer, previously created by the call to + <code>timer_create()</code>, whose overrun count will be returned.</li> +</ul> +<p> + <b>Returned Values:</b> + If the <code>timer_getoverrun()</code> function succeeds, it will return the timer + expiration overrun count as explained above. <code>timer_getoverrun()</code> will fail if: +</p> +<ul> + <li><code>EINVAL</code>. + The <code>timerid</code> argument does not correspond to an ID returned by + <code>timer_create()</code> but not yet deleted by <code>timer_delete()</code>.</li> +</ul> + +<B>Assumptions/Limitations:</B> +<P> +<B>POSIX Compatibility:</B> Comparable to the POSIX +interface of the same name. + +<HR> + +<H2>2.8 <A NAME="Signals">Signal Interfaces</A></H2> <p> NuttX provides signal interfaces for tasks. Signals are used to @@ -2044,22 +2465,22 @@ VxWorks provides the following comparable interface: The following signal handling interfaces are provided by NuttX: </p> <ul> - <li><a href="#sigemptyset">2.7.1 sigemptyset</a></li> - <li><a href="#sigfillset">2.7.2 sigfillset</a></li> - <li><a href="#sigaddset">2.7.3 sigaddset</a></li> - <li><a href="#sigdelset">2.7.4 sigdelset</a></li> - <li><a href="#sigismember">2.7.5 sigismember</a></li> - <li><a href="#sigaction">2.7.6 sigaction</a></li> - <li><a href="#sigprocmask">2.7.7 sigprocmask</a></li> - <li><a href="#sigpending">2.7.8 sigpending</a></li> - <li><a href="#sigsuspend">2.7.9 sigsuspend</a></li> - <li><a href="#sigwaitinfo">2.7.10 sigwaitinfo</a></li> - <li><a href="#sigtimedwait">2.7.11 sigtimedwait</a></li> - <li><a href="#sigqueue">2.7.12 sigqueue</a></li> - <li><a href="#kill">2.7.13 kill</a></li> + <li><a href="#sigemptyset">2.8.1 sigemptyset</a></li> + <li><a href="#sigfillset">2.8.2 sigfillset</a></li> + <li><a href="#sigaddset">2.8.3 sigaddset</a></li> + <li><a href="#sigdelset">2.8.4 sigdelset</a></li> + <li><a href="#sigismember">2.8.5 sigismember</a></li> + <li><a href="#sigaction">2.8.6 sigaction</a></li> + <li><a href="#sigprocmask">2.8.7 sigprocmask</a></li> + <li><a href="#sigpending">2.8.8 sigpending</a></li> + <li><a href="#sigsuspend">2.8.9 sigsuspend</a></li> + <li><a href="#sigwaitinfo">2.8.10 sigwaitinfo</a></li> + <li><a href="#sigtimedwait">2.8.11 sigtimedwait</a></li> + <li><a href="#sigqueue">2.8.12 sigqueue</a></li> + <li><a href="#kill">2.8.13 kill</a></li> </ul> -<H3><a name="sigemptyset">2.7.1 sigemptyset</a></H3> +<H3><a name="sigemptyset">2.8.1 sigemptyset</a></H3> <P> <B>Function Prototype:</B> @@ -2089,7 +2510,7 @@ by set such that all signals are excluded. <B> POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3><a name="sigfillset">2.7.2 sigfillset</a></H3> +<H3><a name="sigfillset">2.8.2 sigfillset</a></H3> <P> <B>Function Prototype:</B> @@ -2119,7 +2540,7 @@ by set such that all signals are included. <B> POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3><a name="sigaddset">2.7.3 sigaddset</a></H3> +<H3><a name="sigaddset">2.8.3 sigaddset</a></H3> <P> <B>Function Prototype:</B> @@ -2150,7 +2571,7 @@ signo to the signal set specified by set. <B> POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3><a name="sigdelset">2.7.4 sigdelset</a></H3> +<H3><a name="sigdelset">2.8.4 sigdelset</a></H3> <P> <B>Function Prototype:</B> @@ -2181,7 +2602,7 @@ by signo from the signal set specified by set. <B> POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3><a name="sigismember">2.7.5 sigismember</a></H3> +<H3><a name="sigismember">2.8.5 sigismember</a></H3> <P> <B>Function Prototype:</B> @@ -2214,7 +2635,7 @@ by signo is a member of the set specified by set. <B> POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3><a name="sigaction">2.7.6 sigaction</a></H3> +<H3><a name="sigaction">2.8.6 sigaction</a></H3> <P> <B>Function Prototype:</B> @@ -2287,7 +2708,7 @@ not handled (SIG_DFL, SIG_IGN). (all treated like SA_SIGINFO). </UL> -<H3><a name="sigprocmask">2.7.7 sigprocmask</a></H3> +<H3><a name="sigprocmask">2.8.7 sigprocmask</a></H3> <P> <B>Function Prototype:</B> @@ -2337,7 +2758,7 @@ pointed to by the <I>set</I> input parameter. <B> POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3><a name="sigpending">2.7.8 sigpending</a></H3> +<H3><a name="sigpending">2.8.8 sigpending</a></H3> <P> <B>Function Prototype:</B> @@ -2375,7 +2796,7 @@ is delivered more than once.&quot; <B> POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3><a name="sigsuspend">2.7.9 sigsuspend</a></H3> +<H3><a name="sigsuspend">2.8.9 sigsuspend</a></H3> <P> <B>Function Prototype:</B> @@ -2423,7 +2844,7 @@ function or to terminate the task.&quot; Only delivery of the signal is required in the present implementation (even if the signal is ignored). </UL> -<H3><a name="sigwaitinfo">2.7.10 sigwaitinfo</a></H3> +<H3><a name="sigwaitinfo">2.8.10 sigwaitinfo</a></H3> <P> <B>Function Prototype:</B> @@ -2455,7 +2876,7 @@ with a NULL timeout parameter. (see below). <B> POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3><a name="sigtimedwait">2.7.11 sigtimedwait</a></H3> +<H3><a name="sigtimedwait">2.8.11 sigtimedwait</a></H3> <P> <B>Function Prototype:</B> @@ -2521,7 +2942,7 @@ that the unblocked signal be caught; the task will be resumed even if the unblocked signal is ignored. </UL> -<H3><a name="sigqueue">2.7.12 sigqueue</a></H3> +<H3><a name="sigqueue">2.8.12 sigqueue</a></H3> <P> <B>Function Prototype:</B> @@ -2578,7 +2999,7 @@ There is no null signal in the present implementation; a zero signal will be sent. </UL> -<H3><a name="kill">2.7.13 kill</a></H3> +<H3><a name="kill">2.8.13 kill</a></H3> <P> <B>Function Prototype:</B> @@ -2633,53 +3054,53 @@ be sent. <li>Sending of signals to 'process groups' is not supported in NuttX.</li> </ul> -<H2>2.8 <A NAME="Pthread">Pthread Interfaces</A></H2> +<H2>2.9 <A NAME="Pthread">Pthread Interfaces</A></H2> <ul> - <li><a href="#pthreadattrinit">2.8.1 pthread_attr_init</a></li> - <li><a href="#pthreadattrdestroy">2.8.2 pthread_attr_destroy</a></li> - <li><a href="#pthreadattrsetschedpolity">2.8.3 pthread_attr_setschedpolicy</a></li> - <li><a href="#pthreadattrgetschedpolicy">2.8.4 pthread_attr_getschedpolicy</a></li> - <li><a href="#pthreadattrsetschedparam">2.8.5 pthread_attr_setschedparam</a></li> - <li><a href="#pthreadattrgetschedparam">2.8.6 pthread_attr_getschedparam</a></li> - <li><a href="#pthreadattrsetinheritsched">2.8.7 pthread_attr_setinheritsched</a></li> - <li><a href="#pthreadattrgetinheritsched">2.8.8 pthread_attr_getinheritsched</a></li> - <li><a href="#pthreadattrsetstacksize">2.8.9 pthread_attr_setstacksize</a></li> - <li><a href="#pthreadattrgetstacksize">2.8.10 pthread_attr_getstacksize</a></li> - <li><a href="#pthreadcreate">2.8.11 pthread_create</a></li> - <li><a href="#pthreaddetach">2.8.12 pthread_detach</a></li> - <li><a href="#pthreadexit">2.8.13 pthread_exit</a></li> - <li><a href="#pthreadcancel">2.8.14 pthread_cancel</a></li> - <li><a href="#pthreadsetcancelstate">2.8.15 pthread_setcancelstate</a></li> - <li><a href="#pthreadtestcancelstate">2.8.16 pthread_testcancelstate</a></li> - <li><a href="#pthreadjoin">2.8.17 pthread_join</a></li> - <li><a href="#pthreadyield">2.8.18 pthread_yield</a></li> - <li><a href="#pthreadself">2.8.19 pthread_self</a></li> - <li><a href="#pthreadgetschedparam">2.8.20 pthread_getschedparam</a></li> - <li><a href="#pthreadsetschedparam">2.8.21 pthread_setschedparam</a></li> - <li><a href="#pthreadkeycreate">2.8.22 pthread_key_create</a></li> - <li><a href="#pthreadsetspecific">2.8.23 pthread_setspecific</a></li> - <li><a href="#pthreadgetspecific">2.8.24 pthread_getspecific</a></li> - <li><a href="#pthreadkeydelete">2.8.25 pthread_key_delete</a></li> - <li><a href="#pthreadmutexattrinit">2.8.26 pthread_mutexattr_init</a></li> - <li><a href="#pthreadmutexattrdestroy">2.8.27 pthread_mutexattr_destroy</a></li> - <li><a href="#pthreadmutexattrgetpshared">2.8.28 pthread_mutexattr_getpshared</a></li> - <li><a href="#pthreadmutexattrsetpshared">2.8.29 pthread_mutexattr_setpshared</a></li> - <li><a href="#pthreadmutexinit">2.8.30 pthread_mutex_init</a></li> - <li><a href="#pthreadmutexdestrory">2.8.31 pthread_mutex_destroy</a></li> - <li><a href="#pthreadmutexlock">2.8.32 pthread_mutex_lock</a></li> - <li><a href="#pthreadmutextrylock">2.8.33 pthread_mutex_trylock</a></li> - <li><a href="#pthreadmutexunlock">2.8.34 pthread_mutex_unlock</a></li> - <li><a href="#pthreadconaddrinit">2.8.35 pthread_condattr_init</a></li> - <li><a href="#pthreadocndattrdestroy">2.8.36 pthread_condattr_destroy</a></li> - <li><a href="#pthreadcondinit">2.8.37 pthread_cond_init</a></li> - <li><a href="#pthreadconddestroy">2.8.38 pthread_cond_destroy</a></li> - <li><a href="#pthreadcondbroadcast">2.8.39 pthread_cond_broadcast</a></li> - <li><a href="#pthreadcondsignal">2.8.40 pthread_cond_signal</a></li> - <li><a href="#pthreadcondwait">2.8.41 pthread_cond_wait</a></li> - <li><a href="#pthreadcondtimedwait">2.8.42 pthread_cond_timedwait</a></li> + <li><a href="#pthreadattrinit">2.9.1 pthread_attr_init</a></li> + <li><a href="#pthreadattrdestroy">2.9.2 pthread_attr_destroy</a></li> + <li><a href="#pthreadattrsetschedpolity">2.9.3 pthread_attr_setschedpolicy</a></li> + <li><a href="#pthreadattrgetschedpolicy">2.9.4 pthread_attr_getschedpolicy</a></li> + <li><a href="#pthreadattrsetschedparam">2.9.5 pthread_attr_setschedparam</a></li> + <li><a href="#pthreadattrgetschedparam">2.9.6 pthread_attr_getschedparam</a></li> + <li><a href="#pthreadattrsetinheritsched">2.9.7 pthread_attr_setinheritsched</a></li> + <li><a href="#pthreadattrgetinheritsched">2.9.8 pthread_attr_getinheritsched</a></li> + <li><a href="#pthreadattrsetstacksize">2.9.9 pthread_attr_setstacksize</a></li> + <li><a href="#pthreadattrgetstacksize">2.9.10 pthread_attr_getstacksize</a></li> + <li><a href="#pthreadcreate">2.9.11 pthread_create</a></li> + <li><a href="#pthreaddetach">2.9.12 pthread_detach</a></li> + <li><a href="#pthreadexit">2.9.13 pthread_exit</a></li> + <li><a href="#pthreadcancel">2.9.14 pthread_cancel</a></li> + <li><a href="#pthreadsetcancelstate">2.9.15 pthread_setcancelstate</a></li> + <li><a href="#pthreadtestcancelstate">2.9.16 pthread_testcancelstate</a></li> + <li><a href="#pthreadjoin">2.9.17 pthread_join</a></li> + <li><a href="#pthreadyield">2.9.18 pthread_yield</a></li> + <li><a href="#pthreadself">2.9.19 pthread_self</a></li> + <li><a href="#pthreadgetschedparam">2.9.20 pthread_getschedparam</a></li> + <li><a href="#pthreadsetschedparam">2.9.21 pthread_setschedparam</a></li> + <li><a href="#pthreadkeycreate">2.9.22 pthread_key_create</a></li> + <li><a href="#pthreadsetspecific">2.9.23 pthread_setspecific</a></li> + <li><a href="#pthreadgetspecific">2.9.24 pthread_getspecific</a></li> + <li><a href="#pthreadkeydelete">2.9.25 pthread_key_delete</a></li> + <li><a href="#pthreadmutexattrinit">2.9.26 pthread_mutexattr_init</a></li> + <li><a href="#pthreadmutexattrdestroy">2.9.27 pthread_mutexattr_destroy</a></li> + <li><a href="#pthreadmutexattrgetpshared">2.9.28 pthread_mutexattr_getpshared</a></li> + <li><a href="#pthreadmutexattrsetpshared">2.9.29 pthread_mutexattr_setpshared</a></li> + <li><a href="#pthreadmutexinit">2.9.30 pthread_mutex_init</a></li> + <li><a href="#pthreadmutexdestrory">2.9.31 pthread_mutex_destroy</a></li> + <li><a href="#pthreadmutexlock">2.9.32 pthread_mutex_lock</a></li> + <li><a href="#pthreadmutextrylock">2.9.33 pthread_mutex_trylock</a></li> + <li><a href="#pthreadmutexunlock">2.9.34 pthread_mutex_unlock</a></li> + <li><a href="#pthreadconaddrinit">2.9.35 pthread_condattr_init</a></li> + <li><a href="#pthreadocndattrdestroy">2.9.36 pthread_condattr_destroy</a></li> + <li><a href="#pthreadcondinit">2.9.37 pthread_cond_init</a></li> + <li><a href="#pthreadconddestroy">2.9.38 pthread_cond_destroy</a></li> + <li><a href="#pthreadcondbroadcast">2.9.39 pthread_cond_broadcast</a></li> + <li><a href="#pthreadcondsignal">2.9.40 pthread_cond_signal</a></li> + <li><a href="#pthreadcondwait">2.9.41 pthread_cond_wait</a></li> + <li><a href="#pthreadcondtimedwait">2.9.42 pthread_cond_timedwait</a></li> </ul> -<H3><a name="pthreadattrinit">2.8.1 pthread_attr_init</A></H3> +<H3><a name="pthreadattrinit">2.9.1 pthread_attr_init</A></H3> <P> <B>Function Prototype:</B> <P> @@ -2700,19 +3121,19 @@ for all of the individual attributes used by the implementation. <P> <B>Returned Values:</B> <P> -If successful, the <I>xxx()</I> function will return +If successful, the <I>pthread_attr_init()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: <P> <UL> -<LI><I>Exxx</I>. + <li><code>Exxx</code>. </li> </UL> <B>Assumptions/Limitations:</B> <P> <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. <P> -<H3><a name="pthreadattrdestroy">2.8.2 pthread_attr_destroy</A></H3> +<H3><a name="pthreadattrdestroy">2.9.2 pthread_attr_destroy</A></H3> <P> <B>Function Prototype:</B> <P> @@ -2732,19 +3153,19 @@ An attributes object can be deleted when it is no longer needed. <P> <B>Returned Values:</B> <P> -If successful, the <I>xxx()</I> function will return +If successful, the <I>pthread_attr_destroy()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: <P> <UL> -<LI><I>Exxx</I>. + <li><code>Exxx</code>. </li> </UL> <B>Assumptions/Limitations:</B> <P> <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. <P> -<H3><a name="pthreadattrsetschedpolity">2.8.3 pthread_attr_setschedpolicy</A></H3> +<H3><a name="pthreadattrsetschedpolity">2.9.3 pthread_attr_setschedpolicy</A></H3> <P> <B>Function Prototype:</B> <P> @@ -2763,19 +3184,19 @@ interface of the same name. <P> <B>Returned Values:</B> <P> -If successful, the <I>xxx()</I> function will return +If successful, the <I>pthread_attr_setschedpolicy()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: <P> <UL> -<LI><I>Exxx</I>. + <li><code>Exxx</code>. </li> </UL> <B>Assumptions/Limitations:</B> <P> <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadattrgetschedpolicy">2.8.4 pthread_attr_getschedpolicy</A></H3> +<H3><a name="pthreadattrgetschedpolicy">2.9.4 pthread_attr_getschedpolicy</A></H3> <P> <B>Function Prototype:</B> <P> @@ -2794,19 +3215,19 @@ interface of the same name. <P> <B>Returned Values:</B> <P> -If successful, the <I>xxx()</I> function will return +If successful, the <I>pthread_attr_getschedpolicy()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: <P> <UL> -<LI><I>Exxx</I>. + <li><code>Exxx</code>. </li> </UL> <B>Assumptions/Limitations:</B> <P> <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadattrsetschedparam">2.8.5 pthread_attr_setschedparam</A></H3> +<H3><a name="pthreadattrsetschedparam">2.9.5 pthread_attr_getschedpolicy</A></H3> <P> <B>Function Prototype:</B> <P> @@ -2826,19 +3247,19 @@ interface of the same name. <P> <B>Returned Values:</B> <P> -If successful, the <I>xxx()</I> function will return +If successful, the <I>pthread_attr_getschedpolicy()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: <P> <UL> -<LI><I>Exxx</I>. + <li><code>Exxx</code>. </li> </UL> <B>Assumptions/Limitations:</B> <P> <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadattrgetschedparam">2.8.6 pthread_attr_getschedparam</A></H3> +<H3><a name="pthreadattrgetschedparam">2.9.6 pthread_attr_getschedparam</A></H3> <P> <B>Function Prototype:</B> <P> @@ -2858,19 +3279,19 @@ interface of the same name. <P> <B>Returned Values:</B> <P> -If successful, the <I>xxx()</I> function will return +If successful, the <I>pthread_attr_getschedparam()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: <P> <UL> -<LI><I>Exxx</I>. + <li><code>Exxx</code>. </li> </UL> <B>Assumptions/Limitations:</B> <P> <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadattrsetinheritsched">2.8.7 pthread_attr_setinheritsched</A></H3> +<H3><a name="pthreadattrsetinheritsched">2.9.7 pthread_attr_setinheritsched</A></H3> <P> <B>Function Prototype:</B> <P> @@ -2890,19 +3311,19 @@ interface of the same name. <P> <B>Returned Values:</B> <P> -If successful, the <I>xxx()</I> function will return +If successful, the <I>pthread_attr_setinheritsched()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: <P> <UL> -<LI><I>Exxx</I>. + <li><code>Exxx</code>. </li> </UL> <B>Assumptions/Limitations:</B> <P> <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. <P> -<H3><a name="pthreadattrgetinheritsched">2.8.8 pthread_attr_getinheritsched</A></H3> +<H3><a name="pthreadattrgetinheritsched">2.9.8 pthread_attr_getinheritsched</A></H3> <P> <B>Function Prototype:</B> <P> @@ -2922,19 +3343,19 @@ interface of the same name. <P> <B>Returned Values:</B> <P> -If successful, the <I>xxx()</I> function will return +If successful, the <I>pthread_attr_getinheritsched()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: <P> <UL> -<LI><I>Exxx</I>. + <li><code>Exxx</code>. </li> </UL> <B>Assumptions/Limitations:</B> <P> <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadattrsetstacksize">2.8.9 pthread_attr_setstacksize</A></H3> +<H3><a name="pthreadattrsetstacksize">2.9.9 pthread_attr_setstacksize</A></H3> <P> <B>Function Prototype:</B> <P> @@ -2953,19 +3374,19 @@ interface of the same name. <P> <B>Returned Values:</B> <P> -If successful, the <I>xxx()</I> function will return +If successful, the <I>pthread_attr_setstacksize()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: <P> <UL> -<LI><I>Exxx</I>. + <li><code>Exxx</code>. </li> </UL> <B>Assumptions/Limitations:</B> <P> <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadattrgetstacksize">2.8.10 pthread_attr_getstacksize</A></H3> +<H3><a name="pthreadattrgetstacksize">2.9.10 pthread_attr_getstacksize</A></H3> <P> <B>Function Prototype:</B> <P> @@ -2984,19 +3405,19 @@ interface of the same name. <P> <B>Returned Values:</B> <P> -If successful, the <I>xxx()</I> function will return +If successful, the <I>pthread_attr_getstacksize()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: <P> <UL> -<LI><I>Exxx</I>. + <li><code>Exxx</code>. </li> </UL> <B>Assumptions/Limitations:</B> <P> <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadcreate">2.8.11 pthread_create</A></H3> +<H3><a name="pthreadcreate">2.9.11 pthread_create</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3023,19 +3444,19 @@ specify details about the kind of thread being created. <P> <B>Returned Values:</B> <P> -If successful, the <I>xxx()</I> function will return +If successful, the <I>pthread_create()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: <P> <UL> -<LI><I>Exxx</I>. + <li><code>Exxx</code>. </li> </UL> <B>Assumptions/Limitations:</B> <P> <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3><a name="pthreaddetach">2.8.12 pthread_detach</A></H3> +<H3><a name="pthreaddetach">2.9.12 pthread_detach</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3056,19 +3477,19 @@ return value and completion status will not be requested. <P> <B>Returned Values:</B> <P> -If successful, the <I>xxx()</I> function will return +If successful, the <I>pthread_detach()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: <P> <UL> -<LI><I>Exxx</I>. + <li><code>Exxx</code>. </li> </UL> <B>Assumptions/Limitations:</B> <P> <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadexit">2.8.13 pthread_exit</A></H3> +<H3><a name="pthreadexit">2.9.13 pthread_exit</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3088,19 +3509,19 @@ A thread may terminate it's own execution. <P> <B>Returned Values:</B> <P> -If successful, the <I>xxx()</I> function will return +If successful, the <I>pthread_exit()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: <P> <UL> -<LI><I>Exxx</I>. + <li><code>Exxx</code>. </li> </UL> <B>Assumptions/Limitations:</B> <P> <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadcancel">2.8.14 pthread_cancel</A></H3> +<H3><a name="pthreadcancel">2.9.14 pthread_cancel</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3156,7 +3577,7 @@ the time when cancelation is re-enabled.</li> <li>Thread cancellation at <i>cancellation points</i> is not supported.</li> </UL> -<H3><a name="pthreadsetcancelstate">2.8.15 pthread_setcancelstate</A></H3> +<H3><a name="pthreadsetcancelstate">2.9.15 pthread_setcancelstate</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3198,7 +3619,7 @@ No thread could be found corresponding to that specified by the given thread ID. <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadtestcancelstate">2.8.16 pthread_testcancelstate</A></H3> +<H3><a name="pthreadtestcancelstate">2.9.16 pthread_testcancelstate</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3217,19 +3638,19 @@ interface of the same name. <P> <B>Returned Values:</B> <P> -If successful, the <I>xxx()</I> function will return +If successful, the <I>pthread_setcancelstate()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: <P> <UL> -<LI><I>Exxx</I>. + <li><code>Exxx</code>. </li> </UL> <B>Assumptions/Limitations:</B> <P> <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadjoin">2.8.17 pthread_join</A></H3> +<H3><a name="pthreadjoin">2.9.17 pthread_join</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3250,19 +3671,19 @@ the return value of the thread. <P> <B>Returned Values:</B> <P> -If successful, the <I>xxx()</I> function will return +If successful, the <I>pthread_join()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: <P> <UL> -<LI><I>Exxx</I>. + <li><code>Exxx</code>. </li> </UL> <B>Assumptions/Limitations:</B> <P> <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadyield">2.8.18 pthread_yield</A></H3> +<H3><a name="pthreadyield">2.9.18 pthread_yield</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3283,19 +3704,19 @@ made available. <P> <B>Returned Values:</B> <P> -If successful, the <I>xxx()</I> function will return +If successful, the <I>pthread_yield()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: <P> <UL> -<LI><I>Exxx</I>. + <li><code>Exxx</code>. </li> </UL> <B>Assumptions/Limitations:</B> <P> <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadself">2.8.19 pthread_self</A></H3> +<H3><a name="pthreadself">2.9.19 pthread_self</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3315,19 +3736,19 @@ A thread may obtain a copy of its own thread handle. <P> <B>Returned Values:</B> <P> -If successful, the <I>xxx()</I> function will return +If successful, the <I>pthread_self()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: <P> <UL> -<LI><I>Exxx</I>. + <li><code>Exxx</code>. </li> </UL> <B>Assumptions/Limitations:</B> <P> <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadgetschedparam">2.8.20 pthread_getschedparam</A></H3> +<H3><a name="pthreadgetschedparam">2.9.20 pthread_getschedparam</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3347,19 +3768,19 @@ interface of the same name. <P> <B>Returned Values:</B> <P> -If successful, the <I>xxx()</I> function will return +If successful, the <I>pthread_getschedparam()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: <P> <UL> -<LI><I>Exxx</I>. + <li><code>Exxx</code>. </li> </UL> <B>Assumptions/Limitations:</B> <P> <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadsetschedparam">2.8.21 pthread_setschedparam</A></H3> +<H3><a name="pthreadsetschedparam">2.9.21 pthread_setschedparam</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3379,19 +3800,19 @@ interface of the same name. <P> <B>Returned Values:</B> <P> -If successful, the <I>xxx()</I> function will return +If successful, the <I>pthread_setschedparam()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: <P> <UL> -<LI><I>Exxx</I>. + <li><code>Exxx</code>. </li> </UL> <B>Assumptions/Limitations:</B> <P> <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadkeycreate">2.8.22 pthread_key_create</A></H3> +<H3><a name="pthreadkeycreate">2.9.22 pthread_key_create</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3446,7 +3867,7 @@ interface of the same name. <LI>The present implementation ignores the destructor argument. </UL> -<H3><a name="pthreadsetspecific">2.8.23 pthread_setspecific</A></H3> +<H3><a name="pthreadsetspecific">2.9.23 pthread_setspecific</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3496,7 +3917,7 @@ interface of the same name. destructor function. </UL> -<H3><a name="pthreadgetspecific">2.8.24 pthread_getspecific</A></H3> +<H3><a name="pthreadgetspecific">2.9.24 pthread_getspecific</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3537,7 +3958,7 @@ interface of the same name. destructor function. </UL> -<H3><a name="pthreadkeydelete">2.8.25 pthread_key_delete</A></H3> +<H3><a name="pthreadkeydelete">2.9.25 pthread_key_delete</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3569,7 +3990,7 @@ this function does nothing in the present implementation. <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadmutexattrinit">2.8.26 pthread_mutexattr_init</A></H3> +<H3><a name="pthreadmutexattrinit">2.9.26 pthread_mutexattr_init</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3588,19 +4009,19 @@ interface of the same name. <P> <B>Returned Values:</B> <P> -If successful, the <I>xxx()</I> function will return +If successful, the <I>pthread_mutexattr_init()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: <P> <UL> -<LI><I>Exxx</I>. + <li><code>Exxx</code>. </li> </UL> <B>Assumptions/Limitations:</B> <P> <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadmutexattrdestroy">2.8.27 pthread_mutexattr_destroy</A></H3> +<H3><a name="pthreadmutexattrdestroy">2.9.27 pthread_mutexattr_destroy</A></H3> <P> <B>Function Protoype:</B> <P> @@ -3619,19 +4040,19 @@ interface of the same name. <P> <B>Returned Values:</B> <P> -If successful, the <I>xxx()</I> function will return +If successful, the <I>pthread_mutexattr_destroy()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: <P> <UL> -<LI><I>Exxx</I>. + <li><code>Exxx</code>. </li> </UL> <B>Assumptions/Limitations:</B> <P> <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadmutexattrgetpshared">2.8.28 pthread_mutexattr_getpshared</A></H3> +<H3><a name="pthreadmutexattrgetpshared">2.9.28 pthread_mutexattr_getpshared</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3651,19 +4072,19 @@ interface of the same name. <P> <B>Returned Values:</B> <P> -If successful, the <I>xxx()</I> function will return +If successful, the <I>pthread_mutexattr_getpshared()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: <P> <UL> -<LI><I>Exxx</I>. + <li><code>Exxx</code>. </li> </UL> <B>Assumptions/Limitations:</B> <P> <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadmutexattrsetpshared">2.8.29 pthread_mutexattr_setpshared</A></H3> +<H3><a name="pthreadmutexattrsetpshared">2.9.29 pthread_mutexattr_setpshared</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3683,19 +4104,19 @@ interface of the same name. <P> <B>Returned Values:</B> <P> -If successful, the <I>xxx()</I> function will return +If successful, the <I>pthread_mutexattr_setpshared()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: <P> <UL> -<LI><I>Exxx</I>. + <li><code>Exxx</code>. </li> </UL> <B>Assumptions/Limitations:</B> <P> <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadmutexinit">2.8.30 pthread_mutex_init</A></H3> +<H3><a name="pthreadmutexinit">2.9.30 pthread_mutex_init</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3715,19 +4136,19 @@ interface of the same name. <P> <B>Returned Values:</B> <P> -If successful, the <I>xxx()</I> function will return +If successful, the <I>pthread_mutex_init()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: <P> <UL> -<LI><I>Exxx</I>. + <li><code>Exxx</code>. </li> </UL> <B>Assumptions/Limitations:</B> <P> <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadmutexdestrory">2.8.31 pthread_mutex_destroy</A></H3> +<H3><a name="pthreadmutexdestrory">2.9.31 pthread_mutex_destroy</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3746,19 +4167,19 @@ interface of the same name. <P> <B>Returned Values:</B> <P> -If successful, the <I>xxx()</I> function will return +If successful, the <I>pthread_mutex_destroy()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: <P> <UL> -<LI><I>Exxx</I>. + <li><code>Exxx</code>. </li> </UL> <B>Assumptions/Limitations:</B> <P> <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadmutexlock">2.8.32 pthread_mutex_lock</A></H3> +<H3><a name="pthreadmutexlock">2.9.32 pthread_mutex_lock</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3777,19 +4198,19 @@ interface of the same name. <P> <B>Returned Values:</B> <P> -If successful, the <I>xxx()</I> function will return +If successful, the <I>pthread_mutex_lock()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: <P> <UL> -<LI><I>Exxx</I>. + <li><code>Exxx</code>. </li> </UL> <B>Assumptions/Limitations:</B> <P> <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadmutextrylock">2.8.33 pthread_mutex_trylock</A></H3> +<H3><a name="pthreadmutextrylock">2.9.33 pthread_mutex_trylock</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3808,19 +4229,19 @@ interface of the same name. <P> <B>Returned Values:</B> <P> -If successful, the <I>xxx()</I> function will return +If successful, the <I>pthread_mutex_trylock()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: <P> <UL> -<LI><I>Exxx</I>. + <li><code>Exxx</code>. </li> </UL> <B>Assumptions/Limitations:</B> <P> <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadmutexunlock">2.8.34 pthread_mutex_unlock</A></H3> +<H3><a name="pthreadmutexunlock">2.9.34 pthread_mutex_unlock</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3839,19 +4260,19 @@ interface of the same name. <P> <B>Returned Values:</B> <P> -If successful, the <I>xxx()</I> function will return +If successful, the <I>pthread_mutex_unlock()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: <P> <UL> -<LI><I>Exxx</I>. + <li><code>Exxx</code>. </li> </UL> <B>Assumptions/Limitations:</B> <P> <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadconaddrinit">2.8.35 pthread_condattr_init</A></H3> +<H3><a name="pthreadconaddrinit">2.9.35 pthread_condattr_init</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3870,19 +4291,19 @@ interface of the same name. <P> <B>Returned Values:</B> <P> -If successful, the <I>xxx()</I> function will return +If successful, the <I>pthread_condattr_init()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: <P> <UL> -<LI><I>Exxx</I>. + <li><code>Exxx</code>. </li> </UL> <B>Assumptions/Limitations:</B> <P> <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadocndattrdestroy">2.8.36 pthread_condattr_destroy</A></H3> +<H3><a name="pthreadocndattrdestroy">2.9.36 pthread_condattr_destroy</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3901,19 +4322,19 @@ interface of the same name. <P> <B>Returned Values:</B> <P> -If successful, the <I>xxx()</I> function will return +If successful, the <I>pthread_condattr_destroy()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: <P> <UL> -<LI><I>Exxx</I>. + <li><code>Exxx</code>. </li> </UL> <B>Assumptions/Limitations:</B> <P> <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadcondinit">2.8.37 pthread_cond_init</A></H3> +<H3><a name="pthreadcondinit">2.9.37 pthread_cond_init</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3932,19 +4353,19 @@ interface of the same name. <P> <B>Returned Values:</B> <P> -If successful, the <I>xxx()</I> function will return +If successful, the <I>pthread_cond_init()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: <P> <UL> -<LI><I>Exxx</I>. + <li><code>Exxx</code>. </li> </UL> <B>Assumptions/Limitations:</B> <P> <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadconddestroy">2.8.38 pthread_cond_destroy</A></H3> +<H3><a name="pthreadconddestroy">2.9.38 pthread_cond_destroy</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3963,19 +4384,19 @@ interface of the same name. <P> <B>Returned Values:</B> <P> -If successful, the <I>xxx()</I> function will return +If successful, the <I>pthread_cond_destroy()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: <P> <UL> -<LI><I>Exxx</I>. + <li><code>Exxx</code>. </li> </UL> <B>Assumptions/Limitations:</B> <P> <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadcondbroadcast">2.8.39 pthread_cond_broadcast</A></H3> +<H3><a name="pthreadcondbroadcast">2.9.39 pthread_cond_broadcast</A></H3> <P> <B>Function Prototype:</B> <P> @@ -3994,19 +4415,19 @@ interface of the same name. <P> <B>Returned Values:</B> <P> -If successful, the <I>xxx()</I> function will return +If successful, the <I>pthread_cond_broadcast()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: <P> <UL> -<LI><I>Exxx</I>. + <li><code>Exxx</code>. </li> </UL> <B>Assumptions/Limitations:</B> <P> <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadcondsignal">2.8.40 pthread_cond_signal</A></H3> +<H3><a name="pthreadcondsignal">2.9.40 pthread_cond_signal</A></H3> <P> <B>Function Prototype:</B> <P> @@ -4025,19 +4446,19 @@ interface of the same name. <P> <B>Returned Values:</B> <P> -If successful, the <I>xxx()</I> function will return +If successful, the <I>pthread_cond_signal()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: <P> <UL> -<LI><I>Exxx</I>. + <li><code>Exxx</code>. </li> </UL> <B>Assumptions/Limitations:</B> <P> <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadcondwait">2.8.41 pthread_cond_wait</A></H3> +<H3><a name="pthreadcondwait">2.9.41 pthread_cond_wait</A></H3> <P> <B>Function Prototype:</B> <P> @@ -4056,19 +4477,19 @@ interface of the same name. <P> <B>Returned Values:</B> <P> -If successful, the <I>xxx()</I> function will return +If successful, the <I>pthread_cond_wait()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: <P> <UL> -<LI><I>Exxx</I>. + <li><code>Exxx</code>. </li> </UL> <B>Assumptions/Limitations:</B> <P> <B>POSIX Compatibility:</B> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadcondtimedwait">2.8.42 pthread_cond_timedwait</A></H3> +<H3><a name="pthreadcondtimedwait">2.9.42 pthread_cond_timedwait</A></H3> <P> <B>Function Prototype:</B> <P> @@ -4088,12 +4509,12 @@ interface of the same name. <P> <B>Returned Values:</B> <P> -If successful, the <I>xxx()</I> function will return +If successful, the <I>pthread_cond_timedwait()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: <P> <UL> -<LI><I>Exxx</I>. + <li><code>Exxx</code>. </li> </UL> <B>Assumptions/Limitations:</B> <P> @@ -4303,14 +4724,101 @@ notify a task when a message is available on a queue. have to do some redesign. </p> +<h1><a name="FileSystem">2.10 Filesystem Interfaces</a></h1> +<p> + The NuttX filesystem is very simple; it does not involve any block drivers or + particular filesystem (like FAT or EXT2 etc.). + The NuttX filesystem simply supports a set a filesystem APIs + (<code>open()</code>, <code>close()</code>, <code>read()</code>, <code>write</code>, etc.) + and a registration mechanism that allows devices drivers to a associated with <i>nodes</i> + in a file-system-like name space. +</p> + +<h2><a name="driveroperations">2.10.1 Driver Operations</a></h2> +<ul><pre> + #include &lt;fcntl.h&gt; + int open(const char *path, int oflag, ...); +</pre></ul> + +<ul><pre> + #include &lt;unistd.h&gt; + int close(int fd); + int dup(int fildes); + int dup2(int fildes1, int fildes2); + off_t lseek(int fd, off_t offset, int whence); + int read(int fd, void *buf, unsigned int nbytes); + int unlink(const char *path); + int write(int fd, const void *buf, unsigned int nbytes); +</pre></ul> + +<h2><a name="directoryoperations">2.10.2 Directory Operations</a></h2> +<ul><pre> + #include &lt;dirent.h&gt; + int closedir(DIR *dirp); + FAR DIR *opendir(const char *path); + FAR struct dirent *readdir(FAR DIR *dirp); + int readdir_r(FAR DIR *dirp, FAR struct dirent *entry, FAR struct dirent **result); + void rewinddir(FAR DIR *dirp); + void seekdir(FAR DIR *dirp, int loc); + int telldir(FAR DIR *dirp); +</pre></ul> + +<h2><a name="standardio">2.10.3 Standard I/O</a></h2> +<ul><pre> + #include &lt;stdio.h&gt; + int fclose(FILE *stream); + int fflush(FILE *stream); + int feof(FILE *stream); + int ferror(FILE *stream); + int fgetc(FILE *stream); + char *fgets(char *s, int n, FILE *stream); + FILE *fopen(const char *path, const char *type); + int fprintf(FILE *stream, const char *format, ...); + int fputc(int c, FILE *stream); + int fputs(const char *s, FILE *stream); + size_t fread(void *ptr, size_t size, size_t n_items, FILE *stream); + int fseek(FILE *stream, long int offset, int whence); + size_t fwrite(const void *ptr, size_t size, size_t n_items, FILE *stream); + char *gets(char *s); + + int printf(const char *format, ...); + int puts(const char *s); + int rename(const char *source, const char *target); + int sprintf(char *dest, const char *format, ...); + int ungetc(int c, FILE *stream); + int vprintf(const char *s, va_list ap); + int vfprintf(FILE *stream, const char *s, va_list ap); + int vsprintf(char *buf, const char *s, va_list ap); + + int chdir(const char *path); + FILE *fdopen(int fd, const char *type); + int fstat(int fd, FAR struct stat *buf); + char *getcwd(FAR char *buf, size_t size); + int ioctl(int fd, int req, unsigned long arg); + int mkdir(const char *path, mode_t mode); + int rmdir(const char *path); + int stat(const char *path, FAR struct stat *buf); + int statfs(const char *path, FAR struct statfs *buf); +</pre></ul> + <h1><a name="index">Index</a></h1> <ul> - <li><a href="#Data_Structures">Data structures</a> + <li><a href="#clockgetres">clock_getres</a></li> + <li><a href="#clockgettime">clock_gettime</a></li> + <li><a href="#ClocksNTimers">Clocks</a></li> + <li><a href="#clocksettime">clock_settime</a></li> + <li><a href="#Data_Structures">Data structures</a></li> + <li><a href="#directoryoperations">Directory operations</a></li> + <li><a href="#driveroperations">Driver operations</a></li> <li><a href="#exit">exit</a></li> + <li><a href="#FileSystem">Filesystem interfaces</a></li> <li><a href="#getpid">getpid</a></li> + <li><a href="#gmtimer">gmtime_r</a></li> <li><a href="#Introduction">Introduction</a> <li><a href="#kill">kill</a></li> + <li><a href="#localtimer">localtime_r</a></li> <li><a href="#Message_Queue">Named Message Queue Interfaces</a> + <li><a href="#mktime">mktime</a></li> <li><a href="#mqclose">mq_close</a></li> <li><a href="#mqgetattr">mq_getattr</a></li> <li><a href="#mqnotify">mq_notify</a></li> @@ -4398,6 +4906,7 @@ notify a task when a message is available on a queue. <li><a href="#sigsuspend">sigsuspend</a></li> <li><a href="#sigtimedwait">sigtimedwait</a></li> <li><a href="#sigwaitinfo">sigwaitinfo</a></li> + <li><a href="#standardio">Standard I/O</a></li> <li><a href="#taskactivate">task_activate</a></li> <li><a href="#Task_Control">Task Control Interfaces</a> <li><a href="#taskcreate">task_create</a></li> @@ -4406,6 +4915,12 @@ notify a task when a message is available on a queue. <li><a href="#taskrestart">task_restart</a></li> <li><a href="#Task_Schedule">Task Scheduling Interfaces</a> <li><a href="#Task_Switch">Task Switching Interfaces</a> + <li><a href="#timercreate">timer_create</a></li> + <li><a href="#timerdelete">timer_delete</a></li> + <li><a href="#timergetoverrun">timer_getoverrun</a></li> + <li><a href="#timergettime">timer_gettime</a></li> + <li><a href="#ClocksNTimers">Timers</a></li> + <li><a href="#timersettime">timer_settime</a></li> <li><a href="#Watchdogs">Watchdog Timer Interfaces</a> <li><a href="#wdcancel">wd_cancel</a></li> <li><a href="#wdcreate">wd_create</a></li> From 36f441cb11e34092987dd020a1c0910b3815676f Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 21 Mar 2007 17:21:26 +0000 Subject: [PATCH 0025/1518] Added support for POSIX timers git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@111 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 2 +- Documentation/NuttxUserGuide.html | 74 ++++++++++++++++++++++++++-- 2 files changed, 71 insertions(+), 5 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index dee837cd7b..77d274b65f 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -867,7 +867,7 @@ below and discussed in the following paragraphs:</p> </ul> <ul> - <code>CONFIG_DISABLE_CLOCK</code>, <code>CONFIG_DISABLE_PTHREAD</code>, + <code>CONFIG_DISABLE_CLOCK</code>, <code>CONFI_DISABLE_POSIX_TIMERS</code>, <code>CONFIG_DISABLE_PTHREAD</code>, <code>CONFIG_DISABLE_SIGNALS</code>, <code>CONFIG_DISABLE_MQUEUE</code>, </ul> diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 134a46dbcd..09bad280c8 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -21,7 +21,7 @@ User's Manual <P> Gregory Nutt <P> -<SMALL>Last Update: January 28, 2007</SMALL> +<SMALL>Last Update: March 21, 2007</SMALL> </CENTER> <H1>1.0 <A NAME="Introduction">Introduction</A></H1> @@ -37,7 +37,7 @@ perspective of the firmware developer. This section is divided into several paragraphs that describe different groups of OS interfaces: <UL> <LI>Paragraph 2.1 <A HREF="#Task_Control">Task Control Interfaces</A> -8nnnnn<LI>Paragraph 2.2 <A HREF="#Task_Schedule">Task Scheduling Interfaces</A> +<LI>Paragraph 2.2 <A HREF="#Task_Schedule">Task Scheduling Interfaces</A> <LI>Paragraph 2.3 <A HREF="#Task_Switch">Task Switching Interfaces</A> <LI>Paragraph 2.4 <A HREF="#Message_Queue">Named Message Queue Interfaces</A> <LI>Paragraph 2.5 <A HREF="#Semaphores">Counting Semaphore Interfaces</A> @@ -1840,6 +1840,7 @@ interface of the same name. <li><a href="#wddelete">2.6.2 wd_delete</a></li> <li><a href="#wdstart">2.6.3 wd_start</a></li> <li><a href="#wdcancel">2.6.4 wd_cancel</a></li> + <li><a href="#wdgettime">2.6.5 wd_gettime</a></li> </ul> <H3><a name="wdcreate">2.6.1 wd_create</a></H3> @@ -2017,6 +2018,30 @@ VxWorks provides the following comparable interface: STATUS wdCancel (WDOG_ID wdog); </PRE> +<h3><a name="wdgettime">2.6.5 wd_gettime</a></h3> +<p> + <b>Function Prototype:</b> +</p> +<pre> + #include &lt;wdog.h&gt; + Sint wd_gettime(WDOG_ID wdog); +</pre> +<p> + <b>Description:</b> + This function returns the time remaining before the the specified watchdog expires. +</p> +<p> + <b>Input Parameters:</b> + <ul> + <li><code>wdog</code>. Identifies the watchdog that the request is for.</li> + </ul> +</p> +<p> + <b>Returned Value:</b> + The time in system ticks remaining until the watchdog time expires. Zero + means either that wdog is not valid or that the wdog has already expired. +</p> + <HR> <H2><A NAME="ClocksNTimers">2.7 Clocks and Timers</A></H2> @@ -2217,7 +2242,8 @@ VxWorks provides the following comparable interface: <b>Input Parameters:</b> </p> <ul> - <li><code>clockid</code>. Specifies the clock to use as the timing base.</li> + <li><code>clockid</code>. Specifies the clock to use as the timing base. + Must be <code>CLOCK_REALTIME</code>.</li> <li><code>evp</code>. Refers to a user allocated sigevent structure that defines the asynchronous notification. evp may be NULL (see above).</li> <li><code>timerid</code>. The pre-thread timer created by the call to timer_create().</li> @@ -2241,6 +2267,13 @@ VxWorks provides the following comparable interface: to the CPU-time clock that is specified by clock_id and associated with a thread different thread invoking timer_create().</li> </ul> +<p> + <b>POSIX Compatibility:</b> + Comparable to the POSIX interface of the same name. Differences from the full POSIX implementation include: +</p> +<ul> + <li>Only <code>CLOCK_REALTIME</code> is supported for the <code>clockid</code> argument.</li> +</ul> <H3><a name="timerdelete">2.7.8 timer_delete</A></H3> <p> @@ -2275,6 +2308,10 @@ VxWorks provides the following comparable interface: <ul> <li><code>EINVAL</code>. The timer specified timerid is not valid.</li> </ul> +<p> + <b>POSIX Compatibility:</b> + Comparable to the POSIX interface of the same name. +</p> <H3><a name="timersettime">2.7.9 timer_settime</A></H3> <p> @@ -2326,6 +2363,8 @@ VxWorks provides the following comparable interface: amount of time before the timer would have expired, or zero if the timer was disarmed, together with the previous timer reload value. Timers will not expire before their scheduled time. +</p> + <b>NOTE:</b>At present, the <code>ovalue</code> argument is ignored. </p> <p> <b>Input Parameters:</b> @@ -2334,7 +2373,7 @@ VxWorks provides the following comparable interface: <li><code>timerid</code>. The pre-thread timer, previously created by the call to timer_create(), to be be set.</li> <li><code>flags</code>. Specifie characteristics of the timer (see above)</li> <li><code>value</code>. Specifies the timer value to set</li> - <li><code>ovalue</code>. A location in which to return the time remaining from the previous timer setting.</li> + <li><code>ovalue</code>. A location in which to return the time remaining from the previous timer setting (ignored).</li> </ul> <p> <b>Returned Values:</b> @@ -2348,6 +2387,13 @@ VxWorks provides the following comparable interface: <li><code>EINVAL</code>. A value structure specified a nanosecond value less than zero or greater than or equal to 1000 million, and the it_value member of that structure did not specify zero seconds and nanoseconds.</li> </ul> +<p> + <b>POSIX Compatibility:</b> + Comparable to the POSIX interface of the same name. Differences from the full POSIX implementation include: +</p> +<ul> + <li>The <code>ovalue</code> argument is ignored.</li> +</ul> <H3><a name="timergettime">2.7.10 timer_gettime</A></H3> <p> @@ -2367,6 +2413,11 @@ VxWorks provides the following comparable interface: even if the timer was armed with absolute time. The <code>it_interval</code> member of <code>value</code> will contain the reload value last set by <code>timer_settime()</code>. </p> +<p> + Due to the asynchronous operation of this function, the time reported + by this function could be significantly more than that actual time + remaining on the timer at any time. +</p> <p> <b>Input Parameters:</b> </p> @@ -2386,6 +2437,10 @@ VxWorks provides the following comparable interface: The <code>timerid</code> argument does not correspond to an ID returned by <code>timer_create()</code> but not yet deleted by <code>timer_delete()</code>.</li> </ul> +<p> + <b>POSIX Compatibility:</b> + Comparable to the POSIX interface of the same name. +</p> <H3><a name="timergetoverrun">2.7.11 timer_getoverrun</A></H3> <p> @@ -2414,6 +2469,9 @@ VxWorks provides the following comparable interface: for the timer, or if the <i>Realtime Signals Extension</i> is not supported, the return value of <code>timer_getoverrun()</code> is unspecified. </p> +<p> + <b>NOTE:</b> This interface is not currently implemented in NuttX. +</p> <p> <b>Input Parameters:</b> </p> @@ -2431,6 +2489,13 @@ VxWorks provides the following comparable interface: The <code>timerid</code> argument does not correspond to an ID returned by <code>timer_create()</code> but not yet deleted by <code>timer_delete()</code>.</li> </ul> +<p> + <b>POSIX Compatibility:</b> + Comparable to the POSIX interface of the same name. Differences from the full POSIX implementation include: +</p> +<ul> + <li>This interface is not currently implemented by NuttX.</li> +</ul> <B>Assumptions/Limitations:</B> <P> @@ -4925,6 +4990,7 @@ notify a task when a message is available on a queue. <li><a href="#wdcancel">wd_cancel</a></li> <li><a href="#wdcreate">wd_create</a></li> <li><a href="#wddelete">wd_delete</a></li> + <li><a href="#wdgettime">wd_gettime</a></li> <li><a href="#wdstart">wd_start</a></li> </ul> From b04ed2026848d3101f6eab140fa4ff72b942fbc3 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 21 Mar 2007 17:23:10 +0000 Subject: [PATCH 0026/1518] Update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@112 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 62e5702dcb..8a3099807e 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: March 16, 2007</p> + <p>Last Updated: March 21, 2007</p> </td> </tr> </table> @@ -420,7 +420,16 @@ Other memory: 0.1.3 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> + * Fix error in handing signed decimal in vsprintf(). + * Major restructuring of header files to get closer to + POSIX compliance. + * Eliminate compilation warnings that that crept into + recent check-ins + * Add kill() + * Added support for POSIX timers + * Some Documentation updates * Added support for the Neuros OSD / DM320 + </pre></ul> <table width ="100%"> From 5352f0f1a11d36a919792220a68077d04676ced9 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 21 Mar 2007 19:56:14 +0000 Subject: [PATCH 0027/1518] ioctl should be prototyped in sys/ioctl.h git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@114 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxUserGuide.html | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 09bad280c8..18a33b93a8 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -4810,12 +4810,17 @@ notify a task when a message is available on a queue. int close(int fd); int dup(int fildes); int dup2(int fildes1, int fildes2); - off_t lseek(int fd, off_t offset, int whence); + off_t lseek(int fd, off_t offset, int whence); /* Prototyped but not implemented */ int read(int fd, void *buf, unsigned int nbytes); int unlink(const char *path); int write(int fd, const void *buf, unsigned int nbytes); </pre></ul> +<ul><pre> + #include &lt;sys/ioctl.h&gt; + int ioctl(int fd, int req, unsigned long arg); +</pre></ul> + <h2><a name="directoryoperations">2.10.2 Directory Operations</a></h2> <ul><pre> #include &lt;dirent.h&gt; @@ -4833,8 +4838,8 @@ notify a task when a message is available on a queue. #include &lt;stdio.h&gt; int fclose(FILE *stream); int fflush(FILE *stream); - int feof(FILE *stream); - int ferror(FILE *stream); + int feof(FILE *stream); /* Prototyped but not implemented */ + int ferror(FILE *stream); /* Prototyped but not implemented */ int fgetc(FILE *stream); char *fgets(char *s, int n, FILE *stream); FILE *fopen(const char *path, const char *type); @@ -4842,28 +4847,27 @@ notify a task when a message is available on a queue. int fputc(int c, FILE *stream); int fputs(const char *s, FILE *stream); size_t fread(void *ptr, size_t size, size_t n_items, FILE *stream); - int fseek(FILE *stream, long int offset, int whence); + int fseek(FILE *stream, long int offset, int whence); /* Prototyped but not implemented */ size_t fwrite(const void *ptr, size_t size, size_t n_items, FILE *stream); char *gets(char *s); int printf(const char *format, ...); int puts(const char *s); - int rename(const char *source, const char *target); + int rename(const char *source, const char *target); /* Prototyped but not implemented */ int sprintf(char *dest, const char *format, ...); int ungetc(int c, FILE *stream); int vprintf(const char *s, va_list ap); int vfprintf(FILE *stream, const char *s, va_list ap); int vsprintf(char *buf, const char *s, va_list ap); - int chdir(const char *path); + int chdir(const char *path); /* Prototyped but not implemented */ FILE *fdopen(int fd, const char *type); - int fstat(int fd, FAR struct stat *buf); - char *getcwd(FAR char *buf, size_t size); - int ioctl(int fd, int req, unsigned long arg); - int mkdir(const char *path, mode_t mode); - int rmdir(const char *path); - int stat(const char *path, FAR struct stat *buf); - int statfs(const char *path, FAR struct statfs *buf); + int fstat(int fd, FAR struct stat *buf); /* Prototyped but not implemented */ + char *getcwd(FAR char *buf, size_t size); /* Prototyped but not implemented */ + int mkdir(const char *path, mode_t mode); /* Prototyped but not implemented */ + int rmdir(const char *path); /* Prototyped but not implemented */ + int stat(const char *path, FAR struct stat *buf); /* Prototyped but not implemented */ + int statfs(const char *path, FAR struct statfs *buf); /* Prototyped but not implemented */ </pre></ul> <h1><a name="index">Index</a></h1> From 00e6431cc40f0b1762498a4110c35363810e963b Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 22 Mar 2007 16:20:14 +0000 Subject: [PATCH 0028/1518] update for release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@121 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 8a3099807e..cfb85a55e9 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -418,7 +418,7 @@ Other memory: cause various problems * Added a test for roundrobin scheduler. -0.1.3 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> +0.2.1 2007-03-22 Gregory Nutt <spudmonkey@racsa.co.cr> * Fix error in handing signed decimal in vsprintf(). * Major restructuring of header files to get closer to From d048476c6d249e99c0321c32d37f931f24b7e3b9 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 22 Mar 2007 19:17:38 +0000 Subject: [PATCH 0029/1518] update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@123 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index cfb85a55e9..6552e9510f 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -180,7 +180,7 @@ </table> <p> - The third release of NuttX (nuttx-0.1.2) is avalable for download + The fourth release of NuttX (nuttx-0.2.1) is avalable for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. </p> From bcc61339f95e2a8fdf734b5ccc536d2eefdb2f96 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 23 Mar 2007 02:25:54 +0000 Subject: [PATCH 0030/1518] Create configs/ dir; separate board configuration from processor architecture git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@126 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 + Documentation/NuttxPortingGuide.html | 238 +++++++++++++++++---------- 2 files changed, 159 insertions(+), 83 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 6552e9510f..01bfbbc02c 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -430,6 +430,10 @@ Other memory: * Some Documentation updates * Added support for the Neuros OSD / DM320 +0.2.2 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> + * Created the configs/ directory; separated board configuration + from processor architecture logic + * Started m68322 </pre></ul> <table width ="100%"> diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 77d274b65f..707c8001f2 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -16,7 +16,7 @@ </b></big> <p><small>by</small></p> <p>Gregory Nutt</p> - <p><small>Last Update: March 20, 2007</small></p> + <p><small>Last Update: March 22, 2007</small></p> </center> <center><h1>Table of Contents</h1></center> @@ -26,19 +26,25 @@ <li>2.1 <a href="#DirStructDocumentation">Documentation</a></li> <l1>2.2 <a href="#DirStructArch">arch</a></li> <ul> - <li><a href="#sudirectorystructure">2.2.1 Subdirectory Structure</a></li> - <li><a href="#summaryoffiles">2.2.2 Summary of Files</a></li> + <li><a href="#archdirectorystructure">2.2.1 Subdirectory Structure</a></li> + <li><a href="#summaryofarchfiles">2.2.2 Summary of Files</a></li> <li><a href="#supportedarchitectures">2.2.3 Supported Architectures</a></li> - <li><a href="#configuringnuttx">2.2.4 Configuring NuttX</a></li> </ul> - <li>2.3 <a href="#DirStructDrivers">drivers</a></li> - <li>2.4 <a href="#DirStructExamples">examples</a></li> - <li>2.5 <a href="#DirStructFs">fs</a></li> - <li>2.6 <a href="#DirStructInclude">include</a></li> - <li>2.7 <a href="#DirStructLib">lib</a></li> - <li>2.8 <a href="#DirStructMm">mm</a></li> - <li>2.9 <a href="#DirStructSched">sched</a></li> - <li>2.10 <a href="#DirStructDrivers">tools</a></li> + <li>2.3 <a href="#DirStructConfigs">configs/</a></li> + <ul> + <li><a href="#configsdirectorystructure">2.3.1 Subdirectory Structure</a></li> + <li><a href="#summaryofconfigfiles">2.3.2 Summary of Files</a></li> + <li><a href="#supportedboards">2.3.3 Supported Boards</a></li> + <li><a href="#configuringnuttx">2.3.4 Configuring NuttX</a></li> + </ul> + <li>2.4 <a href="#DirStructDrivers">drivers</a></li> + <li>2.5 <a href="#DirStructExamples">examples</a></li> + <li>2.6 <a href="#DirStructFs">fs</a></li> + <li>2.7 <a href="#DirStructInclude">include</a></li> + <li>2.8 <a href="#DirStructLib">lib</a></li> + <li>2.9 <a href="#DirStructMm">mm</a></li> + <li>2.10 <a href="#DirStructSched">sched</a></li> + <li>2.11 <a href="#DirStructTools">tools</a></li> </ul> <li>3.0 <a href="#DirectoryConfiAndBuild">Configuring and Building</a></li> <li>4.0 <a href="#ArchAPIs">Architecture APIs</a></li> @@ -101,13 +107,16 @@ below and discussed in the following paragraphs:</p> |-- <a href="#DirStructDocumentation">Documentation</a> | `-- <i>(documentation files)</i> |-- <a href="#DirStructArch">arch</a> -| |-- <i>(architecture)</i> +| |-- <i>&lt;arch-name&gt;</i> +| | |-- include +| | `-- src +| `-- <i>&lt:;other-architectures&gt;</i> +|-- <a href="#DirStructConfigs">configs</a> +| |-- <i>&lt;board-name&gt;</i> | | |-- Make.defs | | |-- defconfig -| | |-- include -| | |-- setenv.sh -| | `-- src -| `-- <i>(other architectures)</i> +| | `-- setenv.sh +| `-- <i>&lt:;other-architectures&gt;</i> |-- <a href="#DirStructDrivers">drivers</a> | |-- Makefile | `-- <i>(driver source files)</i> @@ -149,68 +158,32 @@ below and discussed in the following paragraphs:</p> <h2>2.2 <a name="DirStructArch">arch</a></h2> -<h3><a name="sudirectorystructure">2.2.1 Subdirectory Structure</a></h3> +<h3><a name="archdirectorystructure">2.2.1 Subdirectory Structure</a></h3> <p> This directory contains several sub-directories, each containing architecture-specific logic. - The task of porting NuttX to a new processor or board consists of + The task of porting NuttX to a new processor consists of add a new sudirectory under <code>arch/</code> containing logic specific to the new architecuture. + The complete board port in is defined by the architecture-specific code in this + directory (plus the board-specific configurations in the <code>config/</code> + subdirectory). Each architecture must provide a subdirectory, &lt;<i>arch-name</i>&gt; - under <code>arch/</code> with the folling characteristics: + under <code>arch/</code> with the following characteristics: </p> <ul><pre> &lt;<i>arch-name</i>&gt; - |-- Make.defs - |-- defconfig - |-- setenv.sh |-- include | |-- arch.h | |-- irq.h | `-- types.h `-- src |-- Makefile - `-- (architecture-specific source files) + `-- <i>(architecture-specific source files)</i> </pre></ul> -<h3><a name="summaryoffiles">2.2.2 Summary of Files</a></h3> +<h3><a name="summaryofarchfiles">2.2.2 Summary of Files</a></h3> <ul> - <li> - <code>Make.defs</code>: This makefile fragment provides architecture and - tool-specific build options. It will be included by all other - makefiles in the build (once it is installed). This make fragment - should define: - <ul> - <li>Tools: CC, LD, AR, NM, OBJCOPY, OBJDUMP</li> - <li>Tool options: CFLAGS, LDFLAGS</li> - </ul> - <p> - When this makefile fragment runs, it will be passed TOPDIR which - is the path to the root directory of the build. This makefile - fragment may include ${TOPDIR}/.config to perform configuration - specific settings. For example, the CFLAGS will most likely be - different if CONFIG_DEBUG=y. - </li> - <li> - <code>defconfig</code>: This is a configuration file similar to the Linux - configuration file. In contains varialble/value pairs like: - <ul> - <li><code>CONFIG_VARIABLE</code>=value</li> - </ul> - <p> - This configuration file will be used at build time: - </p> - <ol> - <li>As a makefile fragment included in other makefiles, and</li> - <li>to generate <code>include/nuttx/config.h</code> which is included by - most C files in the system.</li> - </ol> - </li> - <li> - <code>setenv.sh</code>: This is a script that you can include that will be installed at - the toplevel of the directory structure and can be sourced to set any - necessary environment variables. - </li> <li> <code>include/arch.h</code>: This is a hook for any architecture specific definitions that may @@ -273,6 +246,12 @@ below and discussed in the following paragraphs:</p> the final link with <code>libup.a</code> and other system archives to generate the final executable. </li> + <li> + <i>(architecture-specific source files)</i>. + The file <code>include/nuttx/arch.h</code> identifies all of the APIs that must + be provided by the architecture specific logic. (It also includes + <code>arch/&lt;arch-name&gt;/arch.h</code> as described above). + </li> </ul> <h3><a name="supportedarchitectures">2.2.3 Supported Architectures</a></h3> @@ -284,33 +263,126 @@ below and discussed in the following paragraphs:</p> round robin scheduler) Otherwise, it is complete. <li><code>arch/c5471</code>: TI TMS320C5471 (also called TMS320DM180 or just C5471). - NuttX operates on the ARM7 of this dual core processor. This port - uses the Spectrum Digital evaluation board with a GNU arm-elf toolchain*. - This port is complete, verified, and included in the NuttX release. + NuttX operates on the ARM7 of this dual core processor. + This port is complete, verified, and included in the NuttX release 0.1.1. <li><code>arch/dm320</code>: TI TMS320DM320 (also called just DM320). NuttX operates on the ARM9EJS of this dual core processor. - This port uses the Neuros OSD with a GNU arm-elf toolchain*: - see http://wiki.neurostechnology.com/index.php/Developer_Welcome . - STATUS: This port is code complete but totally untested due to - hardware issues with my OSD. + This port complete, verified, and included in the NuttX release 0.2.1. + <li><code>arch/m68322</code> + A work in progress.</li> <li><code>arch/pjrc-8051</code>: - 8051 Microcontroller. This port uses the PJRC 87C52 development system - and the SDCC toolchain. This port is not quite ready for prime time. + 8051 Microcontroller. This port is not quite ready for prime time.</li> </ul> <p> Other ports for the for the TI TMS320DM270 and for MIPS are in various states of progress </p> -<h3><a name="configuringnuttx">2.2.4 Configuring NuttX</a></h3> +<h2>2.3 <a name="DirStructConfigs">configs</a></h2> +<p> + The <code>configs/</code> subdirectory contains configuration data for each board. + These board-specific configurations plus the architecture-specific configurations in + the <code>arch/</code> subdirectory complete define a customized port of NuttX. +</p> + +<h3><a name="configsdirectorystructure">2.3.1 Subdirectory Structure</a></h3> +<p> + The configs directory contains board specific configuration files. Each board must + provide a subdirectory &lt;board-name&gt; under <code>configs/</code> with the following characteristics: +</p> +<ul><pre> + &lt;<i>board-name</i>&gt; + |-- Make.defs + |-- defconfig + `-- setenv.sh +</pre></ul> + +<h3><a name="#summaryofconfigfiles">2.3.2 Summary of Files</a></h3> +<ul> + <li> + <code>Make.defs</code>: This makefile fragment provides architecture and + tool-specific build options. It will be included by all other + makefiles in the build (once it is installed). This make fragment + should define: + <ul> + <li>Tools: CC, LD, AR, NM, OBJCOPY, OBJDUMP</li> + <li>Tool options: CFLAGS, LDFLAGS</li> + </ul> + <p> + When this makefile fragment runs, it will be passed TOPDIR which + is the path to the root directory of the build. This makefile + fragment may include ${TOPDIR}/.config to perform configuration + specific settings. For example, the CFLAGS will most likely be + different if CONFIG_DEBUG=y. + </li> + <li> + <code>defconfig</code>: This is a configuration file similar to the Linux + configuration file. In contains varialble/value pairs like: + <ul> + <li><code>CONFIG_VARIABLE</code>=value</li> + </ul> + <p> + This configuration file will be used at build time: + </p> + <ol> + <li>As a makefile fragment included in other makefiles, and</li> + <li>to generate <code>include/nuttx/config.h</code> which is included by + most C files in the system.</li> + </ol> + </li> + <li> + <code>setenv.sh</code>: This is a script that you can include that will be installed at + the toplevel of the directory structure and can be sourced to set any + necessary environment variables. + </li> +</ul> + +<h3><a name="#supportedboards">2.3.3 Supported Boards</a></h3> +<ul> + <li><code>configs/sim</code>: + A user-mode port of NuttX to the x86 Linux platform is available. + The purpose of this port is primarily to support OS feature developement. + This port does not support interrupts or a real timer (and hence no + round robin scheduler) Otherwise, it is complete.</li> + + <li><code>configs/c5471evm</code>: + This is a port to the Spectrum Digital C5471 evaluation board. The + C5471 is a dual core processor from TI with an ARM7TDMI general purpose + processor and a c54 SDP. NuttX runs on the ARM core and is built with + with a GNU arm-elf toolchain*. This port is complete, verified, and + included in the NuttX release.</li> + + <li><code>configs/ntosd-dm320</code>: + This port uses the Neuros OSD with a GNU arm-elf toolchain*. + See <a href="http://wiki.neurostechnology.com/index.php/Developer_Welcome">Neuros Wiki</a> + for futher information. + NuttX operates on the ARM9EJS of this dual core processor. + STATUS: This port is code complete, verified, and included in the + NuttX 0.2.1 release.</li> + + <li><code>configs/m68322evb</code>: + This is a work in progress for the venerable m68322evb board from + Motorola.</li> + + <li><code>configs/pjrc-8051</code>: + 8051 Microcontroller. This port uses the PJRC 87C52 development system + and the SDCC toolchain. This port is not quite ready for prime time.</li> +</ul> + +<p><small><blockquote> + * A customized version of the <a href="http://www.buildroot.org">buildroot</a> + is available to build these toolchains. +</blockquote></small></p> + +<h3><a name="configuringnuttx">2.3.4 Configuring NuttX</a></h3> <p> Configuring NuttX requires only copying: </p> <ul> - <code>arch/&lt;<i>arch-name</i>&gt;/Make.def</code> to <code>${TOPDIR}/Make.defs</code>, - <code>arch/&lt;<i>arch-name</i>&gt;/setenv.sh</code> to <code>${TOPDIR}/setenv.sh</code>, and - <code.arch/&lt;<i>arch-name</i>&gt;/defconfig</code> to ${TOPDIR}/.config</code> + <code>configs/&lt;<i>board-name</i>&gt;/Make.def</code> to <code>${TOPDIR}/Make.defs</code>, + <code>configs/&lt;<i>board-name</i>&gt;/setenv.sh</code> to <code>${TOPDIR}/setenv.sh</code>, and + <code>configs/&lt;<i>board-name</i>&gt;/defconfig</code> to ${TOPDIR}/.config</code> </ul> <p> There is a script that automates these steps. The following steps will @@ -318,22 +390,22 @@ below and discussed in the following paragraphs:</p> </p> <ul><pre> cd tools - ./configure.sh &lt;<i>arch-name</i>&gt; + ./configure.sh &lt;<i>board-name</i>&gt; </pre></ul> -<h2>2.3 <a name="DirStructDrivers">drivers</a></h2> +<h2>2.4 <a name="DirStructDrivers">drivers</a></h2> <p> This directory holds architecture-independent device drivers. </p> -<h2>2.4 <a name="DirStructExamples">examples</a></h2> +<h2>2.5 <a name="DirStructExamples">examples</a></h2> <p> Example and test programs to build against. </p> -<h2>2.5 <a name="DirStructFs">fs</a></h2> +<h2>2.6 <a name="DirStructFs">fs</a></h2> <p> This directory contains the NuttX filesystem. @@ -345,7 +417,7 @@ below and discussed in the following paragraphs:</p> in a file-system-like name space. </p> -<h2>2.6 <a name="DirStructInclude">include</a></h2> +<h2>2.7 <a name="DirStructInclude">include</a></h2> <p> This directory holds NuttX header files. Standard header files file retained in can be included in the <i>normal</i> fashion: @@ -356,26 +428,26 @@ below and discussed in the following paragraphs:</p> etc. </ul> -<h2>2.7 <a name="DirStructLib">lib</a></h2> +<h2>2.8 <a name="DirStructLib">lib</a></h2> <p> This directory holds a collection of standard libc-like functions with custom interfaces into Nuttx. </p> -<h2>2.8 <a name="DirStructMm">mm</a></h2> +<h2>2.9 <a name="DirStructMm">mm</a></h2> <p> This is the NuttX memory manager. </p> -<h2>2.9 <a name="DirStructSched">sched</a></h2> +<h2>2.10 <a name="DirStructSched">sched</a></h2> <p> The files forming core of the NuttX RTOS reside here. </p> -<h2>2.10 <a name="DirStructDrivers">tools</a></h2> +<h2>2.11 <a name="DirStructTools">tools</a></h2> <p> This directory holds a collection of tools and scripts to simplify From 87a9d32d310f08746cceea518b7140f90d7f06c5 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 23 Mar 2007 16:02:36 +0000 Subject: [PATCH 0031/1518] limits.h is also a required file git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@129 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 707c8001f2..f1ac32c485 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -176,7 +176,8 @@ below and discussed in the following paragraphs:</p> |-- include | |-- arch.h | |-- irq.h - | `-- types.h + | |-- types.h + | `-- limits.h `-- src |-- Makefile `-- <i>(architecture-specific source files)</i> From 4529935bf7a3f89b8b073e7549519de0aaf3a352 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 23 Mar 2007 16:06:22 +0000 Subject: [PATCH 0032/1518] Fix memory leaks git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@133 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 01bfbbc02c..c0b4a15067 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -433,6 +433,10 @@ Other memory: 0.2.2 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> * Created the configs/ directory; separated board configuration from processor architecture logic + * Add memory leak detection test to examples/ostest + * Corrected memory leak in OS pthread join logic + * Corrected memory leaks in examples/ostest due to failures + to join or detach from pthreads. * Started m68322 </pre></ul> From 025a2e87bd9c2aba80c3f7439738dfd0c423d8fa Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 23 Mar 2007 23:22:22 +0000 Subject: [PATCH 0033/1518] Add new pthread_* APIs git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@134 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 + Documentation/NuttxUserGuide.html | 630 ++++++++++++++++++++++++++---- 2 files changed, 567 insertions(+), 67 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index c0b4a15067..953f5eea10 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -437,6 +437,10 @@ Other memory: * Corrected memory leak in OS pthread join logic * Corrected memory leaks in examples/ostest due to failures to join or detach from pthreads. + * added pthread_once(), pthread_kill(), pthread_sigmask() + * added pthread_barrierattr_*() APIs + * added pthread_barrier_init(), pthread_barrier_destroy(), and + pthread_barrier_wait(); * Started m68322 </pre></ul> diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 18a33b93a8..883da65c3d 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -573,7 +573,7 @@ other tasks with the same priority. <UL> <LI><I>pid</I>. The task ID of the task. If pid is zero, the priority of the calling task is set. -<LI><I>param</I>. A structure whose member sched_priority is the +<li><code>param<code>.</li> A structure whose member sched_priority is the integer priority. The range of valid priority numbers is from SCHED_PRIORITY_MIN through SCHED_PRIORITY_MAX. </UL> @@ -616,7 +616,7 @@ of the task specified by pid. <UL> <LI><I>pid</I>. The task ID of the task. If pid is zero, the priority of the calling task is returned. -<LI><I>param</I>. A structure whose member sched_priority is the +<li><code>param<code>.</li> A structure whose member sched_priority is the integer priority. The task's priority is copied to the sched_priority element of this structure. </UL> @@ -655,7 +655,7 @@ interface of the same name. priority of the calling task is set. <LI><I>policy</I>. Scheduling policy requested (either SCHED_FIFO or SCHED_RR). - <LI><I>param</I>. A structure whose member sched_priority is the + <li><code>param<code>.</li> A structure whose member sched_priority is the integer priority. The range of valid priority numbers is from SCHED_PRIORITY_MIN through SCHED_PRIORITY_MAX. </UL> @@ -3096,6 +3096,7 @@ be sent. Only positive, non-zero values of pid are supported by this implementation. ID of the task to receive signal <LI><I>signo</I>. The signal number to send. + If signo is zero, no signal is sent, but all error checking is performed. </UL> <p> @@ -3163,6 +3164,16 @@ be sent. <li><a href="#pthreadcondsignal">2.9.40 pthread_cond_signal</a></li> <li><a href="#pthreadcondwait">2.9.41 pthread_cond_wait</a></li> <li><a href="#pthreadcondtimedwait">2.9.42 pthread_cond_timedwait</a></li> + <li><a href="#pthreadbarrierattrinit">2.9.43 pthread_barrierattr_init</a></li> + <li><a href="#pthreadbarrierattrdestroy">2.9.44 pthread_barrierattr_destroy</a></li> + <li><a href="#pthreadbarrierattrsetpshared">2.9.45 pthread_barrierattr_setpshared</a></li> + <li><a href="#pthreadbarrierattrgetpshared">2.9.46 pthread_barrierattr_getpshared</a></li> + <li><a href="#pthreadbarrierinit">2.9.47 pthread_barrier_init</a></li> + <li><a href="#pthreadbarrierdestroy">2.9.48 pthread_barrier_destroy</a></li> + <li><a href="#pthreadbarrierwait">2.9.49 pthread_barrier_wait</a></li> + <li><a href="#pthreadonce">2.9.50 pthread_once</a></li> + <li><a href="#pthreadkill">2.9.51 pthread_kill</a></li> + <li><a href="#pthreadsigmask">2.9.52 pthread_sigmask</a></li> </ul> <H3><a name="pthreadattrinit">2.9.1 pthread_attr_init</A></H3> @@ -3181,7 +3192,7 @@ for all of the individual attributes used by the implementation. <B>Input Parameters:</B> <P> <UL> -<LI><I>parm</I> + <li><code>param<code>.</li> </UL> <P> <B>Returned Values:</B> @@ -3213,7 +3224,7 @@ An attributes object can be deleted when it is no longer needed. <B>Input Parameters:</B> <P> <UL> -<LI><I>parm</I> + <li><code>param<code>.</li> </UL> <P> <B>Returned Values:</B> @@ -3244,7 +3255,7 @@ interface of the same name. <B>Input Parameters:</B> <P> <UL> -<LI><I>parm</I> + <li><code>param<code>.</li> </UL> <P> <B>Returned Values:</B> @@ -3275,7 +3286,7 @@ interface of the same name. <B>Input Parameters:</B> <P> <UL> -<LI><I>parm</I> + <li><code>param<code>.</li> </UL> <P> <B>Returned Values:</B> @@ -3307,7 +3318,7 @@ interface of the same name. <B>Input Parameters:</B> <P> <UL> -<LI><I>parm</I> + <li><code>param<code>.</li> </UL> <P> <B>Returned Values:</B> @@ -3339,7 +3350,7 @@ interface of the same name. <B>Input Parameters:</B> <P> <UL> -<LI><I>parm</I> + <li><code>param<code>.</li> </UL> <P> <B>Returned Values:</B> @@ -3371,7 +3382,7 @@ interface of the same name. <B>Input Parameters:</B> <P> <UL> -<LI><I>parm</I> + <li><code>param<code>.</li> </UL> <P> <B>Returned Values:</B> @@ -3403,7 +3414,7 @@ interface of the same name. <B>Input Parameters:</B> <P> <UL> -<LI><I>parm</I> + <li><code>param<code>.</li> </UL> <P> <B>Returned Values:</B> @@ -3434,7 +3445,7 @@ interface of the same name. <B>Input Parameters:</B> <P> <UL> -<LI><I>parm</I> + <li><code>param<code>.</li> </UL> <P> <B>Returned Values:</B> @@ -3465,7 +3476,7 @@ interface of the same name. <B>Input Parameters:</B> <P> <UL> -<LI><I>parm</I> + <li><code>param<code>.</li> </UL> <P> <B>Returned Values:</B> @@ -3504,7 +3515,7 @@ specify details about the kind of thread being created. <B>Input Parameters:</B> <P> <UL> -<LI><I>parm</I> + <li><code>param<code>.</li> </UL> <P> <B>Returned Values:</B> @@ -3537,7 +3548,7 @@ return value and completion status will not be requested. <B>Input Parameters:</B> <P> <UL> -<LI><I>parm</I> + <li><code>param<code>.</li> </UL> <P> <B>Returned Values:</B> @@ -3569,7 +3580,7 @@ A thread may terminate it's own execution. <B>Input Parameters:</B> <P> <UL> -<LI><I>parm</I> + <li><code>param<code>.</li> </UL> <P> <B>Returned Values:</B> @@ -3698,7 +3709,7 @@ interface of the same name. <B>Input Parameters:</B> <P> <UL> -<LI><I>parm</I> + <li><code>param<code>.</li> </UL> <P> <B>Returned Values:</B> @@ -3731,7 +3742,7 @@ the return value of the thread. <B>Input Parameters:</B> <P> <UL> -<LI><I>parm</I> + <li><code>param<code>.</li> </UL> <P> <B>Returned Values:</B> @@ -3764,7 +3775,7 @@ made available. <B>Input Parameters:</B> <P> <UL> -<LI><I>parm</I> + <li><code>param<code>.</li> </UL> <P> <B>Returned Values:</B> @@ -3796,7 +3807,7 @@ A thread may obtain a copy of its own thread handle. <B>Input Parameters:</B> <P> <UL> -<LI><I>parm</I> + <li><code>param<code>.</li> </UL> <P> <B>Returned Values:</B> @@ -3828,7 +3839,7 @@ interface of the same name. <B>Input Parameters:</B> <P> <UL> -<LI><I>parm</I> + <li><code>param<code>.</li> </UL> <P> <B>Returned Values:</B> @@ -3860,7 +3871,7 @@ interface of the same name. <B>Input Parameters:</B> <P> <UL> -<LI><I>parm</I> + <li><code>param<code>.</li> </UL> <P> <B>Returned Values:</B> @@ -4069,7 +4080,7 @@ interface of the same name. <B>Input Parameters:</B> <P> <UL> -<LI><I>parm</I> + <li><code>param<code>.</li> </UL> <P> <B>Returned Values:</B> @@ -4100,7 +4111,7 @@ interface of the same name. <B>Input Parameters:</B> <P> <UL> -<LI><I>parm</I> + <li><code>param<code>.</li> </UL> <P> <B>Returned Values:</B> @@ -4132,7 +4143,7 @@ interface of the same name. <B>Input Parameters:</B> <P> <UL> -<LI><I>parm</I> + <li><code>param<code>.</li> </UL> <P> <B>Returned Values:</B> @@ -4164,7 +4175,7 @@ interface of the same name. <B>Input Parameters:</B> <P> <UL> -<LI><I>parm</I> + <li><code>param<code>.</li> </UL> <P> <B>Returned Values:</B> @@ -4196,7 +4207,7 @@ interface of the same name. <B>Input Parameters:</B> <P> <UL> -<LI><I>parm</I> + <li><code>param<code>.</li> </UL> <P> <B>Returned Values:</B> @@ -4227,7 +4238,7 @@ interface of the same name. <B>Input Parameters:</B> <P> <UL> -<LI><I>parm</I> + <li><code>param<code>.</li> </UL> <P> <B>Returned Values:</B> @@ -4258,7 +4269,7 @@ interface of the same name. <B>Input Parameters:</B> <P> <UL> -<LI><I>parm</I> + <li><code>param<code>.</li> </UL> <P> <B>Returned Values:</B> @@ -4289,7 +4300,7 @@ interface of the same name. <B>Input Parameters:</B> <P> <UL> -<LI><I>parm</I> + <li><code>param<code>.</li> </UL> <P> <B>Returned Values:</B> @@ -4320,7 +4331,7 @@ interface of the same name. <B>Input Parameters:</B> <P> <UL> -<LI><I>parm</I> + <li><code>param<code>.</li> </UL> <P> <B>Returned Values:</B> @@ -4351,7 +4362,7 @@ interface of the same name. <B>Input Parameters:</B> <P> <UL> -<LI><I>parm</I> + <li><code>param<code>.</li> </UL> <P> <B>Returned Values:</B> @@ -4382,7 +4393,7 @@ interface of the same name. <B>Input Parameters:</B> <P> <UL> -<LI><I>parm</I> + <li><code>param<code>.</li> </UL> <P> <B>Returned Values:</B> @@ -4413,7 +4424,7 @@ interface of the same name. <B>Input Parameters:</B> <P> <UL> -<LI><I>parm</I> + <li><code>param<code>.</li> </UL> <P> <B>Returned Values:</B> @@ -4444,7 +4455,7 @@ interface of the same name. <B>Input Parameters:</B> <P> <UL> -<LI><I>parm</I> + <li><code>param<code>.</li> </UL> <P> <B>Returned Values:</B> @@ -4475,7 +4486,7 @@ interface of the same name. <B>Input Parameters:</B> <P> <UL> -<LI><I>parm</I> + <li><code>param<code>.</li> </UL> <P> <B>Returned Values:</B> @@ -4506,7 +4517,7 @@ interface of the same name. <B>Input Parameters:</B> <P> <UL> -<LI><I>parm</I> + <li><code>param<code>.</li> </UL> <P> <B>Returned Values:</B> @@ -4537,10 +4548,10 @@ interface of the same name. <B>Input Parameters:</B> <P> <UL> -<LI><I>parm</I> + <li><code>param<code>.</li> </UL> <P> -<B>Returned Values:</B> + <b>Returned Values:</b> <P> If successful, the <I>pthread_cond_wait()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be @@ -4555,38 +4566,513 @@ returned to indicate the error: interface of the same name. <H3><a name="pthreadcondtimedwait">2.9.42 pthread_cond_timedwait</A></H3> -<P> -<B>Function Prototype:</B> -<P> -<PRE> +<p> + <b>Function Prototype:</b> +</p> +<pre> #include &lt;pthread.h&gt; int pthread_cond_timedwait(pthread_cond_t *cond, pthread_mutex_t *mutex, const struct timespec *abstime); -</PRE> -<P> -<B>Description:</B> -<P> -<B>Input Parameters:</B> -<P> -<UL> -<LI><I>parm</I> -</UL> -<P> -<B>Returned Values:</B> -<P> -If successful, the <I>pthread_cond_timedwait()</I> function will return -zero (<I>OK</I>). Otherwise, an error number will be -returned to indicate the error: -<P> -<UL> +</pre> +<p> + <b>Description:</b> +</p> +<p> + <b>Input Parameters:</b> +</p> +<p> +<ul> + <li><code>parm</code>.</li> +</ul> +<p> + <b>Returned Values:</b> +</p> +<p> + If successful, the <code>pthread_cond_timedwait()</code> function will return + zero (<code>OK</code>). Otherwise, an error number will be + returned to indicate the error: +</p> +<ul> <li><code>Exxx</code>. </li> -</UL> -<B>Assumptions/Limitations:</B> -<P> -<B>POSIX Compatibility:</B> Comparable to the POSIX -interface of the same name. +</ul> +<p> + <b>Assumptions/Limitations:</b> +</p> +<p> + <b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. +</p> + +<h3><a name="pthreadbarrierattrinit">2.9.43 pthread_barrierattr_init</a></h3> +<p> + <b>Function Prototype:</b> +</p> +<pre> + #include &lt;pthread.h&gt; + int pthread_barrierattr_init(FAR pthread_barrierattr_t *attr); +</pre> +<p> + <b>Description:</b> + The <code>pthread_barrierattr_init()</code> function will initialize a barrier + attribute object <code>attr</code> with the default value for all of the attributes + defined by the implementation. +</p> +<p> + <b>Input Parameters:</b> +</p> +<ul> + <li> + <code>attr</code>. Barrier attributes to be initialized. +</li> +</ul> +<p> + <b>Returned Values:</b> + 0 (<code>OK</code>) on success or <code>EINVAL</code> if <code>attr</code> is invalid. +</p> +<p> + <b>Assumptions/Limitations:</b> +</p> +<p> + <b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. +</p> + +<h3><a name="pthreadbarrierattrdestroy">2.9.44 pthread_barrierattr_destroy</a></h3> +<p> + <b>Function Prototype:</b> +</p> +<pre> + #include &lt;pthread.h&gt; + int pthread_barrierattr_destroy(FAR pthread_barrierattr_t *attr); +</pre> +<p> + <b>Description:</b> + The <code>pthread_barrierattr_destroy()</code> function will destroy a barrier attributes object. + A destroyed attributes object can be reinitialized using <code>pthread_barrierattr_init()</code>; + the results of otherwise referencing the object after it has been destroyed are undefined. +</p> +<p> + <b>Input Parameters:</b> +</p> +<ul> + <li> + <code>attr</code>. Barrier attributes to be destroyed. +</li> +</ul> +<p> + <b>Returned Values:</b> 0 (OK) on success or EINVAL if attr is invalid. +</p> +<p> + <b>Assumptions/Limitations:</b> +</p> +<p> + <b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. +</p> + +<h3><a name="pthreadbarrierattrsetpshared">2.9.45 pthread_barrierattr_setpshared</a></h3> +<p> + <b>Function Prototype:</b> +</p> +<pre> + #include &lt;pthread.h&gt; + int pthread_barrierattr_setpshared(FAR pthread_barrierattr_t *attr, int pshared); +</pre> +<p> + <b>Description:</b> + The process-shared attribute is set to <code>PTHREAD_PROCESS_SHARED</code> to permit + a barrier to be operated upon by any thread that has access to the memory where the + barrier is allocated. + If the process-shared attribute is <code>PTHREAD_PROCESS_PRIVATE</code>, the barrier can + only be operated upon by threads created within the same process as the thread that + initialized the barrier. + If threads of different processes attempt to operate on such a barrier, the behavior is undefined. + The default value of the attribute is <code>PTHREAD_PROCESS_PRIVATE</code>. +</p> +<p> + <b>Input Parameters:</b> +</p> +<ul> + <li><code>attr</code>. Barrier attributes to be modified.</li> + <li><code>pshared</code>. The new value of the pshared attribute.</li> +</ul> +<p> + <b>Returned Values:</b> 0 (<code>OK</code>) on success or <code>EINVAL</code> if either + <code>attr</code> is invalid or <code>pshared</code> is not one of + <code>PTHREAD_PROCESS_SHARED</code> or <code>PTHREAD_PROCESS_PRIVATE</code>. +</p> +<p> + <b>Assumptions/Limitations:</b> +</p> +<p> + <b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. +</p> + +<h3><a name="pthreadbarrierattrgetpshared">2.9.46 pthread_barrierattr_getpshared</a></h3> +<p> + <b>Function Prototype:</b> +</p> +<pre> + #include &lt;pthread.h&gt; + int pthread_barrierattr_getpshared(FAR const pthread_barrierattr_t *attr, FAR int *pshared); +</pre> +<p> + <b>Description:</b> + The <code>pthread_barrierattr_getpshared()</code> function will obtain the value of the + process-shared attribute from the attributes object referenced by <code>attr</code>. +</p> +<p> + <b>Input Parameters:</b> +</p> +<p> +<ul> + <li><code>attr</code>. Barrier attributes to be queried.</li> + <li><code>pshared</code>. The location to stored the current value of the pshared attribute.</li> +</ul> +<p> + <b>Returned Values:</b> 0 (<code>OK</code>) on success or <code>EINVAL</code> if + either <code>attr</code> or <code>pshared</code> is invalid. +</p> +<p> + <b>Assumptions/Limitations:</b> +</p> +<p> + <b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. +</p> + +<h3><a name="pthreadbarrierinit">2.9.47 pthread_barrier_init</a></h3> +<p> + <b>Function Prototype:</b> +</p> +<pre> + #include &lt;pthread.h&gt; + int pthread_barrier_init(FAR pthread_barrier_t *barrier, + FAR const pthread_barrierattr_t *attr, unsigned int count); +</pre> +<p> + <b>Description:</b> + The <code>pthread_barrier_init()</code> function allocates any resources required to + use the barrier referenced by <code>barrier</code> and initialized the barrier with + the attributes referenced by <code>attr</code>. + If <code>attr</code> is NULL, the default barrier attributes will be used. + The results are undefined if <code>pthread_barrier_init()</code> is called when any + thread is blocked on the barrier. + The results are undefined if a barrier is used without first being initialized. + The results are undefined if <code>pthread_barrier_init()</code> is called specifying + an already initialized barrier. +</p> +<p> + <b>Input Parameters:</b> +</p> +<ul> + <li> + <code>barrier</code>. + The barrier to be initialized. + </li> + <li> + <code>attr</code>. + Barrier attributes to be used in the initialization. + </li> + <li> + <code>count</code>. + The count to be associated with the barrier. + The count argument specifies the number of threads that must call + <code>pthread_barrier_wait()</code> before any of them successfully return from the call. + The value specified by count must be greater than zero. + </li> +</ul> +<p> + <b>Returned Values:</b>0 (OK) on success or on of the following error numbers: +</p> +<ul> + <li> + <code>EAGAIN</code>. + The system lacks the necessary resources to initialize another barrier. + </li> + <li> + <code>EINVAL</code>. + The barrier reference is invalid, or the values specified by attr are invalid, or + the value specified by count is equal to zero. + </li> + <li> + <code>ENOMEM</code>. + Insufficient memory exists to initialize the barrier. + </li> + <li> + <code>EBUSY</code>. + The implementation has detected an attempt to reinitialize a barrier while it is in use. + </li> +</ul> +<p> + <b>Assumptions/Limitations:</b> +</p> +<p> + <b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. +</p> + +<h3><a name="pthreadbarrierdestroy">2.9.48 pthread_barrier_destroy</a></h3> +<p> + <b>Function Prototype:</b> +</p> +<pre> + #include &lt;pthread.h&gt; + int pthread_barrier_destroy(FAR pthread_barrier_t *barrier); +</pre> +<p> + <b>Description:</b> + The <code>pthread_barrier_destroy()</code> function destroys the barrier referenced + by <code>barrie</code> and releases any resources used by the barrier. + The effect of subsequent use of the barrier is undefined until the barrier is + reinitialized by another call to <code>pthread_barrier_init()</code>. + The results are undefined if <code>pthread_barrier_destroy()</code> is called when + any thread is blocked on the barrier, or if this function is called with an + uninitialized barrier. +</p> +<p> + <b>Input Parameters:</b> +</p> +<ul> + <li><code>barrier</code>. The barrier to be destroyed.</li> +</ul> +<p> + <b>Returned Values:</b> 0 (<code>OK</code>) on success or on of the following error numbers: +</p> +<ul> + <li> + <code>EBUSY</code>. + The implementation has detected an attempt to destroy a barrier while it is in use. + </li> + <li> + <code>EINVAL</code>. + The value specified by barrier is invalid. + </li> +</ul> +<p> + <b>Assumptions/Limitations:</b> +</p> +<p> + <b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. +</p> + +<h3><a name="pthreadbarrierwait">2.9.49 pthread_barrier_wait</a></h3> +<p> + <b>Function Prototype:</b> +</p> +<pre> + #include &lt;pthread.h&gt; + int pthread_barrier_wait(FAR pthread_barrier_t *barrier); +</pre> +<p> + <b>Description:</b> + The <code>pthread_barrier_wait()</code> function synchronizse participating + threads at the barrier referenced by <code>barrier</code>. + The calling thread is blocked until the required number of threads have called + <code>pthread_barrier_wait()</code> specifying the same <code>barrier</code>. + When the required number of threads have called <code>pthread_barrier_wait()</code> + specifying the <code>barrier</code>, the constant <code>PTHREAD_BARRIER_SERIAL_THREAD</code> + will be returned to one unspecified thread and zero will be returned to each of + the remaining threads. + At this point, the barrier will be reset to the state it had as a result of the most + recent <code>pthread_barrier_init()</code> function that referenced it. +</p> +<p> + The constant <code>PTHREAD_BARRIER_SERIAL_THREAD</code> is defined in + <code>pthread.h</code> and its value must be distinct from any other value + returned by <code>pthread_barrier_wait()</code>. +</p> +<p> + The results are undefined if this function is called with an uninitialized barrier. +</p> +<p> + If a signal is delivered to a thread blocked on a barrier, upon return from the + signal handler the thread will resume waiting at the barrier if the barrier wait + has not completed. + Otherwise, the thread will continue as normal from the completed barrier wait. + Until the thread in the signal handler returns from it, it is unspecified whether + other threads may proceed past the barrier once they have all reached it. +</p> +<p> + A thread that has blocked on a barrier will not prevent any unblocked thread that + is eligible to use the same processing resources from eventually making forward + progress in its execution. + Eligibility for processing resources will be determined by the scheduling policy. +</p> +<p> + <b>Input Parameters:</b> +</p> +<ul> + <li><code>barrier</code>. The barrier on which to wait.</li> +</ul> +<p> + <b>Returned Values:</b> 0 (<code>OK</code>) on success or <code>EINVAL</code> if the barrier is not valid. +</p> +<p> + <b>Assumptions/Limitations:</b> +</p> +<p> + <b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. +</p> + + +<h3><a name="pthreadonce">2.9.50 pthread_once</a></h3> +<p> + <b>Function Prototype:</b> +</p> +<pre> + #include &lt;pthread.h&gt; + int pthread_once(FAR pthread_once_t *once_control, CODE void (*init_routine)(void)); +</pre> +<p> + <b>Description:</b> + The first call to <code>pthread_once()</code> by any thread with a given + <code>once_control</code>, will call the <code>init_routine()</code> with no arguments. + Subsequent calls to <code>pthread_once()</code> with the same <code>once_control</code> will have no effect. + On return from <code>pthread_once()</code>, <code>init_routine()</code> will have completed. +</p> +<p> + <b>Input Parameters:</b> +</p> +<p> +<ul> + <li> + <code>once_control</code>. + Determines if <code>init_routine()</code> should be called. + <code>once_control</code> should be declared and intialized as follows: + <ul><pre>pthread_once_t once_control = PTHREAD_ONCE_INIT; + </pre></ul> + <code>PTHREAD_ONCE_INIT</code> is defined in <code>pthread.h</code>. + </li> + <li> + <code>init_routine</code>. + The initialization routine that will be called once. + </li> +</ul> +<p> + <b>Returned Values:</b> + 0 (OK) on success or EINVAL if either once_control or init_routine are invalid. +</p> +<p> + <b>Assumptions/Limitations:</b> +</p> +<p> + <b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. +</p> + +<h3><a name="pthreadkill">2.9.51 pthread_kill</a></h3> +<p> + <b>Function Prototype:</b> +</p> +<pre> + #include &lt;signal.h&gt; + #include &lt;pthread.h&gt; + int pthread_kill(pthread_t thread, int signo) +</pre> +<p> + <b>Description:</b> + The <code>pthread_kill()</code> system call can be used to send any + signal to a thread. See <code>kill()</code> for further information + as this is just a simple wrapper around the <code>kill()</code> + function. +</p> +<p> + <b>Input Parameters:</b> +</p> +<p> +<ul> + <li> + <code>thread</code>. + The id of the thread to receive the signal. Only positive, non-zero values of <code>tthread</code>t are supported. + </li> + <li> + <code>signo</code>. + The signal number to send. If <code>signo</code> is zero, no signal is sent, but all error checking is performed. + </li> +</ul> +<p> + <b>Returned Values:</b> +</p> +<p> + On success, the signal was sent and zero is returned. + On error one of the following error numbers is returned. +</p> +<ul> + <li> + <code>EINVAL</code>. + An invalid signal was specified. + </li> + <li> + <code>EPERM</code>. + The thread does not have permission to send the signal to the target thread. + </li> + <li> + <code>ESRCH</code>. + No thread could be found corresponding to that specified by the given thread ID. + </li> + <li> + <code>ENOSYS</code>. + Do not support sending signals to process groups. + </li> +</ul> +<p> + <b>Assumptions/Limitations:</b> +</p> +<p> + <b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. +</p> + +<h3><a name="pthreadsigmask">2.9.52 pthread_sigmask</a></h3> +<p> + <b>Function Prototype:</b> +</p> +<pre> + #include &lt;signal.h&gt; + #include &lt;pthread.h&gt; + int pthread_sigmask(int how, FAR const sigset_t *set, FAR sigset_t *oset); +</pre> +<p> + <b>Description:</b> + This function is a simple wrapper around <code>sigprocmask()</code>. + See the <code>sigprocmask()</code> function description for further information. +</p> +<p> + <b>Input Parameters:</b> +</p> +<p> +<ul> + <li> + <code>how</code>. How the signal mast will be changed: + <ul> + <li> + <code>SIG_BLOCK</code>: + The resulting set is the union of the current set and the signal set pointed to by <code>set</code>. + </li> + <li> + <code>SIG_UNBLOCK</code>: + The resulting set is the intersection of the current set and the complement of the signal set pointed to by <code>set</code>. + </li> + <li> + <code>SIG_SETMASK</code>: + The resulting set is the signal set pointed to by <code>set</code>. + </li> + </ul> + </li> + <li> + <code>set</code>. Location of the new signal mask. + </li> + <li> + <code>oset</code>. Location to store the old signal mask. + </li> +</ul> +<p> + <b>Returned Values:</b> +</p> +<p> + 0 (OK) on succes or EINVAL if <code>how</code> is invalid. +</p> +<p> + <b>Assumptions/Limitations:</b> +</p> +<p> + <b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. +</p> -<P> <HR> <H1>3.0 <A NAME="Data_Structures">OS Data Structures</A></H1> <H2>3.1 Scalar types</H2> @@ -4897,6 +5383,7 @@ notify a task when a message is available on a queue. <li><a href="#mqsetattr">mq_setattr</a></li> <li><a href="#mqunlink">mq_unlink</a></li> <li><a href="#OS_Interfaces">OS Interfaces</a> + <li><a href="#Pthread">Pthread Interfaces</a> <li><a href="#pthreadattrdestroy">pthread_attr_destroy</a></li> <li><a href="#pthreadattrgetinheritsched">pthread_attr_getinheritsched</a></li> <li><a href="#pthreadattrgetschedparam">pthread_attr_getschedparam</a></li> @@ -4907,6 +5394,13 @@ notify a task when a message is available on a queue. <li><a href="#pthreadattrsetschedparam">pthread_attr_setschedparam</a></li> <li><a href="#pthreadattrsetschedpolity">pthread_attr_setschedpolicy</a></li> <li><a href="#pthreadattrsetstacksize">pthread_attr_setstacksize</a></li> + <li><a href="#pthreadbarrierattrinit">pthread_barrierattr_init</a></li> + <li><a href="#pthreadbarrierattrdestroy">pthread_barrierattr_destroy</a></li> + <li><a href="#pthreadbarrierattrgetpshared">pthread_barrierattr_getpshared</a></li> + <li><a href="#pthreadbarrierattrsetpshared">pthread_barrierattr_setpshared</a></li> + <li><a href="#pthreadbarrierdestroy">pthread_barrier_destroy</a></li> + <li><a href="#pthreadbarrierinit">pthread_barrier_init</a></li> + <li><a href="#pthreadbarrierwait">pthread_barrier_wait</a></li> <li><a href="#pthreadcancel">pthread_cancel</a></li> <li><a href="#pthreadconaddrinit">pthread_condattr_init</a></li> <li><a href="#pthreadcondbroadcast">pthread_cond_broadcast</a></li> @@ -4924,6 +5418,7 @@ notify a task when a message is available on a queue. <li><a href="#pthreadjoin">pthread_join</a></li> <li><a href="#pthreadkeycreate">pthread_key_create</a></li> <li><a href="#pthreadkeydelete">pthread_key_delete</a></li> + <li><a href="#pthreadkill">pthread_kill</a></li> <li><a href="#pthreadmutexattrdestroy">pthread_mutexattr_destroy</a></li> <li><a href="#pthreadmutexattrgetpshared">pthread_mutexattr_getpshared</a></li> <li><a href="#pthreadmutexattrinit">pthread_mutexattr_init</a></li> @@ -4934,11 +5429,12 @@ notify a task when a message is available on a queue. <li><a href="#pthreadmutextrylock">pthread_mutex_trylock</a></li> <li><a href="#pthreadmutexunlock">pthread_mutex_unlock</a></li> <li><a href="#pthreadocndattrdestroy">pthread_condattr_destroy</a></li> - <li><a href="#Pthread">Pthread Interfaces</a> + <li><a href="#pthreadonce">pthread_once</a></li> <li><a href="#pthreadself">pthread_self</a></li> <li><a href="#pthreadsetcancelstate">pthread_setcancelstate</a></li> <li><a href="#pthreadsetschedparam">pthread_setschedparam</a></li> <li><a href="#pthreadsetspecific">pthread_setspecific</a></li> + <li><a href="#pthreadsigmask">pthread_sigmask</a></li> <li><a href="#pthreadtestcancelstate">pthread_testcancelstate</a></li> <li><a href="#pthreadyield">pthread_yield</a></li> <li><a href="#schedgetparam">sched_getparam</a></li> From 7d28270adeb05e4b4811a2469796f2e5abab8899 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 24 Mar 2007 15:57:35 +0000 Subject: [PATCH 0034/1518] updates git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@143 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 5 + Documentation/NuttxUserGuide.html | 382 ++++++++++++++++++++++-------- 2 files changed, 285 insertions(+), 102 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 953f5eea10..330429e3b4 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -441,6 +441,11 @@ Other memory: * added pthread_barrierattr_*() APIs * added pthread_barrier_init(), pthread_barrier_destroy(), and pthread_barrier_wait(); + * Added protection so that errno cannot be modified from + interrupt handling. + * sched_setparam(), sched_setscheduler() now correctly set + errno; pthread_setscheduler() now returns the correct errno. + * Added pthread_setschedprio(). * Started m68322 </pre></ul> diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 883da65c3d..7ebb2c13bb 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -93,11 +93,11 @@ paragraphs. <p> <b>Tasks</b>. - NuttX is a flat address OS. As such it does not support &quot;processes&quot; + NuttX is a flat address OS. As such it does not support <i>processes</i> in the way that, say, Linux does. NuttX only supports simple threads running within the same address space. - However, the programming model makes a distinction between &quot;tasks&quot; - and pthreads: + However, the programming model makes a distinction between <i>tasks</i> + and <i>pthreads</i>: </p> <ul> <li><i>tasks</i> are threads which have a degree of independence @@ -553,51 +553,67 @@ Compatible with the POSIX interface of the same name. </ul> <H3><a name="schedsetparam">2.2.1 sched_setparam</a></H3> - -<P> -<B>Function Prototype:</B> -<PRE> +<p> + <b>Function Prototype:</b> +<pre> #include &lt;sched.h&gt; - int sched_setparam( pid_t pid, const struct sched_param *param ); -</PRE> + int sched_setparam(pid_t pid, const struct sched_param *param); +</pre> +<p> + <b>Description:</B> + This function sets the priority of the task specified by pid input parameter. +</p> +<p> + NOTE: Setting a task's priority to the same value has the similar + effect to <code>sched_yield()</code>: The task will be moved to after all + other tasks with the same priority. +</p> +<p> + <b>Input Parameters:</b> +</p> +<ul> + <li> + <code>pid</code>. + The task ID of the task. + If <code>pid</code> is zero, the priority of the calling task is set. + </li> + <li> + <code>param</code>. + A structure whose member <code>sched_priority</code> is the integer priority. + The range of valid priority numbers is from <code>SCHED_PRIORITY_MIN</code> through <code>SCHED_PRIORITY_MAX</code>. + </li> +</ul> +<p> + <b>Returned Values:</b> + On success, sched_setparam() returns 0 (OK). + On error, -1 (ERROR) is returned, and errno is set appropriately. +</p> +<ul> -<P> -<B>Description:</B> This function sets the priority of the task -specified by pid input parameter. -<P> -NOTE: Setting a task's priority to the same value has the similar -effect to sched_yield() -- The task will be moved to after all -other tasks with the same priority. -<P> -<B>Input Parameters:</B> -<UL> -<LI><I>pid</I>. The task ID of the task. If pid is zero, the -priority of the calling task is set. -<li><code>param<code>.</li> A structure whose member sched_priority is the -integer priority. The range of valid priority numbers is from -SCHED_PRIORITY_MIN through SCHED_PRIORITY_MAX. -</UL> - -<P> -<B>Returned Values:</B> -<UL> -<LI> - 0 (OK) if successful, otherwise -1 (ERROR). - This function can fail for the following reasons: - (1) parm is NULL or parm->sched_priority is out of range. - (2) pid does not correspond to any task. -</LI> -</UL> - -<P> -<B>Assumptions/Limitations:</B> -<P> -<B> POSIX Compatibility:</B> Comparable to the POSIX -interface of the same name. -Differences from the full POSIX implementation include: -<UL> -<LI>The range of priority values for the POSIX call is 0 to 255 -</UL> + <li> + <code>EINVAL</code>. + The parameter <code>param</code> is invalid or does not make sense for the current scheduling policy. + </li> + <li> + <code>EPERM</code>. + The calling task does not have appropriate privileges. + </li> + <li> + <code>ESRCH</code>. + The task whose ID is <code>pid</code> could not be found. + </li> +</ul> +<p> + <b>Assumptions/Limitations:</b> +</p> +<p> + <B>POSIX Compatibility:</B> + Comparable to the POSIX interface of the same name. + Differences from the full POSIX implementation include: +</p> +<ul> + <li>The range of priority values for the POSIX call is 0 to 255.</li> +</ul> <H3><a name="schedgetparam">2.2.2 sched_getparam</a></H3> @@ -3121,6 +3137,16 @@ be sent. </ul> <H2>2.9 <A NAME="Pthread">Pthread Interfaces</A></H2> +<p> + NuttX does not support <i>processes</i> in the way that, say, Linux does. + NuttX only supports simple threads or tasks running within the same address space. + For the most part, threads and tasks are interchangeable and differ primarily + only in such things as the inheritance of file descriptors. + Basically, threads are initialized and uninitialized differently and share a + few more resources than tasks. +<p> + The following pthread interfaces are supported in some form by NuttX: +</p> <ul> <li><a href="#pthreadattrinit">2.9.1 pthread_attr_init</a></li> <li><a href="#pthreadattrdestroy">2.9.2 pthread_attr_destroy</a></li> @@ -3175,6 +3201,64 @@ be sent. <li><a href="#pthreadkill">2.9.51 pthread_kill</a></li> <li><a href="#pthreadsigmask">2.9.52 pthread_sigmask</a></li> </ul> +<p> + No support for the ollowing pthread interfaces is provided by NuttX: +</p> +<ul> + <li><code>pthread_atfork</code>. register fork handlers.</li> + <li><code>pthread_attr_getdetachstate</code>. get and set the detachstate attribute.</li> + <li><code>pthread_attr_getguardsize</code>. get and set the thread guardsize attribute.</li> + <li><code>pthread_attr_getinheritsched</code>. get and set the inheritsched attribute.</li> + <li><code>pthread_attr_getscope</code>. get and set the contentionscope attribute.</li> + <li><code>pthread_attr_getstack</code>. get and set stack attributes.</li> + <li><code>pthread_attr_getstackaddr</code>. get and set the stackaddr attribute.</li> + <li><code>pthread_attr_setdetachstate</code>. get and set the detachstate attribute.</li> + <li><code>pthread_attr_setguardsize</code>. get and set the thread guardsize attribute.</li> + <li><code>pthread_attr_setscope</code>. get and set the contentionscope attribute.</li> + <li><code>pthread_attr_setstack</code>. get and set stack attributes.</li> + <li><code>pthread_attr_setstackaddr</code>. get and set the stackaddr attribute.</li> + <li><code>pthread_barrier_destroy</code>. destroy and initialize a barrier object.</li> + <li><code>pthread_barrier_init</code>. destroy and initialize a barrier object.</li> + <li><code>pthread_barrier_wait</code>. synchronize at a barrier.</li> + <li><code>pthread_cleanup_pop</code>. establish cancellation handlers.</li> + <li><code>pthread_cleanup_push</code>. establish cancellation handlers.</li> + <li><code>pthread_condattr_getclock</code>. get and set the clock selection condition variable attribute.</li> + <li><code>pthread_condattr_getpshared</code>. get and set the process-shared condition variable attributes.</li> + <li><code>pthread_condattr_setclock</code>. get and set the clock selection condition variable attribute.</li> + <li><code>pthread_condattr_setpshared</code>. get and set the process-shared condition variable attributes.</li> + <li><code>pthread_getconcurrency</code>. get and set the level of concurrency.</li> + <li><code>pthread_getcpuclockid</code>. access a thread CPU-time clock.</li> + <li><code>pthread_mutex_getprioceiling</code>. get and set the priority ceiling of a mutex.</li> + <li><code>pthread_mutex_setprioceiling</code>. get and set the priority ceiling of a mutex.</li> + <li><code>pthread_mutex_timedlock</code>. lock a mutex.</li> + <li><code>pthread_mutexattr_getprioceiling</code>. get and set the prioceiling attribute of the mutex attributes object.</li> + <li><code>pthread_mutexattr_getprotocol</code>. get and set the protocol attribute of the mutex attributes object.</li> + <li><code>pthread_mutexattr_gettype</code>. get and set the mutex type attribute.</li> + <li><code>pthread_mutexattr_setprioceiling</code>. get and set the prioceiling attribute of the mutex attributes object.</li> + <li><code>pthread_mutexattr_setprotocol</code>. get and set the protocol attribute of the mutex attributes object.</li> + <li><code>pthread_mutexattr_settype</code>. get and set the mutex type attribute.</li> + <li><code>pthread_rwlock_destroy</code>. destroy and initialize a read-write lock object.</li> + <li><code>pthread_rwlock_init</code>. destroy and initialize a read-write lock object.</li> + <li><code>pthread_rwlock_rdlock</code>. lock a read-write lock object for reading.</li> + <li><code>pthread_rwlock_timedrdlock</code>. lock a read-write lock for reading.</li> + <li><code>pthread_rwlock_timedwrlock</code>. lock a read-write lock for writing.</li> + <li><code>pthread_rwlock_tryrdlock</code>. lock a read-write lock object for reading.</li> + <li><code>pthread_rwlock_trywrlock</code>. lock a read-write lock object for writing.</li> + <li><code>pthread_rwlock_unlock</code>. unlock a read-write lock object.</li> + <li><code>pthread_rwlock_wrlock</code>. lock a read-write lock object for writing.</li> + <li><code>pthread_rwlockattr_destroy</code>. destroy and initialize the read-write lock attributes object.</li> + <li><code>pthread_rwlockattr_getpshared</code>. get and set the process-shared attribute of the read-write lock attributes object.</li> + <li><code>pthread_rwlockattr_init</code>. destroy and initialize the read-write lock attributes object.</li> + <li><code>pthread_rwlockattr_setpshared</code>. get and set the process-shared attribute of the read-write lock attributes object.</li> + <li><code>pthread_setcanceltype</code>. set cancelability state.</li> + <li><code>pthread_setconcurrency</code>. get and set the level of concurrency.</li> + <li><code>pthread_spin_destroy</code>. destroy or initialize a spin lock object.</li> + <li><code>pthread_spin_init</code>. destroy or initialize a spin lock object.</li> + <li><code>pthread_spin_lock</code>. lock a spin lock object.</li> + <li><code>pthread_spin_trylock</code>. lock a spin lock object.</li> + <li><code>pthread_spin_unlock</code>. unlock a spin lock object.</li> + <li><code>pthread_testcancel</code>. set cancelability state.</li> +</ul> <H3><a name="pthreadattrinit">2.9.1 pthread_attr_init</A></H3> <P> @@ -3825,68 +3909,162 @@ returned to indicate the error: interface of the same name. <H3><a name="pthreadgetschedparam">2.9.20 pthread_getschedparam</A></H3> -<P> -<B>Function Prototype:</B> -<P> -<PRE> +<p> + <b>Function Prototype:</b> +</p> +<pre> #include &lt;pthread.h&gt; int pthread_getschedparam(pthread_t thread, int *policy, - struct sched_param *param); -</PRE> -<P> -<B>Description:</B> -<P> -<B>Input Parameters:</B> -<P> -<UL> - <li><code>param<code>.</li> -</UL> -<P> -<B>Returned Values:</B> -<P> -If successful, the <I>pthread_getschedparam()</I> function will return -zero (<I>OK</I>). Otherwise, an error number will be -returned to indicate the error: -<P> -<UL> - <li><code>Exxx</code>. </li> -</UL> -<B>Assumptions/Limitations:</B> -<P> -<B>POSIX Compatibility:</B> Comparable to the POSIX -interface of the same name. + struct sched_param *param); +</pre> +<p> + <b>Description:</b> + The <code>pthread_getschedparam()</code> functions will get the + scheduling policy and parameters of threads. + For <code>SCHED_FIFO</code> and <code>SCHED_RR</code>, the only + required member of the <code>sched_param</code> structure is the + priority <code>sched_priority</code>. +</p> +<p> + The <code>pthread_getschedparam()</code> function will retrieve the + scheduling policy and scheduling parameters for the thread whose thread + ID is given by <code>thread</code> and will store those values in + <code>policy</code> and <code>param</code>, respectively. + The priority value returned from <code>pthread_getschedparam()</code> + will be the value specified by the most recent <code>pthread_setschedparam()</code>, + <code>pthread_setschedprio()</code>, or <code>pthread_create()</code> call + affecting the target thread. + It will not reflect any temporary adjustments to its priority (such as might + result of any priority inheritance, for example). +</p> +<p> + The policy parameter may have the value <code>SCHED_FIFO</code> or <code>SCHED_RR</code> + (<code>SCHED_OTHER</code> and <code>SCHED_SPORADIC</code>, in particular, are not supported). + The <code>SCHED_FIFO</code> and <code>SCHED_RR<code> policies will have a single + scheduling parameter, <code>sched_priority</code>. +</p> +<p> + <b>Input Parameters:</b> +</p> +<ul> + <li> + <code>thread</code>. + The ID of thread whose scheduling parameters will be queried. + </li> + <li> + <code>policy</code>. + The location to store the thread's scheduling policy. + </li> + <li> + <code>param</code>. + The location to store the thread's priority. + </li> +</ul> +<p> + <b>Returned Values:</b> + 0 (<code>OK</code>) if successful. + Otherwise, the error code <code>ESRCH</code> if the value specified by + <code>thread</code> does not refer to an existing thread. +</p> +<p> + <b>Assumptions/Limitations:</b> +</p> +<p> + <b>POSIX Compatibility:</b> + Comparable to the POSIX interface of the same name. +</p> <H3><a name="pthreadsetschedparam">2.9.21 pthread_setschedparam</A></H3> -<P> -<B>Function Prototype:</B> -<P> -<PRE> +<p> + <b>Function Prototype:</b> +</p> +<pre> #include &lt;pthread.h&gt; int pthread_setschedparam(pthread_t thread, int policy, - const struct sched_param *param); -</PRE> -<P> -<B>Description:</B> -<P> -<B>Input Parameters:</B> -<P> -<UL> - <li><code>param<code>.</li> -</UL> -<P> -<B>Returned Values:</B> -<P> -If successful, the <I>pthread_setschedparam()</I> function will return -zero (<I>OK</I>). Otherwise, an error number will be -returned to indicate the error: -<P> -<UL> - <li><code>Exxx</code>. </li> -</UL> -<B>Assumptions/Limitations:</B> -<P> -<B>POSIX Compatibility:</B> Comparable to the POSIX -interface of the same name. + const struct sched_param *param); +</pre> +<p> + <b>Description:</b> + The <code>pthread_setschedparam()</code> functions will set the scheduling policy + and parameters of threads. + For <code>SCHED_FIFO</code> and <code>SCHED_RR</code>, the only required member + of the <code>sched_param</code> structure is the priority <code>sched_priority</code>. +</p> +</p> + The <code>pthread_setschedparam()</code> function will set the scheduling policy + and associated scheduling parameters for the thread whose thread ID is given by + <code>thread</code> to the policy and associated parameters provided in + <code>policy</code> and <code>param</code>, respectively. +</p> +<p> + The policy parameter may have the value <code>SCHED_FIFO</code> or <code>SCHED_RR</code>. + (<code>SCHED_OTHER</code> and <code>SCHED_SPORADIC</code>, in particular, are not supported). + The <code>SCHED_FIFO</code> and <code>SCHED_RR</code> policies will have a single + scheduling parameter, <code>sched_priority</code>. +</p> +<p> + If the <code>pthread_setschedparam()</code> function fails, the scheduling + parameters will not be changed for the target thread. +</p> +<p> + <b>Input Parameters:</b> +</p> +<ul> + <li> + <code>thread</code>. + The ID of thread whose scheduling parameters will be modified. + </li> + <li> + <code>policy</code>. + The new scheduling policy of the thread. + Either <code>SCHED_FIFO</code> or <code>SCHED_RR<code>. + <code>SCHED_OTHER<code> and <code>SCHED_SPORADIC<code> are not supported. + </li> + <li> + <code>param</code>. + The location to store the thread's priority. + </li> +</ul> +<p> + <b>Returned Values:</b> +</p> +<p> + If successful, the <I>pthread_setschedparam()</I> function will return + zero (<I>OK</I>). Otherwise, an error number will be + returned to indicate the error: +</p> +<ul> + <li> + <code>EINVAL</code>. + The value specified by <code>policy</code> or one of the scheduling parameters + associated with the scheduling policy <code>policy</code> is invalid. + </li> + <li> + <code>ENOTSUP</code>. + An attempt was made to set the policy or scheduling parameters to an unsupported + value (<code>SCHED_OTHER</code> and <code>SCHED_SPORADIC</code> in particular are + not supported) + </li> + <li> + <code>EPERM</code>. + The caller does not have the appropriate permission to set either the scheduling + parameters or the scheduling policy of the specified thread. + Or, the implementation does not allow the application to modify one of the + parameters to the value specified. + + </li> + <li> + <code>ESRCH</code>. + The value specified by thread does not refer to a existing thread. + </li> +</ul> +<p> + <b>Assumptions/Limitations:</b> +</p> +<p> + <b>POSIX Compatibility:</b> + Comparable to the POSIX interface of the same name. +</p> <H3><a name="pthreadkeycreate">2.9.22 pthread_key_create</A></H3> <P> From 03295c011491e7c4f6289d170cca0439eede9e78 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 24 Mar 2007 22:32:53 +0000 Subject: [PATCH 0035/1518] Add test of pthread barrier logic git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@144 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 330429e3b4..0b843a4d90 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -437,10 +437,11 @@ Other memory: * Corrected memory leak in OS pthread join logic * Corrected memory leaks in examples/ostest due to failures to join or detach from pthreads. - * added pthread_once(), pthread_kill(), pthread_sigmask() - * added pthread_barrierattr_*() APIs - * added pthread_barrier_init(), pthread_barrier_destroy(), and + * Added pthread_once(), pthread_kill(), pthread_sigmask() + * Added pthread_barrierattr_*() APIs + * Added pthread_barrier_init(), pthread_barrier_destroy(), and pthread_barrier_wait(); + * Added pthread barrier test * Added protection so that errno cannot be modified from interrupt handling. * sched_setparam(), sched_setscheduler() now correctly set From 6ef1a2ef9c4ea2366405c81963f3a7296f3923b5 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 26 Mar 2007 16:47:17 +0000 Subject: [PATCH 0036/1518] Create a place to hold board specific header files git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@146 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index f1ac32c485..c970198fce 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -173,12 +173,12 @@ below and discussed in the following paragraphs:</p> </p> <ul><pre> &lt;<i>arch-name</i>&gt; - |-- include + |-- include/ | |-- arch.h | |-- irq.h | |-- types.h | `-- limits.h - `-- src + `-- src/ |-- Makefile `-- <i>(architecture-specific source files)</i> </pre></ul> @@ -294,6 +294,7 @@ below and discussed in the following paragraphs:</p> </p> <ul><pre> &lt;<i>board-name</i>&gt; + |-- include/ |-- Make.defs |-- defconfig `-- setenv.sh @@ -301,6 +302,14 @@ below and discussed in the following paragraphs:</p> <h3><a name="#summaryofconfigfiles">2.3.2 Summary of Files</a></h3> <ul> + <li> + <code>include/</code>: + This directory contains board specific header files. + This directory will be linked as <code>include/arch/board</code> at configuration time + and can be included via <code>#include &lt;arch/board/header.h&gt;</code>. + These header file can only be included by files in <code>arch/&lt;arch-name&gt;/include/</code> + and <code>arch/&lt;arch-name&gt;/src/</code>. + </li> <li> <code>Make.defs</code>: This makefile fragment provides architecture and tool-specific build options. It will be included by all other @@ -316,6 +325,7 @@ below and discussed in the following paragraphs:</p> fragment may include ${TOPDIR}/.config to perform configuration specific settings. For example, the CFLAGS will most likely be different if CONFIG_DEBUG=y. + </p> </li> <li> <code>defconfig</code>: This is a configuration file similar to the Linux From b7f96525ab3db8be366f6dd49d60e02f48e29ee9 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 26 Mar 2007 22:14:28 +0000 Subject: [PATCH 0037/1518] Add a directory to hold board-specific drivers git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@151 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index c970198fce..e609b5287b 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -295,6 +295,8 @@ below and discussed in the following paragraphs:</p> <ul><pre> &lt;<i>board-name</i>&gt; |-- include/ + |-- src/ + | `-- Makefile |-- Make.defs |-- defconfig `-- setenv.sh @@ -310,6 +312,17 @@ below and discussed in the following paragraphs:</p> These header file can only be included by files in <code>arch/&lt;arch-name&gt;/include/</code> and <code>arch/&lt;arch-name&gt;/src/</code>. </li> + <li> + <code>src/</code>: + This directory contains board specific drivers. + This directory will be linked as <config>arch/&lt;arch-name&gt;/src/board</config> at configuration + time and will be integrated into the build system. + </li> + <li> + <code>src/Makefile</code>: + This makefile will be invoked to build the board specific drivers. + It must support the following targets: <code>libext$(LIBEXT)</code>, <code>clean</code>, and <code>distclean</code>. + </li> <li> <code>Make.defs</code>: This makefile fragment provides architecture and tool-specific build options. It will be included by all other From 9efa9baf475074a4e88eb5c4ec7c0cd38a06dc2a Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 27 Mar 2007 16:35:48 +0000 Subject: [PATCH 0038/1518] update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@162 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 0b843a4d90..49e51c1919 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -180,7 +180,7 @@ </table> <p> - The fourth release of NuttX (nuttx-0.2.1) is avalable for download + The fifth release of NuttX (nuttx-0.2.2) is avalable for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. </p> @@ -430,7 +430,7 @@ Other memory: * Some Documentation updates * Added support for the Neuros OSD / DM320 -0.2.2 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> +0.2.2 2007-03-26 Gregory Nutt <spudmonkey@racsa.co.cr> * Created the configs/ directory; separated board configuration from processor architecture logic * Add memory leak detection test to examples/ostest @@ -447,6 +447,11 @@ Other memory: * sched_setparam(), sched_setscheduler() now correctly set errno; pthread_setscheduler() now returns the correct errno. * Added pthread_setschedprio(). + * Added directories to hold board-specific header files + * Added directories to hold board-specific drivers + +0.2.3 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> + * Started m68322 </pre></ul> From e9aa9979a262ee0d0572e1375fc580ac429fd276 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 27 Mar 2007 21:27:41 +0000 Subject: [PATCH 0039/1518] updates git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@163 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 281 +- Documentation/NuttxUserGuide.html | 4384 +++++++++++++------------- 2 files changed, 2423 insertions(+), 2242 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index e609b5287b..90dfcec54f 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -16,7 +16,7 @@ </b></big> <p><small>by</small></p> <p>Gregory Nutt</p> - <p><small>Last Update: March 22, 2007</small></p> + <p><small>Last Update: March 26, 2007</small></p> </center> <center><h1>Table of Contents</h1></center> @@ -34,8 +34,11 @@ <ul> <li><a href="#configsdirectorystructure">2.3.1 Subdirectory Structure</a></li> <li><a href="#summaryofconfigfiles">2.3.2 Summary of Files</a></li> + <ul> + <li><a href="#boardlogic">2.3.2.1 Board Specific Logic</a></li> + <li><a href="#boardconfigfiles">2.3.2.2 Board Specific Configuration Files</a></li> + </ul> <li><a href="#supportedboards">2.3.3 Supported Boards</a></li> - <li><a href="#configuringnuttx">2.3.4 Configuring NuttX</a></li> </ul> <li>2.4 <a href="#DirStructDrivers">drivers</a></li> <li>2.5 <a href="#DirStructExamples">examples</a></li> @@ -45,8 +48,13 @@ <li>2.9 <a href="#DirStructMm">mm</a></li> <li>2.10 <a href="#DirStructSched">sched</a></li> <li>2.11 <a href="#DirStructTools">tools</a></li> + <li>2.12 <a href="#topmakefile">Makefile</a></li> +</ul> +<li>3.0 <a href="#configandbuild">Configuring and Building</a></li> +<ul> + <li><a href="#configuringnuttx">3.1 Configuring NuttX</a></li> + <li><a href="#buildingnuttx">3.2 Building NuttX</a></li> </ul> -<li>3.0 <a href="#DirectoryConfiAndBuild">Configuring and Building</a></li> <li>4.0 <a href="#ArchAPIs">Architecture APIs</a></li> <ul> <li><a href="#imports">4.1 APIs Exported by Architecture-Specific Logic to NuttX</a></li> @@ -88,7 +96,7 @@ into the build. </p> <p> - See also arch/README.txt. + See also <code>arch/README.txt</code> and <code>configs/README.txt</code>. </p> <p><b>General Philosophy</b>. @@ -96,53 +104,66 @@ <hr> <h1>2.0 <a name="DirectoryStructure">Directory Structure</a></h1> -<p>The general directly layout for NuttX is very similar to the directory structure -of the Linux kernel -- at least at the most superficial layers. -At the top level is the main makefile and a series of sub-directories identified -below and discussed in the following paragraphs:</p> - +<p> + <b>Directory Structure</b>. + The general directly layout for NuttX is very similar to the directory structure + of the Linux kernel -- at least at the most superficial layers. + At the top level is the main makefile and a series of sub-directories identified + below and discussed in the following paragraphs: +</p> <ul><pre> . -|-- Makefile +|-- <a href="#topmakefile">Makefile</a> |-- <a href="#DirStructDocumentation">Documentation</a> -| `-- <i>(documentation files)</i> -|-- <a href="#DirStructArch">arch</a> -| |-- <i>&lt;arch-name&gt;</i> -| | |-- include -| | `-- src -| `-- <i>&lt:;other-architectures&gt;</i> -|-- <a href="#DirStructConfigs">configs</a> -| |-- <i>&lt;board-name&gt;</i> -| | |-- Make.defs -| | |-- defconfig -| | `-- setenv.sh -| `-- <i>&lt:;other-architectures&gt;</i> +| `-- <i>(documentation files)</i>/ +|-- <a href="#DirStructArch">arch</a>/ +| |-- <i>&lt;arch-name&gt;</i>/ +| | |-- include/ +| | | |--<i>&lt;chip-name&gt;</i>/ +| | | | `-- <i>(chip-specific header files)</i> +| | | |--<i>&lt;other-chips&gt;</i>/ +| | | `-- <i>(architecture-specific header files)</i> +| | `-- src/ +| | |--<i>&lt;chip-name&gt;</i>/ +| | | `-- <i>(chip-specific source files)</i> +| | |--<i>&lt;other-chips&gt;</i>/ +| | `-- <i>(architecture-specific source files)</i> +| `-- <i>&lt;other-architectures&gt;</i>/ +|-- <a href="#DirStructConfigs">configs</a>/ +| |-- <i>&lt;board-name&gt;</i>/ +| | |-- include/ +| | | `-- <i>(board-specific header files)</i> +| | |-- src/ +| | | |-- Makefile +| | | `-- <i>(board-specific source files)</i> +| | `-- <i>(board-specific configuration files)</i> +| `-- <i>&lt;other-boards&gt;</i>/ |-- <a href="#DirStructDrivers">drivers</a> -| |-- Makefile -| `-- <i>(driver source files)</i> -|-- <a href="#DirStructExamples">examples</a> -| `-- <i>(example)</i> +| |-- Makefile/ +| `-- <i>(common driver source files)</i> +|-- <a href="#DirStructExamples">examples</a>/ +| `-- <i>(example)</i>/ | |-- Makefile | `-- <i>(example source files)</i> -|-- <a href="#DirStructFs">fs</a> +|-- <a href="#DirStructFs">fs</a>/ | |-- Makefile | `-- <i>(fs source files)</i> -|-- <a href="#DirStructInclude">include</a> +|-- <a href="#DirStructInclude">include</a>/ | |-- <i>(standard header files)</i> -| |-- nuttx +| |-- nuttx/ | | `-- <i>(nuttx specific header files)</i> -| `- sys +| `- sys/ | | `-- <i>(more standard header files)</i> -|-- <a href="#DirStructLib">lib</a> +|-- <a href="#DirStructLib">lib</a>/ | |-- Makefile | `-- <i>(lib source files)</i> -|-- <a href="#DirStructMm">mm</a> +|-- <a href="#DirStructMm">mm</a>/ | |-- Makefile | `-- <i>(mm source files)</i> -|-- <a href="#DirStructSched">sched</a> +|-- <a href="#DirStructSched">sched</a>/ | |-- Makefile | `-- <i>(sched source files)</i> -`-- <a href="#DirStructDrivers">tools</a> +`-- <a href="#DirStructDrivers">tools</a>/ |-- Makefile.mkconfig |-- configure.sh |-- mkconfig.c @@ -150,6 +171,40 @@ below and discussed in the following paragraphs:</p> `-- zipme </pre></ul> +<p> + <b>Configuration Files</b>. + The NuttX configuration consists of: +</p> +<ul> + <li> + <i>Processor architecture specific files</i>. + These are the files contained in the <code>arch/</code><i>&lt;arch-name&gt;</i><code>/</code> directory + and are discussed in a paragraph <a href="#archdirectorystructure">below</a>. + </li> + <li> + <i>Chip/SoC specific files</i>. + Each processor processor architecture is embedded in chip or <i>System-on-a-Chip</i> (SoC) architecture. + The full chip architecture includes the processor architecture plus chip-specific interrupt logic, + clocking logic, general purpose I/O (GIO) logic, and specialized, internal peripherals (such as UARTs, USB, etc.). + <p> + These chip-specific files are contained within chip-specific sub-directories in the + <code>arch/</code><i>&lt;arch-name&gt;</i><code>/</code> directory and are selected via + the <code>CONFIG_ARCH_name</code> selection. + </p> + </li> + <li> + <i>Board specific files</i>. + In order to be usable, the chip must be contained in a board environment. + The board configuration defines additional properties of the board including such things as + peripheral LEDs, external peripherals (such as network, USB, etc.). + <p> + These board-specific configuration files can be found in the + <code>configs/</code><i>&lt;board-name&gt;</i><code>/</code> sub-directories and are discussed + in a a paragraph <a href="#configsdirectorystructure">below</a>. + </p> + </li> +</ul> + <h2>2.1 <a name="DirStructDocumentation">Documentation</a></h2> <p> @@ -168,23 +223,33 @@ below and discussed in the following paragraphs:</p> The complete board port in is defined by the architecture-specific code in this directory (plus the board-specific configurations in the <code>config/</code> subdirectory). - Each architecture must provide a subdirectory, &lt;<i>arch-name</i>&gt; + Each architecture must provide a subdirectory, <i>&lt;arch-name&gt;</i> under <code>arch/</code> with the following characteristics: </p> <ul><pre> - &lt;<i>arch-name</i>&gt; + <i>&lt;arch-name&gt;</i>/ |-- include/ + | |--<i>&lt;chip-name&gt;</i>/ + | | `-- <i>(chip-specific header files)</i> + | |--<i>&lt;other-chips&gt;</i>/ | |-- arch.h | |-- irq.h | |-- types.h | `-- limits.h `-- src/ + |--<i>&lt;chip-name&gt;</i>/ + | `-- <i>(chip-specific source files)</i> + |--<i>&lt;other-chips&gt;</i>/ |-- Makefile `-- <i>(architecture-specific source files)</i> </pre></ul> <h3><a name="summaryofarchfiles">2.2.2 Summary of Files</a></h3> <ul> + <li> + <code>include/</code><i>&lt;chip-name&gt;</i><code>/</code> + This sub-directory contains chip-specific header files. + </li> <li> <code>include/arch.h</code>: This is a hook for any architecture specific definitions that may @@ -239,6 +304,10 @@ below and discussed in the following paragraphs:</p> by the board. </p> </li> + <li> + <code>src/</code><i>&lt;chip-name&gt;</i><code>/</code> + This sub-directory contains chip-specific source files. + </li> <li> <code>src/Makefile</code>: This makefile will be executed to build the targets <code>src/libup.a</code> and @@ -251,7 +320,7 @@ below and discussed in the following paragraphs:</p> <i>(architecture-specific source files)</i>. The file <code>include/nuttx/arch.h</code> identifies all of the APIs that must be provided by the architecture specific logic. (It also includes - <code>arch/&lt;arch-name&gt;/arch.h</code> as described above). + <code>arch/</code><i>&lt;arch-name&gt;</i><code>/arch.h</code> as described above). </li> </ul> @@ -293,29 +362,32 @@ below and discussed in the following paragraphs:</p> provide a subdirectory &lt;board-name&gt; under <code>configs/</code> with the following characteristics: </p> <ul><pre> - &lt;<i>board-name</i>&gt; + <i>&lt;board-name&gt;</i> |-- include/ + | `-- <i>(board-specific header files)</i> |-- src/ - | `-- Makefile + | |-- Makefile + | `-- <i>(board-specific source files)</i> |-- Make.defs |-- defconfig `-- setenv.sh </pre></ul> -<h3><a name="#summaryofconfigfiles">2.3.2 Summary of Files</a></h3> +<h3><a name="summaryofconfigfiles">2.3.2 Summary of Files</a></h3> +<h4><a name="boardlogic">2.3.2.1 Board Specific Logic</a></h4> <ul> <li> <code>include/</code>: This directory contains board specific header files. This directory will be linked as <code>include/arch/board</code> at configuration time and can be included via <code>#include &lt;arch/board/header.h&gt;</code>. - These header file can only be included by files in <code>arch/&lt;arch-name&gt;/include/</code> - and <code>arch/&lt;arch-name&gt;/src/</code>. + These header file can only be included by files in <code>arch/</code><i>&lt;arch-name&gt;</i><code>/include/</code> + and <code>arch/</code><i>&lt;arch-name&gt;</i><code>/src/</code>. </li> <li> <code>src/</code>: This directory contains board specific drivers. - This directory will be linked as <config>arch/&lt;arch-name&gt;/src/board</config> at configuration + This directory will be linked as <config>arch/</code><i>&lt;arch-name&gt;</i><code>/src/board</config> at configuration time and will be integrated into the build system. </li> <li> @@ -323,6 +395,15 @@ below and discussed in the following paragraphs:</p> This makefile will be invoked to build the board specific drivers. It must support the following targets: <code>libext$(LIBEXT)</code>, <code>clean</code>, and <code>distclean</code>. </li> +</ul> +<h4><a name="boardconfigfiles">2.3.2.2 Board Specific Configuration Files</a></h4> +<p> + The <code>configs/</code><i>&lt;board-name&gt;</i><code>/</code> sub-directory holds all of the + files that are necessary to configure Nuttx for the particular board. + The procedure for configuring NuttX is described <a href="#configuringnuttx">below</a>, + This paragraph will describe the contents of these configuration files. +</p> +<ul> <li> <code>Make.defs</code>: This makefile fragment provides architecture and tool-specific build options. It will be included by all other @@ -362,7 +443,12 @@ below and discussed in the following paragraphs:</p> </li> </ul> -<h3><a name="#supportedboards">2.3.3 Supported Boards</a></h3> +<h3><a name="supportedboards">2.3.3 Supported Boards</a></h3> +<p> + All of the specific boards supported by NuttX are identified below. + These the the specific <i>&lt;board-name&gt;</i>'s that may be used to configure NuttX + as described <a href="#configuringnuttx">below</a>. +</p> <ul> <li><code>configs/sim</code>: A user-mode port of NuttX to the x86 Linux platform is available. @@ -399,24 +485,6 @@ below and discussed in the following paragraphs:</p> is available to build these toolchains. </blockquote></small></p> -<h3><a name="configuringnuttx">2.3.4 Configuring NuttX</a></h3> -<p> - Configuring NuttX requires only copying: -</p> -<ul> - <code>configs/&lt;<i>board-name</i>&gt;/Make.def</code> to <code>${TOPDIR}/Make.defs</code>, - <code>configs/&lt;<i>board-name</i>&gt;/setenv.sh</code> to <code>${TOPDIR}/setenv.sh</code>, and - <code>configs/&lt;<i>board-name</i>&gt;/defconfig</code> to ${TOPDIR}/.config</code> -</ul> -<p> - There is a script that automates these steps. The following steps will - accomplish the same configuration: -</p> -<ul><pre> - cd tools - ./configure.sh &lt;<i>board-name</i>&gt; -</pre></ul> - <h2>2.4 <a name="DirStructDrivers">drivers</a></h2> <p> @@ -453,33 +521,112 @@ below and discussed in the following paragraphs:</p> </ul> <h2>2.8 <a name="DirStructLib">lib</a></h2> - <p> This directory holds a collection of standard libc-like functions with custom interfaces into Nuttx. </p> <h2>2.9 <a name="DirStructMm">mm</a></h2> - <p> This is the NuttX memory manager. </p> <h2>2.10 <a name="DirStructSched">sched</a></h2> - <p> The files forming core of the NuttX RTOS reside here. </p> <h2>2.11 <a name="DirStructTools">tools</a></h2> - <p> This directory holds a collection of tools and scripts to simplify configuring and building NuttX. </p> +<h2>2.12 <a name="topmakefile">Makefile</a></h2> +<p> + The top-level <code>Makefile</code> in the <code>${TOPDIR}</code> directory contains all of the top-level control + logic to build NuttX. + Use of this <code>Makefile</code> to build NuttX is described <a href="#buildingnuttx">below</a>. +</p> + <hr> -<h1>3.0 <a name="DirectoryConfiAndBuild">Configuring and Building</a></h1> +<h1>3.0 <a name="configandbuild">Configuring and Building</a></h1> +<h2><a name="configuringnuttx">3.1 Configuring NuttX</a></h2> +<p> + <b>Manual Configuration</b>. + Configuring NuttX requires only copying the + <a href="#boardconfigfiles">board-specific configuration files</a> into the top level directory which appears in the make files as the make variable, <code>${TOPDIR}</code>. + This could be done manually as follows: +</p> +<ul> + <li>Copy <code>configs/</code><i>&lt;board-name&gt;</i></code>/Make.def</code> to <code>${TOPDIR}/Make.defs</code>,<li> + <li>Copy <code>configs/</code><i>&lt;board-name&gt;</i></code>/setenv.sh</code> to <code>${TOPDIR}/setenv.sh</code>, and</li> + <li>Copy <code>configs/</code><i>&lt;board-name&gt;</i></code>/defconfig</code> to <code>${TOPDIR}/.config</code></li> +</ul> +<p> + Where <i>&lt;board-name&gt;</i> is the name of one of the sub-directories of the + NuttX <a href="#DirStructConfigs"><code>configs/</code></a> directory. + This sub-directory name corresponds to one of the supported boards + identified <a href="#supportedboards">above</a>. +</p> +<p> + <b>Automated Configuration</b>. + There is a script that automates these steps. The following steps will + accomplish the same configuration: +</p> +<ul><pre> + cd tools + ./configure.sh <i>&lt;board-name&gt;</i> +</pre></ul> + +<p> + <b>Additional Configuration Steps</b>. + The remainder of configuration steps will be performed by <a href="#topmakefile"><code>${TOPDIR}/Makefile</code></a> + the first time the system is built as described below. +</p> + +<h2><a name="buildingnuttx">3.2 Building NuttX</a></h2> +<p> + <b>Building NuttX</b>. + Once NuttX has been configured as described <a href="#configuringnuttx">above</a>, it may be built as follows: +</p> +<ul><pre> +cd ${TOPDIR} +source ./setenv.sh +make +</pre></ul> +<p> + The <code>${TOPDIR}</code> directory holds: +</p> +<ul> + <li>The top level <a href="#topmakefile"><code>Makefile</code></a> that controls the NuttX build. +</ul> +<p> + That directory also holds: +</p> +<ul> + <li>The makefile fragment <a href="#boardconfigfiles"><code>.config</code></a> that describes the current configuration.</li> + <li>The makefile fragment <a href="#boardconfigfiles"><code>Make.defs</code></a> that provides customized build targers, and</li> + <li>The shell script <a href="#boardconfigfiles"><code>setenv.sh</code></a> that sets up the configuration environment for the build.</li> +</ul> +<p> +The <a href="#boardconfigfiles"><code>setenv.sh</code></a> contains Linux environmental settings that are needed for the build. +The specific environmental definitions are unique for each board but should include, as a minimum, updates to the <code>PATH</code> variable to include the full path to the architecture-specific toolchain identified in <a href="#boardconfigfiles"><code>Make.defs</code></a>. +The <a href="#boardconfigfiles"><code>setenv.sh</code></a> only needs to be source'ed at the beginning of a session. +The system can be re-made subsequently by just typing <code>make</code>. +</p> +<p> + <b>First Time Make.</b> + Additional configuration actions will be taken the first time that system is built. + These additional steps include: +</p> +<ul> + <li>Auto-generating the file <code>include/nuttx/config.</code> using the <code>${TOPDIR}/.config</code> file. + <li>Creating a link to <code>${TOPDIR}/arch/</code><i>&lt;arch-name&gt;</i><code>/include</code> at <code>${TOPDIR}/include/arch</code>. + <li>Creating a link to <code>${TOPDIR}/configs/</code><i>&lt;board-name&gt;</i><code>/include</code> at <code>${TOPDIR}/include/arch/board</code>. + <li>Creating a link to <code>${TOPDIR}/configs/</code><i>&lt;board-name&gt;</i><code>/src</code> at <code>${TOPDIR}/arch/</code><i>&lt;arch-name&gt;</i><code>/src/board</code> + <li>Creating make dependencies. +</ul> <h1>4.0 <a name="ArchAPIs">Architecture APIs</a></h1> diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 7ebb2c13bb..d13addea17 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -11,85 +11,110 @@ <center><h1><i>Under Construction</i></h1></center> <hr> <hr> -<CENTER><BIG><B> +<CENTER><BIG><b> NuttX Operating System -<P> +<p> User's Manual -</B></BIG> -<P> +</b></BIG> +<p> <SMALL>by</SMALL> -<P> +<p> Gregory Nutt -<P> -<SMALL>Last Update: March 21, 2007</SMALL> +<p> +<SMALL>Last Update: March 26, 2007</SMALL> </CENTER> -<H1>1.0 <A NAME="Introduction">Introduction</A></H1> +<h1>1.0 <A NAME="Introduction">Introduction</a></h1> -<P> -This user's manual is divided into three sections plus a index: -<UL> -<LI><B>Section 1.0, <A HREF="#Introduction">Introduction</A></B>: -This section provides an overview of the NuttX user's manual. -<LI><B>Section 2.0, <A HREF="#OS_Interfaces">OS Interfaces</A></B>: -This section details the interfaces provided by NuttX from the -perspective of the firmware developer. This section is divided -into several paragraphs that describe different groups of OS interfaces: -<UL> -<LI>Paragraph 2.1 <A HREF="#Task_Control">Task Control Interfaces</A> -<LI>Paragraph 2.2 <A HREF="#Task_Schedule">Task Scheduling Interfaces</A> -<LI>Paragraph 2.3 <A HREF="#Task_Switch">Task Switching Interfaces</A> -<LI>Paragraph 2.4 <A HREF="#Message_Queue">Named Message Queue Interfaces</A> -<LI>Paragraph 2.5 <A HREF="#Semaphores">Counting Semaphore Interfaces</A> -<LI>Paragraph 2.6 <A HREF="#Watchdogs">Watchdog Timer Interfaces</A> -<LI>Paragraph 2.7 <A HREF="#ClocksNTimers">Clocks and Timers</A> -<LI>Paragraph 2.8 <A HREF="#Signals">Signal Interfaces</A> -<LI>Paragraph 2.9 <A HREF="#Pthread">Pthread Interfaces</A> -<LI>Paragraph 2.10 <A HREF="#FileSystem">Filesystem Interfaces</A> -</UL> -<LI><B>Section 3.0, <A HREF="#Data_Structures">OS Data Structures</A></B>: -This section documents the data structures that are used at the NuttX -interface. -<li><a href="#index">Index</a></li> +<p> + This manual provides general usage information for the NuttX RTOS from the + perspective of the firmware developer. + +<h2>1.1 <a name="overview">Document Overview</a></h2> +<p> + This user's manual is divided into three sections plus a index: +</p> +<ul> + <li> + <b>Section 1.0, <a href="#Introduction">Introduction</a></b>: + This section provides an overview of the NuttX user's manual. + </li> + <li> + <b>Section 2.0, <a href="#OS_Interfaces">OS Interfaces</a></b>: + This section details the program interfaces provided by NuttX. + This section is divided into several paragraphs that describe different groups of OS interfaces: + <ul> + <li>Paragraph 2.1 <a href="#Task_Control">Task Control Interfaces</a></li> + <li>Paragraph 2.2 <a href="#Task_Schedule">Task Scheduling Interfaces</a></li> + <li>Paragraph 2.3 <a href="#Task_Switch">Task Switching Interfaces</a></li> + <li>Paragraph 2.4 <a href="#Message_Queue">Named Message Queue Interfaces</a></li> + <li>Paragraph 2.5 <a href="#Semaphores">Counting Semaphore Interfaces</a></li> + <li>Paragraph 2.6 <a href="#Watchdogs">Watchdog Timer Interfaces</a></li> + <li>Paragraph 2.7 <a href="#ClocksNTimers">Clocks and Timers</a></li> + <li>Paragraph 2.8 <a href="#Signals">Signal Interfaces</a></li> + <li>Paragraph 2.9 <a href="#Pthread">Pthread Interfaces</a></li> + <li>Paragraph 2.10 <a href="#FileSystem">Filesystem Interfaces</a></li> + </ul> + </li> + <li> + <b>Section 3.0, <a href="#Data_Structures">OS Data Structures</a></b>: + This section documents the data structures that are used at the NuttX + interface. + </li> + <li> + <a href="#index">Index</a> + </li> </ul> -<HR> -<H1>2.0 <A NAME="OS_Interfaces">OS Interfaces</A></H1> +<h2>1.2 <a name="scope">Intended Audience and Scope</a></h2> +<p> + The intended audience for this document are firmware developers who are implementing applications on NuttX. + Specifically, this documented is limited to addressing only NuttX RTOS APIs that are available to the application developer. + As such, this document does not focus on any technical details of the organization or implementation of NuttX. + Those technical details are provided in the <a href="NuttxPortingGuide.html">NuttX Porting Guide</a>. +</p> +<p> + Information about configuring and building NuttX is also needed by the application developer. + That information can also be found in the <a href="NuttxPortingGuide.html#configandbuild">NuttX Porting Guide</a>. +</p> -<P> -This section describes each C-callable interface to the NuttX -Operating System. The description of each interface is presented -in the following format: -<P> -<B>Function Prototype:</B> The C prototype of the interface function +<hr> + +<h1>2.0 <A NAME="OS_Interfaces">OS Interfaces</a></h1> +<p> + This section describes each C-callable interface to the NuttX + Operating System. The description of each interface is presented + in the following format: +<p> +<b>Function Prototype:</b> The C prototype of the interface function is provided. -<P> -<B>Description:</B> The operation performed by the interface function +<p> +<b>Description:</b> The operation performed by the interface function is discussed. -<P> -<B>Input Parameters:</B> All input parameters are listed along +<p> +<b>Input Parameters:</b> All input parameters are listed along with brief descriptions of each input parameter. -<P> -<B>Returned Values:</B> All possible values returned by the interface +<p> +<b>Returned Values:</b> All possible values returned by the interface function are listed. Values returned as side-effects (through pointer input parameters or through global variables) will be addressed in the description of the interface function. -<P> -<B>Assumptions/Limitations:</B> Any unusual assumptions made by +<p> +<b>Assumptions/Limitations:</b> Any unusual assumptions made by the interface function or any non-obvious limitations to the use of the interface function will be indicated here. -<P> -<B>POSIX Compatibility:</B> Any significant differences between the +<p> +<b>POSIX Compatibility:</b> Any significant differences between the NuttX interface and its corresponding POSIX interface will be noted here. -<P> +<p> NOTE: In order to achieve an independent name space for the NuttX interface functions, differences in function names and types are to be expected and will not be identified as differences in these paragraphs. -<HR> +<hr> -<H2>2.1 <A NAME="Task_Control">Task Control Interfaces</A></H2> +<H2>2.1 <A NAME="Task_Control">Task Control Interfaces</a></H2> <p> <b>Tasks</b>. @@ -139,20 +164,20 @@ paragraphs. <H3><a name="taskcreate">2.1.1 task_create</a></H3> -<P> -<B>Function Prototype:</B> +<p> +<b>Function Prototype:</b> <PRE> #include &lt;sched.h&gt; int task_create(char *name, int priority, int stack_size, main_t entry, const char *argv[]); </PRE> -<P> -<B>Description:</B> +<p> +<b>Description:</b> This function creates and activates a new task with a specified priority and returns its system-assigned ID. </p> -<P>The entry address entry is the address of the &quot;main&quot; +<p>The entry address entry is the address of the &quot;main&quot; function of the task. This function will be called once the C environment has been set up. The specified function will be called with four arguments. @@ -180,34 +205,34 @@ paragraphs. descriptors (corresponding to stdin, stdout, and stderr) and redirection of standard I/O is supported. </p> -<P> -<B>Input Parameters:</B> - <UL> - <LI><I>name</I>. Name of the new task</LI> - <LI><I>priority</I>. Priority of the new task</LI> - <LI><I>stack_size</I>. size (in bytes) of the stack needed</LI> - <LI><I>entry</I>. Entry point of a new task</LI> - <LI><I>argv</I>. A pointer to an array of input parameters. Up to +<p> +<b>Input Parameters:</b> + <ul> + <li><I>name</I>. Name of the new task</LI> + <li><I>priority</I>. Priority of the new task</LI> + <li><I>stack_size</I>. size (in bytes) of the stack needed</LI> + <li><I>entry</I>. Entry point of a new task</LI> + <li><I>argv</I>. A pointer to an array of input parameters. Up to <code>CONFIG_MAX_TASK_ARG</code> parameters may be provided. If fewer than <code>CONFIG_MAX_TASK_ARG</code> parameters are passed, the list should be terminated with a NULL argv[] value. If no parameters are required, argv may be NULL. - </UL> -<P> - <B>Returned Values:</B> + </ul> +<p> + <b>Returned Values:</b> </P> -<UL> -<LI> +<ul> +<li> Returns the non-zero task ID of the new task or ERROR if memory is insufficient or the task cannot be created (errno is not set). </LI> -</UL> +</ul> -<P> -<B>Assumptions/Limitations:</B> -<P> -<B>POSIX Compatibility:</B> This is a NON-POSIX interface. +<p> +<b>Assumptions/Limitations:</b> +<p> +<b>POSIX Compatibility:</b> This is a NON-POSIX interface. VxWorks provides the following similar interface: <PRE> int taskSpawn(char *name, int priority, int options, int stackSize, FUNCPTR entryPt, @@ -215,71 +240,71 @@ VxWorks provides the following similar interface: int arg6, int arg7, int arg8, int arg9, int arg10); </PRE> -<P> +<p> The NuttX task_create() differs from VxWorks' taskSpawn() in the following ways: </p> -<UL> -<LI>Interface name -<LI>Various differences in types of arguments -<LI>There is no options arguement. -<LI>A variable number of parameters can be passed to a task (VxWorks supports ten). -</UL> +<ul> +<li>Interface name +<li>Various differences in types of arguments +<li>There is no options arguement. +<li>A variable number of parameters can be passed to a task (VxWorks supports ten). +</ul> <H3><a name="taskinit">2.1.2 task_init</a></H3> -<P> -<B>Function Prototype:</B> +<p> +<b>Function Prototype:</b> <PRE> #include &lt;sched.h&gt; STATUS task_init(_TCB *tcb, char *name, int priority, uint32 *stack, uint32 stack_size, maint_t entry, const char *argv[]); </PRE> -<P> -<B>Description:</B> -<P> +<p> +<b>Description:</b> +<p> This function initializes a Task Control Block (TCB) in preparation for starting a new thread. It performs a subset of the functionality of <code>task_create()</code> (see above). </P> -<P> +<p> Unlike task_create(), task_init() does not activate the task. This must be done by calling task_activate(). </P> -<P> -<B>Input Parameters:</B> - <UL> - <LI><I>tcb</I>. Address of the new task's TCB - <LI><I>name</I>. Name of the new task (not used) - <LI><I>priority</I>. Priority of the new task - <LI><I>stack</I>. Start of the pre-allocated stack - <LI><I>stack_size</I>. size (in bytes) of the pre-allocated stack - <LI><I>entry</I>. Entry point of a new task - <LI><I>argv</I>. A pointer to an array of input parameters. Up to +<p> +<b>Input Parameters:</b> + <ul> + <li><I>tcb</I>. Address of the new task's TCB + <li><I>name</I>. Name of the new task (not used) + <li><I>priority</I>. Priority of the new task + <li><I>stack</I>. Start of the pre-allocated stack + <li><I>stack_size</I>. size (in bytes) of the pre-allocated stack + <li><I>entry</I>. Entry point of a new task + <li><I>argv</I>. A pointer to an array of input parameters. Up to <code>CONFIG_MAX_TASK_ARG</code> parameters may be provided. If fewer than <code>CONFIG_MAX_TASK_ARG</code> parameters are passed, the list should be terminated with a NULL argv[] value. If no parameters are required, argv may be NULL. - </UL> + </ul> </p> -<P> -<B>Returned Values:</B> +<p> +<b>Returned Values:</b> </p> -<UL> - <LI><P>OK, or ERROR if the task cannot be initialized.</P> - <P>This function can only failure is it is unable to assign +<ul> + <li><p>OK, or ERROR if the task cannot be initialized.</P> + <p>This function can only failure is it is unable to assign a new, unique task ID to the TCB (errno is not set).</P> -</UL> -<P> -<B>Assumptions/Limitations:</B> -<UL> -<LI>task_init() is provided to support internal OS functionality. It is -<B>not recommended</B> for normal usage. task_create() is the preferred +</ul> +<p> +<b>Assumptions/Limitations:</b> +<ul> +<li>task_init() is provided to support internal OS functionality. It is +<b>not recommended</b> for normal usage. task_create() is the preferred mechanism to initialize and start a new task. -</UL> -<P> -<B>POSIX Compatibility:</B> This is a NON-POSIX interface. +</ul> +<p> +<b>POSIX Compatibility:</b> This is a NON-POSIX interface. VxWorks provides the following similar interface: <PRE> STATUS taskInit(WIND_TCB *pTcb, char *name, int priority, int options, uint32 *pStackBase, int stackSize, @@ -287,121 +312,121 @@ VxWorks provides the following similar interface: int arg6, int arg7, int arg8, int arg9, int arg10); </PRE> -<P> +<p> The NuttX task_init() differs from VxWorks' taskInit() in the following ways: </p> -<UL> -<LI>Interface name -<LI>Various differences in types or arguments -<LI>There is no options argument. -<LI>A variable number of parameters can be passed to a task (VxWorks supports ten). -</UL> +<ul> +<li>Interface name +<li>Various differences in types or arguments +<li>There is no options argument. +<li>A variable number of parameters can be passed to a task (VxWorks supports ten). +</ul> <H3><a name="taskactivate">2.1.3 task_activate</a></H3> -<P> -<B>Function Prototype:</B> +<p> +<b>Function Prototype:</b> <PRE> #include &lt;sched.h&gt; STATUS task_activate( _TCB *tcb ); </PRE> -<P> -<B>Description:</B> This function activates tasks created by task_init(). +<p> +<b>Description:</b> This function activates tasks created by task_init(). Without activation, a task is ineligible for execution by the scheduler. -<P> -<B>Input Parameters:</B> -<UL> -<LI><I>tcb</I>. The TCB for the task for the task (same as the +<p> +<b>Input Parameters:</b> +<ul> +<li><I>tcb</I>. The TCB for the task for the task (same as the task_init argument). -</UL> +</ul> -<P> -<B>Returned Values:</B> -<UL> -<LI>OK, or ERROR if the task cannot be activated (errno is not set). -</UL> +<p> +<b>Returned Values:</b> +<ul> +<li>OK, or ERROR if the task cannot be activated (errno is not set). +</ul> -<P> -<B>Assumptions/Limitations:</B> -<UL> -<LI>task_activate() is provided to support internal OS functionality. It is -<B>not recommended</B> for normal usage. task_create() is the preferred +<p> +<b>Assumptions/Limitations:</b> +<ul> +<li>task_activate() is provided to support internal OS functionality. It is +<b>not recommended</b> for normal usage. task_create() is the preferred mechanism to initialize and start a new task. -</UL> -<P> -<B>POSIX Compatibility:</B> This is a NON-POSIX interface. +</ul> +<p> +<b>POSIX Compatibility:</b> This is a NON-POSIX interface. VxWorks provides the following similar interface: <PRE> STATUS taskActivate( int tid ); </PRE> -<P> +<p> The NuttX task_activate() differs from VxWorks' taskActivate() in the following ways: </p> -<UL> -<LI>Function name -<LI>With VxWork's taskActivate, the pid argument is supposed to be +<ul> +<li>Function name +<li>With VxWork's taskActivate, the pid argument is supposed to be the pointer to the WIND_TCB cast to an integer. -</UL> +</ul> <H3><a name="taskdelete">2.1.4 task_delete</a></H3> -<P> -<B>Function Prototype:</B> +<p> +<b>Function Prototype:</b> <PRE> #include &lt;sched.h&gt; STATUS task_delete( pid_t pid ); </PRE> -<P> -<B>Description:</B> This function causes a specified task to cease +<p> +<b>Description:</b> This function causes a specified task to cease to exist -- its stack and TCB will be deallocated. This function is the companion to task_create(). -<P> -<B>Input Parameters:</B> -<UL> -<LI><I>pid</I>. The task ID of the task to delete. An ID of +<p> +<b>Input Parameters:</b> +<ul> +<li><I>pid</I>. The task ID of the task to delete. An ID of zero signifies the calling task. -</UL> +</ul> -<P> -<B>Returned Values:</B> -<UL> -<LI>OK, or ERROR if the task cannot be deleted. +<p> +<b>Returned Values:</b> +<ul> +<li>OK, or ERROR if the task cannot be deleted. This function can fail if the provided pid does not correspond to a task (errno is not set) -</UL> +</ul> -<P> -<B>Assumptions/Limitations:</B> -<P> +<p> +<b>Assumptions/Limitations:</b> +<p> task_delete() must be used with caution: If the task holds resources (for example, allocated memory or semaphores needed by other tasks), then task_delete() can strand those resources. -<P> -<B>POSIX Compatibility:</B> This is a NON-POSIX interface. +<p> +<b>POSIX Compatibility:</b> This is a NON-POSIX interface. VxWorks provides the following similar interface: <PRE> STATUS taskDelete( int tid ); </PRE> -<P> +<p> The NuttX task_delete() differs from VxWorks' taskDelete() in the following ways: </p> -<UL> -<LI>No support is provided for calling the tasks deletion routines +<ul> +<li>No support is provided for calling the tasks deletion routines (because taskDeleteHookAdd() is not supported). -<LI>Deletion of self is not supported. Use _exit(); -</UL> +<li>Deletion of self is not supported. Use _exit(); +</ul> <H3><a name="exit">2.1.5 exit</a></H3> -<P> -<B>Function Prototype:</B> +<p> +<b>Function Prototype:</b> <PRE> #include &lt;sched.h&gt; void exit( int code ); @@ -410,25 +435,25 @@ VxWorks provides the following similar interface: void _exit( int code ); </PRE> -<P> -<B>Description:</B> This function causes the calling task to cease +<p> +<b>Description:</b> This function causes the calling task to cease to exist -- its stack and TCB will be deallocated. exit differs from _exit in that it flushs streams, closes file descriptors and will execute any function registered with atexit(). -<P> -<B>Input Parameters:</B> -<UL> -<LI><I>code</I>. (ignored) -</UL> +<p> +<b>Input Parameters:</b> +<ul> +<li><I>code</I>. (ignored) +</ul> -<P> -<B>Returned Values:</B> None. +<p> +<b>Returned Values:</b> None. -<P> -<B>Assumptions/Limitations:</B> +<p> +<b>Assumptions/Limitations:</b> -<P> -<B>POSIX Compatibility:</B> This is equivalent to the ANSI interface: +<p> +<b>POSIX Compatibility:</b> This is equivalent to the ANSI interface: <PRE> void exit( int code ); </PRE> @@ -437,92 +462,92 @@ And the unix interface: void _exit( int code ); </PRE> -<P> +<p> The NuttX exit() differs from ANSI exit() in the following ways: </p> -<UL> -<LI>The <I>code</I> parameter is ignored. -</UL> +<ul> +<li>The <I>code</I> parameter is ignored. +</ul> <H3><a name="taskrestart">2.1.6 task_restart</a></H3> -<P> -<B>Function Prototype:</B> +<p> +<b>Function Prototype:</b> <PRE> #include &lt;sched.h&gt; STATUS task_restart( pid_t pid ); </PRE> -<P> -<B>Description:</B> This function &quot;restarts&quot; a task. +<p> +<b>Description:</b> This function &quot;restarts&quot; a task. The task is first terminated and then reinitialized with same ID, priority, original entry point, stack size, and parameters it had when it was first started. -<P> -<B>Input Parameters:</B> -<UL> -<LI><I>pid</I>. The task ID of the task to delete. An ID of +<p> +<b>Input Parameters:</b> +<ul> +<li><I>pid</I>. The task ID of the task to delete. An ID of zero signifies the calling task. -</UL> +</ul> -<P> -<B>Returned Values:</B> -<UL> -<LI> +<p> +<b>Returned Values:</b> +<ul> +<li> OK, or ERROR if the task ID is invalid or the task could not be restarted. This function can fail if: (1) A pid of zero or the pid of the calling task is provided (functionality not implemented) (2) The pid is not associated with any task known to the system. </LI> -</UL> +</ul> -<P> -<B>Assumptions/Limitations:</B> -<P> -<B>POSIX Compatibility:</B> This is a NON-POSIX interface. +<p> +<b>Assumptions/Limitations:</b> +<p> +<b>POSIX Compatibility:</b> This is a NON-POSIX interface. VxWorks provides the following similar interface: <PRE> STATUS taskRestart (int tid); </PRE> -<P> +<p> The NuttX task_restart() differs from VxWorks' taskRestart() in the following ways: </p> -<UL> -<LI>Restart of the currently running task is not supported. -<LI>The VxWorks description says that the ID, priority, etc. take +<ul> +<li>Restart of the currently running task is not supported. +<li>The VxWorks description says that the ID, priority, etc. take the value that they had when the task was <I>terminated</I>. -</UL> +</ul> <H3><a name="getpid">2.1.7 getpid</a></H3> -<P> -<B>Function Prototype:</B> +<p> +<b>Function Prototype:</b> <PRE> #include &lt;unistd.h&gt; pid_t getpid( void ); </PRE> -<P> -<B>Description:</B> This function returns the task ID of the +<p> +<b>Description:</b> This function returns the task ID of the calling task. The task ID will be invalid if called at the interrupt level. -<P> -<B>Input Parameters:</B> None. -<P> -<B>Returned Values:</B> -<UL> -<LI>The task ID of the calling task. -</UL> +<p> +<b>Input Parameters:</b> None. +<p> +<b>Returned Values:</b> +<ul> +<li>The task ID of the calling task. +</ul> -<P> -<B>Assumptions/Limitations:</B> -<P> -<B>POSIX Compatibility:</B> +<p> +<b>Assumptions/Limitations:</b> +<p> +<b>POSIX Compatibility:</b> Compatible with the POSIX interface of the same name. -<H2>2.2 <A NAME="Task_Schedule">Task Scheduling Interfaces</A></H2> +<H2>2.2 <A NAME="Task_Schedule">Task Scheduling Interfaces</a></H2> <p> By default, NuttX performs strict priority scheduling: Tasks of higher @@ -560,7 +585,7 @@ Compatible with the POSIX interface of the same name. int sched_setparam(pid_t pid, const struct sched_param *param); </pre> <p> - <b>Description:</B> + <b>Description:</b> This function sets the priority of the task specified by pid input parameter. </p> <p> @@ -607,7 +632,7 @@ Compatible with the POSIX interface of the same name. <b>Assumptions/Limitations:</b> </p> <p> - <B>POSIX Compatibility:</B> + <b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. Differences from the full POSIX implementation include: </p> @@ -617,66 +642,75 @@ Compatible with the POSIX interface of the same name. <H3><a name="schedgetparam">2.2.2 sched_getparam</a></H3> -<P> -<B>Function Prototype:</B> +<p> +<b>Function Prototype:</b> <PRE> #include &lt;sched.h&gt; int sched_getparam (pid_t pid, struct sched_param *param); </PRE> -<P> -<B>Description:</B> This function gets the scheduling priority +<p> +<b>Description:</b> This function gets the scheduling priority of the task specified by pid. -<P> -<B>Input Parameters:</B> -<UL> -<LI><I>pid</I>. The task ID of the task. If pid is zero, the -priority of the calling task is returned. -<li><code>param<code>.</li> A structure whose member sched_priority is the -integer priority. The task's priority is copied to the sched_priority -element of this structure. -</UL> +<p> +<b>Input Parameters:</b> +<ul> +<li> + <code>pid</code>. The task ID of the task. + If pid is zero, the priority of the calling task is returned. +</li> +<li> + <code>param</code>. + A structure whose member <code>sched_priority</code> is the integer priority. + The task's priority is copied to the <code>sched_priority</code> element of this structure. +</li> +</ul> -<P> -<B>Returned Values:</B> -<UL> -<LI>0 (OK) if successful, otherwise -1 (ERROR). -</UL> +<p> +<b>Returned Values:</b> +<ul> +<li>0 (OK) if successful, otherwise -1 (ERROR). +</ul> -<P> -<B>Assumptions/Limitations:</B> -<P> -<B> POSIX Compatibility:</B> Comparable to the POSIX +<p> +<b>Assumptions/Limitations:</b> +<p> +<b> POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. <H3><a name="schedsetscheduler">2.2.3 sched_setscheduler</a></H3> -<P> -<B>Function Prototype:</B> +<p> +<b>Function Prototype:</b> <PRE> #include &lt;sched.h&gt; int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); </PRE> -<P> - <B>Description:</B> +<p> + <b>Description:</b> <i>sched_setscheduler()</i> sets both the scheduling policy and the priority for the task identified by pid. If pid equals zero, the scheduler of the calling thread will be set. The parameter 'param' holds the priority of the thread under the new policy. </p> -<P> -<B>Input Parameters:</B> -<UL> - <LI><I>pid</I>. The task ID of the task. If pid is zero, the +<p> +<b>Input Parameters:</b> +<ul> + <li> + <I>pid</I>. The task ID of the task. If pid is zero, the priority of the calling task is set. - <LI><I>policy</I>. Scheduling policy requested (either SCHED_FIFO - or SCHED_RR). - <li><code>param<code>.</li> A structure whose member sched_priority is the + </li> + <li> + <I>policy</I>. Scheduling policy requested (either SCHED_FIFO or SCHED_RR). + </li> + <li> + <code>param<code>. A structure whose member sched_priority is the integer priority. The range of valid priority numbers is from SCHED_PRIORITY_MIN through SCHED_PRIORITY_MAX. -</UL> -<P> - <B>Returned Values:</B> + </li> +</ul> +<p> + <b>Returned Values:</b> On success, <i>sched_setscheduler()</i> returns OK (zero). On error, ERROR (-1) is returned, and errno is set appropriately: </p> @@ -684,23 +718,23 @@ interface of the same name. <li>EINVAL The scheduling policy is not one of the recognized policies.</li> <li>ESRCH The task whose ID is pid could not be found.</li> -</UL> +</ul> -<P> -<B>Assumptions/Limitations:</B> -<P> -<B> POSIX Compatibility:</B> Comparable to the POSIX +<p> +<b>Assumptions/Limitations:</b> +<p> +<b> POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. <H3><a name="setgetscheduler">2.2.4 sched_getscheduler</a></H3> -<P> -<B>Function Prototype:</B> +<p> +<b>Function Prototype:</b> <PRE> #include &lt;sched.h&gt; int sched_getscheduler (pid_t pid); </PRE> -<P> - <B>Description:</B> +<p> + <b>Description:</b> <i>sched_getscheduler()</i> returns the scheduling policy currently applied to the task identified by pid. If pid equals zero, the policy of the calling process will @@ -712,18 +746,18 @@ interface of the same name. This function returns the current scheduling policy. -<P> -<B>Input Parameters:</B> -<UL> - <LI><I>pid</I>. +<p> +<b>Input Parameters:</b> +<ul> + <li><I>pid</I>. The task ID of the task to query. If pid is zero, the calling task is queried. </LI> -</UL> -<P> -<B>Returned Values:</B> -<UL> - <LI> +</ul> +<p> +<b>Returned Values:</b> +<ul> + <li> On success, <i>sched_getscheduler()</i> returns the policy for the task (either SCHED_FIFO or SCHED_RR). On error, ERROR (-1) is returned, and errno is set appropriately: @@ -731,114 +765,114 @@ policy. <li>ESRCH The task whose ID is pid could not be found.</li> </ul> </li> -</UL> -<P> -<B>Assumptions/Limitations:</B> -<P> -<B> POSIX Compatibility:</B> Comparable to the POSIX +</ul> +<p> +<b>Assumptions/Limitations:</b> +<p> +<b> POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. Differences from the full POSIX implementation include: -<UL> -<LI>Does not report errors via <I>errno</I>. -</UL> +<ul> +<li>Does not report errors via <I>errno</I>. +</ul> <H3><a name="sched_yield">2.2.5 sched_yield</a></H3> -<P> -<B>Function Prototype:</B> +<p> +<b>Function Prototype:</b> <PRE> #include &lt;sched.h&gt; int sched_yield( void ); </PRE> -<P> -<B>Description:</B> This function forces the calling task to give +<p> +<b>Description:</b> This function forces the calling task to give up the CPU (only to other tasks at the same priority). -<P> -<B>Input Parameters:</B> None. -<P> -<B>Returned Values:</B> -<UL> -<LI>0 (OK) or -1 (ERROR) -</UL> +<p> +<b>Input Parameters:</b> None. +<p> +<b>Returned Values:</b> +<ul> +<li>0 (OK) or -1 (ERROR) +</ul> -<P> -<B>Assumptions/Limitations:</B> -<P> -<B> POSIX Compatibility:</B> Comparable to the POSIX +<p> +<b>Assumptions/Limitations:</b> +<p> +<b> POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. <H3><a name="schedgetprioritymax">2.2.6 sched_get_priority_max</a></H3> -<P> -<B>Function Prototype:</B> +<p> +<b>Function Prototype:</b> <PRE> #include &lt;sched.h&gt; int sched_get_priority_max (int policy) </PRE> -<P> -<B>Description:</B> This function returns the value of the highest +<p> +<b>Description:</b> This function returns the value of the highest possible task priority for a specified scheduling policy. -<P> -<B>Input Parameters:</B> -<UL> -<LI><I>policy</I>. Scheduling policy requested. -</UL> +<p> +<b>Input Parameters:</b> +<ul> +<li><I>policy</I>. Scheduling policy requested. +</ul> -<P> -<B>Returned Values:</B> -<UL> -<LI>The maximum priority value or -1 (ERROR). -</UL> +<p> +<b>Returned Values:</b> +<ul> +<li>The maximum priority value or -1 (ERROR). +</ul> -<P> -<B>Assumptions/Limitations:</B> -<P> -<B> POSIX Compatibility:</B> Comparable to the POSIX +<p> +<b>Assumptions/Limitations:</b> +<p> +<b> POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. <H3><a name="schedgetprioritymin">2.2.7 sched_get_priority_min</a></H3> -<P> -<B>Function Prototype:</B> +<p> +<b>Function Prototype:</b> <PRE> #include &lt;sched.h&gt; int sched_get_priority_min (int policy); </PRE> -<P> -<B>Description:</B> This function returns the value of the lowest +<p> +<b>Description:</b> This function returns the value of the lowest possible task priority for a specified scheduling policy. -<P> -<B>Input Parameters:</B> -<UL> -<LI><I>policy</I>. Scheduling policy requested. -</UL> +<p> +<b>Input Parameters:</b> +<ul> +<li><I>policy</I>. Scheduling policy requested. +</ul> -<P> -<B>Returned Values:</B> -<UL> -<LI>The minimum priority value or -1 (ERROR) -</UL> +<p> +<b>Returned Values:</b> +<ul> +<li>The minimum priority value or -1 (ERROR) +</ul> -<P> -<B>Assumptions/Limitations:</B> -<P> -<B> POSIX Compatibility:</B> Comparable to the POSIX +<p> +<b>Assumptions/Limitations:</b> +<p> +<b> POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. <H3><a name="schedgetrrinterval">2.2.8 sched_get_rr_interval</a></H3> -<P> -<B>Function Prototype:</B> +<p> +<b>Function Prototype:</b> <PRE> #include &lt;sched.h&gt; int sched_get_rr_interval (pid_t pid, struct timespec *interval); </PRE> -<P> - <B>Description:</B> +<p> + <b>Description:</b> <i>sched_rr_get_interval()</i> writes the timeslice interval for task identified by <i>pid</i> into the timespec structure pointed to by <i>interval</i>. If pid is zero, the timeslice @@ -846,35 +880,35 @@ interface of the same name. identified process should be running under the SCHED_RR scheduling policy.' </p> -<P> - <B>Input Parameters:</B> +<p> + <b>Input Parameters:</b> </p> -<UL> -<LI><I>pid</I>. The task ID of the task. If pid is zero, the +<ul> +<li><I>pid</I>. The task ID of the task. If pid is zero, the priority of the calling task is returned. -<LI><I>interval</I>. A structure used to return the time slice. -</UL> +<li><I>interval</I>. A structure used to return the time slice. +</ul> -<P> - <B>Returned Values:</B> +<p> + <b>Returned Values:</b> On success, sched_rr_get_interval() returns OK (0). On error, ERROR (-1) is returned, and errno is set to: </p> -<UL> - <LI>EFAULT Cannot copy to interval</LI> - <LI>EINVAL Invalid pid.</LI> - <LI>ENOSYS The system call is not yet implemented.</LI> - <LI>ESRCH The process whose ID is pid could not be found.</LI> -</UL> +<ul> + <li>EFAULT Cannot copy to interval</LI> + <li>EINVAL Invalid pid.</LI> + <li>ENOSYS The system call is not yet implemented.</LI> + <li>ESRCH The process whose ID is pid could not be found.</LI> +</ul> -<P> - <B>Assumptions/Limitations:</B> -<P> - <B>POSIX Compatibility:</B> Comparable to the POSIX +<p> + <b>Assumptions/Limitations:</b> +<p> + <b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. </P> -<H2>2.3 <A NAME="Task_Switch">Task Switching Interfaces</A></H2> +<H2>2.3 <A NAME="Task_Switch">Task Switching Interfaces</a></H2> <ul> <li><a href="#schedlock">2.3.1 sched_lock</a></li> @@ -884,31 +918,31 @@ priority of the calling task is returned. <H3><a name="schedlock">2.3.1 sched_lock</a></H3> -<P> -<B>Function Prototype:</B> +<p> +<b>Function Prototype:</b> <PRE> #include &lt;sched.h&gt; STATUS sched_lock( void ); </PRE> -<P> -<B>Description:</B> This function disables context switching by +<p> +<b>Description:</b> This function disables context switching by Disabling addition of new tasks to the ready-to-run task list. The task that calls this function will be the only task that is allowed to run until it either calls sched_unlock (the appropriate number of times) or until it blocks itself. -<P> -<B>Input Parameters:</B> None. -<P> -<B>Returned Values:</B> -<UL> -<LI>OK or ERROR. -</UL> +<p> +<b>Input Parameters:</b> None. +<p> +<b>Returned Values:</b> +<ul> +<li>OK or ERROR. +</ul> -<P> -<B>Assumptions/Limitations:</B> -<P> -<B> POSIX Compatibility:</B> This is a NON-POSIX interface. +<p> +<b>Assumptions/Limitations:</b> +<p> +<b> POSIX Compatibility:</b> This is a NON-POSIX interface. VxWorks provides the comparable interface: <PRE> STATUS taskLock( void ); @@ -916,32 +950,32 @@ VxWorks provides the comparable interface: <H3><a name="schedunlock">2.3.2 sched_unlock</a></H3> -<P> -<B>Function Prototype:</B> +<p> +<b>Function Prototype:</b> <PRE> #include &lt;sched.h&gt; STATUS sched_unlock( void ); </PRE> -<P> -<B>Description:</B> This function decrements the preemption lock +<p> +<b>Description:</b> This function decrements the preemption lock count. Typically this is paired with sched_lock() and concludes a critical section of code. Preemption will not be unlocked until sched_unlock() has been called as many times as sched_lock(). When the lockCount is decremented to zero, any tasks that were eligible to preempt the current task will execute. -<P> -<B>Input Parameters:</B> None. -<P> -<B>Returned Values:</B> -<UL> -<LI>OK or ERROR. -</UL> +<p> +<b>Input Parameters:</b> None. +<p> +<b>Returned Values:</b> +<ul> +<li>OK or ERROR. +</ul> -<P> -<B>Assumptions/Limitations:</B> -<P> -<B> POSIX Compatibility:</B> This is a NON-POSIX interface. +<p> +<b>Assumptions/Limitations:</b> +<p> +<b> POSIX Compatibility:</b> This is a NON-POSIX interface. VxWorks provides the comparable interface: <PRE> STATUS taskUnlock( void ); @@ -949,33 +983,33 @@ VxWorks provides the comparable interface: <H3><a name="schedlockcount">2.3.3 sched_lockcount</a></H3> -<P> -<B>Function Prototype:</B> +<p> +<b>Function Prototype:</b> <PRE> #include &lt;sched.h&gt; sint32 sched_lockcount( void ) </PRE> -<P> -<B>Description:</B> This function returns the current value of +<p> +<b>Description:</b> This function returns the current value of the lockCount. If zero, preemption is enabled; if non-zero, this value indicates the number of times that sched_lock() has been called on this thread of execution. -<P> -<B>Input Parameters:</B> None. -<P> -<B>Returned Values:</B> -<UL> -<LI>The current value of the lockCount. -</UL> +<p> +<b>Input Parameters:</b> None. +<p> +<b>Returned Values:</b> +<ul> +<li>The current value of the lockCount. +</ul> -<P> -<B>Assumptions/Limitations:</B> -<P> -<B> POSIX Compatibility:</B> None. -<HR> +<p> +<b>Assumptions/Limitations:</b> +<p> +<b> POSIX Compatibility:</b> None. +<hr> -<H2>2.4 <A NAME="Message_Queue">Named Message Queue Interfaces</A></H2> +<H2>2.4 <A NAME="Message_Queue">Named Message Queue Interfaces</a></H2> <p> NuttX supports POSIX named message queues for intertask communication. @@ -995,43 +1029,43 @@ on this thread of execution. <H3><a name="mqopen">2.4.1 mq_open</a></H3> -<P> -<B>Function Prototype:</B> +<p> +<b>Function Prototype:</b> <PRE> #include &lt;mqueue.h&gt; mqd_t mq_open( const char *mqName, int oflags, ... ); </PRE> -<P> -<B>Description:</B> This function establish a connection between +<p> +<b>Description:</b> This function establish a connection between a named message queue and the calling task. After a successful call of mq_open(), the task can reference the message queue using the address returned by the call. The message queue remains usable until it is closed by a successful call to mq_close(). -<P> -<B>Input Parameters:</B> -<UL> -<LI><I>mqName</I>. Name of the queue to open -<LI><I>oflags</I>. Open flags. These may be any combination of: -<UL> -<LI><I>O_RDONLY</I>. Open for read access. -<LI><I>O_WRONLY</I>. Open for write access. -<LI><I>O_RDWR</I>. Open for both read &amp; write access. -<LI><I>O_CREAT</I>. Create message queue if it does not already +<p> +<b>Input Parameters:</b> +<ul> +<li><I>mqName</I>. Name of the queue to open +<li><I>oflags</I>. Open flags. These may be any combination of: +<ul> +<li><I>O_RDONLY</I>. Open for read access. +<li><I>O_WRONLY</I>. Open for write access. +<li><I>O_RDWR</I>. Open for both read &amp; write access. +<li><I>O_CREAT</I>. Create message queue if it does not already exist. -<LI><I>O_EXCL</I>. Name must not exist when opened. -<LI><I>O_NONBLOCK</I>. Don't wait for data. -</UL> +<li><I>O_EXCL</I>. Name must not exist when opened. +<li><I>O_NONBLOCK</I>. Don't wait for data. +</ul> -<LI><I>... Optional parameters</I>. +<li><I>... Optional parameters</I>. When the O_CREAT flag is specified, POSIX requires that a third and fourth parameter be supplied: -<UL> -<LI><I>mode</I>. The mode parameter is of type mode_t. In the POSIX +<ul> +<li><I>mode</I>. The mode parameter is of type mode_t. In the POSIX specification, this mode value provides file permission bits for the message queue. This parameter is required but not used in the present implementation. -<LI><I>attr</I>. A pointer to an mq_attr that is provided to initialize. +<li><I>attr</I>. A pointer to an mq_attr that is provided to initialize. the message queue. If attr is NULL, then the messages queue is created with implementation-defined default message queue attributes. If attr is non-NULL, then the message queue mq_maxmsg attribute is set to the @@ -1041,247 +1075,247 @@ addition attempts to send messages on the message queue fail or cause the sender to block; the mq_msgsize attribute determines the maximum size of a message that can be sent or received. Other elements of attr are ignored (i.e, set to default message queue attributes). -</UL> -</UL> +</ul> +</ul> -<P> -<B>Returned Values:</B> -<UL> -<LI>A message queue descriptor or -1 (ERROR) -</UL> +<p> +<b>Returned Values:</b> +<ul> +<li>A message queue descriptor or -1 (ERROR) +</ul> -<P> -<B>Assumptions/Limitations:</B> -<P> -<B> POSIX Compatibility:</B> Comparable to the POSIX interface +<p> +<b>Assumptions/Limitations:</b> +<p> +<b> POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. Differences from the full POSIX implementation include: -<UL> -<LI>The mq_msgsize attributes determines the maximum size of a message that +<ul> +<li>The mq_msgsize attributes determines the maximum size of a message that may be sent or received. In the present implementation, this maximum message size is limited at 22 bytes. -</UL> +</ul> <H3><a name="mqclose">2.4.2 mq_close</a></H3> -<P> -<B>Function Prototype:</B> +<p> +<b>Function Prototype:</b> <PRE> #include &lt;mqueue.h&gt; int mq_close( mqd_t mqdes ); </PRE> -<P> -<B>Description:</B> This function is used to indicate that the +<p> +<b>Description:</b> This function is used to indicate that the calling task is finished with the specified message queued mqdes. The mq_close() deallocates any system resources allocated by the system for use by this task for its message queue. -<P> +<p> If the calling task has attached a notification request to the message queue via this <I>mqdes</I> (see mq_notify()), this attachment will be removed and the message queue is available for another task to attach for notification. -<P> -<B>Input Parameters:</B> -<UL> -<LI><I>mqdes</I>. Message queue descriptor. -</UL> +<p> +<b>Input Parameters:</b> +<ul> +<li><I>mqdes</I>. Message queue descriptor. +</ul> -<P> -<B>Returned Values:</B> -<UL> -<LI>0 (OK) if the message queue is closed successfully, otherwise, +<p> +<b>Returned Values:</b> +<ul> +<li>0 (OK) if the message queue is closed successfully, otherwise, -1 (ERROR). -</UL> +</ul> -<P> -<B>Assumptions/Limitations:</B> -<P> -<UL> -<LI>The behavior of a task that is blocked on either a mq_send() or +<p> +<b>Assumptions/Limitations:</b> +<p> +<ul> +<li>The behavior of a task that is blocked on either a mq_send() or mq_receive() is undefined when mq_close() is called. -<LI>The result of using this message queue descriptor after successful +<li>The result of using this message queue descriptor after successful return from mq_close() is undefined. -</UL> -<P> -<B> POSIX Compatibility:</B> Comparable to the POSIX interface +</ul> +<p> +<b> POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. <H3><a name="mqunlink">2.4.3 mq_unlink</a></H3> -<P> -<B>Function Prototype:</B> +<p> +<b>Function Prototype:</b> <PRE> #include &lt;mqueue.h&gt; int mq_unlink( const char *mqName ); </PRE> -<P> -<B>Description:</B> This function removes the message queue named +<p> +<b>Description:</b> This function removes the message queue named by &quot;mqName.&quot; If one or more tasks have the message queue open when mq_unlink() is called, removal of the message queue is postponed until all references to the message queue have been closed. -<P> -<B>Input Parameters:</B> -<UL> -<LI><I>mqName</I>. Name of the message queue -</UL> +<p> +<b>Input Parameters:</b> +<ul> +<li><I>mqName</I>. Name of the message queue +</ul> -<P> -<B>Returned Values:</B> None. -<P> -<B>Assumptions/Limitations:</B> -<P> -<B> POSIX Compatibility:</B> Comparable to the POSIX +<p> +<b>Returned Values:</b> None. +<p> +<b>Assumptions/Limitations:</b> +<p> +<b> POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. <H3><a name="mqsend">2.4.4 mq_send</a></H3> -<P> -<B>Function Prototype:</B> +<p> +<b>Function Prototype:</b> <PRE> #include &lt;mqueue.h&gt; int mq_send( mqd_t mqdes, const void *msg, size_t msgLen, int msgPrio ); </PRE> -<P> -<B>Description:</B> This function adds the specified message (msg) +<p> +<b>Description:</b> This function adds the specified message (msg) to the message queue (mqdes). The &quot;msgLen&quot; parameter specifies the length of the message in bytes pointed to by &quot;msg.&quot; This length must not exceed the maximum message length from the mq_getattr(). -<P> +<p> If the message queue is not full, mq_send() will in the message in the message queue at the position indicated by the &quot;msgPrio&quot; argument. Messages with higher priority will be inserted before lower priority messages. The value of &quot;msgPrio&quot; must not exceed MQ_PRIO_MAX. -<P> +<p> If the specified message queue is full and O_NONBLOCK is not set in the message queue, then mq_send() will block until space becomes available to the queue the message. -<P> +<p> If the message queue is full and osNON_BLOCK is set, the message is not queued and ERROR is returned. -<P> -<B>Input Parameters:</B> -<UL> -<LI><I>mqdes</I>. Message queue descriptor -<LI><I>msg</I>. Message to send -<LI><I>msgLen</I>. The length of the message in bytes -<LI><I>msgPrio</I>. The priority of the message -</UL> +<p> +<b>Input Parameters:</b> +<ul> +<li><I>mqdes</I>. Message queue descriptor +<li><I>msg</I>. Message to send +<li><I>msgLen</I>. The length of the message in bytes +<li><I>msgPrio</I>. The priority of the message +</ul> -<P> -<B>Returned Values:</B> None. -<P> -<B>Assumptions/Limitations:</B> -<P> -<B> POSIX Compatibility:</B> Comparable to the POSIX +<p> +<b>Returned Values:</b> None. +<p> +<b>Assumptions/Limitations:</b> +<p> +<b> POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. Differences from the full POSIX implementation include: -<UL> -<LI>Control is not returned if a signal is received. -</UL> +<ul> +<li>Control is not returned if a signal is received. +</ul> <H3><a name="mqreceive">2.4.5 mq_receive</a></H3> -<P> -<B>Function Prototype:</B> +<p> +<b>Function Prototype:</b> <PRE> #include &lt;mqueue.h&gt; int mq_receive( mqd_t mqdes, void *msg, size_t msgLen, int *msgPrio ); </PRE> -<P> -<B>Description:</B> This function receives the oldest of the highest +<p> +<b>Description:</b> This function receives the oldest of the highest priority messages from the message queue specified by &quot;mqdes.&quot; If the size of the buffer in bytes (msgLen) is less than the &quot;mq_msgsize&quot; attribute of the message queue, mq_receive will return an error. Otherwise, the select message is removed from the queue and copied to &quot;msg.&quot; -<P> +<p> If the message queue is empty and O_NONBLOCK was not set, mq_receive() will block until a message is added to the message queue. If more than one task is waiting to receive a message, only the task with the highest priority that has waited the longest will be unblocked. -<P> +<p> If the queue is empty and O_NONBLOCK is set, ERROR will be returned. -<P> -<B>Input Parameters:</B> -<UL> -<LI><I>mqdes</I>. Message Queue Descriptor -<LI><I>msg</I>. Buffer to receive the message -<LI><I>msgLen</I>. Size of the buffer in bytes -<LI><I>msgPrio</I>. If not NULL, the location to store message +<p> +<b>Input Parameters:</b> +<ul> +<li><I>mqdes</I>. Message Queue Descriptor +<li><I>msg</I>. Buffer to receive the message +<li><I>msgLen</I>. Size of the buffer in bytes +<li><I>msgPrio</I>. If not NULL, the location to store message priority. -</UL> +</ul> -<P> -<B>Returned Values:</B> -<UL> -<LI>Length of the selected message in bytes, otherwise -1 (ERROR). -</UL> +<p> +<b>Returned Values:</b> +<ul> +<li>Length of the selected message in bytes, otherwise -1 (ERROR). +</ul> -<P> -<B>Assumptions/Limitations:</B> -<P> -<B> POSIX Compatibility:</B> Comparable to the POSIX +<p> +<b>Assumptions/Limitations:</b> +<p> +<b> POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. Differences from the full POSIX implementation include: -<UL> -<LI>Control is not returned if a signal is received. -</UL> +<ul> +<li>Control is not returned if a signal is received. +</ul> <H3><a name="mqnotify">2.4.6 mq_notify</a></H3> -<P> -<B>Function Prototype:</B> +<p> +<b>Function Prototype:</b> <PRE> #include &lt;mqueue.h&gt; int mq_notify( mqd_t mqdes, const struct sigevent *notification ); </PRE> -<P> -<B>Description:</B> If the &quot;notification&quot; input parameter +<p> +<b>Description:</b> If the &quot;notification&quot; input parameter is not NULL, this function connects the task with the message queue such that the specified signal will be sent to the task whenever the message changes from empty to non-empty. One notification can be attached to a message queue. -<P> +<p> If &quot;notification&quot; is NULL, the attached notification is detached (if it was held by the calling task) and the queue is available to attach another notification. -<P> +<p> When the notification is sent to the registered task, its registration will be removed. The message queue will then be available for registration. -<P> -<B>Input Parameters:</B> -<UL> -<LI><I>mqdes</I>. Message queue descriptor -<LI><I>notification</I>. Real-time signal structure containing: -<UL> -<LI><I>sigev_notify</I>. Should be osSIGEV_SIGNAL (but actually +<p> +<b>Input Parameters:</b> +<ul> +<li><I>mqdes</I>. Message queue descriptor +<li><I>notification</I>. Real-time signal structure containing: +<ul> +<li><I>sigev_notify</I>. Should be osSIGEV_SIGNAL (but actually ignored) -<LI><I>sigev_signo</I>. The signo to use for the notification -<LI><I>sigev_value</I>. Value associated with the signal -</UL> +<li><I>sigev_signo</I>. The signo to use for the notification +<li><I>sigev_value</I>. Value associated with the signal +</ul> -</UL> +</ul> -<P> -<B>Returned Values:</B> None. -<P> -<B>Assumptions/Limitations:</B> -<P> -<B> POSIX Compatibility:</B> Comparable to the POSIX interface +<p> +<b>Returned Values:</b> None. +<p> +<b>Assumptions/Limitations:</b> +<p> +<b> POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. Differences from the full POSIX implementation include: -<UL> -<LI>The notification signal will be sent to the registered task even if +<ul> +<li>The notification signal will be sent to the registered task even if another task is waiting for the message queue to become non-empty. This is inconsistent with the POSIX specification which states, &quot;If a process has registered for notification of message arrival at a message queue and @@ -1289,87 +1323,87 @@ some process is blocked in <I>mq_receive</I> waiting to receive a message when a message arrives at the queue, the arriving message shall satisfy the appropriate <I>mq_receive()</I> ... The resulting behavior is as if the message queue remains empty, and no notification shall be sent.&quot; -</UL> +</ul> <H3><a name="mqsetattr">2.4.7 mq_setattr</a></H3> -<P> -<B>Function Prototype:</B> +<p> +<b>Function Prototype:</b> <PRE> #include &lt;mqueue.h&gt; int mq_setattr( mqd_t mqdes, const struct mq_attr *mqStat, struct mq_attr *oldMqStat); </PRE> -<P> -<B>Description:</B> This function sets the attributes associated +<p> +<b>Description:</b> This function sets the attributes associated with the specified message queue &quot;mqdes.&quot; Only the &quot;O_NONBLOCK&quot; bit of the &quot;mq_flags&quot; can be changed. -<P> +<p> If &quot;oldMqStat&quot; is non-null, mq_setattr() will store the previous message queue attributes at that location (just as would have been returned by mq_getattr()). -<P> -<B>Input Parameters:</B> -<UL> -<LI><I>mqdes</I>. Message queue descriptor -<LI><I>mqStat</I>. New attributes -<LI><I>oldMqState</I>. Old attributes -</UL> +<p> +<b>Input Parameters:</b> +<ul> +<li><I>mqdes</I>. Message queue descriptor +<li><I>mqStat</I>. New attributes +<li><I>oldMqState</I>. Old attributes +</ul> -<P> -<B>Returned Values:</B> -<UL> -<LI>0 (OK) if attributes are set successfully, otherwise -1 +<p> +<b>Returned Values:</b> +<ul> +<li>0 (OK) if attributes are set successfully, otherwise -1 (ERROR). -</UL> +</ul> -<P> -<B>Assumptions/Limitations:</B> -<P> -<B> POSIX Compatibility:</B> Comparable to the POSIX +<p> +<b>Assumptions/Limitations:</b> +<p> +<b> POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. <H3><a name="mqgetattr">2.4.8 mq_getattr</a></H3> -<P> -<B>Function Prototype:</B> +<p> +<b>Function Prototype:</b> <PRE> #include &lt;mqueue.h&gt; int mq_getattr( mqd_t mqdes, struct mq_attr *mqStat); </PRE> -<P> -<B>Description:</B> This functions gets status information and +<p> +<b>Description:</b> This functions gets status information and attributes associated with the specified message queue. -<P> -<B>Input Parameters:</B> -<UL> -<LI><I>mqdes</I>. Message queue descriptor -<LI><I>mqStat</I>. Buffer in which to return attributes. The returned +<p> +<b>Input Parameters:</b> +<ul> +<li><I>mqdes</I>. Message queue descriptor +<li><I>mqStat</I>. Buffer in which to return attributes. The returned attributes include: -<UL> -<LI><I>mq_maxmsg</I>. Max number of messages in queue. -<LI><I>mq_msgsize</I>. Max message size. -<LI><I>mq_flags</I>. Queue flags. -<LI><I>mq_curmsgs</I>. Number of messages currently in queue. -</UL> +<ul> +<li><I>mq_maxmsg</I>. Max number of messages in queue. +<li><I>mq_msgsize</I>. Max message size. +<li><I>mq_flags</I>. Queue flags. +<li><I>mq_curmsgs</I>. Number of messages currently in queue. +</ul> -</UL> +</ul> -<P> -<B>Returned Values:</B> -<UL> -<LI>0 (OK) if attributes provided, -1 (ERROR) otherwise. -</UL> +<p> +<b>Returned Values:</b> +<ul> +<li>0 (OK) if attributes provided, -1 (ERROR) otherwise. +</ul> -<P> -<B>Assumptions/Limitations:</B> -<P> -<B> POSIX Compatibility:</B> Comparable to the POSIX +<p> +<b>Assumptions/Limitations:</b> +<p> +<b> POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<H2>2.5 <A NAME="Semaphores">Counting Semaphore Interfaces</A></H2> +<H2>2.5 <A NAME="Semaphores">Counting Semaphore Interfaces</a></H2> <p> <b>Semaphores</b>. Semaphores are the basis for @@ -1385,16 +1419,16 @@ interface of the same name. and, as a result, can adversely affect system response times. </p> <p> - <B>Priority Inversion</B>. Proper use of semaphores avoids the issues of + <b>Priority Inversion</b>. Proper use of semaphores avoids the issues of sched_lock(). However, consider the following example: <OL> - <LI>Some low-priority task, <I>Task C</I>, acquires a semphore in order to + <li>Some low-priority task, <I>Task C</I>, acquires a semphore in order to get exclusive access to a protected resource.</li> - <LI><I>Task C</I> is suspended to allow some high-priority task,</li> + <li><I>Task C</I> is suspended to allow some high-priority task,</li> <I>Task A</I>, to execute.</li> - <LI><I>Task A</I> attempts to acquire the semaphore held by <I>Task C</I> and + <li><I>Task A</I> attempts to acquire the semaphore held by <I>Task C</I> and gets blocked until <I>Task C</I> relinquishes the semaphore.</li> - <LI><I>Task C</I> is allowed to execute again, but gets suspended by some + <li><I>Task C</I> is allowed to execute again, but gets suspended by some medium-priority <I>Task B</I>.</li> </OL> <p> @@ -1413,13 +1447,13 @@ interface of the same name. provide implementations that will not suffer from priority inversion. The designer may, as examples: </p> -<UL> - <LI>Implement all tasks that need the semphore-managed resources at the +<ul> + <li>Implement all tasks that need the semphore-managed resources at the same priority level,</li> - <LI>Boost the priority of the low-priority task before the semaphore is + <li>Boost the priority of the low-priority task before the semaphore is acquired, or</li> - <LI>Use sched_lock() in the low-priority task.</li> -</UL> + <li>Use sched_lock() in the low-priority task.</li> +</ul> <p> POSIX semaphore interfaces: </p> @@ -1437,413 +1471,413 @@ interface of the same name. <H3><a name="seminit">2.5.1 sem_init</a></H3> -<P> -<B>Function Prototype:</B> +<p> +<b>Function Prototype:</b> <PRE> #include &lt;semaphore.h&gt; int sem_init ( sem_t *sem, int pshared, unsigned int value ); </PRE> -<P> -<B>Description:</B> This function initializes the UN-NAMED semaphore +<p> +<b>Description:</b> This function initializes the UN-NAMED semaphore sem. Following a successful call to sem_init(), the semaphore may be used in subsequent calls to sem_wait(), sem_post(), and sem_trywait(). The semaphore remains usable until it is destroyed. -<P> +<p> Only <I>sem</I> itself may be used for performing synchronization. The result of referring to copies of <I>sem</I> in calls to <I>sem_wait()</I>, <I>sem_trywait()</I>, <I>sem_post()</I>, and <I>sem_destroy()</I>, is not defined. -<P> -<B>Input Parameters:</B> -<UL> -<LI><I>sem</I>. Semaphore to be initialized -<LI><I>pshared</I>. Process sharing (not used) -<LI><I>value</I>. Semaphore initialization value -</UL> +<p> +<b>Input Parameters:</b> +<ul> +<li><I>sem</I>. Semaphore to be initialized +<li><I>pshared</I>. Process sharing (not used) +<li><I>value</I>. Semaphore initialization value +</ul> -<P> -<B>Returned Values:</B> -<UL> -<LI>0 (OK), or -1 (ERROR) if unsuccessful. -</UL> +<p> +<b>Returned Values:</b> +<ul> +<li>0 (OK), or -1 (ERROR) if unsuccessful. +</ul> -<P> -<B>Assumptions/Limitations:</B> -<P> -<B> POSIX Compatibility:</B> Comparable to the POSIX +<p> +<b>Assumptions/Limitations:</b> +<p> +<b> POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. Differences from the full POSIX implementation include: -<UL> -<LI>pshared is not used. -</UL> +<ul> +<li>pshared is not used. +</ul> <H3><a name="semdestroy">2.5.2 sem_destroy</a></H3> -<P> -<B>Function Prototype:</B> +<p> +<b>Function Prototype:</b> <PRE> #include &lt;semaphore.h&gt; int sem_destroy ( sem_t *sem ); </PRE> -<P> -<B>Description:</B> This function is used to destroy the un-named semaphore +<p> +<b>Description:</b> This function is used to destroy the un-named semaphore indicated by <I>sem</I>. Only a semaphore that was created using <I>sem_init()</I> may be destroyed using <I>sem_destroy()</I>. The effect of calling <I>sem_destroy()</I> with a named semaphore is undefined. The effect of subsequent use of the semaphore <I>sem</I> is undefined until <I>sem</I> is re-initialized by another call to <I>sem_init()</I>. -<P> +<p> The effect of destroying a semaphore upon which other tasks are currently blocked is undefined. -<P> -<B>Input Parameters:</B> -<UL> -<LI><I>sem</I>. Semaphore to be destroyed. -</UL> +<p> +<b>Input Parameters:</b> +<ul> +<li><I>sem</I>. Semaphore to be destroyed. +</ul> -<P> -<B>Returned Values:</B> -<UL> -<LI>0 (OK), or -1 (ERROR) if unsuccessful. -</UL> +<p> +<b>Returned Values:</b> +<ul> +<li>0 (OK), or -1 (ERROR) if unsuccessful. +</ul> -<P> -<B>Assumptions/Limitations:</B> -<P> -<B> POSIX Compatibility:</B> Comparable to the POSIX +<p> +<b>Assumptions/Limitations:</b> +<p> +<b> POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. <H3><a name="semopen">2.5.3 sem_open</a></H3> -<P> -<B>Function Prototype:</B> +<p> +<b>Function Prototype:</b> <PRE> #include &lt;semaphore.h&gt; sem_t *sem_open ( const char *name, int oflag, ...); </PRE> -<P> -<B>Description:</B> This function establishes a connection between +<p> +<b>Description:</b> This function establishes a connection between named semaphores and a task. Following a call to sem_open() with the semaphore name, the task may reference the semaphore associated with name using the address returned by this call. The semaphore may be used in subsequent calls to sem_wait(), sem_trywait(), and sem_post(). The semaphore remains usable until the semaphore is closed by a successful call to sem_close(). -<P> +<p> If a task makes multiple calls to sem_open() with the same name, then the same semaphore address is returned (provided there have been no calls to sem_unlink()). -<P> -<B>Input Parameters:</B> -<UL> -<LI><I>name</I>. Semaphore name -<LI><I>oflag</I>. Semaphore creation options. This may one of +<p> +<b>Input Parameters:</b> +<ul> +<li><I>name</I>. Semaphore name +<li><I>oflag</I>. Semaphore creation options. This may one of the following bit settings: -<UL> -<LI><I>oflag</I> = 0: Connect to the semaphore only if it already +<ul> +<li><I>oflag</I> = 0: Connect to the semaphore only if it already exists. -<LI><I>oflag</I> = O_CREAT: Connect to the semaphore if it exists, +<li><I>oflag</I> = O_CREAT: Connect to the semaphore if it exists, otherwise create the semaphore. -<LI><I>oflag</I> = O_CREAT with O_EXCL (O_CREAT|O_EXCL): Create +<li><I>oflag</I> = O_CREAT with O_EXCL (O_CREAT|O_EXCL): Create a new semaphore unless one of this name already exists. -</UL> -<LI>... Optional parameters. +</ul> +<li>... Optional parameters. NOTE: When the O_CREAT flag is specified, POSIX requires that a third and fourth parameter be supplied: -<UL> -<LI><I>mode</I>. The mode parameter is of type mode_t. +<ul> +<li><I>mode</I>. The mode parameter is of type mode_t. This parameter is required but not used in the present implementation. -<LI><I>value</I>. The value parameter is type unsigned int. The semaphore +<li><I>value</I>. The value parameter is type unsigned int. The semaphore is created with an initial value of <I>value</I>. Valid initial values for semaphores must be less than or equal to <I>SEM_VALUE_MAX</I> (defined in <CODE>include/limits.h</CODE>). -</UL> -</UL> +</ul> +</ul> -<P> -<B>Returned Values:</B> -<UL> -<LI>A pointer to sem_t or -1 (ERROR) if unsuccessful. -</UL> +<p> +<b>Returned Values:</b> +<ul> +<li>A pointer to sem_t or -1 (ERROR) if unsuccessful. +</ul> -<P> -<B>Assumptions/Limitations:</B> -<P> -<B> POSIX Compatibility:</B> Comparable to the POSIX +<p> +<b>Assumptions/Limitations:</b> +<p> +<b> POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. Differences from the full POSIX implementation include: -<UL> -<LI>Treatment of links/connections is highly simplified. It is +<ul> +<li>Treatment of links/connections is highly simplified. It is just a counting semaphore. -</UL> +</ul> <H3><a name="semclose">2.5.4 sem_close</a></H3> -<P> -<B>Function Prototype:</B> +<p> +<b>Function Prototype:</b> <PRE> #include &lt;semaphore.h&gt; int sem_close ( sem_t *sem ); </PRE> -<P> -<B>Description:</B> This function is called to indicate that the +<p> +<b>Description:</b> This function is called to indicate that the calling task is finished with the specified named semaphore, sem. The sem_close() deallocates any system resources allocated by the system for this named semaphore. -<P> +<p> If the semaphore has not been removed with a call to sem_unlink(), then sem_close() has no effect on the named semaphore. However, when the named semaphore has been fully unlinked, the semaphore will vanish when the last task closes it. -<P> +<p> Care must be taken to avoid risking the deletion of a semaphore that another calling task has already locked. -<P> -<B>Input Parameters:</B> -<UL> -<LI><I>sem</I>. Semaphore descriptor -</UL> +<p> +<b>Input Parameters:</b> +<ul> +<li><I>sem</I>. Semaphore descriptor +</ul> -<P> -<B>Returned Values:</B> -<UL> -<LI>0 (OK), or -1 (ERROR) if unsuccessful. -</UL> +<p> +<b>Returned Values:</b> +<ul> +<li>0 (OK), or -1 (ERROR) if unsuccessful. +</ul> -<P> -<B>Assumptions/Limitations:</B> -<UL> -<LI>Care must be taken to avoid deletion of a semaphore that another task +<p> +<b>Assumptions/Limitations:</b> +<ul> +<li>Care must be taken to avoid deletion of a semaphore that another task has already locked. -<LI>sem_close() must not be called with an un-named semaphore. -</UL> -<P> -<B> POSIX Compatibility:</B> Comparable to the POSIX +<li>sem_close() must not be called with an un-named semaphore. +</ul> +<p> +<b> POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. <H3><a name="semunlink">2.5.5 sem_unlink</a></H3> -<P> -<B>Function Prototype:</B> +<p> +<b>Function Prototype:</b> <PRE> #include &lt;semaphore.h&gt; int sem_unlink ( const char *name ); </PRE> -<P> -<B>Description:</B> This function will remove the semaphore named by the +<p> +<b>Description:</b> This function will remove the semaphore named by the input name parameter. If one or more tasks have the semaphore named by name oepn when sem_unlink() is called, destruction of the semaphore will be postponed until all references have been destroyed by calls to sem_close(). -<P> -<B>Input Parameters:</B> -<UL> -<LI><I>name</I>. Semaphore name -</UL> +<p> +<b>Input Parameters:</b> +<ul> +<li><I>name</I>. Semaphore name +</ul> -<P> -<B>Returned Values:</B> -<UL> -<LI>0 (OK), or -1 (ERROR) if unsuccessful. -</UL> +<p> +<b>Returned Values:</b> +<ul> +<li>0 (OK), or -1 (ERROR) if unsuccessful. +</ul> -<P> -<B>Assumptions/Limitations:</B> -<UL> -<LI>Care must be taken to avoid deletion of a semaphore that another task +<p> +<b>Assumptions/Limitations:</b> +<ul> +<li>Care must be taken to avoid deletion of a semaphore that another task has already locked. -<LI>sem_unlink() must not be called with an un-named semaphore. -</UL> -<P> -<B> POSIX Compatibility:</B> Comparable to the POSIX +<li>sem_unlink() must not be called with an un-named semaphore. +</ul> +<p> +<b> POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. Differences from the full POSIX implementation include: -<UL> -<LI>Treatment of links/connections is highly simplified. It is +<ul> +<li>Treatment of links/connections is highly simplified. It is just a counting semaphore. -<LI>Calls to sem_open() to re-create or re-connect to the semaphore may +<li>Calls to sem_open() to re-create or re-connect to the semaphore may refer to the same semaphore; POSIX specifies that a new semaphore with the same name should be created after sem_unlink() is called. -</UL> +</ul> <H3><a name="semwait">2.5.6 sem_wait</a></H3> -<P> -<B>Function Prototype:</B> +<p> +<b>Function Prototype:</b> <PRE> #include &lt;semaphore.h&gt; int sem_wait ( sem_t *sem ); </PRE> -<P> -<B>Description:</B> This function attempts to lock the semaphore +<p> +<b>Description:</b> This function attempts to lock the semaphore referenced by sem. If the semaphore as already locked by another task, the calling task will not return until it either successfully acquires the lock or the call is interrupted by a signal. -<P> -<B>Input Parameters:</B> -<UL> -<LI><I>sem</I>. Semaphore descriptor. -</UL> +<p> +<b>Input Parameters:</b> +<ul> +<li><I>sem</I>. Semaphore descriptor. +</ul> -<P> -<B>Returned Values:</B> -<UL> -<LI>0 (OK), or -1 (ERROR) is unsuccessful -</UL> -<P> +<p> +<b>Returned Values:</b> +<ul> +<li>0 (OK), or -1 (ERROR) is unsuccessful +</ul> +<p> If <I>sem_wait</I> returns -1 (ERROR) then the cause of the failure will be indicated by the thread-specific <I>errno</I> value (a pointer to this value can be obtained using <I>get_errno_ptr()</I>). The following lists the possible values for <I>errno</I>: -<P> -<UL> -<LI><I>EINVAL</I>: Indicates that the <I>sem</I> input parameter is +<p> +<ul> +<li><I>EINVAL</I>: Indicates that the <I>sem</I> input parameter is not valid. -<LI><I>EINTR</I>: Indicates that the wait was interrupt by a signal +<li><I>EINTR</I>: Indicates that the wait was interrupt by a signal received by this task. In this case, the semaphore has not be acquired. -</UL> -<P> -<B>Assumptions/Limitations:</B> -<P> -<B> POSIX Compatibility:</B> Comparable to the POSIX +</ul> +<p> +<b>Assumptions/Limitations:</b> +<p> +<b> POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. <H3><a name="semtrywait">2.5.7 sem_trywait</a></H3> -<P> -<B>Function Prototype:</B> +<p> +<b>Function Prototype:</b> <PRE> #include &lt;semaphore.h&gt; int sem_trywait ( sem_t *sem ); </PRE> -<P> -<B>Description:</B> This function locks the specified semaphore +<p> +<b>Description:</b> This function locks the specified semaphore only if the semaphore is currently not locked. In any event, the call returns without blocking. -<P> -<B>Input Parameters:</B> -<UL> -<LI><I>sem</I>. The semaphore descriptor -</UL> +<p> +<b>Input Parameters:</b> +<ul> +<li><I>sem</I>. The semaphore descriptor +</ul> -<P> -<B>Returned Values:</B> -<UL> -<LI>0 (OK) or -1 (ERROR) if unsuccessful -</UL> +<p> +<b>Returned Values:</b> +<ul> +<li>0 (OK) or -1 (ERROR) if unsuccessful +</ul> If <I>sem_wait</I> returns -1 (ERROR) then the cause of the failure will be indicated by the thread-specific <I>errno</I> value (a pointer to this value can be obtained using <I>get_errno_ptr()</I>). The following lists the possible values for <I>errno</I>: -<P> -<UL> -<LI><I>EINVAL</I>: Indicates that the <I>sem</I> input parameter is +<p> +<ul> +<li><I>EINVAL</I>: Indicates that the <I>sem</I> input parameter is not valid. -<LI><I>EAGAIN</I>: Indicates that the semaphore was not acquired. -</UL> -<P> +<li><I>EAGAIN</I>: Indicates that the semaphore was not acquired. +</ul> +<p> -<P> -<B>Assumptions/Limitations:</B> -<P> -<B> POSIX Compatibility:</B> Comparable to the POSIX +<p> +<b>Assumptions/Limitations:</b> +<p> +<b> POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. <H3><a name="sempost">2.5.8 sem_post</a></H3> -<P> -<B>Function Prototype:</B> +<p> +<b>Function Prototype:</b> <PRE> #include &lt;semaphore.h&gt; int sem_post ( sem_t *sem ); </PRE> -<P> -<B>Description:</B> When a task has finished with a semaphore, +<p> +<b>Description:</b> When a task has finished with a semaphore, it will call sem_post(). This function unlocks the semaphore referenced by <I>sem</I> by performing the semaphore unlock operation. -<P> +<p> If the semaphore value resulting from this operation is positive, then no tasks were blocked waiting for the semaphore to become unlocked; The semaphore value is simply incremented. -<P> +<p> If the value of the semaphore resulting from this operation is zero, then on of the tasks blocked waiting for the semaphore will be allowed to return successfully from its call to <I>sem_wait()</I>. -<P> -<B>NOTE</B>: <I>sem_post()</I> may be called from an interrupt handler. -<P> -<B>Input Parameters:</B> -<UL> -<LI><I>sem</I>. Semaphore descriptor -</UL> +<p> +<b>NOTE</b>: <I>sem_post()</I> may be called from an interrupt handler. +<p> +<b>Input Parameters:</b> +<ul> +<li><I>sem</I>. Semaphore descriptor +</ul> -<P> -<B>Returned Values:</B> -<UL> -<LI>0 (OK) or -1 (ERROR) if unsuccessful. -</UL> +<p> +<b>Returned Values:</b> +<ul> +<li>0 (OK) or -1 (ERROR) if unsuccessful. +</ul> -<P> -<B>Assumptions/Limitations:</B> This function cannot be called +<p> +<b>Assumptions/Limitations:</b> This function cannot be called from an interrupt handler. It assumes the currently executing task is the one that is performing the unlock. -<P> -<B> POSIX Compatibility:</B> Comparable to the POSIX +<p> +<b> POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. <H3><a name="semgetvalue">2.5.9 sem_getvalue</a></H3> -<P> -<B>Function Prototype:</B> +<p> +<b>Function Prototype:</b> <PRE> #include &lt;semaphore.h&gt; int sem_getvalue ( sem_t *sem, int *sval ); </PRE> -<P> -<B>Description:</B> This function updates the location referenced +<p> +<b>Description:</b> This function updates the location referenced by sval argument to have the value of the semaphore referenced by sem without effecting the state of the semaphore. The updated value represents the actual semaphore value that occurred at some unspecified time during the call, but may not reflect the actual value of the semaphore when it is returned to the calling task. -<P> +<p> If sem is locked, the value return by sem_getvalue() will either be zero or a negative number whose absolute value represents the number of tasks waiting for the semaphore. -<P> -<B>Input Parameters:</B> -<UL> -<LI><I>sem</I>. Semaphore descriptor -<LI><I>sval</I>. Buffer by which the value is returned -</UL> +<p> +<b>Input Parameters:</b> +<ul> +<li><I>sem</I>. Semaphore descriptor +<li><I>sval</I>. Buffer by which the value is returned +</ul> -<P> -<B>Returned Values:</B> -<UL> -<LI>0 (OK) or -1 (ERROR) if unsuccessful. -</UL> +<p> +<b>Returned Values:</b> +<ul> +<li>0 (OK) or -1 (ERROR) if unsuccessful. +</ul> -<P> -<B>Assumptions/Limitations:</B> -<P> -<B> POSIX Compatibility:</B> Comparable to the POSIX +<p> +<b>Assumptions/Limitations:</b> +<p> +<b> POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<HR> +<hr> -<H2>2.6 <A NAME="Watchdogs">Watchdog Timer Interfaces</A></H2> +<H2>2.6 <A NAME="Watchdogs">Watchdog Timer Interfaces</a></H2> -<P> +<p> NuttX provides a general watchdog timer facility. This facility allows the NuttX user to specify a watchdog timer function that will run after a specified delay. @@ -1861,174 +1895,174 @@ interface of the same name. <H3><a name="wdcreate">2.6.1 wd_create</a></H3> -<P> -<B>Function Prototype:</B> +<p> +<b>Function Prototype:</b> <PRE> #include &lt;wdog.h&gt; WDOG_ID wd_create (void); </PRE> -<P> -<B>Description:</B> The wd_create function will create a watchdog +<p> +<b>Description:</b> The wd_create function will create a watchdog by allocating the appropriate resources for the watchdog. -<P> -<B>Input Parameters:</B> None. -<P> -<B>Returned Values:</B> -<UL> -<LI>Pointer to watchdog that may be used as a handle in subsequent +<p> +<b>Input Parameters:</b> None. +<p> +<b>Returned Values:</b> +<ul> +<li>Pointer to watchdog that may be used as a handle in subsequent NuttX calls (i.e., the watchdog ID), or NULL if insufficient resources are available to create the watchdogs. -</UL> +</ul> -<P> -<B>Assumptions/Limitations:</B> -<P> -<B> POSIX Compatibility:</B> This is a NON-POSIX interface. +<p> +<b>Assumptions/Limitations:</b> +<p> +<b> POSIX Compatibility:</b> This is a NON-POSIX interface. VxWorks provides the following comparable interface: <PRE> WDOG_ID wdCreate (void); </PRE> -<P> +<p> Differences from the VxWorks interface include: -<UL> -<LI>The number of available watchdogs is fixed (configured at +<ul> +<li>The number of available watchdogs is fixed (configured at initialization time). -</UL> +</ul> <H3><a name="wddelete">2.6.2 wd_delete</a></H3> -<P> -<B>Function Prototype:</B> +<p> +<b>Function Prototype:</b> <PRE> #include &lt;wdog.h&gt; STATUS wd_delete (WDOG_ID wdog); </PRE> -<P> -<B>Description:</B> The wd_delete function will deallocate a +<p> +<b>Description:</b> The wd_delete function will deallocate a watchdog. The watchdog will be removed from the timer queue if has been started. -<P> -<B>Input Parameters:</B> -<UL> -<LI><I>wdog</I>. The watchdog ID to delete. This is actually a +<p> +<b>Input Parameters:</b> +<ul> +<li><I>wdog</I>. The watchdog ID to delete. This is actually a pointer to a watchdog structure. -</UL> +</ul> -<P> -<B>Returned Values:</B> -<UL> -<LI>OK or ERROR -</UL> +<p> +<b>Returned Values:</b> +<ul> +<li>OK or ERROR +</ul> -<P> -<B>Assumptions/Limitations:</B> It is the responsibility of the +<p> +<b>Assumptions/Limitations:</b> It is the responsibility of the caller to assure that the watchdog is inactive before deleting it. -<P> -<B> POSIX Compatibility:</B> This is a NON-POSIX interface. +<p> +<b> POSIX Compatibility:</b> This is a NON-POSIX interface. VxWorks provides the following comparable interface: <PRE> STATUS wdDelete (WDOG_ID wdog); </PRE> -<P> +<p> Differences from the VxWorks interface include: -<UL> -<LI>Does not make any checks to see if the watchdog is being used +<ul> +<li>Does not make any checks to see if the watchdog is being used before de-allocating it (i.e., never returns ERROR). -</UL> +</ul> <H3><a name="wdstart">2.6.3 wd_start</a></H3> -<P> -<B>Function Prototype:</B> +<p> +<b>Function Prototype:</b> <PRE> #include &lt;wdog.h&gt; STATUS wd_start( WDOG_ID wdog, int delay, wdentry_t wdentry, intt argc, ....); </PRE> -<P> -<B>Description:</B> This function adds a watchdog to the timer +<p> +<b>Description:</b> This function adds a watchdog to the timer queue. The specified watchdog function will be called from the interrupt level after the specified number of ticks has elapsed. Watchdog timers may be started from the interrupt level. -<P> +<p> Watchdog times execute in the context of the timer interrupt handler, but with the PIC/PID address environment that was in place when wd_start() was called. -<P> +<p> Watchdog timers execute only once. -<P> +<p> To replace either the timeout delay or the function to be executed, call wd_start again with the same wdog; only the most recent wd_start() on a given watchdog ID has any effect. -<P> -<B>Input Parameters:</B> -<UL> -<LI><I>wdog</I>. Watchdog ID -<LI><I>delay</I>. Delay count in clock ticks -<LI><I>wdentry</I>. Function to call on timeout -<LI><I>argc</I>. The number of uint32 parameters to pass to wdentry. -<LI><I>...</I>. uint32 size parameters to pass to wdentry -</UL> +<p> +<b>Input Parameters:</b> +<ul> +<li><I>wdog</I>. Watchdog ID +<li><I>delay</I>. Delay count in clock ticks +<li><I>wdentry</I>. Function to call on timeout +<li><I>argc</I>. The number of uint32 parameters to pass to wdentry. +<li><I>...</I>. uint32 size parameters to pass to wdentry +</ul> -<P> -<B>Returned Values:</B> -<UL> -<LI>OK or ERROR -</UL> +<p> +<b>Returned Values:</b> +<ul> +<li>OK or ERROR +</ul> -<P> -<B>Assumptions/Limitations:</B> The watchdog routine runs in the +<p> +<b>Assumptions/Limitations:</b> The watchdog routine runs in the context of the timer interrupt handler and is subject to all ISR restrictions. -<P> -<B> POSIX Compatibility:</B> This is a NON-POSIX interface. +<p> +<b> POSIX Compatibility:</b> This is a NON-POSIX interface. VxWorks provides the following comparable interface: <PRE> STATUS wdStart (WDOG_ID wdog, int delay, FUNCPTR wdentry, int parameter); </PRE> -<P> +<p> Differences from the VxWorks interface include: -<UL> -<LI>The present implementation supports multiple parameters passed +<ul> +<li>The present implementation supports multiple parameters passed to wdentry; VxWorks supports only a single parameter. The maximum number of parameters is determined by -</UL> +</ul> <H3><a name="wdcancel">2.6.4 wd_cancel</a></H3> -<P> -<B>Function Prototype:</B> +<p> +<b>Function Prototype:</b> <PRE> #include &lt;wdog.h&gt; STATUS wd_cancel (WDOG_ID wdog); </PRE> -<P> -<B>Description:</B> This function cancels a currently running +<p> +<b>Description:</b> This function cancels a currently running watchdog timer. Watchdog timers may be canceled from the interrupt level. -<P> -<B>Input Parameters:</B> -<UL> -<LI><I>wdog</I>. ID of the watchdog to cancel. -</UL> +<p> +<b>Input Parameters:</b> +<ul> +<li><I>wdog</I>. ID of the watchdog to cancel. +</ul> -<P> -<B>Returned Values:</B> -<UL> -<LI>OK or ERROR -</UL> +<p> +<b>Returned Values:</b> +<ul> +<li>OK or ERROR +</ul> -<P> -<B>Assumptions/Limitations:</B> -<P> -<B> POSIX Compatibility:</B> This is a NON-POSIX interface. +<p> +<b>Assumptions/Limitations:</b> +<p> +<b> POSIX Compatibility:</b> This is a NON-POSIX interface. VxWorks provides the following comparable interface: <PRE> STATUS wdCancel (WDOG_ID wdog); @@ -2058,9 +2092,9 @@ VxWorks provides the following comparable interface: means either that wdog is not valid or that the wdog has already expired. </p> -<HR> +<hr> -<H2><A NAME="ClocksNTimers">2.7 Clocks and Timers</A></H2> +<H2><A NAME="ClocksNTimers">2.7 Clocks and Timers</a></H2> <ul> <li><a href="#clocksettime">2.7.1 clock_settime</a></li> <li><a href="#clockgettime">2.7.2 clock_gettime</a></li> @@ -2075,7 +2109,7 @@ VxWorks provides the following comparable interface: <li><a href="#timergetoverrun">2.7.11 timer_getoverrun</a></li> </ul> -<H3><a name="clocksettime">2.7.1 clock_settime</A></H3> +<H3><a name="clocksettime">2.7.1 clock_settime</a></H3> <p> <b>Function Prototype:</b> </p> @@ -2100,10 +2134,10 @@ VxWorks provides the following comparable interface: Otherwise, an non-zero error number will be returned to indicate the error: </p> <ul> - <li><code>Exxx</code>.</li> + <li><code>To be provided</code>.</li> </ul> -<H3><a name="clockgettime">2.7.2 clock_gettime</A></H3> +<H3><a name="clockgettime">2.7.2 clock_gettime</a></H3> <p> <b>Function Prototype:</b> </p> @@ -2128,10 +2162,10 @@ VxWorks provides the following comparable interface: Otherwise, an non-zero error number will be returned to indicate the error: </p> <ul> - <li><code>Exxx</code>.</li> + <li><code>To be provided</code>.</li> </ul> -<H3><a name="clockgetres">2.7.3 clock_getres</A></H3> +<H3><a name="clockgetres">2.7.3 clock_getres</a></H3> <p> <b>Function Prototype:</b> </p> @@ -2156,10 +2190,10 @@ VxWorks provides the following comparable interface: Otherwise, an non-zero error number will be returned to indicate the error: </p> <ul> - <li><code>Exxx</code>.</li> + <li><code>To be provided</code>.</li> </ul> -<H3><a name="mktime">2.7.4 mktime</A></H3> +<H3><a name="mktime">2.7.4 mktime</a></H3> <p> <b>Function Prototype:</b> </p> @@ -2184,10 +2218,10 @@ VxWorks provides the following comparable interface: Otherwise, an non-zero error number will be returned to indicate the error: </p> <ul> - <li><code>Exxx</code>.</li> + <li><code>To be provided</code>.</li> </ul> -<H3><a name="gmtimer">2.7.5 gmtime_r</A></H3> +<H3><a name="gmtimer">2.7.5 gmtime_r</a></H3> <p> <b>Function Prototype:</b> </p> @@ -2212,16 +2246,16 @@ VxWorks provides the following comparable interface: Otherwise, an non-zero error number will be returned to indicate the error: </p> <ul> - <li><code>Exxx</code>.</li> + <li><code>To be provided</code>.</li> </ul> -<H3><a name="localtimer">2.7.6 localtime_r</A></H3> +<H3><a name="localtimer">2.7.6 localtime_r</a></H3> <pre> #include &lt;time.h&gt; #define localtime_r(c,r) gmtime_r(c,r) </pre> -<H3><a name="timercreate">2.7.7 timer_create</A></H3> +<H3><a name="timercreate">2.7.7 timer_create</a></H3> <p> <b>Function Prototype:</b> </p> @@ -2291,7 +2325,7 @@ VxWorks provides the following comparable interface: <li>Only <code>CLOCK_REALTIME</code> is supported for the <code>clockid</code> argument.</li> </ul> -<H3><a name="timerdelete">2.7.8 timer_delete</A></H3> +<H3><a name="timerdelete">2.7.8 timer_delete</a></H3> <p> <b>Function Prototype:</b> </p> @@ -2329,7 +2363,7 @@ VxWorks provides the following comparable interface: Comparable to the POSIX interface of the same name. </p> -<H3><a name="timersettime">2.7.9 timer_settime</A></H3> +<H3><a name="timersettime">2.7.9 timer_settime</a></H3> <p> <b>Function Prototype:</b> </p> @@ -2411,7 +2445,7 @@ VxWorks provides the following comparable interface: <li>The <code>ovalue</code> argument is ignored.</li> </ul> -<H3><a name="timergettime">2.7.10 timer_gettime</A></H3> +<H3><a name="timergettime">2.7.10 timer_gettime</a></H3> <p> <b>Function Prototype:</b> </p> @@ -2458,7 +2492,7 @@ VxWorks provides the following comparable interface: Comparable to the POSIX interface of the same name. </p> -<H3><a name="timergetoverrun">2.7.11 timer_getoverrun</A></H3> +<H3><a name="timergetoverrun">2.7.11 timer_getoverrun</a></H3> <p> <b>Function Prototype:</b> </p> @@ -2513,14 +2547,14 @@ VxWorks provides the following comparable interface: <li>This interface is not currently implemented by NuttX.</li> </ul> -<B>Assumptions/Limitations:</B> -<P> -<B>POSIX Compatibility:</B> Comparable to the POSIX +<b>Assumptions/Limitations:</b> +<p> +<b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<HR> +<hr> -<H2>2.8 <A NAME="Signals">Signal Interfaces</A></H2> +<H2>2.8 <A NAME="Signals">Signal Interfaces</a></H2> <p> NuttX provides signal interfaces for tasks. Signals are used to @@ -2563,412 +2597,412 @@ interface of the same name. <H3><a name="sigemptyset">2.8.1 sigemptyset</a></H3> -<P> -<B>Function Prototype:</B> +<p> +<b>Function Prototype:</b> <PRE> #include &lt;signal.h&gt; int sigemptyset(sigset_t *set); </PRE> -<P> -<B>Description:</B> This function initializes the signal set specified +<p> +<b>Description:</b> This function initializes the signal set specified by set such that all signals are excluded. -<P> -<B>Input Parameters:</B> -<UL> -<LI><I>set</I>. Signal set to initialize. -</UL> +<p> +<b>Input Parameters:</b> +<ul> +<li><I>set</I>. Signal set to initialize. +</ul> -<P> -<B>Returned Values:</B> -<UL> -<LI>0 (OK), or -1 (ERROR) if the signal set cannot be initialized. -</UL> +<p> +<b>Returned Values:</b> +<ul> +<li>0 (OK), or -1 (ERROR) if the signal set cannot be initialized. +</ul> -<P> -<B>Assumptions/Limitations:</B> -<P> -<B> POSIX Compatibility:</B> Comparable to the POSIX +<p> +<b>Assumptions/Limitations:</b> +<p> +<b> POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. <H3><a name="sigfillset">2.8.2 sigfillset</a></H3> -<P> -<B>Function Prototype:</B> +<p> +<b>Function Prototype:</b> <PRE> #include &lt;signal.h&gt; int sigfillset(sigset_t *set); </PRE> -<P> -<B>Description:</B> This function initializes the signal set specified +<p> +<b>Description:</b> This function initializes the signal set specified by set such that all signals are included. -<P> -<B>Input Parameters:</B> -<UL> -<LI><I>set</I>. Signal set to initialize -</UL> +<p> +<b>Input Parameters:</b> +<ul> +<li><I>set</I>. Signal set to initialize +</ul> -<P> -<B>Returned Values:</B> -<UL> -<LI>0 (OK), or -1 (ERROR) if the signal set cannot be initialized. -</UL> +<p> +<b>Returned Values:</b> +<ul> +<li>0 (OK), or -1 (ERROR) if the signal set cannot be initialized. +</ul> -<P> -<B>Assumptions/Limitations:</B> -<P> -<B> POSIX Compatibility:</B> Comparable to the POSIX +<p> +<b>Assumptions/Limitations:</b> +<p> +<b> POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. <H3><a name="sigaddset">2.8.3 sigaddset</a></H3> -<P> -<B>Function Prototype:</B> +<p> +<b>Function Prototype:</b> <PRE> #include &lt;signal.h&gt; int sigaddset(sigset_t *set, int signo); </PRE> -<P> -<B>Description:</B> This function adds the signal specified by +<p> +<b>Description:</b> This function adds the signal specified by signo to the signal set specified by set. -<P> -<B>Input Parameters:</B> -<UL> -<LI><I>set</I>. Signal set to add signal to -<LI><I>signo</I>. Signal to add -</UL> +<p> +<b>Input Parameters:</b> +<ul> +<li><I>set</I>. Signal set to add signal to +<li><I>signo</I>. Signal to add +</ul> -<P> -<B>Returned Values:</B> -<UL> -<LI>0 (OK), or -1 (ERROR) if the signal number is invalid. -</UL> +<p> +<b>Returned Values:</b> +<ul> +<li>0 (OK), or -1 (ERROR) if the signal number is invalid. +</ul> -<P> -<B>Assumptions/Limitations:</B> -<P> -<B> POSIX Compatibility:</B> Comparable to the POSIX +<p> +<b>Assumptions/Limitations:</b> +<p> +<b> POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. <H3><a name="sigdelset">2.8.4 sigdelset</a></H3> -<P> -<B>Function Prototype:</B> +<p> +<b>Function Prototype:</b> <PRE> #include &lt;signal.h&gt; int sigdelset(sigset_t *set, int signo); </PRE> -<P> -<B>Description:</B> This function deletes the signal specified +<p> +<b>Description:</b> This function deletes the signal specified by signo from the signal set specified by set. -<P> -<B>Input Parameters:</B> -<UL> -<LI><I>set</I>. Signal set to delete the signal from -<LI><I>signo</I>. Signal to delete -</UL> +<p> +<b>Input Parameters:</b> +<ul> +<li><I>set</I>. Signal set to delete the signal from +<li><I>signo</I>. Signal to delete +</ul> -<P> -<B>Returned Values:</B> -<UL> -<LI>0 (OK), or -1 (ERROR) if the signal number is invalid. -</UL> +<p> +<b>Returned Values:</b> +<ul> +<li>0 (OK), or -1 (ERROR) if the signal number is invalid. +</ul> -<P> -<B>Assumptions/Limitations:</B> -<P> -<B> POSIX Compatibility:</B> Comparable to the POSIX +<p> +<b>Assumptions/Limitations:</b> +<p> +<b> POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. <H3><a name="sigismember">2.8.5 sigismember</a></H3> -<P> -<B>Function Prototype:</B> +<p> +<b>Function Prototype:</b> <PRE> #include &lt;signal.h&gt; int sigismember(const sigset_t *set, int signo); </PRE> -<P> -<B>Description:</B> This function tests whether the signal specified +<p> +<b>Description:</b> This function tests whether the signal specified by signo is a member of the set specified by set. -<P> -<B>Input Parameters:</B> -<UL> -<LI><I>set</I>. Signal set to test -<LI><I>signo</I>. Signal to test for -</UL> +<p> +<b>Input Parameters:</b> +<ul> +<li><I>set</I>. Signal set to test +<li><I>signo</I>. Signal to test for +</ul> -<P> -<B>Returned Values:</B> -<UL> -<LI>1 (TRUE), if the specified signal is a member of the set, -<LI>0 (OK or FALSE), if it is not, or -<LI>-1 (ERROR) if the signal number is invalid. -</UL> +<p> +<b>Returned Values:</b> +<ul> +<li>1 (TRUE), if the specified signal is a member of the set, +<li>0 (OK or FALSE), if it is not, or +<li>-1 (ERROR) if the signal number is invalid. +</ul> -<P> -<B>Assumptions/Limitations:</B> -<P> -<B> POSIX Compatibility:</B> Comparable to the POSIX +<p> +<b>Assumptions/Limitations:</b> +<p> +<b> POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. <H3><a name="sigaction">2.8.6 sigaction</a></H3> -<P> -<B>Function Prototype:</B> +<p> +<b>Function Prototype:</b> <PRE> #include &lt;signal.h&gt; int sigaction( int signo, const struct sigaction *act, struct sigaction *oact ); </PRE> -<P> -<B>Description:</B> This function allows the calling task to +<p> +<b>Description:</b> This function allows the calling task to examine and/or specify the action to be associated with a specific signal. -<P> +<p> The structure sigaction, used to describe an action to be taken, is defined to include the following members: -<UL> -<LI><I>sa_u.sa_handler</I>. A pointer to a signal-catching function. -<LI><I>sa_u.sa_sigaction</I>. An alternative form for the signal catching +<ul> +<li><I>sa_u.sa_handler</I>. A pointer to a signal-catching function. +<li><I>sa_u.sa_sigaction</I>. An alternative form for the signal catching function. -<LI><I>sa_mask</I>. Additional set of signals to be blocked during +<li><I>sa_mask</I>. Additional set of signals to be blocked during execution of the signal-catching function. -<LI><I>sa_flags</I>: Special flags to affect behavior of a signal. -</UL> -<P> +<li><I>sa_flags</I>: Special flags to affect behavior of a signal. +</ul> +<p> If the argument act is not NULL, it points to a structure specifying the action to be associated with the specified signal. If the argument oact is not NULL, the action previously associated with the signal is stored in the location pointed to by the argument oact. If the argument act is NULL, signal handling is unchanged by this function call; thus, the call can be used to enquire about the current handling of a given signal. -<P> +<p> When a signal is caught by a signal-catching function installed by the sigaction() function, a new signal mask is calculated and installed for the duration of the signal-catching function. This mask is formed by taking the union of the current signal mask and the value of the sa_mask for the signal being delivered, and then including the signal being delivered. If and when the signal handler returns, the original signal mask is restored. -<P> +<p> Signal catching functions execute in the same address environment as the task that called sigaction() to install the signal-catching function. -<P> +<p> Once an action is installed for a specific signal, it remains installed until another action is explicitly requested by another call to sigaction(). -<P> -<B>Input Parameters:</B> -<UL> -<LI><I>sig</I>. Signal of interest -<LI><I>act</I>. Location of new handler -<LI><I>oact</I>. Location to store old handler -</UL> +<p> +<b>Input Parameters:</b> +<ul> +<li><I>sig</I>. Signal of interest +<li><I>act</I>. Location of new handler +<li><I>oact</I>. Location to store old handler +</ul> -<P> -<B>Returned Values:</B> -<UL> -<LI>0 (OK), or -1 (ERROR) if the signal number is invalid. -</UL> +<p> +<b>Returned Values:</b> +<ul> +<li>0 (OK), or -1 (ERROR) if the signal number is invalid. +</ul> -<P> -<B>Assumptions/Limitations:</B> -<P> -<B> POSIX Compatibility:</B> Comparable to the POSIX +<p> +<b>Assumptions/Limitations:</b> +<p> +<b> POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. Differences from the POSIX implementation include: -<UL> -<LI>Special values of sa_handler in the struct sigaction act input +<ul> +<li>Special values of sa_handler in the struct sigaction act input not handled (SIG_DFL, SIG_IGN). -<LI>All sa_flags in struct sigaction of act input are ignored +<li>All sa_flags in struct sigaction of act input are ignored (all treated like SA_SIGINFO). -</UL> +</ul> <H3><a name="sigprocmask">2.8.7 sigprocmask</a></H3> -<P> -<B>Function Prototype:</B> +<p> +<b>Function Prototype:</b> <PRE> #include &lt;signal.h&gt; int sigprocmask(int how, const sigset_t *set, sigset_t *oset); </PRE> -<P> -<B>Description:</B> This function allows the calling task to +<p> +<b>Description:</b> This function allows the calling task to examine and/or change its signal mask. If the set is not NULL, then it points to a set of signals to be used to change the currently blocked set. The value of how indicates the manner in which the set is changed. -<P> +<p> If there are any pending unblocked signals after the call to sigprocmask(), those signals will be delivered before sigprocmask() returns. -<P> +<p> If sigprocmask() fails, the signal mask of the task is not changed. -<P> -<B>Input Parameters:</B> -<UL> -<LI><I>how</I>. How the signal mast will be changed: -<UL> -<LI><I>osSIG_BLOCK</I>. The resulting set is the union of the +<p> +<b>Input Parameters:</b> +<ul> +<li><I>how</I>. How the signal mast will be changed: +<ul> +<li><I>osSIG_BLOCK</I>. The resulting set is the union of the current set and the signal set pointed to by the <I>set</I> input parameter. -<LI><I>osSIG_UNBLOCK</I>. The resulting set is the intersection +<li><I>osSIG_UNBLOCK</I>. The resulting set is the intersection of the current set and the complement of the signal set pointed to by the <I>set</I> input parameter. -<LI><I>osSIG_SETMASK</I>. The resulting set is the signal set +<li><I>osSIG_SETMASK</I>. The resulting set is the signal set pointed to by the <I>set</I> input parameter. -</UL> +</ul> -<LI><I>set</I>. Location of the new signal mask -<LI><I>oset</I>. Location to store the old signal mask -</UL> +<li><I>set</I>. Location of the new signal mask +<li><I>oset</I>. Location to store the old signal mask +</ul> -<P> -<B>Returned Values:</B> -<UL> -<LI>0 (OK), or -1 (ERROR) if how is invalid. -</UL> +<p> +<b>Returned Values:</b> +<ul> +<li>0 (OK), or -1 (ERROR) if how is invalid. +</ul> -<P> -<B>Assumptions/Limitations:</B> -<P> -<B> POSIX Compatibility:</B> Comparable to the POSIX +<p> +<b>Assumptions/Limitations:</b> +<p> +<b> POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. <H3><a name="sigpending">2.8.8 sigpending</a></H3> -<P> -<B>Function Prototype:</B> +<p> +<b>Function Prototype:</b> <PRE> #include &lt;signal.h&gt; int sigpending( sigset_t *set ); </PRE> -<P> -<B>Description:</B> This function stores the returns the set of +<p> +<b>Description:</b> This function stores the returns the set of signals that are blocked for delivery and that are pending for the calling task in the space pointed to by set. -<P> +<p> If the task receiving a signal has the signal blocked via its sigprocmask, the signal will pend until it is unmasked. Only one pending signal (for a given signo) is retained by the system. This is consistent with POSIX which states: &quot;If a subsequent occurrence of a pending signal is generated, it is implementation defined as to whether the signal is delivered more than once.&quot; -<P> -<B>Input Parameters:</B> -<UL> -<LI><I>set</I>. The location to return the pending signal set. -</UL> +<p> +<b>Input Parameters:</b> +<ul> +<li><I>set</I>. The location to return the pending signal set. +</ul> -<P> -<B>Returned Values:</B> -<UL> -<LI>0 (OK) or -1 (ERROR) -</UL> +<p> +<b>Returned Values:</b> +<ul> +<li>0 (OK) or -1 (ERROR) +</ul> -<P> -<B>Assumptions/Limitations:</B> -<P> -<B> POSIX Compatibility:</B> Comparable to the POSIX +<p> +<b>Assumptions/Limitations:</b> +<p> +<b> POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. <H3><a name="sigsuspend">2.8.9 sigsuspend</a></H3> -<P> -<B>Function Prototype:</B> +<p> +<b>Function Prototype:</b> <PRE> #include &lt;signal.h&gt; int sigsuspend( const sigset_t *set ); </PRE> -<P> -<B>Description:</B> The sigsuspend() function replaces the signal mask +<p> +<b>Description:</b> The sigsuspend() function replaces the signal mask with the set of signals pointed to by the argument set and then suspends the task until delivery of a signal to the task. -<P> +<p> If the effect of the set argument is to unblock a pending signal, then no wait is performed. -<P> +<p> The original signal mask is restored when sigsuspend() returns. -<P> +<p> Waiting for an empty signal set stops a task without freeing any resources (a very bad idea). -<P> -<B>Input Parameters:</B> -<UL> -<LI><I>set</I>. The value of the signal <B>mask</B> to use while +<p> +<b>Input Parameters:</b> +<ul> +<li><I>set</I>. The value of the signal <b>mask</b> to use while suspended. -</UL> +</ul> -<P> -<B>Returned Values:</B> -<UL> -<LI>-1 (ERROR) always -</UL> +<p> +<b>Returned Values:</b> +<ul> +<li>-1 (ERROR) always +</ul> -<P> -<B>Assumptions/Limitations:</B> -<P> -<B> POSIX Compatibility:</B> Comparable to the POSIX +<p> +<b>Assumptions/Limitations:</b> +<p> +<b> POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. Differences from the POSIX specification include: -<UL> -<LI>POSIX does not indicate that the original signal mask is restored. -<LI>POSIX states that sigsuspend() &quot;suspends the task until +<ul> +<li>POSIX does not indicate that the original signal mask is restored. +<li>POSIX states that sigsuspend() &quot;suspends the task until delivery of a signal whose action is either to execute a signal-catching function or to terminate the task.&quot; Only delivery of the signal is required in the present implementation (even if the signal is ignored). -</UL> +</ul> <H3><a name="sigwaitinfo">2.8.10 sigwaitinfo</a></H3> -<P> -<B>Function Prototype:</B> +<p> +<b>Function Prototype:</b> <PRE> #include &lt;signal.h&gt; int sigwaitinfo(const sigset_t *set, struct siginfo *info); </PRE> -<P> -<B>Description:</B> This function is equivalent to sigtimedwait() +<p> +<b>Description:</b> This function is equivalent to sigtimedwait() with a NULL timeout parameter. (see below). -<P> -<B>Input Parameters:</B> -<UL> -<LI><I>set</I>. The set of pending signals to wait for. -<LI><I>info</I>. The returned signal values -</UL> +<p> +<b>Input Parameters:</b> +<ul> +<li><I>set</I>. The set of pending signals to wait for. +<li><I>info</I>. The returned signal values +</ul> -<P> -<B>Returned Values:</B> -<UL> -<LI>Signal number that cause the wait to be terminated, otherwise +<p> +<b>Returned Values:</b> +<ul> +<li>Signal number that cause the wait to be terminated, otherwise -1 (ERROR) is returned. -</UL> +</ul> -<P> -<B>Assumptions/Limitations:</B> -<P> -<B> POSIX Compatibility:</B> Comparable to the POSIX +<p> +<b>Assumptions/Limitations:</b> +<p> +<b> POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. <H3><a name="sigtimedwait">2.8.11 sigtimedwait</a></H3> -<P> -<B>Function Prototype:</B> +<p> +<b>Function Prototype:</b> <PRE> #include &lt;signal.h&gt; int sigtimedwait( const sigset_t *set, struct siginfo *info, const struct timespec *timeout ); </PRE> -<P> -<B>Description:</B> This function selects the pending signal set +<p> +<b>Description:</b> This function selects the pending signal set specified by the argument set. If multiple signals are pending in set, it will remove and return the lowest numbered one. If no signals in set are pending at the time of the call, the calling task will be suspended @@ -2976,85 +3010,85 @@ until one of the signals in set becomes pending OR until the task interrupted by an unblocked signal OR until the time interval specified by timeout (if any), has expired. If timeout is NULL, then the timeout interval is forever. -<P> +<p> If the info argument is non-NULL, the selected signal number is stored in the si_signo member and the cause of the signal is store in the si_code member. The content of si_value is only meaningful if the signal was generated by sigqueue(). The following values for si_code are defined in signal.h: -<UL> - <LI><I>SI_USER</I>. Signal sent from kill, raise, or abort - <LI><I>SI_QUEUE</I>. Signal sent from sigqueue - <LI><I>SI_TIMER</I>. Signal is result of timer expiration - <LI><I>SI_ASYNCIO</I>. Signal is the result of asynch IO completion - <LI><I>SI_MESGQ</I>. Signal generated by arrival of a message on an empty message queue. -</UL> +<ul> + <li><I>SI_USER</I>. Signal sent from kill, raise, or abort + <li><I>SI_QUEUE</I>. Signal sent from sigqueue + <li><I>SI_TIMER</I>. Signal is result of timer expiration + <li><I>SI_ASYNCIO</I>. Signal is the result of asynch IO completion + <li><I>SI_MESGQ</I>. Signal generated by arrival of a message on an empty message queue. +</ul> -<P> -<B>Input Parameters:</B> -<UL> -<LI><I>set</I>. The set of pending signals to wait for. -<LI><I>info</I>. The returned signal values -<LI><I>timeout</I>. The amount of time to wait -</UL> +<p> +<b>Input Parameters:</b> +<ul> +<li><I>set</I>. The set of pending signals to wait for. +<li><I>info</I>. The returned signal values +<li><I>timeout</I>. The amount of time to wait +</ul> -<P> -<B>Returned Values:</B> -<UL> -<LI>Signal number that cause the wait to be terminated, otherwise +<p> +<b>Returned Values:</b> +<ul> +<li>Signal number that cause the wait to be terminated, otherwise -1 (ERROR) is returned. -</UL> +</ul> -<P> -<B>Assumptions/Limitations:</B> -<P> -<B> POSIX Compatibility:</B> Comparable to the POSIX +<p> +<b>Assumptions/Limitations:</b> +<p> +<b> POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. Differences from the POSIX interface include: -<UL> -<LI>Values for si_codes differ -<LI>No mechanism to return cause of ERROR. (It can be inferred +<ul> +<li>Values for si_codes differ +<li>No mechanism to return cause of ERROR. (It can be inferred from si_code in a non-standard way). -<LI>POSIX states that &quot;If no signal is pending at the time of the +<li>POSIX states that &quot;If no signal is pending at the time of the call, the calling task shall be suspended until one or more signals in set become pending or until it is interrupted by an unblocked, <I>caught</I> signal.&quot; The present implementation does not require that the unblocked signal be caught; the task will be resumed even if the unblocked signal is ignored. -</UL> +</ul> <H3><a name="sigqueue">2.8.12 sigqueue</a></H3> -<P> -<B>Function Prototype:</B> +<p> +<b>Function Prototype:</b> <PRE> #include &lt;signal.h&gt; int sigqueue (int tid, int signo, const union sigval value); </PRE> -<P> -<B>Description:</B> This function sends the signal specified by +<p> +<b>Description:</b> This function sends the signal specified by signo with the signal parameter value to the task specified by tid. -<P> +<p> If the receiving task has the signal blocked via its sigprocmask, the signal will pend until it is unmasked. Only one pending signal (for a given signo) is retained by the system. This is consistent with POSIX which states: &quot;If a subsequent occurrence of a pending signal is generated, it is implementation defined as to whether the signal is delivered more than once.&quot; -<P> -<B>Input Parameters:</B> -<UL> -<LI><I>tid</I>. ID of the task to receive signal -<LI><I>signo</I>. Signal number -<LI><I>value</I>. Value to pass to task with signal -</UL> +<p> +<b>Input Parameters:</b> +<ul> +<li><I>tid</I>. ID of the task to receive signal +<li><I>signo</I>. Signal number +<li><I>value</I>. Value to pass to task with signal +</ul> -<P> -<B>Returned Values:</B> -<UL> -<LI> +<p> +<b>Returned Values:</b> +<ul> +<li> On success (at least one signal was sent), zero (OK) is returned. On error, -1 (ERROR) is returned, and errno is set appropriately. <ul> @@ -3063,35 +3097,35 @@ is delivered more than once.&quot; <li><code>EPERM</code>. The task does not have permission to send the signal to the receiving process.</li> <li><code>ESRCH</code>. No process has a PID matching pid.</li> </ul> -</UL> +</ul> -<P> -<B>Assumptions/Limitations:</B> -<P> -<B> POSIX Compatibility:</B> Comparable to the POSIX +<p> +<b>Assumptions/Limitations:</b> +<p> +<b> POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. Differences from the POSIX interface include: -<UL> -<LI>Default action is to ignore signals. -<LI>Signals are processed one at a time in order -<LI>POSIX states that, &quot;If signo is zero (the null signal), error +<ul> +<li>Default action is to ignore signals. +<li>Signals are processed one at a time in order +<li>POSIX states that, &quot;If signo is zero (the null signal), error checking will be performed but no signal is actually sent.&quot; There is no null signal in the present implementation; a zero signal will be sent. -</UL> +</ul> <H3><a name="kill">2.8.13 kill</a></H3> -<P> -<B>Function Prototype:</B> +<p> +<b>Function Prototype:</b> <PRE> #include &lt;sys/types.h&gt; #include &ltsignal.h&gt; int kill(pid_t pid, int sig); </PRE> -<P> -<B>Description:</B> +<p> +<b>Description:</b> The kill() system call can be used to send any signal to any task. </p> @@ -3111,19 +3145,19 @@ be sent. information as zero and negative pid values. Only positive, non-zero values of pid are supported by this implementation. ID of the task to receive signal -<LI><I>signo</I>. The signal number to send. +<li><I>signo</I>. The signal number to send. If signo is zero, no signal is sent, but all error checking is performed. -</UL> +</ul> <p> - <B>Returned Values:</B> - <UL> - <LI>OK or ERROR - </UL> + <b>Returned Values:</b> + <ul> + <li>OK or ERROR + </ul> </p> <p> - <B>Assumptions/Limitations:</B> + <b>Assumptions/Limitations:</b> </p> <p> <b>POSIX Compatibility:</b> @@ -3136,7 +3170,7 @@ be sent. <li>Sending of signals to 'process groups' is not supported in NuttX.</li> </ul> -<H2>2.9 <A NAME="Pthread">Pthread Interfaces</A></H2> +<H2>2.9 <A NAME="Pthread">Pthread Interfaces</a></H2> <p> NuttX does not support <i>processes</i> in the way that, say, Linux does. NuttX only supports simple threads or tasks running within the same address space. @@ -3260,437 +3294,437 @@ be sent. <li><code>pthread_testcancel</code>. set cancelability state.</li> </ul> -<H3><a name="pthreadattrinit">2.9.1 pthread_attr_init</A></H3> -<P> -<B>Function Prototype:</B> -<P> +<H3><a name="pthreadattrinit">2.9.1 pthread_attr_init</a></H3> +<p> +<b>Function Prototype:</b> +<p> <PRE> #include &lt;pthread.h&gt; int pthread_attr_init(pthread_attr_t *attr); </PRE> -<P> -<B>Description:</B> +<p> +<b>Description:</b> Initializes a thread attributes object (attr) with default values for all of the individual attributes used by the implementation. -<P> -<B>Input Parameters:</B> -<P> -<UL> - <li><code>param<code>.</li> -</UL> -<P> -<B>Returned Values:</B> -<P> +<p> +<b>Input Parameters:</b> +<p> +<ul> + <li><code>To be provided</code>.</li> +</ul> +<p> +<b>Returned Values:</b> +<p> If successful, the <I>pthread_attr_init()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: -<P> -<UL> - <li><code>Exxx</code>. </li> -</UL> -<B>Assumptions/Limitations:</B> -<P> -<B>POSIX Compatibility:</B> Comparable to the POSIX +<p> +<ul> + <li><code>To be provided</code>. </li> +</ul> +<b>Assumptions/Limitations:</b> +<p> +<b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<P> -<H3><a name="pthreadattrdestroy">2.9.2 pthread_attr_destroy</A></H3> -<P> -<B>Function Prototype:</B> -<P> +<p> +<H3><a name="pthreadattrdestroy">2.9.2 pthread_attr_destroy</a></H3> +<p> +<b>Function Prototype:</b> +<p> <PRE> #include &lt;pthread.h&gt; int pthread_attr_destroy(pthread_attr_t *attr); </PRE> -<P> -<B>Description:</B> +<p> +<b>Description:</b> An attributes object can be deleted when it is no longer needed. -<P> -<B>Input Parameters:</B> -<P> -<UL> - <li><code>param<code>.</li> -</UL> -<P> -<B>Returned Values:</B> -<P> +<p> +<b>Input Parameters:</b> +<p> +<ul> + <li><code>To be provided</code>.</li> +</ul> +<p> +<b>Returned Values:</b> +<p> If successful, the <I>pthread_attr_destroy()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: -<P> -<UL> - <li><code>Exxx</code>. </li> -</UL> -<B>Assumptions/Limitations:</B> -<P> -<B>POSIX Compatibility:</B> Comparable to the POSIX +<p> +<ul> + <li><code>To be provided</code>. </li> +</ul> +<b>Assumptions/Limitations:</b> +<p> +<b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<P> -<H3><a name="pthreadattrsetschedpolity">2.9.3 pthread_attr_setschedpolicy</A></H3> -<P> -<B>Function Prototype:</B> -<P> +<p> +<H3><a name="pthreadattrsetschedpolity">2.9.3 pthread_attr_setschedpolicy</a></H3> +<p> +<b>Function Prototype:</b> +<p> <PRE> #include &lt;pthread.h&gt; int pthread_attr_setschedpolicy(pthread_attr_t *attr, int policy); </PRE> -<P> -<B>Description:</B> -<P> -<B>Input Parameters:</B> -<P> -<UL> - <li><code>param<code>.</li> -</UL> -<P> -<B>Returned Values:</B> -<P> +<p> +<b>Description:</b> +<p> +<b>Input Parameters:</b> +<p> +<ul> + <li><code>To be provided</code>.</li> +</ul> +<p> +<b>Returned Values:</b> +<p> If successful, the <I>pthread_attr_setschedpolicy()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: -<P> -<UL> - <li><code>Exxx</code>. </li> -</UL> -<B>Assumptions/Limitations:</B> -<P> -<B>POSIX Compatibility:</B> Comparable to the POSIX +<p> +<ul> + <li><code>To be provided</code>. </li> +</ul> +<b>Assumptions/Limitations:</b> +<p> +<b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadattrgetschedpolicy">2.9.4 pthread_attr_getschedpolicy</A></H3> -<P> -<B>Function Prototype:</B> -<P> +<H3><a name="pthreadattrgetschedpolicy">2.9.4 pthread_attr_getschedpolicy</a></H3> +<p> +<b>Function Prototype:</b> +<p> <PRE> #include &lt;pthread.h&gt; int pthread_attr_getschedpolicy(pthread_attr_t *attr, int *policy); </PRE> -<P> -<B>Description:</B> -<P> -<B>Input Parameters:</B> -<P> -<UL> - <li><code>param<code>.</li> -</UL> -<P> -<B>Returned Values:</B> -<P> +<p> +<b>Description:</b> +<p> +<b>Input Parameters:</b> +<p> +<ul> + <li><code>To be provided</code>.</li> +</ul> +<p> +<b>Returned Values:</b> +<p> If successful, the <I>pthread_attr_getschedpolicy()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: -<P> -<UL> - <li><code>Exxx</code>. </li> -</UL> -<B>Assumptions/Limitations:</B> -<P> -<B>POSIX Compatibility:</B> Comparable to the POSIX +<p> +<ul> + <li><code>To be provided</code>. </li> +</ul> +<b>Assumptions/Limitations:</b> +<p> +<b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadattrsetschedparam">2.9.5 pthread_attr_getschedpolicy</A></H3> -<P> -<B>Function Prototype:</B> -<P> +<H3><a name="pthreadattrsetschedparam">2.9.5 pthread_attr_getschedpolicy</a></H3> +<p> +<b>Function Prototype:</b> +<p> <PRE> #include &lt;pthread.h&gt; int pthread_attr_setschedparam(pthread_attr_t *attr, const struct sched_param *param); </PRE> -<P> -<B>Description:</B> -<P> -<B>Input Parameters:</B> -<P> -<UL> - <li><code>param<code>.</li> -</UL> -<P> -<B>Returned Values:</B> -<P> +<p> +<b>Description:</b> +<p> +<b>Input Parameters:</b> +<p> +<ul> + <li><code>To be provided</code>.</li> +</ul> +<p> +<b>Returned Values:</b> +<p> If successful, the <I>pthread_attr_getschedpolicy()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: -<P> -<UL> - <li><code>Exxx</code>. </li> -</UL> -<B>Assumptions/Limitations:</B> -<P> -<B>POSIX Compatibility:</B> Comparable to the POSIX +<p> +<ul> + <li><code>To be provided</code>. </li> +</ul> +<b>Assumptions/Limitations:</b> +<p> +<b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadattrgetschedparam">2.9.6 pthread_attr_getschedparam</A></H3> -<P> -<B>Function Prototype:</B> -<P> +<H3><a name="pthreadattrgetschedparam">2.9.6 pthread_attr_getschedparam</a></H3> +<p> +<b>Function Prototype:</b> +<p> <PRE> #include &lt;pthread.h&gt; int pthread_attr_getschedparam(pthread_attr_t *attr, struct sched_param *param); </PRE> -<P> -<B>Description:</B> -<P> -<B>Input Parameters:</B> -<P> -<UL> - <li><code>param<code>.</li> -</UL> -<P> -<B>Returned Values:</B> -<P> +<p> +<b>Description:</b> +<p> +<b>Input Parameters:</b> +<p> +<ul> + <li><code>To be provided</code>.</li> +</ul> +<p> +<b>Returned Values:</b> +<p> If successful, the <I>pthread_attr_getschedparam()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: -<P> -<UL> - <li><code>Exxx</code>. </li> -</UL> -<B>Assumptions/Limitations:</B> -<P> -<B>POSIX Compatibility:</B> Comparable to the POSIX +<p> +<ul> + <li><code>To be provided</code>. </li> +</ul> +<b>Assumptions/Limitations:</b> +<p> +<b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadattrsetinheritsched">2.9.7 pthread_attr_setinheritsched</A></H3> -<P> -<B>Function Prototype:</B> -<P> +<H3><a name="pthreadattrsetinheritsched">2.9.7 pthread_attr_setinheritsched</a></H3> +<p> +<b>Function Prototype:</b> +<p> <PRE> #include &lt;pthread.h&gt; int pthread_attr_setinheritsched(pthread_attr_t *attr, int inheritsched); </PRE> -<P> -<B>Description:</B> -<P> -<B>Input Parameters:</B> -<P> -<UL> - <li><code>param<code>.</li> -</UL> -<P> -<B>Returned Values:</B> -<P> +<p> +<b>Description:</b> +<p> +<b>Input Parameters:</b> +<p> +<ul> + <li><code>To be provided</code>.</li> +</ul> +<p> +<b>Returned Values:</b> +<p> If successful, the <I>pthread_attr_setinheritsched()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: -<P> -<UL> - <li><code>Exxx</code>. </li> -</UL> -<B>Assumptions/Limitations:</B> -<P> -<B>POSIX Compatibility:</B> Comparable to the POSIX +<p> +<ul> + <li><code>To be provided</code>. </li> +</ul> +<b>Assumptions/Limitations:</b> +<p> +<b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<P> -<H3><a name="pthreadattrgetinheritsched">2.9.8 pthread_attr_getinheritsched</A></H3> -<P> -<B>Function Prototype:</B> -<P> +<p> +<H3><a name="pthreadattrgetinheritsched">2.9.8 pthread_attr_getinheritsched</a></H3> +<p> +<b>Function Prototype:</b> +<p> <PRE> #include &lt;pthread.h&gt; int pthread_attr_getinheritsched(const pthread_attr_t *attr, int *inheritsched); </PRE> -<P> -<B>Description:</B> -<P> -<B>Input Parameters:</B> -<P> -<UL> - <li><code>param<code>.</li> -</UL> -<P> -<B>Returned Values:</B> -<P> +<p> +<b>Description:</b> +<p> +<b>Input Parameters:</b> +<p> +<ul> + <li><code>To be provided</code>.</li> +</ul> +<p> +<b>Returned Values:</b> +<p> If successful, the <I>pthread_attr_getinheritsched()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: -<P> -<UL> - <li><code>Exxx</code>. </li> -</UL> -<B>Assumptions/Limitations:</B> -<P> -<B>POSIX Compatibility:</B> Comparable to the POSIX +<p> +<ul> + <li><code>To be provided</code>. </li> +</ul> +<b>Assumptions/Limitations:</b> +<p> +<b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadattrsetstacksize">2.9.9 pthread_attr_setstacksize</A></H3> -<P> -<B>Function Prototype:</B> -<P> +<H3><a name="pthreadattrsetstacksize">2.9.9 pthread_attr_setstacksize</a></H3> +<p> +<b>Function Prototype:</b> +<p> <PRE> #include &lt;pthread.h&gt; int pthread_attr_setstacksize(pthread_attr_t *attr, long stacksize); </PRE> -<P> -<B>Description:</B> -<P> -<B>Input Parameters:</B> -<P> -<UL> - <li><code>param<code>.</li> -</UL> -<P> -<B>Returned Values:</B> -<P> +<p> +<b>Description:</b> +<p> +<b>Input Parameters:</b> +<p> +<ul> + <li><code>To be provided</code>.</li> +</ul> +<p> +<b>Returned Values:</b> +<p> If successful, the <I>pthread_attr_setstacksize()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: -<P> -<UL> - <li><code>Exxx</code>. </li> -</UL> -<B>Assumptions/Limitations:</B> -<P> -<B>POSIX Compatibility:</B> Comparable to the POSIX +<p> +<ul> + <li><code>To be provided</code>. </li> +</ul> +<b>Assumptions/Limitations:</b> +<p> +<b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadattrgetstacksize">2.9.10 pthread_attr_getstacksize</A></H3> -<P> -<B>Function Prototype:</B> -<P> +<H3><a name="pthreadattrgetstacksize">2.9.10 pthread_attr_getstacksize</a></H3> +<p> +<b>Function Prototype:</b> +<p> <PRE> #include &lt;pthread.h&gt; int pthread_attr_getstacksize(pthread_attr_t *attr, long *stackaddr); </PRE> -<P> -<B>Description:</B> -<P> -<B>Input Parameters:</B> -<P> -<UL> - <li><code>param<code>.</li> -</UL> -<P> -<B>Returned Values:</B> -<P> +<p> +<b>Description:</b> +<p> +<b>Input Parameters:</b> +<p> +<ul> + <li><code>To be provided</code>.</li> +</ul> +<p> +<b>Returned Values:</b> +<p> If successful, the <I>pthread_attr_getstacksize()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: -<P> -<UL> - <li><code>Exxx</code>. </li> -</UL> -<B>Assumptions/Limitations:</B> -<P> -<B>POSIX Compatibility:</B> Comparable to the POSIX +<p> +<ul> + <li><code>To be provided</code>. </li> +</ul> +<b>Assumptions/Limitations:</b> +<p> +<b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadcreate">2.9.11 pthread_create</A></H3> -<P> -<B>Function Prototype:</B> -<P> +<H3><a name="pthreadcreate">2.9.11 pthread_create</a></H3> +<p> +<b>Function Prototype:</b> +<p> <PRE> #include &lt;pthread.h&gt; int pthread_create(pthread_t *thread, pthread_attr_t *attr, pthread_startroutine_t startRoutine, pthread_addr_t arg); </PRE> -<P> -<B>Description:</B> +<p> +<b>Description:</b> To create a thread object and runnable thread, a routine must be specified as the new thread's start routine. An argument may be passed to this routine, as an untyped address; an untyped address may also be returned as the routine's value. An attributes object may be used to specify details about the kind of thread being created. -<P> -<B>Input Parameters:</B> -<P> -<UL> - <li><code>param<code>.</li> -</UL> -<P> -<B>Returned Values:</B> -<P> +<p> +<b>Input Parameters:</b> +<p> +<ul> + <li><code>To be provided</code>.</li> +</ul> +<p> +<b>Returned Values:</b> +<p> If successful, the <I>pthread_create()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: -<P> -<UL> - <li><code>Exxx</code>. </li> -</UL> -<B>Assumptions/Limitations:</B> -<P> -<B>POSIX Compatibility:</B> Comparable to the POSIX +<p> +<ul> + <li><code>To be provided</code>. </li> +</ul> +<b>Assumptions/Limitations:</b> +<p> +<b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<H3><a name="pthreaddetach">2.9.12 pthread_detach</A></H3> -<P> -<B>Function Prototype:</B> -<P> +<H3><a name="pthreaddetach">2.9.12 pthread_detach</a></H3> +<p> +<b>Function Prototype:</b> +<p> <PRE> #include &lt;pthread.h&gt; int pthread_detach(pthread_t thread); </PRE> -<P> -<B>Description:</B> +<p> +<b>Description:</b> A thread object may be "detached" to specify that the return value and completion status will not be requested. -<P> -<B>Input Parameters:</B> -<P> -<UL> - <li><code>param<code>.</li> -</UL> -<P> -<B>Returned Values:</B> -<P> +<p> +<b>Input Parameters:</b> +<p> +<ul> + <li><code>To be provided</code>.</li> +</ul> +<p> +<b>Returned Values:</b> +<p> If successful, the <I>pthread_detach()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: -<P> -<UL> - <li><code>Exxx</code>. </li> -</UL> -<B>Assumptions/Limitations:</B> -<P> -<B>POSIX Compatibility:</B> Comparable to the POSIX +<p> +<ul> + <li><code>To be provided</code>. </li> +</ul> +<b>Assumptions/Limitations:</b> +<p> +<b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadexit">2.9.13 pthread_exit</A></H3> -<P> -<B>Function Prototype:</B> -<P> +<H3><a name="pthreadexit">2.9.13 pthread_exit</a></H3> +<p> +<b>Function Prototype:</b> +<p> <PRE> #include &lt;pthread.h&gt; void pthread_exit(pthread_addr_t pvValue); </PRE> -<P> -<B>Description:</B> +<p> +<b>Description:</b> A thread may terminate it's own execution. -<P> -<B>Input Parameters:</B> -<P> -<UL> - <li><code>param<code>.</li> -</UL> -<P> -<B>Returned Values:</B> -<P> +<p> +<b>Input Parameters:</b> +<p> +<ul> + <li><code>To be provided</code>.</li> +</ul> +<p> +<b>Returned Values:</b> +<p> If successful, the <I>pthread_exit()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: -<P> -<UL> - <li><code>Exxx</code>. </li> -</UL> -<B>Assumptions/Limitations:</B> -<P> -<B>POSIX Compatibility:</B> Comparable to the POSIX +<p> +<ul> + <li><code>To be provided</code>. </li> +</ul> +<b>Assumptions/Limitations:</b> +<p> +<b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadcancel">2.9.14 pthread_cancel</A></H3> -<P> -<B>Function Prototype:</B> -<P> +<H3><a name="pthreadcancel">2.9.14 pthread_cancel</a></H3> +<p> +<b>Function Prototype:</b> +<p> <PRE> #include &lt;pthread.h&gt; int pthread_cancel(pthread_t thread); </PRE> -<P> -<B>Description:</B> +<p> +<b>Description:</b> <p>The pthread_cancel() function shall request that thread be canceled. The target thread's cancelability state determines @@ -3706,48 +3740,48 @@ calls pthread_testcancel().</p> <p>Cancelability is asynchronous; all cancels are acted upon immediately (when enable), interrupting the thread with its processing.</p> -<P> -<B>Input Parameters:</B> -<P> -<UL> -<LI><I>thread</I>. +<p> +<b>Input Parameters:</b> +<p> +<ul> +<li><I>thread</I>. Identifies the thread to be canceled.</li> -</UL> -<P> -<B>Returned Values:</B> -<P> +</ul> +<p> +<b>Returned Values:</b> +<p> If successful, the <I>ptnread_cancel()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: -<P> -<UL> -<LI><I>ESRCH</I>. +<p> +<ul> +<li><I>ESRCH</I>. No thread could be found corresponding to that specified by the given thread ID.</li> -</UL> -<B>Assumptions/Limitations:</B> -<P> -<B>POSIX Compatibility:</B> Comparable to the POSIX +</ul> +<b>Assumptions/Limitations:</b> +<p> +<b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. Except:</p> -<UL> -<LI>The thread-specific data destructor functions shall be called for thread. +<ul> +<li>The thread-specific data destructor functions shall be called for thread. However, these destructors are not currently supported.</li> <li>Cancellation types are not supported. The thread will be canceled at the time that pthread_cancel() is called or, if cancelation is disabled, at the time when cancelation is re-enabled.</li> <li><tt>pthread_testcancel()</tt> is not supported.</li> <li>Thread cancellation at <i>cancellation points</i> is not supported.</li> -</UL> +</ul> -<H3><a name="pthreadsetcancelstate">2.9.15 pthread_setcancelstate</A></H3> -<P> -<B>Function Prototype:</B> -<P> +<H3><a name="pthreadsetcancelstate">2.9.15 pthread_setcancelstate</a></H3> +<p> +<b>Function Prototype:</b> +<p> <PRE> #include &lt;pthread.h&gt; int pthread_setcancelstate(int state, int *oldstate); </PRE> -<P> -<B>Description:</B> -<P>The <i>pthread_setcancelstate()</i> function atomically +<p> +<b>Description:</b> +<p>The <i>pthread_setcancelstate()</i> function atomically sets both the calling thread's cancelability state to the indicated state and returns the previous cancelability state at the location referenced by oldstate. @@ -3756,159 +3790,159 @@ Legal values for state are PTHREAD_CANCEL_ENABLE and PTHREAD_CANCEL_DISABLE.<.li <p>Any pending thread cancelation may occur at the time that the cancelation state is set to PTHREAD_CANCEL_ENABLE.</p> -<B>Input Parameters:</B> -<P> -<UL> -<LI><I>state</I> +<b>Input Parameters:</b> +<p> +<ul> +<li><I>state</I> New cancelation state. One of PTHREAD_CANCEL_ENABLE or PTHREAD_CANCEL_DISABLE.<.li> -<LI><I>oldstate</I>. +<li><I>oldstate</I>. Location to return the previous cancelation state. -</UL> -<P> -<B>Returned Values:</B> -<P> +</ul> +<p> +<b>Returned Values:</b> +<p> If successful, the <I>pthread_setcancelstate()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: -<P> -<UL> -<LI><I>ESRCH</I>. +<p> +<ul> +<li><I>ESRCH</I>. No thread could be found corresponding to that specified by the given thread ID.</li> -</UL> -<B>Assumptions/Limitations:</B> -<P> -<B>POSIX Compatibility:</B> Comparable to the POSIX +</ul> +<b>Assumptions/Limitations:</b> +<p> +<b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadtestcancelstate">2.9.16 pthread_testcancelstate</A></H3> -<P> -<B>Function Prototype:</B> -<P> +<H3><a name="pthreadtestcancelstate">2.9.16 pthread_testcancelstate</a></H3> +<p> +<b>Function Prototype:</b> +<p> <PRE> #include &lt;pthread.h&gt; int pthread_setcancelstate(void); </PRE> -<P> -<B>Description:</B> -<P><b>NOT SUPPORTED</b> -<B>Input Parameters:</B> -<P> -<UL> - <li><code>param<code>.</li> -</UL> -<P> -<B>Returned Values:</B> -<P> +<p> +<b>Description:</b> +<p><b>NOT SUPPORTED</b> +<b>Input Parameters:</b> +<p> +<ul> + <li><code>To be provided</code>.</li> +</ul> +<p> +<b>Returned Values:</b> +<p> If successful, the <I>pthread_setcancelstate()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: -<P> -<UL> - <li><code>Exxx</code>. </li> -</UL> -<B>Assumptions/Limitations:</B> -<P> -<B>POSIX Compatibility:</B> Comparable to the POSIX +<p> +<ul> + <li><code>To be provided</code>. </li> +</ul> +<b>Assumptions/Limitations:</b> +<p> +<b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadjoin">2.9.17 pthread_join</A></H3> -<P> -<B>Function Prototype:</B> -<P> +<H3><a name="pthreadjoin">2.9.17 pthread_join</a></H3> +<p> +<b>Function Prototype:</b> +<p> <PRE> #include &lt;pthread.h&gt; int pthread_join(pthread_t thread, pthread_addr_t *ppvValue); </PRE> -<P> -<B>Description:</B> +<p> +<b>Description:</b> A thread can await termination of another thread and retrieve the return value of the thread. -<P> -<B>Input Parameters:</B> -<P> -<UL> - <li><code>param<code>.</li> -</UL> -<P> -<B>Returned Values:</B> -<P> +<p> +<b>Input Parameters:</b> +<p> +<ul> + <li><code>To be provided</code>.</li> +</ul> +<p> +<b>Returned Values:</b> +<p> If successful, the <I>pthread_join()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: -<P> -<UL> - <li><code>Exxx</code>. </li> -</UL> -<B>Assumptions/Limitations:</B> -<P> -<B>POSIX Compatibility:</B> Comparable to the POSIX +<p> +<ul> + <li><code>To be provided</code>. </li> +</ul> +<b>Assumptions/Limitations:</b> +<p> +<b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadyield">2.9.18 pthread_yield</A></H3> -<P> -<B>Function Prototype:</B> -<P> +<H3><a name="pthreadyield">2.9.18 pthread_yield</a></H3> +<p> +<b>Function Prototype:</b> +<p> <PRE> #include &lt;pthread.h&gt; void pthread_yield(void); </PRE> -<P> -<B>Description:</B> +<p> +<b>Description:</b> A thread may tell the scheduler that its processor can be made available. -<P> -<B>Input Parameters:</B> -<P> -<UL> - <li><code>param<code>.</li> -</UL> -<P> -<B>Returned Values:</B> -<P> +<p> +<b>Input Parameters:</b> +<p> +<ul> + <li><code>To be provided</code>.</li> +</ul> +<p> +<b>Returned Values:</b> +<p> If successful, the <I>pthread_yield()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: -<P> -<UL> - <li><code>Exxx</code>. </li> -</UL> -<B>Assumptions/Limitations:</B> -<P> -<B>POSIX Compatibility:</B> Comparable to the POSIX +<p> +<ul> + <li><code>To be provided</code>. </li> +</ul> +<b>Assumptions/Limitations:</b> +<p> +<b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadself">2.9.19 pthread_self</A></H3> -<P> -<B>Function Prototype:</B> -<P> +<H3><a name="pthreadself">2.9.19 pthread_self</a></H3> +<p> +<b>Function Prototype:</b> +<p> <PRE> #include &lt;pthread.h&gt; pthread_t pthread_self(void); </PRE> -<P> -<B>Description:</B> +<p> +<b>Description:</b> A thread may obtain a copy of its own thread handle. -<P> -<B>Input Parameters:</B> -<P> -<UL> - <li><code>param<code>.</li> -</UL> -<P> -<B>Returned Values:</B> -<P> +<p> +<b>Input Parameters:</b> +<p> +<ul> + <li><code>To be provided</code>.</li> +</ul> +<p> +<b>Returned Values:</b> +<p> If successful, the <I>pthread_self()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: -<P> -<UL> - <li><code>Exxx</code>. </li> -</UL> -<B>Assumptions/Limitations:</B> -<P> -<B>POSIX Compatibility:</B> Comparable to the POSIX +<p> +<ul> + <li><code>To be provided</code>. </li> +</ul> +<b>Assumptions/Limitations:</b> +<p> +<b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadgetschedparam">2.9.20 pthread_getschedparam</A></H3> +<H3><a name="pthreadgetschedparam">2.9.20 pthread_getschedparam</a></H3> <p> <b>Function Prototype:</b> </p> @@ -3974,7 +4008,7 @@ interface of the same name. Comparable to the POSIX interface of the same name. </p> -<H3><a name="pthreadsetschedparam">2.9.21 pthread_setschedparam</A></H3> +<H3><a name="pthreadsetschedparam">2.9.21 pthread_setschedparam</a></H3> <p> <b>Function Prototype:</b> </p> @@ -4066,72 +4100,72 @@ interface of the same name. Comparable to the POSIX interface of the same name. </p> -<H3><a name="pthreadkeycreate">2.9.22 pthread_key_create</A></H3> -<P> -<B>Function Prototype:</B> -<P> +<H3><a name="pthreadkeycreate">2.9.22 pthread_key_create</a></H3> +<p> +<b>Function Prototype:</b> +<p> <PRE> #include &lt;pthread.h&gt; int pthread_key_create( pthread_key_t *key, void (*destructor)(void*) ) </PRE> -<P> -<B>Description:</B> -<P> +<p> +<b>Description:</b> +<p> This function creates a thread-specific data key visible to all threads in the system. Although the same key value may be used by different threads, the values bound to the key by <I>pthread_setspecific()</I> are maintained on a per-thread basis and persist for the life of the calling thread. -<P> +<p> Upon key creation, the value <I>NULL</I> will be associated with the 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> -<B>Input Parameters:</B> -<P> -<UL> -<LI><I>key</I> is a pointer to the key to create. -<LI><I>destructor</I> is an optional destructor() function that may +<p> +<b>Input Parameters:</b> +<p> +<ul> +<li><I>key</I> is a pointer to the key to create. +<li><I>destructor</I> is an optional destructor() function that may be associated with each key that is invoked when a thread exits. However, this argument is ignored in the current implementation. -</UL> -<P> -<B>Returned Values:</B> -<P> +</ul> +<p> +<b>Returned Values:</b> +<p> If successful, the <I>pthread_key_create()</I> function will store the newly created key value at *<I>key</I> and return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: -<P> -<UL> -<LI><I>EAGAIN</I>. The system lacked sufficient resources +<p> +<ul> +<li><I>EAGAIN</I>. The system lacked sufficient resources to create another thread-specific data key, or the system-imposed limit on the total number of keys per task {<I>PTHREAD_KEYS_MAX</I>} has been exceeded -<LI><I>ENONMEM</I> Insufficient memory exists to create the key. -</UL> -<B>Assumptions/Limitations:</B> -<P> -<B>POSIX Compatibility:</B> Comparable to the POSIX +<li><I>ENONMEM</I> Insufficient memory exists to create the key. +</ul> +<b>Assumptions/Limitations:</b> +<p> +<b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<UL> -<LI>The present implementation ignores the destructor argument. -</UL> +<ul> +<li>The present implementation ignores the destructor argument. +</ul> -<H3><a name="pthreadsetspecific">2.9.23 pthread_setspecific</A></H3> -<P> -<B>Function Prototype:</B> -<P> +<H3><a name="pthreadsetspecific">2.9.23 pthread_setspecific</a></H3> +<p> +<b>Function Prototype:</b> +<p> <PRE> #include &lt;pthread.h&gt; int pthread_setspecific( pthread_key_t key, void *value ) </PRE> -<P> -<B>Description:</B> -<P> +<p> +<b>Description:</b> +<p> The <I>pthread_setspecific()</I> function associates a thread- specific value with a key obtained via a previous call to <I>pthread_key_create()</I>. Different threads may bind @@ -4139,611 +4173,611 @@ different values to the same key. These values are typically pointers to blocks of dynamically allocated memory that have been reserved for use by the calling thread. -<P> +<p> The effect of calling <I>pthread_setspecific()</I> with a key value not obtained from <I>pthread_key_create()</I> or after a key has been deleted with <I>pthread_key_delete()</I> is undefined. -<P> -<B>Input Parameters:</B> -<P> -<UL> -<LI><I>key</I>. The data key to set the binding for. -<LI><I>value</I>. The value to bind to the key. -</UL> -<P> -<B>Returned Values:</B> -<P> +<p> +<b>Input Parameters:</b> +<p> +<ul> +<li><I>key</I>. The data key to set the binding for. +<li><I>value</I>. The value to bind to the key. +</ul> +<p> +<b>Returned Values:</b> +<p> If successful, <I>pthread_setspecific()</I> will return zero (<I>OK</I>). Otherwise, an error number will be returned: -<P> -<UL> -<LI><I>ENOMEM</I>. Insufficient memory exists to associate the value +<p> +<ul> +<li><I>ENOMEM</I>. Insufficient memory exists to associate the value with the key. -<LI><I>EINVAL</I>. The key value is invalid. -</UL> -<P> -<B>Assumptions/Limitations:</B> -<P> -<B>POSIX Compatibility:</B> Comparable to the POSIX +<li><I>EINVAL</I>. The key value is invalid. +</ul> +<p> +<b>Assumptions/Limitations:</b> +<p> +<b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<UL> -<LI>pthread_setspecific() may be called from a thread-specific data +<ul> +<li>pthread_setspecific() may be called from a thread-specific data destructor function. -</UL> +</ul> -<H3><a name="pthreadgetspecific">2.9.24 pthread_getspecific</A></H3> -<P> -<B>Function Prototype:</B> -<P> +<H3><a name="pthreadgetspecific">2.9.24 pthread_getspecific</a></H3> +<p> +<b>Function Prototype:</b> +<p> <PRE> #include &lt;pthread.h&gt; void *pthread_getspecific( pthread_key_t key ) </PRE> -<P> -<B>Description:</B> -<P> +<p> +<b>Description:</b> +<p> The <I>pthread_getspecific()</I> function returns the value currently bound to the specified key on behalf of the calling thread. -<P> +<p> The effect of calling <I>pthread_getspecific()</I> with a key value not obtained from <I>pthread_key_create()</I> or after a key has been deleted with <I>pthread_key_delete()</I> is undefined. -<P> -<B>Input Parameters:</B> -<P> -<UL> -<LI><I>key</I>. The data key to get the binding for. -</UL> -<P> -<B>Returned Values:</B> -<P> +<p> +<b>Input Parameters:</b> +<p> +<ul> +<li><I>key</I>. The data key to get the binding for. +</ul> +<p> +<b>Returned Values:</b> +<p> The function <I>pthread_getspecific()</I> returns the thread- specific data associated with the given key. If no thread specific data is associated with the key, then the value <I>NULL</I> is returned. -<P> -<B>Assumptions/Limitations:</B> -<P> -<B>POSIX Compatibility:</B> Comparable to the POSIX +<p> +<b>Assumptions/Limitations:</b> +<p> +<b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<UL> -<LI>pthread_getspecific() may be called from a thread-specific data +<ul> +<li>pthread_getspecific() may be called from a thread-specific data destructor function. -</UL> +</ul> -<H3><a name="pthreadkeydelete">2.9.25 pthread_key_delete</A></H3> -<P> -<B>Function Prototype:</B> -<P> +<H3><a name="pthreadkeydelete">2.9.25 pthread_key_delete</a></H3> +<p> +<b>Function Prototype:</b> +<p> <PRE> #include &lt;pthread.h&gt; int pthread_key_delete( pthread_key_t key ) </PRE> -<P> -<B>Description:</B> -<P> +<p> +<b>Description:</b> +<p> This POSIX function should delete a thread-specific data key previously returned by <I>pthread_key_create()</I>. However, this function does nothing in the present implementation. -<P> -<B>Input Parameters:</B> -<P> -<UL> -<LI><I>key</I>. The key to delete -</UL> -<P> -<B>Returned Values:</B> -<P> -<UL> -<LI>Always returns <I>EINVAL</I>. -</UL> -<P> -<B>Assumptions/Limitations:</B> -<P> -<B>POSIX Compatibility:</B> Comparable to the POSIX +<p> +<b>Input Parameters:</b> +<p> +<ul> +<li><I>key</I>. The key to delete +</ul> +<p> +<b>Returned Values:</b> +<p> +<ul> +<li>Always returns <I>EINVAL</I>. +</ul> +<p> +<b>Assumptions/Limitations:</b> +<p> +<b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadmutexattrinit">2.9.26 pthread_mutexattr_init</A></H3> -<P> -<B>Function Prototype:</B> -<P> +<H3><a name="pthreadmutexattrinit">2.9.26 pthread_mutexattr_init</a></H3> +<p> +<b>Function Prototype:</b> +<p> <PRE> #include &lt;pthread.h&gt; int pthread_mutexattr_init(pthread_mutexattr_t *attr); </PRE> -<P> -<B>Description:</B> -<P> -<B>Input Parameters:</B> -<P> -<UL> - <li><code>param<code>.</li> -</UL> -<P> -<B>Returned Values:</B> -<P> +<p> +<b>Description:</b> +<p> +<b>Input Parameters:</b> +<p> +<ul> + <li><code>To be provided</code>.</li> +</ul> +<p> +<b>Returned Values:</b> +<p> If successful, the <I>pthread_mutexattr_init()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: -<P> -<UL> - <li><code>Exxx</code>. </li> -</UL> -<B>Assumptions/Limitations:</B> -<P> -<B>POSIX Compatibility:</B> Comparable to the POSIX +<p> +<ul> + <li><code>To be provided</code>. </li> +</ul> +<b>Assumptions/Limitations:</b> +<p> +<b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadmutexattrdestroy">2.9.27 pthread_mutexattr_destroy</A></H3> -<P> -<B>Function Protoype:</B> -<P> +<H3><a name="pthreadmutexattrdestroy">2.9.27 pthread_mutexattr_destroy</a></H3> +<p> +<b>Function Protoype:</b> +<p> <PRE> #include &lt;pthread.h&gt; int pthread_mutexattr_destroy(pthread_mutexattr_t *attr); </PRE> -<P> -<B>Description:</B> -<P> -<B>Input Parameters:</B> -<P> -<UL> - <li><code>param<code>.</li> -</UL> -<P> -<B>Returned Values:</B> -<P> +<p> +<b>Description:</b> +<p> +<b>Input Parameters:</b> +<p> +<ul> + <li><code>To be provided</code>.</li> +</ul> +<p> +<b>Returned Values:</b> +<p> If successful, the <I>pthread_mutexattr_destroy()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: -<P> -<UL> - <li><code>Exxx</code>. </li> -</UL> -<B>Assumptions/Limitations:</B> -<P> -<B>POSIX Compatibility:</B> Comparable to the POSIX +<p> +<ul> + <li><code>To be provided</code>. </li> +</ul> +<b>Assumptions/Limitations:</b> +<p> +<b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadmutexattrgetpshared">2.9.28 pthread_mutexattr_getpshared</A></H3> -<P> -<B>Function Prototype:</B> -<P> +<H3><a name="pthreadmutexattrgetpshared">2.9.28 pthread_mutexattr_getpshared</a></H3> +<p> +<b>Function Prototype:</b> +<p> <PRE> #include &lt;pthread.h&gt; int pthread_mutexattr_getpshared(pthread_mutexattr_t *attr, int *pshared); </PRE> -<P> -<B>Description:</B> -<P> -<B>Input Parameters:</B> -<P> -<UL> - <li><code>param<code>.</li> -</UL> -<P> -<B>Returned Values:</B> -<P> +<p> +<b>Description:</b> +<p> +<b>Input Parameters:</b> +<p> +<ul> + <li><code>To be provided</code>.</li> +</ul> +<p> +<b>Returned Values:</b> +<p> If successful, the <I>pthread_mutexattr_getpshared()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: -<P> -<UL> - <li><code>Exxx</code>. </li> -</UL> -<B>Assumptions/Limitations:</B> -<P> -<B>POSIX Compatibility:</B> Comparable to the POSIX +<p> +<ul> + <li><code>To be provided</code>. </li> +</ul> +<b>Assumptions/Limitations:</b> +<p> +<b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadmutexattrsetpshared">2.9.29 pthread_mutexattr_setpshared</A></H3> -<P> -<B>Function Prototype:</B> -<P> +<H3><a name="pthreadmutexattrsetpshared">2.9.29 pthread_mutexattr_setpshared</a></H3> +<p> +<b>Function Prototype:</b> +<p> <PRE> #include &lt;pthread.h&gt; int pthread_mutexattr_setpshared(pthread_mutexattr_t *attr, int pshared); </PRE> -<P> -<B>Description:</B> -<P> -<B>Input Parameters:</B> -<P> -<UL> - <li><code>param<code>.</li> -</UL> -<P> -<B>Returned Values:</B> -<P> +<p> +<b>Description:</b> +<p> +<b>Input Parameters:</b> +<p> +<ul> + <li><code>To be provided</code>.</li> +</ul> +<p> +<b>Returned Values:</b> +<p> If successful, the <I>pthread_mutexattr_setpshared()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: -<P> -<UL> - <li><code>Exxx</code>. </li> -</UL> -<B>Assumptions/Limitations:</B> -<P> -<B>POSIX Compatibility:</B> Comparable to the POSIX +<p> +<ul> + <li><code>To be provided</code>. </li> +</ul> +<b>Assumptions/Limitations:</b> +<p> +<b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadmutexinit">2.9.30 pthread_mutex_init</A></H3> -<P> -<B>Function Prototype:</B> -<P> +<H3><a name="pthreadmutexinit">2.9.30 pthread_mutex_init</a></H3> +<p> +<b>Function Prototype:</b> +<p> <PRE> #include &lt;pthread.h&gt; int pthread_mutex_init(pthread_mutex_t *mutex, pthread_mutexattr_t *attr); </PRE> -<P> -<B>Description:</B> -<P> -<B>Input Parameters:</B> -<P> -<UL> - <li><code>param<code>.</li> -</UL> -<P> -<B>Returned Values:</B> -<P> +<p> +<b>Description:</b> +<p> +<b>Input Parameters:</b> +<p> +<ul> + <li><code>To be provided</code>.</li> +</ul> +<p> +<b>Returned Values:</b> +<p> If successful, the <I>pthread_mutex_init()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: -<P> -<UL> - <li><code>Exxx</code>. </li> -</UL> -<B>Assumptions/Limitations:</B> -<P> -<B>POSIX Compatibility:</B> Comparable to the POSIX +<p> +<ul> + <li><code>To be provided</code>. </li> +</ul> +<b>Assumptions/Limitations:</b> +<p> +<b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadmutexdestrory">2.9.31 pthread_mutex_destroy</A></H3> -<P> -<B>Function Prototype:</B> -<P> +<H3><a name="pthreadmutexdestrory">2.9.31 pthread_mutex_destroy</a></H3> +<p> +<b>Function Prototype:</b> +<p> <PRE> #include &lt;pthread.h&gt; int pthread_mutex_destroy(pthread_mutex_t *mutex); </PRE> -<P> -<B>Description:</B> -<P> -<B>Input Parameters:</B> -<P> -<UL> - <li><code>param<code>.</li> -</UL> -<P> -<B>Returned Values:</B> -<P> +<p> +<b>Description:</b> +<p> +<b>Input Parameters:</b> +<p> +<ul> + <li><code>To be provided</code>.</li> +</ul> +<p> +<b>Returned Values:</b> +<p> If successful, the <I>pthread_mutex_destroy()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: -<P> -<UL> - <li><code>Exxx</code>. </li> -</UL> -<B>Assumptions/Limitations:</B> -<P> -<B>POSIX Compatibility:</B> Comparable to the POSIX +<p> +<ul> + <li><code>To be provided</code>. </li> +</ul> +<b>Assumptions/Limitations:</b> +<p> +<b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadmutexlock">2.9.32 pthread_mutex_lock</A></H3> -<P> -<B>Function Prototype:</B> -<P> +<H3><a name="pthreadmutexlock">2.9.32 pthread_mutex_lock</a></H3> +<p> +<b>Function Prototype:</b> +<p> <PRE> #include &lt;pthread.h&gt; int pthread_mutex_lock(pthread_mutex_t *mutex); </PRE> -<P> -<B>Description:</B> -<P> -<B>Input Parameters:</B> -<P> -<UL> - <li><code>param<code>.</li> -</UL> -<P> -<B>Returned Values:</B> -<P> +<p> +<b>Description:</b> +<p> +<b>Input Parameters:</b> +<p> +<ul> + <li><code>To be provided</code>.</li> +</ul> +<p> +<b>Returned Values:</b> +<p> If successful, the <I>pthread_mutex_lock()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: -<P> -<UL> - <li><code>Exxx</code>. </li> -</UL> -<B>Assumptions/Limitations:</B> -<P> -<B>POSIX Compatibility:</B> Comparable to the POSIX +<p> +<ul> + <li><code>To be provided</code>. </li> +</ul> +<b>Assumptions/Limitations:</b> +<p> +<b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadmutextrylock">2.9.33 pthread_mutex_trylock</A></H3> -<P> -<B>Function Prototype:</B> -<P> +<H3><a name="pthreadmutextrylock">2.9.33 pthread_mutex_trylock</a></H3> +<p> +<b>Function Prototype:</b> +<p> <PRE> #include &lt;pthread.h&gt; int pthread_mutex_trylock(pthread_mutex_t *mutex); </PRE> -<P> -<B>Description:</B> -<P> -<B>Input Parameters:</B> -<P> -<UL> - <li><code>param<code>.</li> -</UL> -<P> -<B>Returned Values:</B> -<P> +<p> +<b>Description:</b> +<p> +<b>Input Parameters:</b> +<p> +<ul> + <li><code>To be provided</code>.</li> +</ul> +<p> +<b>Returned Values:</b> +<p> If successful, the <I>pthread_mutex_trylock()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: -<P> -<UL> - <li><code>Exxx</code>. </li> -</UL> -<B>Assumptions/Limitations:</B> -<P> -<B>POSIX Compatibility:</B> Comparable to the POSIX +<p> +<ul> + <li><code>To be provided</code>. </li> +</ul> +<b>Assumptions/Limitations:</b> +<p> +<b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadmutexunlock">2.9.34 pthread_mutex_unlock</A></H3> -<P> -<B>Function Prototype:</B> -<P> +<H3><a name="pthreadmutexunlock">2.9.34 pthread_mutex_unlock</a></H3> +<p> +<b>Function Prototype:</b> +<p> <PRE> #include &lt;pthread.h&gt; int pthread_mutex_unlock(pthread_mutex_t *mutex); </PRE> -<P> -<B>Description:</B> -<P> -<B>Input Parameters:</B> -<P> -<UL> +<p> +<b>Description:</b> +<p> +<b>Input Parameters:</b> +<p> +<ul> <li><code>param<code>.</li> -</UL> -<P> -<B>Returned Values:</B> -<P> +</ul> +<p> +<b>Returned Values:</b> +<p> If successful, the <I>pthread_mutex_unlock()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: -<P> -<UL> - <li><code>Exxx</code>. </li> -</UL> -<B>Assumptions/Limitations:</B> -<P> -<B>POSIX Compatibility:</B> Comparable to the POSIX +<p> +<ul> + <li><code>To be provided</code>. </li> +</ul> +<b>Assumptions/Limitations:</b> +<p> +<b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadconaddrinit">2.9.35 pthread_condattr_init</A></H3> -<P> -<B>Function Prototype:</B> -<P> +<H3><a name="pthreadconaddrinit">2.9.35 pthread_condattr_init</a></H3> +<p> +<b>Function Prototype:</b> +<p> <PRE> #include &lt;pthread.h&gt; int pthread_condattr_init(pthread_condattr_t *attr); </PRE> -<P> -<B>Description:</B> -<P> -<B>Input Parameters:</B> -<P> -<UL> - <li><code>param<code>.</li> -</UL> -<P> -<B>Returned Values:</B> -<P> +<p> +<b>Description:</b> +<p> +<b>Input Parameters:</b> +<p> +<ul> + <li><code>To be provided</code>.</li> +</ul> +<p> +<b>Returned Values:</b> +<p> If successful, the <I>pthread_condattr_init()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: -<P> -<UL> - <li><code>Exxx</code>. </li> -</UL> -<B>Assumptions/Limitations:</B> -<P> -<B>POSIX Compatibility:</B> Comparable to the POSIX +<p> +<ul> + <li><code>To be provided</code>. </li> +</ul> +<b>Assumptions/Limitations:</b> +<p> +<b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadocndattrdestroy">2.9.36 pthread_condattr_destroy</A></H3> -<P> -<B>Function Prototype:</B> -<P> +<H3><a name="pthreadocndattrdestroy">2.9.36 pthread_condattr_destroy</a></H3> +<p> +<b>Function Prototype:</b> +<p> <PRE> #include &lt;pthread.h&gt; int pthread_condattr_destroy(pthread_condattr_t *attr); </PRE> -<P> -<B>Description:</B> -<P> -<B>Input Parameters:</B> -<P> -<UL> - <li><code>param<code>.</li> -</UL> -<P> -<B>Returned Values:</B> -<P> +<p> +<b>Description:</b> +<p> +<b>Input Parameters:</b> +<p> +<ul> + <li><code>To be provided</code>.</li> +</ul> +<p> +<b>Returned Values:</b> +<p> If successful, the <I>pthread_condattr_destroy()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: -<P> -<UL> - <li><code>Exxx</code>. </li> -</UL> -<B>Assumptions/Limitations:</B> -<P> -<B>POSIX Compatibility:</B> Comparable to the POSIX +<p> +<ul> + <li><code>To be provided</code>. </li> +</ul> +<b>Assumptions/Limitations:</b> +<p> +<b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadcondinit">2.9.37 pthread_cond_init</A></H3> -<P> -<B>Function Prototype:</B> -<P> +<H3><a name="pthreadcondinit">2.9.37 pthread_cond_init</a></H3> +<p> +<b>Function Prototype:</b> +<p> <PRE> #include &lt;pthread.h&gt; int pthread_cond_init(pthread_cond_t *cond, pthread_condattr_t *attr); </PRE> -<P> -<B>Description:</B> -<P> -<B>Input Parameters:</B> -<P> -<UL> - <li><code>param<code>.</li> -</UL> -<P> -<B>Returned Values:</B> -<P> +<p> +<b>Description:</b> +<p> +<b>Input Parameters:</b> +<p> +<ul> + <li><code>To be provided</code>.</li> +</ul> +<p> +<b>Returned Values:</b> +<p> If successful, the <I>pthread_cond_init()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: -<P> -<UL> - <li><code>Exxx</code>. </li> -</UL> -<B>Assumptions/Limitations:</B> -<P> -<B>POSIX Compatibility:</B> Comparable to the POSIX +<p> +<ul> + <li><code>To be provided</code>. </li> +</ul> +<b>Assumptions/Limitations:</b> +<p> +<b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadconddestroy">2.9.38 pthread_cond_destroy</A></H3> -<P> -<B>Function Prototype:</B> -<P> +<H3><a name="pthreadconddestroy">2.9.38 pthread_cond_destroy</a></H3> +<p> +<b>Function Prototype:</b> +<p> <PRE> #include &lt;pthread.h&gt; int pthread_cond_destroy(pthread_cond_t *cond); </PRE> -<P> -<B>Description:</B> -<P> -<B>Input Parameters:</B> -<P> -<UL> - <li><code>param<code>.</li> -</UL> -<P> -<B>Returned Values:</B> -<P> +<p> +<b>Description:</b> +<p> +<b>Input Parameters:</b> +<p> +<ul> + <li><code>To be provided</code>.</li> +</ul> +<p> +<b>Returned Values:</b> +<p> If successful, the <I>pthread_cond_destroy()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: -<P> -<UL> - <li><code>Exxx</code>. </li> -</UL> -<B>Assumptions/Limitations:</B> -<P> -<B>POSIX Compatibility:</B> Comparable to the POSIX +<p> +<ul> + <li><code>To be provided</code>. </li> +</ul> +<b>Assumptions/Limitations:</b> +<p> +<b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadcondbroadcast">2.9.39 pthread_cond_broadcast</A></H3> -<P> -<B>Function Prototype:</B> -<P> +<H3><a name="pthreadcondbroadcast">2.9.39 pthread_cond_broadcast</a></H3> +<p> +<b>Function Prototype:</b> +<p> <PRE> #include &lt;pthread.h&gt; int pthread_cond_broadcast(pthread_cond_t *cond); </PRE> -<P> -<B>Description:</B> -<P> -<B>Input Parameters:</B> -<P> -<UL> - <li><code>param<code>.</li> -</UL> -<P> -<B>Returned Values:</B> -<P> +<p> +<b>Description:</b> +<p> +<b>Input Parameters:</b> +<p> +<ul> + <li><code>To be provided</code>.</li> +</ul> +<p> +<b>Returned Values:</b> +<p> If successful, the <I>pthread_cond_broadcast()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: -<P> -<UL> - <li><code>Exxx</code>. </li> -</UL> -<B>Assumptions/Limitations:</B> -<P> -<B>POSIX Compatibility:</B> Comparable to the POSIX +<p> +<ul> + <li><code>To be provided</code>. </li> +</ul> +<b>Assumptions/Limitations:</b> +<p> +<b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadcondsignal">2.9.40 pthread_cond_signal</A></H3> -<P> -<B>Function Prototype:</B> -<P> +<H3><a name="pthreadcondsignal">2.9.40 pthread_cond_signal</a></H3> +<p> +<b>Function Prototype:</b> +<p> <PRE> #include &lt;pthread.h&gt; int pthread_cond_signal(pthread_cond_t *dond); </PRE> -<P> -<B>Description:</B> -<P> -<B>Input Parameters:</B> -<P> -<UL> - <li><code>param<code>.</li> -</UL> -<P> -<B>Returned Values:</B> -<P> +<p> +<b>Description:</b> +<p> +<b>Input Parameters:</b> +<p> +<ul> + <li><code>To be provided</code>.</li> +</ul> +<p> +<b>Returned Values:</b> +<p> If successful, the <I>pthread_cond_signal()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: -<P> -<UL> - <li><code>Exxx</code>. </li> -</UL> -<B>Assumptions/Limitations:</B> -<P> -<B>POSIX Compatibility:</B> Comparable to the POSIX +<p> +<ul> + <li><code>To be provided</code>. </li> +</ul> +<b>Assumptions/Limitations:</b> +<p> +<b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadcondwait">2.9.41 pthread_cond_wait</A></H3> -<P> -<B>Function Prototype:</B> -<P> +<H3><a name="pthreadcondwait">2.9.41 pthread_cond_wait</a></H3> +<p> +<b>Function Prototype:</b> +<p> <PRE> #include &lt;pthread.h&gt; int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex); </PRE> -<P> -<B>Description:</B> -<P> -<B>Input Parameters:</B> -<P> -<UL> - <li><code>param<code>.</li> -</UL> -<P> +<p> +<b>Description:</b> +<p> +<b>Input Parameters:</b> +<p> +<ul> + <li><code>To be provided</code>.</li> +</ul> +<p> <b>Returned Values:</b> -<P> +<p> If successful, the <I>pthread_cond_wait()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: -<P> -<UL> - <li><code>Exxx</code>. </li> -</UL> -<B>Assumptions/Limitations:</B> -<P> -<B>POSIX Compatibility:</B> Comparable to the POSIX +<p> +<ul> + <li><code>To be provided</code>. </li> +</ul> +<b>Assumptions/Limitations:</b> +<p> +<b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadcondtimedwait">2.9.42 pthread_cond_timedwait</A></H3> +<H3><a name="pthreadcondtimedwait">2.9.42 pthread_cond_timedwait</a></H3> <p> <b>Function Prototype:</b> </p> @@ -4760,7 +4794,7 @@ interface of the same name. </p> <p> <ul> - <li><code>parm</code>.</li> + <li><code>To be provided</code>.</li> </ul> <p> <b>Returned Values:</b> @@ -4771,7 +4805,7 @@ interface of the same name. returned to indicate the error: </p> <ul> - <li><code>Exxx</code>. </li> + <li><code>To be provided</code>. </li> </ul> <p> <b>Assumptions/Limitations:</b> @@ -5251,71 +5285,71 @@ interface of the same name. <b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. </p> -<HR> -<H1>3.0 <A NAME="Data_Structures">OS Data Structures</A></H1> +<hr> +<h1>3.0 <A NAME="Data_Structures">OS Data Structures</a></h1> <H2>3.1 Scalar types</H2> -<P> +<p> Many of the types used to communicate with NuttX are simple scalar types. These types are used to provide architecture independence of the OS from the application. The scalar types used at the NuttX interface include: -<UL> -<LI>pid_t -<LI>size_t -<LI>sigset_t -<LI>STATUS -<LI>time_t -</UL> +<ul> +<li>pid_t +<li>size_t +<li>sigset_t +<li>STATUS +<li>time_t +</ul> <H2>3.2 Hidden Interface Structures</H2> -<P> +<p> Several of the types used to interface with NuttX are structures that are intended to be hidden from the application. From the standpoint of the application, these structures (and structure pointers) should be treated as simple handles to reference OS resources. These hidden structures include: -<UL> -<LI>_TCB -<LI>mqd_t -<LI>sem_t -<LI>WDOG_ID -<LI>pthread_key_t -</UL> -<P> +<ul> +<li>_TCB +<li>mqd_t +<li>sem_t +<li>WDOG_ID +<li>pthread_key_t +</ul> +<p> In order to maintain portability, applications should not reference specific elements within these hidden structures. These hidden structures will not be described further in this user's manual. -<P> +<p> <H2>3.3. Access to the <I>errno</I> Variable</H2> -<P> +<p> A pointer to the thread-specific <I>errno</I>. value is available through a function call: -<P> -<B>Function Prototype:</B> -<P> +<p> +<b>Function Prototype:</b> +<p> <PRE> int *get_errno_ptr( void )</PRE> -<P> -<B>Description</B>: <I>osGetErrnorPtr()</I> returns a pointer to +<p> +<b>Description</b>: <I>osGetErrnorPtr()</I> returns a pointer to the thread-specific <I>errno</I> value. -<P> +<p> This differs somewhat from the use for errno in a multi-threaded process environment: Each pthread will have its own private copy of errno and the errno will not be shared between pthreads. -<P> -<B>Input Parameters</B>: None -<P> -<B>Returned Values</B>: -<P> -<UL> -<LI>A pointer to the thread-specific <I>errno</I> value. -</UL> -<P> +<p> +<b>Input Parameters</b>: None +<p> +<b>Returned Values</b>: +<p> +<ul> +<li>A pointer to the thread-specific <I>errno</I> value. +</ul> +<p> <H2>3.4 User Interface Structures</H2> -<P> +<p> <H3>3.4.1 main_t</H3> -<P> +<p> main_t defines the type of a task entry point. main_t is declared in sys/types.h as: <PRE> @@ -5324,7 +5358,7 @@ in sys/types.h as: <H3>3.4.2 struct sched_param</H3> -<P> +<p> This structure is used to pass scheduling priorities to and from NuttX; <PRE> @@ -5336,7 +5370,7 @@ NuttX; <H3>3.4.3 struct timespec</H3> -<P> +<p> This structure is used to pass timing information between the NuttX and a user application: <PRE> @@ -5349,7 +5383,7 @@ NuttX and a user application: <H3>3.4.4 struct mq_attr</H3> -<P> +<p> This structure is used to communicate message queue attributes between NuttX and a MoBY application: <PRE> @@ -5363,7 +5397,7 @@ between NuttX and a MoBY application: <H3>3.4.5 struct sigaction</H3> -<P> +<p> The following structure defines the action to take for given signal: <PRE> struct sigaction @@ -5382,7 +5416,7 @@ The following structure defines the action to take for given signal: <H3>3.4.6 struct siginfo/siginfo_t</H3> -<P> +<p> The following types is used to pass parameters to/from signal handlers: <PRE> @@ -5396,7 +5430,7 @@ handlers: <H3>3.4.7 union sigval</H3> -<P> +<p> This defines the type of the struct siginfo si_value field and is used to pass parameters with signals. <PRE> @@ -5409,7 +5443,7 @@ is used to pass parameters with signals. <H3>3.4.8 struct sigevent</H3> -<P> +<p> The following is used to attach a signal to a message queue to notify a task when a message is available on a queue. <PRE> From 4441b456d69d6b7a97c1866f602f1af638e4fbb6 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 28 Mar 2007 16:00:57 +0000 Subject: [PATCH 0040/1518] Update mq_send() and mq_receive() description git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@165 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 + Documentation/NuttxUserGuide.html | 652 ++++++++++++++++-------------- 2 files changed, 352 insertions(+), 302 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 49e51c1919..087fd48a7b 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -452,6 +452,8 @@ Other memory: 0.2.3 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> + * mq_receive and mq_send now return errno's appropriately + * mq_receive and mq_send are now correctly awakened by signals. * Started m68322 </pre></ul> diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index d13addea17..d706c60c62 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -1,9 +1,9 @@ -<HTML> +<html> -<HEAD> -<TITLE>NuttX Users Manual</TITLE> -<META NAME="AUTHOR" CONTENT="Gregory Nutt"> -</HEAD> +<head> +<title>NuttX Users Manual</title> +<meta name="AUTHOR" content="Gregory Nutt"> +</head> <body background="backgd.gif"> <hr> @@ -11,18 +11,18 @@ <center><h1><i>Under Construction</i></h1></center> <hr> <hr> -<CENTER><BIG><b> +<center><BIG><b> NuttX Operating System <p> User's Manual </b></BIG> <p> -<SMALL>by</SMALL> +<small>by</small> <p> Gregory Nutt <p> -<SMALL>Last Update: March 26, 2007</SMALL> -</CENTER> +<small>Last Update: March 28, 2007</small> +</center> <h1>1.0 <A NAME="Introduction">Introduction</a></h1> @@ -166,10 +166,10 @@ paragraphs. <p> <b>Function Prototype:</b> -<PRE> +<pre> #include &lt;sched.h&gt; int task_create(char *name, int priority, int stack_size, main_t entry, const char *argv[]); -</PRE> +</pre> <p> <b>Description:</b> @@ -234,11 +234,11 @@ paragraphs. <p> <b>POSIX Compatibility:</b> This is a NON-POSIX interface. VxWorks provides the following similar interface: -<PRE> +<pre> int taskSpawn(char *name, int priority, int options, int stackSize, FUNCPTR entryPt, int arg1, int arg2, int arg3, int arg4, int arg5, int arg6, int arg7, int arg8, int arg9, int arg10); -</PRE> +</pre> <p> The NuttX task_create() differs from VxWorks' taskSpawn() in the @@ -255,11 +255,11 @@ VxWorks provides the following similar interface: <p> <b>Function Prototype:</b> -<PRE> +<pre> #include &lt;sched.h&gt; STATUS task_init(_TCB *tcb, char *name, int priority, uint32 *stack, uint32 stack_size, maint_t entry, const char *argv[]); -</PRE> +</pre> <p> <b>Description:</b> @@ -306,11 +306,11 @@ mechanism to initialize and start a new task. <p> <b>POSIX Compatibility:</b> This is a NON-POSIX interface. VxWorks provides the following similar interface: -<PRE> +<pre> STATUS taskInit(WIND_TCB *pTcb, char *name, int priority, int options, uint32 *pStackBase, int stackSize, FUNCPTR entryPt, int arg1, int arg2, int arg3, int arg4, int arg5, int arg6, int arg7, int arg8, int arg9, int arg10); -</PRE> +</pre> <p> The NuttX task_init() differs from VxWorks' taskInit() in the @@ -327,10 +327,10 @@ VxWorks provides the following similar interface: <p> <b>Function Prototype:</b> -<PRE> +<pre> #include &lt;sched.h&gt; STATUS task_activate( _TCB *tcb ); -</PRE> +</pre> <p> <b>Description:</b> This function activates tasks created by task_init(). @@ -359,9 +359,9 @@ mechanism to initialize and start a new task. <p> <b>POSIX Compatibility:</b> This is a NON-POSIX interface. VxWorks provides the following similar interface: -<PRE> +<pre> STATUS taskActivate( int tid ); -</PRE> +</pre> <p> The NuttX task_activate() differs from VxWorks' taskActivate() in the @@ -377,10 +377,10 @@ the pointer to the WIND_TCB cast to an integer. <p> <b>Function Prototype:</b> -<PRE> +<pre> #include &lt;sched.h&gt; STATUS task_delete( pid_t pid ); -</PRE> +</pre> <p> <b>Description:</b> This function causes a specified task to cease @@ -409,9 +409,9 @@ task_delete() can strand those resources. <p> <b>POSIX Compatibility:</b> This is a NON-POSIX interface. VxWorks provides the following similar interface: -<PRE> +<pre> STATUS taskDelete( int tid ); -</PRE> +</pre> <p> The NuttX task_delete() differs from VxWorks' taskDelete() in @@ -427,13 +427,13 @@ VxWorks provides the following similar interface: <p> <b>Function Prototype:</b> -<PRE> +<pre> #include &lt;sched.h&gt; void exit( int code ); #include &lt;nuttx/unistd.h&gt; void _exit( int code ); -</PRE> +</pre> <p> <b>Description:</b> This function causes the calling task to cease @@ -454,13 +454,13 @@ execute any function registered with atexit(). <p> <b>POSIX Compatibility:</b> This is equivalent to the ANSI interface: -<PRE> +<pre> void exit( int code ); -</PRE> +</pre> And the unix interface: -<PRE> +<pre> void _exit( int code ); -</PRE> +</pre> <p> The NuttX exit() differs from ANSI exit() in the following ways: @@ -473,10 +473,10 @@ And the unix interface: <p> <b>Function Prototype:</b> -<PRE> +<pre> #include &lt;sched.h&gt; STATUS task_restart( pid_t pid ); -</PRE> +</pre> <p> <b>Description:</b> This function &quot;restarts&quot; a task. @@ -507,9 +507,9 @@ zero signifies the calling task. <p> <b>POSIX Compatibility:</b> This is a NON-POSIX interface. VxWorks provides the following similar interface: -<PRE> +<pre> STATUS taskRestart (int tid); -</PRE> +</pre> <p> The NuttX task_restart() differs from VxWorks' taskRestart() in the following ways: @@ -524,10 +524,10 @@ the value that they had when the task was <I>terminated</I>. <p> <b>Function Prototype:</b> -<PRE> +<pre> #include &lt;unistd.h&gt; pid_t getpid( void ); -</PRE> +</pre> <p> <b>Description:</b> This function returns the task ID of the @@ -644,10 +644,10 @@ Compatible with the POSIX interface of the same name. <p> <b>Function Prototype:</b> -<PRE> +<pre> #include &lt;sched.h&gt; int sched_getparam (pid_t pid, struct sched_param *param); -</PRE> +</pre> <p> <b>Description:</b> This function gets the scheduling priority @@ -681,10 +681,10 @@ interface of the same name. <H3><a name="schedsetscheduler">2.2.3 sched_setscheduler</a></H3> <p> <b>Function Prototype:</b> -<PRE> +<pre> #include &lt;sched.h&gt; int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); -</PRE> +</pre> <p> <b>Description:</b> <i>sched_setscheduler()</i> sets both the scheduling policy @@ -729,10 +729,10 @@ interface of the same name. <H3><a name="setgetscheduler">2.2.4 sched_getscheduler</a></H3> <p> <b>Function Prototype:</b> -<PRE> +<pre> #include &lt;sched.h&gt; int sched_getscheduler (pid_t pid); -</PRE> +</pre> <p> <b>Description:</b> <i>sched_getscheduler()</i> returns the scheduling policy @@ -780,10 +780,10 @@ Differences from the full POSIX implementation include: <p> <b>Function Prototype:</b> -<PRE> +<pre> #include &lt;sched.h&gt; int sched_yield( void ); -</PRE> +</pre> <p> <b>Description:</b> This function forces the calling task to give @@ -806,10 +806,10 @@ interface of the same name. <p> <b>Function Prototype:</b> -<PRE> +<pre> #include &lt;sched.h&gt; int sched_get_priority_max (int policy) -</PRE> +</pre> <p> <b>Description:</b> This function returns the value of the highest @@ -836,10 +836,10 @@ interface of the same name. <p> <b>Function Prototype:</b> -<PRE> +<pre> #include &lt;sched.h&gt; int sched_get_priority_min (int policy); -</PRE> +</pre> <p> <b>Description:</b> This function returns the value of the lowest @@ -866,10 +866,10 @@ interface of the same name. <p> <b>Function Prototype:</b> -<PRE> +<pre> #include &lt;sched.h&gt; int sched_get_rr_interval (pid_t pid, struct timespec *interval); -</PRE> +</pre> <p> <b>Description:</b> @@ -920,10 +920,10 @@ priority of the calling task is returned. <p> <b>Function Prototype:</b> -<PRE> +<pre> #include &lt;sched.h&gt; STATUS sched_lock( void ); -</PRE> +</pre> <p> <b>Description:</b> This function disables context switching by @@ -944,18 +944,18 @@ number of times) or until it blocks itself. <p> <b> POSIX Compatibility:</b> This is a NON-POSIX interface. VxWorks provides the comparable interface: -<PRE> +<pre> STATUS taskLock( void ); -</PRE> +</pre> <H3><a name="schedunlock">2.3.2 sched_unlock</a></H3> <p> <b>Function Prototype:</b> -<PRE> +<pre> #include &lt;sched.h&gt; STATUS sched_unlock( void ); -</PRE> +</pre> <p> <b>Description:</b> This function decrements the preemption lock @@ -977,18 +977,18 @@ eligible to preempt the current task will execute. <p> <b> POSIX Compatibility:</b> This is a NON-POSIX interface. VxWorks provides the comparable interface: -<PRE> +<pre> STATUS taskUnlock( void ); -</PRE> +</pre> <H3><a name="schedlockcount">2.3.3 sched_lockcount</a></H3> <p> <b>Function Prototype:</b> -<PRE> +<pre> #include &lt;sched.h&gt; sint32 sched_lockcount( void ) -</PRE> +</pre> <p> <b>Description:</b> This function returns the current value of @@ -1031,10 +1031,10 @@ on this thread of execution. <p> <b>Function Prototype:</b> -<PRE> +<pre> #include &lt;mqueue.h&gt; mqd_t mq_open( const char *mqName, int oflags, ... ); -</PRE> +</pre> <p> <b>Description:</b> This function establish a connection between @@ -1100,10 +1100,10 @@ message size is limited at 22 bytes. <p> <b>Function Prototype:</b> -<PRE> +<pre> #include &lt;mqueue.h&gt; int mq_close( mqd_t mqdes ); -</PRE> +</pre> <p> <b>Description:</b> This function is used to indicate that the @@ -1132,8 +1132,8 @@ for notification. <b>Assumptions/Limitations:</b> <p> <ul> -<li>The behavior of a task that is blocked on either a mq_send() or -mq_receive() is undefined when mq_close() is called. +<li>The behavior of a task that is blocked on either a <code>mq_send()</code> or +<code>mq_receive()</code> is undefined when <code>mq_close()</code> is called. <li>The result of using this message queue descriptor after successful return from mq_close() is undefined. </ul> @@ -1145,10 +1145,10 @@ of the same name. <p> <b>Function Prototype:</b> -<PRE> +<pre> #include &lt;mqueue.h&gt; int mq_unlink( const char *mqName ); -</PRE> +</pre> <p> <b>Description:</b> This function removes the message queue named @@ -1174,109 +1174,156 @@ interface of the same name. <p> <b>Function Prototype:</b> -<PRE> +</p> +<pre> #include &lt;mqueue.h&gt; - int mq_send( mqd_t mqdes, const void *msg, size_t msgLen, int msgPrio ); -</PRE> - + int mq_send(mqd_t mqdes, const void *msg, size_t msglen, int prio); +</pre> <p> -<b>Description:</b> This function adds the specified message (msg) -to the message queue (mqdes). The &quot;msgLen&quot; parameter -specifies the length of the message in bytes pointed to by &quot;msg.&quot; -This length must not exceed the maximum message length from the -mq_getattr(). +<b>Description:</b> + This function adds the specified message, <code>msg</code>, + to the message queue, <code>mqdes</code>. + The <code>msglen</code> parameter specifies the length of the message in bytes pointed to by <code>msg</code>. + This length must not exceed the maximum message length from the <code>mq_getattr()</code>. +</p> <p> -If the message queue is not full, mq_send() will in the message -in the message queue at the position indicated by the &quot;msgPrio&quot; -argument. Messages with higher priority will be inserted before -lower priority messages. The value of &quot;msgPrio&quot; must -not exceed MQ_PRIO_MAX. + If the message queue is not full, <code>mq_send()</code> will place the <code>msg</code> + in the message queue at the position indicated by the <code>prio</code> argument. + Messages with higher priority will be inserted before lower priority messages + The value of <code>prio</code> must not exceed <code>MQ_PRIO_MAX</code>. +</p> <p> -If the specified message queue is full and O_NONBLOCK is not -set in the message queue, then mq_send() will block until space -becomes available to the queue the message. + If the specified message queue is full and <code>O_NONBLOCK</code> is not + set in the message queue, then <code>mq_send()</code> will block until space + becomes available to the queue the message. +</p> <p> -If the message queue is full and osNON_BLOCK is set, the message -is not queued and ERROR is returned. + If the message queue is full and <code>NON_BLOCK</code> is set, the message + is not queued and <code>ERROR</code> is returned. +</p> <p> -<b>Input Parameters:</b> + <b>Input Parameters:</b> +</p> <ul> -<li><I>mqdes</I>. Message queue descriptor -<li><I>msg</I>. Message to send -<li><I>msgLen</I>. The length of the message in bytes -<li><I>msgPrio</I>. The priority of the message + <li><code>mqdes</code>. Message queue descriptor.</li> + <li><code>msg</code>. Message to send.</li> + <li><code>msglen</code>. The length of the message in bytes.</li> + <li><code>prio</code>. The priority of the message.</li> </ul> - <p> -<b>Returned Values:</b> None. -<p> -<b>Assumptions/Limitations:</b> -<p> -<b> POSIX Compatibility:</b> Comparable to the POSIX -interface of the same name. -Differences from the full POSIX implementation include: + <b>Returned Values:</b> + On success, <code>mq_send()</code> returns 0 (<code>OK</code>); + on error, -1 (<code>ERROR</code>) is returned, with <code>errno</code> set + to indicate the error: +</p> <ul> -<li>Control is not returned if a signal is received. + <li> + <code>EAGAIN</code>. + The queue was empty, and the <code>O_NONBLOCK</code> flag was set for the message queue description referred to by <code>mqdes</code>. + </li> + <li> + <code>EINVAL</code>. + Either <code>msg</code> or <code>mqdes</code> is <code>NULL</code> or the value of <code>prio</code> is invalid. + </li> + <li> + <code>EPERM</code>. + Message queue opened not opened for writing. + </li> + <li> + <code>EMSGSIZE</code>. + <code>msglen</code> was greater than the <code>maxmsgsize</code> attribute of the message queue. + </li> + <li> + <code>EINTR</code>. + The call was interrupted by a signal handler. + </li> </ul> - -<H3><a name="mqreceive">2.4.5 mq_receive</a></H3> - <p> -<b>Function Prototype:</b> -<PRE> + <b>Assumptions/Limitations:</b> +</p> +<p> + <b>POSIX Compatibility:</b> + Comparable to the POSIX interface of the same name. +</p> + +<h3><a name="mqreceive">2.4.5 mq_receive</a></h3> +<p> + <b>Function Prototype:</b> +</p> +<pre> #include &lt;mqueue.h&gt; - int mq_receive( mqd_t mqdes, void *msg, size_t msgLen, int *msgPrio ); -</PRE> - + int mq_receive(mqd_t mqdes, void *msg, size_t msglen, int *prio); +</pre> <p> -<b>Description:</b> This function receives the oldest of the highest -priority messages from the message queue specified by &quot;mqdes.&quot; -If the size of the buffer in bytes (msgLen) is less than the &quot;mq_msgsize&quot; -attribute of the message queue, mq_receive will return an error. -Otherwise, the select message is removed from the queue and copied -to &quot;msg.&quot; + <b>Description:</b> + This function receives the oldest of the highest priority messages from the message + queue specified by <code>mqdes</code>. + If the size of the buffer in bytes, <code>msgLen</code>, is less than the + <code>mq_msgsize</code> attribute of the message queue, <code>mq_receive()</code> will + return an error. + Otherwise, the selected message is removed from the queue and copied to <code>msg</code>. +</p> <p> -If the message queue is empty and O_NONBLOCK was not set, mq_receive() -will block until a message is added to the message queue. If more -than one task is waiting to receive a message, only the task with -the highest priority that has waited the longest will be unblocked. + If the message queue is empty and <code>O_NONBLOCK</code> was not set, <code>mq_receive()</code> + will block until a message is added to the message queue. + If more than one task is waiting to receive a message, only the task with the highest + priority that has waited the longest will be unblocked. +</p> <p> -If the queue is empty and O_NONBLOCK is set, ERROR will be -returned. + If the queue is empty and <code>O_NONBLOCK</code> is set, <code>ERROR</code> will be returned. +</p> <p> -<b>Input Parameters:</b> + <b>Input Parameters:</b> +</p> <ul> -<li><I>mqdes</I>. Message Queue Descriptor -<li><I>msg</I>. Buffer to receive the message -<li><I>msgLen</I>. Size of the buffer in bytes -<li><I>msgPrio</I>. If not NULL, the location to store message -priority. + <li><code>mqdes</code>. Message Queue Descriptor.</li> + <li><code>msg</code>. Buffer to receive the message.</li> + <li><code>msglen</code>. Size of the buffer in bytes.</li> + <li><code>prio</code>. If not NULL, the location to store message priority. </ul> - <p> -<b>Returned Values:</b> + <b>Returned Values:</b>. + One success, the length of the selected message in bytes is returned. + On failure, -1 (<code>ERROR</code>) is returned and the <code>errno</code> is set appropriately: +</p> <ul> -<li>Length of the selected message in bytes, otherwise -1 (ERROR). + <li> + <code>EAGAIN</code> + The queue was empty and the <code>O_NONBLOCK</code> flag was set for the message queue description referred to by <code>mqdes</code>. + </li> + <li> + <code>EPERM</code> + Message queue opened not opened for reading. + </li> + <li> + <code>EMSGSIZE</code> + <code>msglen</code> was less than the <code>maxmsgsize</code> attribute of the message queue. + </li> + <li> + <code>EINTR</code> + The call was interrupted by a signal handler. + </li> + <li> + <code>EINVAL</code> + Invalid <code>msg</code> or <code>mqdes</code> + </li> </ul> - <p> -<b>Assumptions/Limitations:</b> + <b>Assumptions/Limitations:</b> +</p> <p> -<b> POSIX Compatibility:</b> Comparable to the POSIX -interface of the same name. -Differences from the full POSIX implementation include: -<ul> -<li>Control is not returned if a signal is received. -</ul> + <b>POSIX Compatibility:</b> + Comparable to the POSIX interface of the same name. +</p> <H3><a name="mqnotify">2.4.6 mq_notify</a></H3> <p> <b>Function Prototype:</b> -<PRE> +<pre> #include &lt;mqueue.h&gt; - int mq_notify( mqd_t mqdes, const struct sigevent *notification ); -</PRE> + int mq_notify(mqd_t mqdes, const struct sigevent *notification); +</pre> <p> <b>Description:</b> If the &quot;notification&quot; input parameter @@ -1329,11 +1376,11 @@ message queue remains empty, and no notification shall be sent.&quot; <p> <b>Function Prototype:</b> -<PRE> +<pre> #include &lt;mqueue.h&gt; int mq_setattr( mqd_t mqdes, const struct mq_attr *mqStat, struct mq_attr *oldMqStat); -</PRE> +</pre> <p> <b>Description:</b> This function sets the attributes associated @@ -1368,10 +1415,10 @@ interface of the same name. <p> <b>Function Prototype:</b> -<PRE> +<pre> #include &lt;mqueue.h&gt; int mq_getattr( mqd_t mqdes, struct mq_attr *mqStat); -</PRE> +</pre> <p> <b>Description:</b> This functions gets status information and @@ -1473,10 +1520,10 @@ interface of the same name. <p> <b>Function Prototype:</b> -<PRE> +<pre> #include &lt;semaphore.h&gt; int sem_init ( sem_t *sem, int pshared, unsigned int value ); -</PRE> +</pre> <p> <b>Description:</b> This function initializes the UN-NAMED semaphore @@ -1516,10 +1563,10 @@ Differences from the full POSIX implementation include: <p> <b>Function Prototype:</b> -<PRE> +<pre> #include &lt;semaphore.h&gt; int sem_destroy ( sem_t *sem ); -</PRE> +</pre> <p> <b>Description:</b> This function is used to destroy the un-named semaphore @@ -1553,10 +1600,10 @@ interface of the same name. <p> <b>Function Prototype:</b> -<PRE> +<pre> #include &lt;semaphore.h&gt; sem_t *sem_open ( const char *name, int oflag, ...); -</PRE> +</pre> <p> <b>Description:</b> This function establishes a connection between @@ -1619,10 +1666,10 @@ just a counting semaphore. <p> <b>Function Prototype:</b> -<PRE> +<pre> #include &lt;semaphore.h&gt; int sem_close ( sem_t *sem ); -</PRE> +</pre> <p> <b>Description:</b> This function is called to indicate that the @@ -1664,10 +1711,10 @@ interface of the same name. <p> <b>Function Prototype:</b> -<PRE> +<pre> #include &lt;semaphore.h&gt; int sem_unlink ( const char *name ); -</PRE> +</pre> <p> <b>Description:</b> This function will remove the semaphore named by the @@ -1710,10 +1757,10 @@ same name should be created after sem_unlink() is called. <p> <b>Function Prototype:</b> -<PRE> +<pre> #include &lt;semaphore.h&gt; int sem_wait ( sem_t *sem ); -</PRE> +</pre> <p> <b>Description:</b> This function attempts to lock the semaphore @@ -1753,10 +1800,10 @@ interface of the same name. <p> <b>Function Prototype:</b> -<PRE> +<pre> #include &lt;semaphore.h&gt; int sem_trywait ( sem_t *sem ); -</PRE> +</pre> <p> <b>Description:</b> This function locks the specified semaphore @@ -1795,10 +1842,10 @@ interface of the same name. <p> <b>Function Prototype:</b> -<PRE> +<pre> #include &lt;semaphore.h&gt; int sem_post ( sem_t *sem ); -</PRE> +</pre> <p> <b>Description:</b> When a task has finished with a semaphore, @@ -1838,10 +1885,10 @@ interface of the same name. <p> <b>Function Prototype:</b> -<PRE> +<pre> #include &lt;semaphore.h&gt; int sem_getvalue ( sem_t *sem, int *sval ); -</PRE> +</pre> <p> <b>Description:</b> This function updates the location referenced @@ -1883,7 +1930,8 @@ interface of the same name. that will run after a specified delay. The watchdog timer function will run in the context of the timer interrupt handler. Because of this, a limited number of NuttX interfaces are available to he watchdog timer function. - However, the watchdog timer function may use mq_send(), sigqueue(), or kill() to communicate with NuttX tasks. + However, the watchdog timer function may use <code>mq_send()</code>, <code>sigqueue()</code>, + or <code>kill()</code> to communicate with NuttX tasks. </p> <ul> <li><a href="#wdcreate">2.6.1 wd_create</a></li> @@ -1897,10 +1945,10 @@ interface of the same name. <p> <b>Function Prototype:</b> -<PRE> +<pre> #include &lt;wdog.h&gt; WDOG_ID wd_create (void); -</PRE> +</pre> <p> <b>Description:</b> The wd_create function will create a watchdog @@ -1920,9 +1968,9 @@ are available to create the watchdogs. <p> <b> POSIX Compatibility:</b> This is a NON-POSIX interface. VxWorks provides the following comparable interface: -<PRE> +<pre> WDOG_ID wdCreate (void); -</PRE> +</pre> <p> Differences from the VxWorks interface include: @@ -1935,10 +1983,10 @@ initialization time). <p> <b>Function Prototype:</b> -<PRE> +<pre> #include &lt;wdog.h&gt; STATUS wd_delete (WDOG_ID wdog); -</PRE> +</pre> <p> <b>Description:</b> The wd_delete function will deallocate a @@ -1964,9 +2012,9 @@ it. <p> <b> POSIX Compatibility:</b> This is a NON-POSIX interface. VxWorks provides the following comparable interface: -<PRE> +<pre> STATUS wdDelete (WDOG_ID wdog); -</PRE> +</pre> <p> Differences from the VxWorks interface include: @@ -1979,11 +2027,11 @@ before de-allocating it (i.e., never returns ERROR). <p> <b>Function Prototype:</b> -<PRE> +<pre> #include &lt;wdog.h&gt; STATUS wd_start( WDOG_ID wdog, int delay, wdentry_t wdentry, intt argc, ....); -</PRE> +</pre> <p> <b>Description:</b> This function adds a watchdog to the timer @@ -2023,9 +2071,9 @@ restrictions. <p> <b> POSIX Compatibility:</b> This is a NON-POSIX interface. VxWorks provides the following comparable interface: -<PRE> +<pre> STATUS wdStart (WDOG_ID wdog, int delay, FUNCPTR wdentry, int parameter); -</PRE> +</pre> <p> Differences from the VxWorks interface include: @@ -2038,10 +2086,10 @@ number of parameters is determined by <H3><a name="wdcancel">2.6.4 wd_cancel</a></H3> <p> <b>Function Prototype:</b> -<PRE> +<pre> #include &lt;wdog.h&gt; STATUS wd_cancel (WDOG_ID wdog); -</PRE> +</pre> <p> <b>Description:</b> This function cancels a currently running @@ -2064,9 +2112,9 @@ level. <p> <b> POSIX Compatibility:</b> This is a NON-POSIX interface. VxWorks provides the following comparable interface: -<PRE> +<pre> STATUS wdCancel (WDOG_ID wdog); -</PRE> +</pre> <h3><a name="wdgettime">2.6.5 wd_gettime</a></h3> <p> @@ -2599,10 +2647,10 @@ interface of the same name. <p> <b>Function Prototype:</b> -<PRE> +<pre> #include &lt;signal.h&gt; int sigemptyset(sigset_t *set); -</PRE> +</pre> <p> <b>Description:</b> This function initializes the signal set specified @@ -2629,10 +2677,10 @@ interface of the same name. <p> <b>Function Prototype:</b> -<PRE> +<pre> #include &lt;signal.h&gt; int sigfillset(sigset_t *set); -</PRE> +</pre> <p> <b>Description:</b> This function initializes the signal set specified @@ -2659,10 +2707,10 @@ interface of the same name. <p> <b>Function Prototype:</b> -<PRE> +<pre> #include &lt;signal.h&gt; int sigaddset(sigset_t *set, int signo); -</PRE> +</pre> <p> <b>Description:</b> This function adds the signal specified by @@ -2690,10 +2738,10 @@ interface of the same name. <p> <b>Function Prototype:</b> -<PRE> +<pre> #include &lt;signal.h&gt; int sigdelset(sigset_t *set, int signo); -</PRE> +</pre> <p> <b>Description:</b> This function deletes the signal specified @@ -2721,10 +2769,10 @@ interface of the same name. <p> <b>Function Prototype:</b> -<PRE> +<pre> #include &lt;signal.h&gt; int sigismember(const sigset_t *set, int signo); -</PRE> +</pre> <p> <b>Description:</b> This function tests whether the signal specified @@ -2754,11 +2802,11 @@ interface of the same name. <p> <b>Function Prototype:</b> -<PRE> +<pre> #include &lt;signal.h&gt; int sigaction( int signo, const struct sigaction *act, struct sigaction *oact ); -</PRE> +</pre> <p> <b>Description:</b> This function allows the calling task to @@ -2827,10 +2875,10 @@ not handled (SIG_DFL, SIG_IGN). <p> <b>Function Prototype:</b> -<PRE> +<pre> #include &lt;signal.h&gt; int sigprocmask(int how, const sigset_t *set, sigset_t *oset); -</PRE> +</pre> <p> <b>Description:</b> This function allows the calling task to @@ -2877,10 +2925,10 @@ interface of the same name. <p> <b>Function Prototype:</b> -<PRE> +<pre> #include &lt;signal.h&gt; int sigpending( sigset_t *set ); -</PRE> +</pre> <p> <b>Description:</b> This function stores the returns the set of @@ -2915,10 +2963,10 @@ interface of the same name. <p> <b>Function Prototype:</b> -<PRE> +<pre> #include &lt;signal.h&gt; int sigsuspend( const sigset_t *set ); -</PRE> +</pre> <p> <b>Description:</b> The sigsuspend() function replaces the signal mask @@ -2963,10 +3011,10 @@ is required in the present implementation (even if the signal is ignored). <p> <b>Function Prototype:</b> -<PRE> +<pre> #include &lt;signal.h&gt; int sigwaitinfo(const sigset_t *set, struct siginfo *info); -</PRE> +</pre> <p> <b>Description:</b> This function is equivalent to sigtimedwait() @@ -2995,11 +3043,11 @@ interface of the same name. <p> <b>Function Prototype:</b> -<PRE> +<pre> #include &lt;signal.h&gt; int sigtimedwait( const sigset_t *set, struct siginfo *info, const struct timespec *timeout ); -</PRE> +</pre> <p> <b>Description:</b> This function selects the pending signal set @@ -3061,10 +3109,10 @@ the unblocked signal is ignored. <p> <b>Function Prototype:</b> -<PRE> +<pre> #include &lt;signal.h&gt; int sigqueue (int tid, int signo, const union sigval value); -</PRE> +</pre> <p> <b>Description:</b> This function sends the signal specified by @@ -3118,11 +3166,11 @@ be sent. <p> <b>Function Prototype:</b> -<PRE> +<pre> #include &lt;sys/types.h&gt; #include &ltsignal.h&gt; int kill(pid_t pid, int sig); -</PRE> +</pre> <p> <b>Description:</b> @@ -3298,10 +3346,10 @@ be sent. <p> <b>Function Prototype:</b> <p> -<PRE> +<pre> #include &lt;pthread.h&gt; int pthread_attr_init(pthread_attr_t *attr); -</PRE> +</pre> <p> <b>Description:</b> Initializes a thread attributes object (attr) with default values @@ -3331,10 +3379,10 @@ interface of the same name. <p> <b>Function Prototype:</b> <p> -<PRE> +<pre> #include &lt;pthread.h&gt; int pthread_attr_destroy(pthread_attr_t *attr); -</PRE> +</pre> <p> <b>Description:</b> An attributes object can be deleted when it is no longer needed. @@ -3363,10 +3411,10 @@ interface of the same name. <p> <b>Function Prototype:</b> <p> -<PRE> +<pre> #include &lt;pthread.h&gt; int pthread_attr_setschedpolicy(pthread_attr_t *attr, int policy); -</PRE> +</pre> <p> <b>Description:</b> <p> @@ -3394,10 +3442,10 @@ interface of the same name. <p> <b>Function Prototype:</b> <p> -<PRE> +<pre> #include &lt;pthread.h&gt; int pthread_attr_getschedpolicy(pthread_attr_t *attr, int *policy); -</PRE> +</pre> <p> <b>Description:</b> <p> @@ -3425,11 +3473,11 @@ interface of the same name. <p> <b>Function Prototype:</b> <p> -<PRE> +<pre> #include &lt;pthread.h&gt; int pthread_attr_setschedparam(pthread_attr_t *attr, const struct sched_param *param); -</PRE> +</pre> <p> <b>Description:</b> <p> @@ -3457,11 +3505,11 @@ interface of the same name. <p> <b>Function Prototype:</b> <p> -<PRE> +<pre> #include &lt;pthread.h&gt; int pthread_attr_getschedparam(pthread_attr_t *attr, struct sched_param *param); -</PRE> +</pre> <p> <b>Description:</b> <p> @@ -3489,11 +3537,11 @@ interface of the same name. <p> <b>Function Prototype:</b> <p> -<PRE> +<pre> #include &lt;pthread.h&gt; int pthread_attr_setinheritsched(pthread_attr_t *attr, int inheritsched); -</PRE> +</pre> <p> <b>Description:</b> <p> @@ -3521,11 +3569,11 @@ interface of the same name. <p> <b>Function Prototype:</b> <p> -<PRE> +<pre> #include &lt;pthread.h&gt; int pthread_attr_getinheritsched(const pthread_attr_t *attr, int *inheritsched); -</PRE> +</pre> <p> <b>Description:</b> <p> @@ -3553,10 +3601,10 @@ interface of the same name. <p> <b>Function Prototype:</b> <p> -<PRE> +<pre> #include &lt;pthread.h&gt; int pthread_attr_setstacksize(pthread_attr_t *attr, long stacksize); -</PRE> +</pre> <p> <b>Description:</b> <p> @@ -3584,10 +3632,10 @@ interface of the same name. <p> <b>Function Prototype:</b> <p> -<PRE> +<pre> #include &lt;pthread.h&gt; int pthread_attr_getstacksize(pthread_attr_t *attr, long *stackaddr); -</PRE> +</pre> <p> <b>Description:</b> <p> @@ -3615,12 +3663,12 @@ interface of the same name. <p> <b>Function Prototype:</b> <p> -<PRE> +<pre> #include &lt;pthread.h&gt; int pthread_create(pthread_t *thread, pthread_attr_t *attr, pthread_startroutine_t startRoutine, pthread_addr_t arg); -</PRE> +</pre> <p> <b>Description:</b> To create a thread object and runnable thread, a routine @@ -3654,10 +3702,10 @@ interface of the same name. <p> <b>Function Prototype:</b> <p> -<PRE> +<pre> #include &lt;pthread.h&gt; int pthread_detach(pthread_t thread); -</PRE> +</pre> <p> <b>Description:</b> A thread object may be "detached" to specify that the @@ -3687,10 +3735,10 @@ interface of the same name. <p> <b>Function Prototype:</b> <p> -<PRE> +<pre> #include &lt;pthread.h&gt; void pthread_exit(pthread_addr_t pvValue); -</PRE> +</pre> <p> <b>Description:</b> A thread may terminate it's own execution. @@ -3719,10 +3767,10 @@ interface of the same name. <p> <b>Function Prototype:</b> <p> -<PRE> +<pre> #include &lt;pthread.h&gt; int pthread_cancel(pthread_t thread); -</PRE> +</pre> <p> <b>Description:</b> @@ -3775,10 +3823,10 @@ the time when cancelation is re-enabled.</li> <p> <b>Function Prototype:</b> <p> -<PRE> +<pre> #include &lt;pthread.h&gt; int pthread_setcancelstate(int state, int *oldstate); -</PRE> +</pre> <p> <b>Description:</b> <p>The <i>pthread_setcancelstate()</i> function atomically @@ -3817,10 +3865,10 @@ interface of the same name. <p> <b>Function Prototype:</b> <p> -<PRE> +<pre> #include &lt;pthread.h&gt; int pthread_setcancelstate(void); -</PRE> +</pre> <p> <b>Description:</b> <p><b>NOT SUPPORTED</b> @@ -3848,10 +3896,10 @@ interface of the same name. <p> <b>Function Prototype:</b> <p> -<PRE> +<pre> #include &lt;pthread.h&gt; int pthread_join(pthread_t thread, pthread_addr_t *ppvValue); -</PRE> +</pre> <p> <b>Description:</b> A thread can await termination of another thread and retrieve @@ -3881,10 +3929,10 @@ interface of the same name. <p> <b>Function Prototype:</b> <p> -<PRE> +<pre> #include &lt;pthread.h&gt; void pthread_yield(void); -</PRE> +</pre> <p> <b>Description:</b> A thread may tell the scheduler that its processor can be @@ -3914,10 +3962,10 @@ interface of the same name. <p> <b>Function Prototype:</b> <p> -<PRE> +<pre> #include &lt;pthread.h&gt; pthread_t pthread_self(void); -</PRE> +</pre> <p> <b>Description:</b> A thread may obtain a copy of its own thread handle. @@ -4104,10 +4152,10 @@ interface of the same name. <p> <b>Function Prototype:</b> <p> -<PRE> +<pre> #include &lt;pthread.h&gt; int pthread_key_create( pthread_key_t *key, void (*destructor)(void*) ) -</PRE> +</pre> <p> <b>Description:</b> <p> @@ -4159,10 +4207,10 @@ interface of the same name. <p> <b>Function Prototype:</b> <p> -<PRE> +<pre> #include &lt;pthread.h&gt; int pthread_setspecific( pthread_key_t key, void *value ) -</PRE> +</pre> <p> <b>Description:</b> <p> @@ -4209,10 +4257,10 @@ destructor function. <p> <b>Function Prototype:</b> <p> -<PRE> +<pre> #include &lt;pthread.h&gt; void *pthread_getspecific( pthread_key_t key ) -</PRE> +</pre> <p> <b>Description:</b> <p> @@ -4250,10 +4298,10 @@ destructor function. <p> <b>Function Prototype:</b> <p> -<PRE> +<pre> #include &lt;pthread.h&gt; int pthread_key_delete( pthread_key_t key ) -</PRE> +</pre> <p> <b>Description:</b> <p> @@ -4282,10 +4330,10 @@ interface of the same name. <p> <b>Function Prototype:</b> <p> -<PRE> +<pre> #include &lt;pthread.h&gt; int pthread_mutexattr_init(pthread_mutexattr_t *attr); -</PRE> +</pre> <p> <b>Description:</b> <p> @@ -4313,10 +4361,10 @@ interface of the same name. <p> <b>Function Protoype:</b> <p> -<PRE> +<pre> #include &lt;pthread.h&gt; int pthread_mutexattr_destroy(pthread_mutexattr_t *attr); -</PRE> +</pre> <p> <b>Description:</b> <p> @@ -4344,11 +4392,11 @@ interface of the same name. <p> <b>Function Prototype:</b> <p> -<PRE> +<pre> #include &lt;pthread.h&gt; int pthread_mutexattr_getpshared(pthread_mutexattr_t *attr, int *pshared); -</PRE> +</pre> <p> <b>Description:</b> <p> @@ -4376,11 +4424,11 @@ interface of the same name. <p> <b>Function Prototype:</b> <p> -<PRE> +<pre> #include &lt;pthread.h&gt; int pthread_mutexattr_setpshared(pthread_mutexattr_t *attr, int pshared); -</PRE> +</pre> <p> <b>Description:</b> <p> @@ -4408,11 +4456,11 @@ interface of the same name. <p> <b>Function Prototype:</b> <p> -<PRE> +<pre> #include &lt;pthread.h&gt; int pthread_mutex_init(pthread_mutex_t *mutex, pthread_mutexattr_t *attr); -</PRE> +</pre> <p> <b>Description:</b> <p> @@ -4440,10 +4488,10 @@ interface of the same name. <p> <b>Function Prototype:</b> <p> -<PRE> +<pre> #include &lt;pthread.h&gt; int pthread_mutex_destroy(pthread_mutex_t *mutex); -</PRE> +</pre> <p> <b>Description:</b> <p> @@ -4471,10 +4519,10 @@ interface of the same name. <p> <b>Function Prototype:</b> <p> -<PRE> +<pre> #include &lt;pthread.h&gt; int pthread_mutex_lock(pthread_mutex_t *mutex); -</PRE> +</pre> <p> <b>Description:</b> <p> @@ -4502,10 +4550,10 @@ interface of the same name. <p> <b>Function Prototype:</b> <p> -<PRE> +<pre> #include &lt;pthread.h&gt; int pthread_mutex_trylock(pthread_mutex_t *mutex); -</PRE> +</pre> <p> <b>Description:</b> <p> @@ -4533,10 +4581,10 @@ interface of the same name. <p> <b>Function Prototype:</b> <p> -<PRE> +<pre> #include &lt;pthread.h&gt; int pthread_mutex_unlock(pthread_mutex_t *mutex); -</PRE> +</pre> <p> <b>Description:</b> <p> @@ -4564,10 +4612,10 @@ interface of the same name. <p> <b>Function Prototype:</b> <p> -<PRE> +<pre> #include &lt;pthread.h&gt; int pthread_condattr_init(pthread_condattr_t *attr); -</PRE> +</pre> <p> <b>Description:</b> <p> @@ -4595,10 +4643,10 @@ interface of the same name. <p> <b>Function Prototype:</b> <p> -<PRE> +<pre> #include &lt;pthread.h&gt; int pthread_condattr_destroy(pthread_condattr_t *attr); -</PRE> +</pre> <p> <b>Description:</b> <p> @@ -4626,10 +4674,10 @@ interface of the same name. <p> <b>Function Prototype:</b> <p> -<PRE> +<pre> #include &lt;pthread.h&gt; int pthread_cond_init(pthread_cond_t *cond, pthread_condattr_t *attr); -</PRE> +</pre> <p> <b>Description:</b> <p> @@ -4657,10 +4705,10 @@ interface of the same name. <p> <b>Function Prototype:</b> <p> -<PRE> +<pre> #include &lt;pthread.h&gt; int pthread_cond_destroy(pthread_cond_t *cond); -</PRE> +</pre> <p> <b>Description:</b> <p> @@ -4688,10 +4736,10 @@ interface of the same name. <p> <b>Function Prototype:</b> <p> -<PRE> +<pre> #include &lt;pthread.h&gt; int pthread_cond_broadcast(pthread_cond_t *cond); -</PRE> +</pre> <p> <b>Description:</b> <p> @@ -4719,10 +4767,10 @@ interface of the same name. <p> <b>Function Prototype:</b> <p> -<PRE> +<pre> #include &lt;pthread.h&gt; int pthread_cond_signal(pthread_cond_t *dond); -</PRE> +</pre> <p> <b>Description:</b> <p> @@ -4750,10 +4798,10 @@ interface of the same name. <p> <b>Function Prototype:</b> <p> -<PRE> +<pre> #include &lt;pthread.h&gt; int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex); -</PRE> +</pre> <p> <b>Description:</b> <p> @@ -5328,7 +5376,7 @@ function call: <p> <b>Function Prototype:</b> <p> -<PRE> int *get_errno_ptr( void )</PRE> +<pre> int *get_errno_ptr( void )</pre> <p> <b>Description</b>: <I>osGetErrnorPtr()</I> returns a pointer to the thread-specific <I>errno</I> value. @@ -5352,54 +5400,54 @@ between pthreads. <p> main_t defines the type of a task entry point. main_t is declared in sys/types.h as: -<PRE> +<pre> typedef int (*main_t)(int argc, char *argv[]); -</PRE> +</pre> <H3>3.4.2 struct sched_param</H3> <p> This structure is used to pass scheduling priorities to and from NuttX; -<PRE> +<pre> struct sched_param { int sched_priority; }; -</PRE> +</pre> <H3>3.4.3 struct timespec</H3> <p> This structure is used to pass timing information between the NuttX and a user application: -<PRE> +<pre> struct timespec { time_t tv_sec; /* Seconds */ long tv_nsec; /* Nanoseconds */ }; -</PRE> +</pre> <H3>3.4.4 struct mq_attr</H3> <p> This structure is used to communicate message queue attributes between NuttX and a MoBY application: -<PRE> +<pre> struct mq_attr { size_t mq_maxmsg; /* Max number of messages in queue */ size_t mq_msgsize; /* Max message size */ unsigned mq_flags; /* Queue flags */ size_t mq_curmsgs; /* Number of messages currently in queue */ }; -</PRE> +</pre> <H3>3.4.5 struct sigaction</H3> <p> The following structure defines the action to take for given signal: -<PRE> +<pre> struct sigaction { union @@ -5412,48 +5460,48 @@ The following structure defines the action to take for given signal: }; #define sa_handler sa_u._sa_handler #define sa_sigaction sa_u._sa_sigaction -</PRE> +</pre> <H3>3.4.6 struct siginfo/siginfo_t</H3> <p> The following types is used to pass parameters to/from signal handlers: -<PRE> +<pre> typedef struct siginfo { int si_signo; int si_code; union sigval si_value; } siginfo_t; -</PRE> +</pre> <H3>3.4.7 union sigval</H3> <p> This defines the type of the struct siginfo si_value field and is used to pass parameters with signals. -<PRE> +<pre> union sigval { int sival_int; void *sival_ptr; }; -</PRE> +</pre> <H3>3.4.8 struct sigevent</H3> <p> The following is used to attach a signal to a message queue to notify a task when a message is available on a queue. -<PRE> +<pre> struct sigevent { int sigev_signo; union sigval sigev_value; int sigev_notify; }; -</PRE> +</pre> <H3>3.4.9 Watchdog Data Types</H3> From 9694177e7a3a7de45d98d3569343515c98b2489b Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 29 Mar 2007 13:25:18 +0000 Subject: [PATCH 0041/1518] Added mq_timedsend() and mq_timedreceive() git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@166 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 5 + Documentation/NuttxUserGuide.html | 189 ++++++++++++++++++++++++++++-- 2 files changed, 185 insertions(+), 9 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 087fd48a7b..fcdb9b1d12 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -454,6 +454,11 @@ Other memory: * mq_receive and mq_send now return errno's appropriately * mq_receive and mq_send are now correctly awakened by signals. + * Fixed an unmatched sched_lock/unlock pair in task_delete(). + * sched_lock must be called in _exit() because operation of + task_delete() can cause pending tasks to be merged and a + context switch to occur. + * Added mq_timedreceive() and mq_timedsend() * Started m68322 </pre></ul> diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index d706c60c62..3fd59357c3 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -1021,10 +1021,12 @@ on this thread of execution. <li><a href="#mqclose">2.4.2 mq_close</a></li> <li><a href="#mqunlink">2.4.3 mq_unlink</a></li> <li><a href="#mqsend">2.4.4 mq_send</a></li> - <li><a href="#mqreceive">2.4.5 mq_receive</a></li> - <li><a href="#mqnotify">2.4.6 mq_notify</a></li> - <li><a href="#mqsetattr">2.4.7 mq_setattr</a></li> - <li><a href="#mqgetattr">2.4.8 mq_getattr</a></li> + <li><a href="#mqtimedsend">2.4.5 mq_timedsend</a></li> + <li><a href="#mqreceive">2.4.6 mq_receive</a></li> + <li><a href="#mqtimedreceive">2.4.7 mq_timedreceive</a></li> + <li><a href="#mqnotify">2.4.8 mq_notify</a></li> + <li><a href="#mqsetattr">2.4.9 mq_setattr</a></li> + <li><a href="#mqgetattr">2.4.10 mq_getattr</a></li> </ul> <H3><a name="mqopen">2.4.1 mq_open</a></H3> @@ -1171,7 +1173,6 @@ closed. interface of the same name. <H3><a name="mqsend">2.4.4 mq_send</a></H3> - <p> <b>Function Prototype:</b> </p> @@ -1246,13 +1247,96 @@ interface of the same name. Comparable to the POSIX interface of the same name. </p> +<h3><a name="mqtimedsend">mq_timedsend</a></h3> +<b>Function Prototype:</b> +</p> +<pre> + #include &lt;mqueue.h&gt; + int mq_timedsend(mqd_t mqdes, const char *msg, size_t msglen, int prio, + const struct timespec *abstime); +</pre> +<p> +<b>Description:</b> + This function adds the specified message, <code>msg</code>, + to the message queue, <code>mqdes</code>. + The <code>msglen</code> parameter specifies the length of the message in bytes pointed to by <code>msg</code>. + This length must not exceed the maximum message length from the <code>mq_getattr()</code>. +</p> +<p> + If the message queue is not full, <code>mq_timedsend()</code> will place the <code>msg</code> + in the message queue at the position indicated by the <code>prio</code> argument. + Messages with higher priority will be inserted before lower priority messages + The value of <code>prio</code> must not exceed <code>MQ_PRIO_MAX</code>. +</p> +<p> + If the specified message queue is full and <code>O_NONBLOCK</code> is not + set in the message queue, then <code>mq_send()</code> will block until space + becomes available to the queue the message or until a timeout occurs. +</p> +<p> + <code>mq_timedsend()</code> behaves just like <code>mq_send()</code>, except + that if the queue is full and the <code>O_NONBLOCK</code> flag is not enabled + for the message queue description, then <code>abstime</code> points to a + structure which specifies a ceiling on the time for which the call will block. + This ceiling is an absolute timeout in seconds and nanoseconds since the + Epoch (midnight on the morning of 1 January 1970). +</p> +<p> + If the message queue is full, and the timeout has already expired by the time + of the call, <code>mq_timedsend()<code> returns immediately. +</p> +<p> + <b>Input Parameters:</b> +</p> +<ul> + <li><code>mqdes</code>. Message queue descriptor.</li> + <li><code>msg</code>. Message to send.</li> + <li><code>msglen</code>. The length of the message in bytes.</li> + <li><code>prio</code>. The priority of the message.</li> +</ul> +<p> + <b>Returned Values:</b> + On success, <code>mq_send()</code> returns 0 (<code>OK</code>); + on error, -1 (<code>ERROR</code>) is returned, with <code>errno</code> set + to indicate the error: +</p> +<ul> + <li> + <code>EAGAIN</code>. + The queue was empty, and the <code>O_NONBLOCK</code> flag was set for the message queue description referred to by <code>mqdes</code>. + </li> + <li> + <code>EINVAL</code>. + Either <code>msg</code> or <code>mqdes</code> is <code>NULL</code> or the value of <code>prio</code> is invalid. + </li> + <li> + <code>EPERM</code>. + Message queue opened not opened for writing. + </li> + <li> + <code>EMSGSIZE</code>. + <code>msglen</code> was greater than the <code>maxmsgsize</code> attribute of the message queue. + </li> + <li> + <code>EINTR</code>. + The call was interrupted by a signal handler. + </li> +</ul> +<p> + <b>Assumptions/Limitations:</b> +</p> +<p> + <b>POSIX Compatibility:</b> + Comparable to the POSIX interface of the same name. +</p> + <h3><a name="mqreceive">2.4.5 mq_receive</a></h3> <p> <b>Function Prototype:</b> </p> <pre> #include &lt;mqueue.h&gt; - int mq_receive(mqd_t mqdes, void *msg, size_t msglen, int *prio); + ssize_t mq_receive(mqd_t mqdes, void *msg, size_t msglen, int *prio); </pre> <p> <b>Description:</b> @@ -1316,7 +1400,92 @@ interface of the same name. Comparable to the POSIX interface of the same name. </p> -<H3><a name="mqnotify">2.4.6 mq_notify</a></H3> +<h3><a name="mqtimedreceive">2.4.6 mq_timedreceive</a></h3> +<p> + <b>Function Prototype:</b> +</p> +<pre> + #include &lt;mqueue.h&gt; + ssize_t mq_timedreceive(mqd_t mqdes, void *msg, size_t msglen, + int *prio, const struct timespec *abstime); +</pre> +<p> + <b>Description:</b> + This function receives the oldest of the highest priority messages from the message + queue specified by <code>mqdes</code>. + If the size of the buffer in bytes, <code>msgLen</code>, is less than the + <code>mq_msgsize</code> attribute of the message queue, <code>mq_timedreceive()</code> will + return an error. + Otherwise, the selected message is removed from the queue and copied to <code>msg</code>. +</p> +<p> + If the message queue is empty and <code>O_NONBLOCK</code> was not set, <code>mq_timedreceive()</code> + will block until a message is added to the message queue (or until a timeout occurs). + If more than one task is waiting to receive a message, only the task with the highest + priority that has waited the longest will be unblocked. +</p> +<p> + <code>mq_timedreceive()</code> behaves just like <code>mq_receive()<code>, except + that if the queue is empty and the <code>O_NONBLOCK<c/ode> flag is not enabled + for the message queue description, then <code>abstime</code> points to a structure + which specifies a ceiling on the time for which the call will block. + This ceiling is an absolute timeout in seconds and nanoseconds since the Epoch + (midnight on the morning of 1 January 1970). +</p> +<p> + If no message is available, and the timeout has already expired by the time of + the call, <code>mq_timedreceive()</code> returns immediately. +</p> +<p> + <b>Input Parameters:</b> +</p> +<ul> + <li><code>mqdes</code>. Message Queue Descriptor.</li> + <li><code>msg</code>. Buffer to receive the message.</li> + <li><code>msglen</code>. Size of the buffer in bytes.</li> + <li><code>prio</code>. If not NULL, the location to store message priority. + <li><code>abstime</code>. The absolute time to wait until a timeout is declared. +</ul> +<p> + <b>Returned Values:</b>. + One success, the length of the selected message in bytes is returned. + On failure, -1 (<code>ERROR</code>) is returned and the <code>errno</code> is set appropriately: +</p> +<ul> + <li> + <code>EAGAIN</code>: + The queue was empty and the <code>O_NONBLOCK</code> flag was set for the message queue description referred to by <code>mqdes</code>. + </li> + <li> + <code>EPERM</code>: + Message queue opened not opened for reading. + </li> + <li> + <code>EMSGSIZE</code>: + <code>msglen</code> was less than the <code>maxmsgsize</code> attribute of the message queue. + </li> + <li> + <code>EINTR</code>: + The call was interrupted by a signal handler. + </li> + <li> + <code>EINVAL</code>: + Invalid <code>msg</code> or <code>mqdes</code> or <code>abstime</code> + </li> + <li> + <code>ETIMEDOUT</code>: + The call timed out before a message could be transferred. + </li> +</ul> +<p> + <b>Assumptions/Limitations:</b> +</p> +<p> + <b>POSIX Compatibility:</b> + Comparable to the POSIX interface of the same name. +</p> + +<h3><a name="mqnotify">2.4.7 mq_notify</a></h3> <p> <b>Function Prototype:</b> @@ -1372,7 +1541,7 @@ appropriate <I>mq_receive()</I> ... The resulting behavior is as if the message queue remains empty, and no notification shall be sent.&quot; </ul> -<H3><a name="mqsetattr">2.4.7 mq_setattr</a></H3> +<H3><a name="mqsetattr">2.4.8 mq_setattr</a></H3> <p> <b>Function Prototype:</b> @@ -1411,7 +1580,7 @@ would have been returned by mq_getattr()). <b> POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<H3><a name="mqgetattr">2.4.8 mq_getattr</a></H3> +<H3><a name="mqgetattr">2.4.9 mq_getattr</a></H3> <p> <b>Function Prototype:</b> @@ -5641,6 +5810,8 @@ notify a task when a message is available on a queue. <li><a href="#mqreceive">mq_receive</a></li> <li><a href="#mqsend">mq_send</a></li> <li><a href="#mqsetattr">mq_setattr</a></li> + <li><a href="#mqtimedreceive">mq_timedreceive</a></li> + <li><a href="#mqtimedsend">mq_timedsend</a></li> <li><a href="#mqunlink">mq_unlink</a></li> <li><a href="#OS_Interfaces">OS Interfaces</a> <li><a href="#Pthread">Pthread Interfaces</a> From 479a27ab95b92cb652eecb5f930f66daafad3aaa Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 29 Mar 2007 14:21:31 +0000 Subject: [PATCH 0042/1518] Moved exclusion logic to a higher level so that printf output is more readable when the same stdout FILE* is shared by many pthreads (tasks did not have this probablem because they have separate stdout streams). git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@174 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index fcdb9b1d12..80c51178aa 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: March 21, 2007</p> + <p>Last Updated: March 28, 2007</p> </td> </tr> </table> @@ -459,6 +459,10 @@ Other memory: task_delete() can cause pending tasks to be merged and a context switch to occur. * Added mq_timedreceive() and mq_timedsend() + * signal mask is now inherited by both child tasks and threads. + * Improved sharebility of stdout among pthreads (only). Nothing + was broken, but by moving the mutual exclusion logic to a + higher level, the printf output is more readable. * Started m68322 </pre></ul> From 8d2477fb959be42ff58e8b5ac078d8d1d5267174 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 29 Mar 2007 16:53:03 +0000 Subject: [PATCH 0043/1518] Container being deallocated before buffers in container. Caused memory leak. git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@177 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 80c51178aa..50172c06d5 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -463,6 +463,8 @@ Other memory: * Improved sharebility of stdout among pthreads (only). Nothing was broken, but by moving the mutual exclusion logic to a higher level, the printf output is more readable. + * Fixed a bug in file system cleanup: A list was being deleted + before the buffers contained in the list. * Started m68322 </pre></ul> From 7a93efbb385995dea444173be72f7998ad7d8946 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 29 Mar 2007 23:44:55 +0000 Subject: [PATCH 0044/1518] Add timed mqueue test. git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@179 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 50172c06d5..3df09d3c41 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -465,6 +465,9 @@ Other memory: higher level, the printf output is more readable. * Fixed a bug in file system cleanup: A list was being deleted before the buffers contained in the list. + * Fixed a bug in the wait-for-message-queue-not-empty logic. + * Added a test of timed mqueue operations; detected and corrected + some mqueue errors. * Started m68322 </pre></ul> From bb2dfb4d593a61c8df08d7152896773f8755b158 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 30 Mar 2007 00:49:11 +0000 Subject: [PATCH 0045/1518] Correct a race condition in the pthread join logic. Sometimes the join structure was being deallocated while it was still needed. git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@180 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 3df09d3c41..b2e8bef41e 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -468,6 +468,9 @@ Other memory: * Fixed a bug in the wait-for-message-queue-not-empty logic. * Added a test of timed mqueue operations; detected and corrected some mqueue errors. + * Identified and corrected a race condition associated with + pthread_join. In the failure condition, memory was being + deallocated while still in use. * Started m68322 </pre></ul> From 8c45f842224da67985d4d0643227ca982a2ce796 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 30 Mar 2007 13:21:20 +0000 Subject: [PATCH 0046/1518] update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@182 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index b2e8bef41e..f4b8cfa8f0 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -180,7 +180,7 @@ </table> <p> - The fifth release of NuttX (nuttx-0.2.2) is avalable for download + The sixth release of NuttX (nuttx-0.2.3) is available for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. </p> @@ -450,7 +450,7 @@ Other memory: * Added directories to hold board-specific header files * Added directories to hold board-specific drivers -0.2.3 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> +0.2.3 2007-03-29 Gregory Nutt <spudmonkey@racsa.co.cr> * mq_receive and mq_send now return errno's appropriately * mq_receive and mq_send are now correctly awakened by signals. @@ -471,6 +471,9 @@ Other memory: * Identified and corrected a race condition associated with pthread_join. In the failure condition, memory was being deallocated while still in use. + +0.2.4 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> + * Started m68322 </pre></ul> From 4df9061bde2bcd1ac54707d272f29562eefaf254 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 22 Apr 2007 20:40:10 +0000 Subject: [PATCH 0047/1518] Misc changes to good c5471 build on Cygwin git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@183 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index f4b8cfa8f0..52cc244cbf 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -474,6 +474,7 @@ Other memory: 0.2.4 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> + * Verfied c5471 build under Cygwin on WinXP * Started m68322 </pre></ul> From 889f04803ce8c0fd8d672785e43b9c3d99fd6889 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 25 Apr 2007 00:09:44 +0000 Subject: [PATCH 0048/1518] Makesystem changes to better support different SoCs git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@184 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 35 +++++++++++++++++++++++----- 1 file changed, 29 insertions(+), 6 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 90dfcec54f..c0cd8eaca8 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -331,16 +331,24 @@ The purpose of this port is primarily to support OS feature developement. This port does not support interrupts or a real timer (and hence no round robin scheduler) Otherwise, it is complete. + <li><code>arch/c5471</code>: TI TMS320C5471 (also called TMS320DM180 or just C5471). NuttX operates on the ARM7 of this dual core processor. This port is complete, verified, and included in the NuttX release 0.1.1. + + <li><code>configs/mcu123-lpc214x</code>: + The mcu123.com lpc214x development board. + This is a work in progress. + <li><code>arch/dm320</code>: - TI TMS320DM320 (also called just DM320). - NuttX operates on the ARM9EJS of this dual core processor. - This port complete, verified, and included in the NuttX release 0.2.1. + TI TMS320DM320 (also called just DM320). + NuttX operates on the ARM9EJS of this dual core processor. + This port complete, verified, and included in the NuttX release 0.2.1. + <li><code>arch/m68322</code> - A work in progress.</li> + A work in progress.</li> + <li><code>arch/pjrc-8051</code>: 8051 Microcontroller. This port is not quite ready for prime time.</li> </ul> @@ -463,6 +471,10 @@ with a GNU arm-elf toolchain*. This port is complete, verified, and included in the NuttX release.</li> + <li><code>configs/mcu123-lpc214x</code>: + This is a port to the mcu123.com lpc214x development board. + This OS is also built with the arm-elf toolchain*.</li> + <li><code>configs/ntosd-dm320</code>: This port uses the Neuros OSD with a GNU arm-elf toolchain*. See <a href="http://wiki.neurostechnology.com/index.php/Developer_Welcome">Neuros Wiki</a> @@ -1035,8 +1047,19 @@ The system can be re-made subsequently by just typing <code>make</code>. <h2>Architecture selection</h2> <ul> - <li><code>CONFIG_ARCH</code>: identifies the arch subdirectory - <li><code>CONFIG_ARCH_name</code>: for use in C code + <li><code>CONFIG_ARCH</code>: + Identifies the arch subdirectory</li> + <li><code>CONFIG_ARCH_name</code>: + For use in C code</li> + <li><code>CONFIG_ARCH_CHIP</code>: + Identifies the arch/*/chip subdirectory</li> + <li><code>CONFIG_ARCH_CHIP_name</code>: + For use in C code</li> + <li><code>CONFIG_ARCH_BOARD</code>: + Identifies the configs subdirectory and hence, the board that supports + the particular chip or SoC.</li> + <li><code>CONFIG_ARCH_BOARD_name</code>: + For use in C code</li> </ul> <h2>General OS setup</h2> From c1de39f2d12449bfba9c63822b638d3f69aea0fc Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 28 Apr 2007 20:07:05 +0000 Subject: [PATCH 0049/1518] Documents new arch/arm directory git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@189 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 80 ++++++++++++++++++++++++---- 1 file changed, 69 insertions(+), 11 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index c0cd8eaca8..636eaaa588 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -16,7 +16,7 @@ </b></big> <p><small>by</small></p> <p>Gregory Nutt</p> - <p><small>Last Update: March 26, 2007</small></p> + <p><small>Last Update: April 30, 2007</small></p> </center> <center><h1>Table of Contents</h1></center> @@ -325,32 +325,75 @@ </ul> <h3><a name="supportedarchitectures">2.2.3 Supported Architectures</a></h3> +<p> + <b>Archictecture- and Chip-Specific Directories</b>. + All processor architecture-specific directories are maintained in sub-directories of + the <code>arch/</code> directory. + Different chips or SoC's may implement the same processor core. + Chip-specific logic can be found in sub-directories under the architecture + directory. + Current architecture/chip directories are summarized below: +</p> <ul> <li><code>arch/sim</code>: A user-mode port of NuttX to the x86 Linux platform is available. The purpose of this port is primarily to support OS feature developement. This port does not support interrupts or a real timer (and hence no round robin scheduler) Otherwise, it is complete. + </li> - <li><code>arch/c5471</code>: - TI TMS320C5471 (also called TMS320DM180 or just C5471). - NuttX operates on the ARM7 of this dual core processor. - This port is complete, verified, and included in the NuttX release 0.1.1. + <li><code>arch/arm</code>: + This directory holds common ARM architectures. At present, this includes + the following subdirectories: + <ul> + <li><code>arch/arm/include</code> and <code>arch/arm/common</code>: + Common ARM logic. + </li> + + <li><code>arch/arm/include/c5471</code> and <code>arch/arm/src/c5471</code>: + TI TMS320C5471 (also called TMS320DM180 or just C5471). + NuttX operates on the ARM7 of this dual core processor. + This port is complete, verified, and included in the NuttX release 0.1.1. + </li> + + <li><code>arch/arm/include/dm320</code> and <code>arch/arm/src/dm320</code>: + TI TMS320DM320 (also called just DM320). + NuttX operates on the ARM9EJS of this dual core processor. + This port complete, verified, and included in the NuttX release 0.2.1. + </li> + </ul> + </li> <li><code>configs/mcu123-lpc214x</code>: The mcu123.com lpc214x development board. This is a work in progress. - - <li><code>arch/dm320</code>: - TI TMS320DM320 (also called just DM320). - NuttX operates on the ARM9EJS of this dual core processor. - This port complete, verified, and included in the NuttX release 0.2.1. + </li> <li><code>arch/m68322</code> A work in progress.</li> + </li> <li><code>arch/pjrc-8051</code>: 8051 Microcontroller. This port is not quite ready for prime time.</li> + </li> +</ul> + +<p> + <b>Deprecated Architecture Directories</b>. + The following architecture directories are deprecated. They have been + replaced by the logic in <code>arm/arm</code> and will deleted when + <code>arch/arm</code> is fully verified. +</p> +<ul> + <li><code>arch/c5471</code>: + Replaced with <code>arch/arm/include/c5471</code> and + <code>arch/arm/src/c5471<code>. + </li> + + <li><code>arch/dm320</code>: + Replaced with <code>arch/arm/include/dm320</code> and + <code>arch/arm/src/dm320<code>. + </li> </ul> <p> Other ports for the for the TI TMS320DM270 and for MIPS are in various states @@ -1045,7 +1088,10 @@ The system can be re-made subsequently by just typing <code>make</code>. </p> <h2>Architecture selection</h2> - +<p> + The following configuration itemes select the architecture, chip, and + board configuration for the build. +</p> <ul> <li><code>CONFIG_ARCH</code>: Identifies the arch subdirectory</li> @@ -1062,6 +1108,18 @@ The system can be re-made subsequently by just typing <code>make</code>. For use in C code</li> </ul> +<p> + Some architectures require a description of the the RAM configuration: +</p> +<ul> + <li><code>CONFIG_DRAM_SIZE</code>: + Describes the installed DRAM.</li> + <li><code>CONFIG_DRAM_START</code>: + The start address of DRAM (physical)</li> + <li><code>CONFIG_DRAM_VSTART</code>: + The startaddress of DRAM (virtual)</li> +</ul> + <h2>General OS setup</h2> <ul> From 74ade3701812914c647f36206e1bb7fddaeea935 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 28 Apr 2007 22:38:28 +0000 Subject: [PATCH 0050/1518] Updated for 0.2.4 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@192 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 52cc244cbf..bcfcf34f1b 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -180,7 +180,7 @@ </table> <p> - The sixth release of NuttX (nuttx-0.2.3) is available for download + The seventh release of NuttX (nuttx-0.2.4) is available for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. </p> @@ -472,9 +472,18 @@ Other memory: pthread_join. In the failure condition, memory was being deallocated while still in use. -0.2.4 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> +0.2.4 2007-04-28 Gregory Nutt <spudmonkey@racsa.co.cr> * Verfied c5471 build under Cygwin on WinXP + * Makesystem changes to better support different SoCs. + * Made arch/c5471/include and arch/dm320/include identical in + preparation for merging into arch/arm + * Logic from arch/c5471 and arch/dm320 combined into arch/arm. + arch/c5471 and arch/dm320 are deprecated and will be removed + when the new c5471 and dm320 logic is verified. + +0.2.5 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> + * Started m68322 </pre></ul> From a7eb3e9134aaefdb3824902f656e645462ac4109 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 29 Apr 2007 21:50:53 +0000 Subject: [PATCH 0051/1518] Changes to resulting previous merge of arch/c5471 and arch/dm320 into arch/arm and also to adding lpc214x to arch/arm. git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@194 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 21 ++++++++++++++++++- Documentation/NuttxPortingGuide.html | 31 +++++++++++++++++++++------- 2 files changed, 44 insertions(+), 8 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index bcfcf34f1b..64857be2f8 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: March 28, 2007</p> + <p>Last Updated: April 29, 2007</p> </td> </tr> </table> @@ -234,6 +234,21 @@ </p> </td> </tr> +<tr> + <td><br></td> + <td> + <p> + <b>NXP LPC214x</b>. + Support is provided for the NXP LPC214x family of processors. In particular, + support is provided for the mcu123.com lpc214x evaluation board (LPC2148). + This port also used the GNU arm-eld toolchain*. + </p> + <p> + <b>STATUS:</b> + This port is in progress and should be available in the nuttx-0.2.5 release. + </p> + </td> +</tr> <tr> <td valign="top"><img src="favicon.ico"></td> <td bgcolor="#5eaee1"> @@ -484,6 +499,10 @@ Other memory: 0.2.5 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> + * Added support for the NXP 214x processor on the mcu123.com lpc214x + development board. + * Corrected some build/configuration issues introduced with the + last release. * Started m68322 </pre></ul> diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 636eaaa588..893888bee6 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -361,6 +361,14 @@ NuttX operates on the ARM9EJS of this dual core processor. This port complete, verified, and included in the NuttX release 0.2.1. </li> + + <li><code>arch/arm/include/lpc214x</code> and <code>arch/arm/src/lpc214x</code>: + These directories provide support for NXP LPC214x family of + processors. + STATUS: This port is in progress and should be available in the + nuttx-0.2.5 release. + </li> + </ul> </li> @@ -505,18 +513,24 @@ A user-mode port of NuttX to the x86 Linux platform is available. The purpose of this port is primarily to support OS feature developement. This port does not support interrupts or a real timer (and hence no - round robin scheduler) Otherwise, it is complete.</li> + round robin scheduler) Otherwise, it is complete. + </li> <li><code>configs/c5471evm</code>: This is a port to the Spectrum Digital C5471 evaluation board. The C5471 is a dual core processor from TI with an ARM7TDMI general purpose processor and a c54 SDP. NuttX runs on the ARM core and is built with with a GNU arm-elf toolchain*. This port is complete, verified, and - included in the NuttX release.</li> + included in the NuttX release. + </li> <li><code>configs/mcu123-lpc214x</code>: - This is a port to the mcu123.com lpc214x development board. - This OS is also built with the arm-elf toolchain*.</li> + This port is for the NXP LPC2148 as provided on the mcu123.com + lpc214x development board. + This OS is also built with the arm-elf toolchain*. + STATUS: This port is in progress and should be available in the + nuttx-0.2.5 release. + </li> <li><code>configs/ntosd-dm320</code>: This port uses the Neuros OSD with a GNU arm-elf toolchain*. @@ -524,15 +538,18 @@ for futher information. NuttX operates on the ARM9EJS of this dual core processor. STATUS: This port is code complete, verified, and included in the - NuttX 0.2.1 release.</li> + NuttX 0.2.1 release. + </li> <li><code>configs/m68322evb</code>: This is a work in progress for the venerable m68322evb board from - Motorola.</li> + Motorola. + </li> <li><code>configs/pjrc-8051</code>: 8051 Microcontroller. This port uses the PJRC 87C52 development system - and the SDCC toolchain. This port is not quite ready for prime time.</li> + and the SDCC toolchain. This port is not quite ready for prime time. + </li> </ul> <p><small><blockquote> From d7afc08df04f9713930dd5abbddecfcdd497c6fa Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 9 May 2007 00:06:22 +0000 Subject: [PATCH 0052/1518] update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@209 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 64857be2f8..abc5036c54 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: April 29, 2007</p> + <p>Last Updated: May 8, 2007</p> </td> </tr> </table> @@ -97,10 +97,13 @@ <td> <p> The goal is to provide most standard POSIX OS interfaces to support - a rich multi-threaded development environment. + a rich, multi-threaded development environment for deeply embedded + processors. </p> - NON-GOALS: (1) It is not a goal to provide OS subsystems such - as network or USB (but these could obviously be added). + NON-GOALS: (1) It is not a goal to provide the rich level of OS + features like those provided with Linux. + Small footprint is more important than features. + Standard compliance is more important than small footprint. (2) There is no MMU-based support for processes. At present, NuttX assumes a flat address space. </p> @@ -501,6 +504,7 @@ Other memory: * Added support for the NXP 214x processor on the mcu123.com lpc214x development board. + * Added support for block devices. * Corrected some build/configuration issues introduced with the last release. * Started m68322 From 83a02dca1ac590b0535a69673663bd8c890c09bd Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 12 May 2007 20:10:04 +0000 Subject: [PATCH 0053/1518] updated git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@216 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index abc5036c54..b04f266939 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: May 8, 2007</p> + <p>Last Updated: May 12, 2007</p> </td> </tr> </table> @@ -502,12 +502,15 @@ Other memory: 0.2.5 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> - * Added support for the NXP 214x processor on the mcu123.com lpc214x - development board. - * Added support for block devices. * Corrected some build/configuration issues introduced with the last release. + * Added support for the NXP 214x processor on the mcu123.com lpc214x + development board (untested) + * Added support for block devices. + * Simulated target now exports a VFAT filesystem + * Added mount() and umount() * Started m68322 + * Added support for the NXP 214x processor on the mcu123.com lpc214x </pre></ul> <table width ="100%"> From 8effc88ba3236d8463fe383b33a30f9d581e4055 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 12 May 2007 20:11:20 +0000 Subject: [PATCH 0054/1518] Add configuration option to select VFAT git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@217 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 893888bee6..a209146e22 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -1123,6 +1123,8 @@ The system can be re-made subsequently by just typing <code>make</code>. the particular chip or SoC.</li> <li><code>CONFIG_ARCH_BOARD_name</code>: For use in C code</li> + <li><code>CONFIG_ENDIAN_BIG</code>: + Define if big endian (default is little endian).</li> </ul> <p> From f790c831791c645d3add99a04abba5b42ddf29b4 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 13 May 2007 20:20:07 +0000 Subject: [PATCH 0055/1518] Misc. changes to support FAT32 fileysystem git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@219 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index b04f266939..9472259bda 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: May 12, 2007</p> + <p>Last Updated: May 13, 2007</p> </td> </tr> </table> @@ -508,9 +508,9 @@ Other memory: development board (untested) * Added support for block devices. * Simulated target now exports a VFAT filesystem + * Begin support for VFAT filesystem (not yet functional) * Added mount() and umount() * Started m68322 - * Added support for the NXP 214x processor on the mcu123.com lpc214x </pre></ul> <table width ="100%"> From 90935cffb5aaec61f23b7af7590f86c0ff792e28 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 20 May 2007 15:31:02 +0000 Subject: [PATCH 0056/1518] Cleaned up table of contents git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@231 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 33 ++++++++++++++-------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index a209146e22..e7270063e6 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -20,17 +20,17 @@ </center> <center><h1>Table of Contents</h1></center> -<li>1.0 <a href="#Introduction">1.0 Introduction</a></li> -<li>2.0 <a href="#DirectoryStructure">Directory Structure</a></li> +<li><a href="#Introduction">1.0 Introduction</a></li> +<li><a href="#DirectoryStructure">2.0 Directory Structure</a></li> <ul> - <li>2.1 <a href="#DirStructDocumentation">Documentation</a></li> - <l1>2.2 <a href="#DirStructArch">arch</a></li> + <li><a href="#DirStructDocumentation">2.1 Documentation</a></li> + <l1><a href="#DirStructArch">2.2 arch/</a></li> <ul> <li><a href="#archdirectorystructure">2.2.1 Subdirectory Structure</a></li> <li><a href="#summaryofarchfiles">2.2.2 Summary of Files</a></li> <li><a href="#supportedarchitectures">2.2.3 Supported Architectures</a></li> </ul> - <li>2.3 <a href="#DirStructConfigs">configs/</a></li> + <li><a href="#DirStructConfigs">2.3 configs/</a></li> <ul> <li><a href="#configsdirectorystructure">2.3.1 Subdirectory Structure</a></li> <li><a href="#summaryofconfigfiles">2.3.2 Summary of Files</a></li> @@ -40,22 +40,22 @@ </ul> <li><a href="#supportedboards">2.3.3 Supported Boards</a></li> </ul> - <li>2.4 <a href="#DirStructDrivers">drivers</a></li> - <li>2.5 <a href="#DirStructExamples">examples</a></li> - <li>2.6 <a href="#DirStructFs">fs</a></li> - <li>2.7 <a href="#DirStructInclude">include</a></li> - <li>2.8 <a href="#DirStructLib">lib</a></li> - <li>2.9 <a href="#DirStructMm">mm</a></li> - <li>2.10 <a href="#DirStructSched">sched</a></li> - <li>2.11 <a href="#DirStructTools">tools</a></li> - <li>2.12 <a href="#topmakefile">Makefile</a></li> + <li><a href="#DirStructDrivers">2.4 drivers/</a></li> + <li><a href="#DirStructExamples">2.5 examples/</a></li> + <li><a href="#DirStructFs">2.6 fs/</a></li> + <li><a href="#DirStructInclude">2.7 include/</a></li> + <li><a href="#DirStructLib">2.8 lib/</a></li> + <li><a href="#DirStructMm">2.9 mm/</a></li> + <li><a href="#DirStructSched">2.10 sched/</a></li> + <li><a href="#DirStructTools">2.11 tools/</a></li> + <li><a href="#topmakefile">2.12 Makefile</a></li> </ul> -<li>3.0 <a href="#configandbuild">Configuring and Building</a></li> +<li><a href="#configandbuild">3.0 Configuring and Building</a></li> <ul> <li><a href="#configuringnuttx">3.1 Configuring NuttX</a></li> <li><a href="#buildingnuttx">3.2 Building NuttX</a></li> </ul> -<li>4.0 <a href="#ArchAPIs">Architecture APIs</a></li> +<li><a href="#ArchAPIs">4.0 Architecture APIs</a></li> <ul> <li><a href="#imports">4.1 APIs Exported by Architecture-Specific Logic to NuttX</a></li> <ul> @@ -86,6 +86,7 @@ <li><a href="#irqdispatch">4.2.4 <code>irq_dispatch()</code></a></li> </ul> </ul> +<li><a href="#apndxconfigs">Appendix A: NuttX Configuration Settings</a></li> <hr> <h1>1.0 <a name="Introduction">Introduction</a></h1> From 4882176b07b05e2b4fcbf937a46bbc845cf1b6bc Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 20 May 2007 17:00:02 +0000 Subject: [PATCH 0057/1518] Updated Changelist git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@239 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 9472259bda..f7b5c3fc8e 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: May 13, 2007</p> + <p>Last Updated: May 19, 2007</p> </td> </tr> </table> @@ -510,6 +510,10 @@ Other memory: * Simulated target now exports a VFAT filesystem * Begin support for VFAT filesystem (not yet functional) * Added mount() and umount() + * Fix bug in memcmp return value + * Fix errors in timeslice calculation (several places) + * Added missing irqrestore() in timer_deletall(). + * close() was not closing the underlying device. * Started m68322 </pre></ul> From 84744e0304d82917b981d5c581fe9cc419f09316 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 20 May 2007 19:01:57 +0000 Subject: [PATCH 0058/1518] Add fsync() git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@240 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index f7b5c3fc8e..5b813de343 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -514,6 +514,7 @@ Other memory: * Fix errors in timeslice calculation (several places) * Added missing irqrestore() in timer_deletall(). * close() was not closing the underlying device. + * Added fsync() * Started m68322 </pre></ul> From 13738f224ffb7e5b000dfa279c299aa18ca06a95 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 20 May 2007 19:27:02 +0000 Subject: [PATCH 0059/1518] Add strspn() and strcspn() git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@243 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 5b813de343..4050e7258c 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -515,6 +515,7 @@ Other memory: * Added missing irqrestore() in timer_deletall(). * close() was not closing the underlying device. * Added fsync() + * Added strspn() and strcspn() * Started m68322 </pre></ul> From 0c2687e4f8034e50d582bdc1b5db04f24dcbe6e4 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 21 May 2007 00:42:06 +0000 Subject: [PATCH 0060/1518] Add lseek; prep for 0.2.5 git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@245 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 4050e7258c..965b575e75 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -183,7 +183,7 @@ </table> <p> - The seventh release of NuttX (nuttx-0.2.4) is available for download + The 8th release of NuttX (nuttx-0.2.5) is available for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. </p> @@ -248,7 +248,7 @@ </p> <p> <b>STATUS:</b> - This port is in progress and should be available in the nuttx-0.2.5 release. + This port is in progress and should be available in the nuttx-0.2.6 release. </p> </td> </tr> @@ -500,7 +500,7 @@ Other memory: arch/c5471 and arch/dm320 are deprecated and will be removed when the new c5471 and dm320 logic is verified. -0.2.5 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> +0.2.5 2007-05-19 Gregory Nutt <spudmonkey@racsa.co.cr> * Corrected some build/configuration issues introduced with the last release. @@ -508,7 +508,7 @@ Other memory: development board (untested) * Added support for block devices. * Simulated target now exports a VFAT filesystem - * Begin support for VFAT filesystem (not yet functional) + * Begin support for VFAT filesystem (missing functionalit) * Added mount() and umount() * Fix bug in memcmp return value * Fix errors in timeslice calculation (several places) @@ -516,6 +516,9 @@ Other memory: * close() was not closing the underlying device. * Added fsync() * Added strspn() and strcspn() + +0.2.6 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> + * Started m68322 </pre></ul> From 3567adc8559767603f832338d095225e8f6deff3 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 21 May 2007 14:36:00 +0000 Subject: [PATCH 0061/1518] Add unlink(), mkdir(), rmdir(), and rename() git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@246 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 965b575e75..726a5a5c5f 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -519,6 +519,7 @@ Other memory: 0.2.6 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> + * Added unlink(), mkdir(), rmdir(), and rename() * Started m68322 </pre></ul> From 8c6db85801e96b9b87a4c221c87875b85c2af689 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 21 May 2007 17:17:42 +0000 Subject: [PATCH 0062/1518] Add FAT rmdir and unlink git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@247 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 54 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 726a5a5c5f..49db96df20 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -186,6 +186,9 @@ The 8th release of NuttX (nuttx-0.2.5) is available for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. + The change log associated with the release is available <a href="#currentrelease">here</a>. + Unreleased changes after this release are avalable in CVS. + These unreleased changes are listed <a href="#pendingchanges">here</a>. </p> <table width ="100%"> @@ -376,6 +379,35 @@ Other memory: </tr> </table> +<center><table width ="80%"> +<tr> + <td><img src="favicon.ico"></td> + <td> + <a href="#olderreleases">Change Logs for Older Releases</a><br> + </td> +</tr> +<tr> + <td><img src="favicon.ico"></td> + <td> + <a href="#currentrelease">ChangeLog for Current Release</a><br> + </td> +</tr> +<tr> + <td><img src="favicon.ico"></td> + <td> + <a href="#pendingchanges">Unreleased Changes</a> + </td> +</tr> +</table></center> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="olderreleases>Change Logs for Older Releases</a> + </td> + </tr> +</table> + <ul><pre> 0.1.0 2007-03-09 Gregory Nutt <spudmonkey@racsa.co.cr> @@ -499,7 +531,17 @@ Other memory: * Logic from arch/c5471 and arch/dm320 combined into arch/arm. arch/c5471 and arch/dm320 are deprecated and will be removed when the new c5471 and dm320 logic is verified. +</pre></ul> +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="currentrelease">ChangeLog for Current Release</a> + </td> + </tr> +</table> + +<pre><ul> 0.2.5 2007-05-19 Gregory Nutt <spudmonkey@racsa.co.cr> * Corrected some build/configuration issues introduced with the @@ -516,10 +558,22 @@ Other memory: * close() was not closing the underlying device. * Added fsync() * Added strspn() and strcspn() +</pre></ul> +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="pendingchanges">Unreleased Changes</a> + </td> + </tr> +</table> + +<pre><ul> 0.2.6 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> * Added unlink(), mkdir(), rmdir(), and rename() + * Fixed several serious FAT errors with oflags handling (&& instead of &) + * Added FAT support for unlink() and rmdir() * Started m68322 </pre></ul> From 7bcb2af14beca90341d2770a24bbb24c6478970d Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 21 May 2007 19:24:30 +0000 Subject: [PATCH 0063/1518] Add FAT mkdir() git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@248 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 49db96df20..e16071e1ad 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -573,7 +573,7 @@ Other memory: * Added unlink(), mkdir(), rmdir(), and rename() * Fixed several serious FAT errors with oflags handling (&& instead of &) - * Added FAT support for unlink() and rmdir() + * Added FAT support for unlink(), mkdir() and rmdir() * Started m68322 </pre></ul> From d6e2504036bf15fd78347eba8781c0c98184e026 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 21 May 2007 21:04:03 +0000 Subject: [PATCH 0064/1518] Add FAT rename() git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@249 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index e16071e1ad..50ba2f76a8 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: May 19, 2007</p> + <p>Last Updated: May 21, 2007</p> </td> </tr> </table> @@ -573,7 +573,7 @@ Other memory: * Added unlink(), mkdir(), rmdir(), and rename() * Fixed several serious FAT errors with oflags handling (&& instead of &) - * Added FAT support for unlink(), mkdir() and rmdir() + * Added FAT support for unlink(), mkdir(), rmdir(), and rename() * Started m68322 </pre></ul> From f9f4f7736ea6957783f39533990abf3a79e1fb0d Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 26 May 2007 19:22:34 +0000 Subject: [PATCH 0065/1518] Finish FAT directory operations; add option to disable mountpoints; fix ARM compile errors git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@252 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 6 +++++- Documentation/NuttxPortingGuide.html | 7 ++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 50ba2f76a8..c2828bf4b8 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: May 21, 2007</p> + <p>Last Updated: May 26, 2007</p> </td> </tr> </table> @@ -574,6 +574,10 @@ Other memory: * Added unlink(), mkdir(), rmdir(), and rename() * Fixed several serious FAT errors with oflags handling (&& instead of &) * Added FAT support for unlink(), mkdir(), rmdir(), and rename() + * Added FAT support for opendir(), closedir(), readdir(), seekdir(), + telldir(), rewindir(). + * Fixed ARM compilation errors introduced in 1.2.5 (that is what I get + for only testing on the simulation). * Started m68322 </pre></ul> diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index e7270063e6..8cd9d06e36 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -16,7 +16,7 @@ </b></big> <p><small>by</small></p> <p>Gregory Nutt</p> - <p><small>Last Update: April 30, 2007</small></p> + <p><small>Last Update: May 26, 2007</small></p> </center> <center><h1>Table of Contents</h1></center> @@ -1211,8 +1211,9 @@ The system can be re-made subsequently by just typing <code>make</code>. </ul> <ul> - <code>CONFIG_DISABLE_CLOCK</code>, <code>CONFI_DISABLE_POSIX_TIMERS</code>, <code>CONFIG_DISABLE_PTHREAD</code>, - <code>CONFIG_DISABLE_SIGNALS</code>, <code>CONFIG_DISABLE_MQUEUE</code>, + <code>CONFIG_DISABLE_CLOCK</code>, <code>CONFI_DISABLE_POSIX_TIMERS</code>, + <code>CONFIG_DISABLE_PTHREAD</code>, <code>CONFIG_DISABLE_SIGNALS</code>, + <code>CONFIG_DISABLE_MQUEUE</code>, <code>CONFIG_DISABLE_MOUNTPOUNT</code> </ul> <h2>Miscellaneous libc settings</h2> From 851ebdb8dd178ac9115f9c1589b7649ff32e84f0 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 26 May 2007 22:46:13 +0000 Subject: [PATCH 0066/1518] prepare for 0.2.6 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@255 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 44 ++++++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 20 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index c2828bf4b8..742562dbcf 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -183,7 +183,7 @@ </table> <p> - The 8th release of NuttX (nuttx-0.2.5) is available for download + The 9th release of NuttX (nuttx-0.2.6) is available for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. The change log associated with the release is available <a href="#currentrelease">here</a>. @@ -251,7 +251,7 @@ </p> <p> <b>STATUS:</b> - This port is in progress and should be available in the nuttx-0.2.6 release. + This port is in progress and should be available in the nuttx-0.2.7 release. </p> </td> </tr> @@ -531,17 +531,7 @@ Other memory: * Logic from arch/c5471 and arch/dm320 combined into arch/arm. arch/c5471 and arch/dm320 are deprecated and will be removed when the new c5471 and dm320 logic is verified. -</pre></ul> -<table width ="100%"> - <tr bgcolor="#e4e4e4"> - <td> - <a name="currentrelease">ChangeLog for Current Release</a> - </td> - </tr> -</table> - -<pre><ul> 0.2.5 2007-05-19 Gregory Nutt <spudmonkey@racsa.co.cr> * Corrected some build/configuration issues introduced with the @@ -560,6 +550,26 @@ Other memory: * Added strspn() and strcspn() </pre></ul> +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="currentrelease">ChangeLog for Current Release</a> + </td> + </tr> +</table> + +<pre><ul> +0.2.6 2007-05-26 Gregory Nutt <spudmonkey@racsa.co.cr> + + * Added unlink(), mkdir(), rmdir(), and rename() + * Fixed several serious FAT errors with oflags handling (&& instead of &) + * Added FAT support for unlink(), mkdir(), rmdir(), and rename + * Added FAT support for opendir(), closedir(), readdir(), seekdir(), + telldir(), rewindir(). + * Fixed ARM compilation errors introduced in 0.2.5 (that is what I get + for only testing on the simulation). +</pre></ul> + <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> @@ -569,15 +579,9 @@ Other memory: </table> <pre><ul> -0.2.6 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> - * Added unlink(), mkdir(), rmdir(), and rename() - * Fixed several serious FAT errors with oflags handling (&& instead of &) - * Added FAT support for unlink(), mkdir(), rmdir(), and rename() - * Added FAT support for opendir(), closedir(), readdir(), seekdir(), - telldir(), rewindir(). - * Fixed ARM compilation errors introduced in 1.2.5 (that is what I get - for only testing on the simulation). +0.2.7 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> + * Started m68322 </pre></ul> From 327b66b29f9c8adeb7c3839ad3ec155e59f8e948 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 26 May 2007 23:56:25 +0000 Subject: [PATCH 0067/1518] Missing closing quote git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@256 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 742562dbcf..31fca173a9 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -403,7 +403,7 @@ Other memory: <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="olderreleases>Change Logs for Older Releases</a> + <a name="olderreleases">Change Logs for Older Releases</a> </td> </tr> </table> From 75d94f7adc07e47c4b09775ac096ba5261ad9d90 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 27 May 2007 18:08:18 +0000 Subject: [PATCH 0068/1518] Add stat() git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@257 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 31fca173a9..7f2d686b49 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -296,6 +296,8 @@ This port is complete but not stable with timer interrupts enabled. There seems to be some issue when the stack pointer enters into the indirect IRAM address space during interrupt handling. + This architecture has not been built in some time will likely have some compilation + problems because of SDCC compiler differences. </p> </td> </tr> @@ -582,6 +584,8 @@ Other memory: 0.2.7 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> + * Added stat() to fs layer + * Added stat() supported to FAT * Started m68322 </pre></ul> From e0abb8684144754573694e3dc270263d40f72ad2 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 27 May 2007 19:10:40 +0000 Subject: [PATCH 0069/1518] Fix reference count problem git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@258 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 7f2d686b49..96b9e82216 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -586,6 +586,7 @@ Other memory: * Added stat() to fs layer * Added stat() supported to FAT + * Fixed reference counting errors associated with mounted filesystems * Started m68322 </pre></ul> From e6dc3b7d09f54fad881c74907e573ec959718c8c Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 27 May 2007 20:40:01 +0000 Subject: [PATCH 0070/1518] Added fat_getattrib.c and fat_setattrib.c git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@259 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 96b9e82216..0706b2f4cf 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -587,6 +587,7 @@ Other memory: * Added stat() to fs layer * Added stat() supported to FAT * Fixed reference counting errors associated with mounted filesystems + * Added fat_getattrib() and fat_setattrib() * Started m68322 </pre></ul> From 5b8fd5501cbb5018287fb7e0ef7b220f8e45ca8e Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 27 May 2007 23:09:23 +0000 Subject: [PATCH 0071/1518] Remove duplicate definition of struct statfs git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@260 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxUserGuide.html | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 3fd59357c3..46b4b2be44 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -21,7 +21,7 @@ User's Manual <p> Gregory Nutt <p> -<small>Last Update: March 28, 2007</small> +<small>Last Update: May 27, 2007</small> </center> <h1>1.0 <A NAME="Introduction">Introduction</a></h1> @@ -5725,7 +5725,7 @@ notify a task when a message is available on a queue. int close(int fd); int dup(int fildes); int dup2(int fildes1, int fildes2); - off_t lseek(int fd, off_t offset, int whence); /* Prototyped but not implemented */ + off_t lseek(int fd, off_t offset, int whence); int read(int fd, void *buf, unsigned int nbytes); int unlink(const char *path); int write(int fd, const void *buf, unsigned int nbytes); @@ -5768,7 +5768,7 @@ notify a task when a message is available on a queue. int printf(const char *format, ...); int puts(const char *s); - int rename(const char *source, const char *target); /* Prototyped but not implemented */ + int rename(const char *source, const char *target); int sprintf(char *dest, const char *format, ...); int ungetc(int c, FILE *stream); int vprintf(const char *s, va_list ap); @@ -5779,9 +5779,9 @@ notify a task when a message is available on a queue. FILE *fdopen(int fd, const char *type); int fstat(int fd, FAR struct stat *buf); /* Prototyped but not implemented */ char *getcwd(FAR char *buf, size_t size); /* Prototyped but not implemented */ - int mkdir(const char *path, mode_t mode); /* Prototyped but not implemented */ - int rmdir(const char *path); /* Prototyped but not implemented */ - int stat(const char *path, FAR struct stat *buf); /* Prototyped but not implemented */ + int mkdir(const char *path, mode_t mode); + int rmdir(const char *path); + int stat(const char *path, FAR struct stat *buf); int statfs(const char *path, FAR struct statfs *buf); /* Prototyped but not implemented */ </pre></ul> From aec1637d8e6ffe6a2c798f9bfc5cb4fb781d369a Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 29 May 2007 00:31:17 +0000 Subject: [PATCH 0072/1518] Added statfs() git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@261 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 0706b2f4cf..b9367abbef 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -584,10 +584,10 @@ Other memory: 0.2.7 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> - * Added stat() to fs layer - * Added stat() supported to FAT + * Added stat() to fs layer and to FAT * Fixed reference counting errors associated with mounted filesystems * Added fat_getattrib() and fat_setattrib() + * Added statfs() to fs layer and to FAT * Started m68322 </pre></ul> From cfde2ff81e2f37aaae45cf93b473a4cdc4fe72b8 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 7 Jun 2007 00:53:33 +0000 Subject: [PATCH 0073/1518] updates git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@273 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index b9367abbef..c680017428 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -588,6 +588,14 @@ Other memory: * Fixed reference counting errors associated with mounted filesystems * Added fat_getattrib() and fat_setattrib() * Added statfs() to fs layer and to FAT + * Correct file name extension in tools/zipme.sh + * Fix error in dependencies in 8051/2 Makefile + * sched/Makefile: Don't build sleep() or usleep() if signals are disabled + * sched/sched_setparam.c: Remove redundant disabling of interrupts + * sched/usleep.c: Fixed nsec calculation + * lib/lib_strcspn.c: Function incorrectly named strspn(). + * examples/ostest/main.c: Errors in SDCC version of a memcpy() call + * examples/ostest/sighandl.c: Don't call fflush() if streams are disabled * Started m68322 </pre></ul> From 437666f4048996a89a9688d6c121efbb320174ae Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 9 Jun 2007 15:49:44 +0000 Subject: [PATCH 0074/1518] Add support for custom system timer frequency git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@274 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 6 ++++-- Documentation/NuttxPortingGuide.html | 6 ++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index c680017428..6b5d03248c 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: May 26, 2007</p> + <p>Last Updated: June 9, 2007</p> </td> </tr> </table> @@ -595,7 +595,9 @@ Other memory: * sched/usleep.c: Fixed nsec calculation * lib/lib_strcspn.c: Function incorrectly named strspn(). * examples/ostest/main.c: Errors in SDCC version of a memcpy() call - * examples/ostest/sighandl.c: Don't call fflush() if streams are disabled + * examples/ostest/sighand.c: Don't call fflush() if streams are disabled + * include/limits.h, include/time.h, sched/clock_internal.h: A support for + using selectable system timer frequency. * Started m68322 </pre></ul> diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 8cd9d06e36..38ab0c31e9 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -1163,6 +1163,12 @@ The system can be re-made subsequently by just typing <code>make</code>. number of memory regions that the memory manager must handle and enables the API mm_addregion(start, end); </li> + <li> + <code>CONFIG_TICKS_PER_MSEC</code>: The default system timer is 100Hz + or <code>TICKS_PER_MSEC</code>=10. This setting may be defined to inform NuttX + that the processor hardware is providing system timer interrupts at some interrupt + interval other than 10 msec. + </li> <li> <code>CONFIG_RR_INTERVAL</code>: The round robin timeslice will be set this number of milliseconds; Round robin scheduling can From 63b428a19b33b2e5a3dbfa921488f9b37cd5416c Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 9 Jun 2007 19:11:00 +0000 Subject: [PATCH 0075/1518] Simply conditional build; fix conditional compilation git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@275 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 6b5d03248c..32ce071ba8 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -598,6 +598,11 @@ Other memory: * examples/ostest/sighand.c: Don't call fflush() if streams are disabled * include/limits.h, include/time.h, sched/clock_internal.h: A support for using selectable system timer frequency. + * Fixed error in mountpoint related conditional compilation introduced + in 0.2.5 + * Restructured some Makefiles to better handle enabling and disabling + NuttX features without having so much conditional compilation in the + source files. * Started m68322 </pre></ul> From 2d931abe9b446489fb341e952ebe5e8a50e249cd Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 9 Jun 2007 19:45:33 +0000 Subject: [PATCH 0076/1518] No longer uses _GNU_SOURCE-specific asprintf() git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@276 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 32ce071ba8..1adab64be5 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -603,6 +603,8 @@ Other memory: * Restructured some Makefiles to better handle enabling and disabling NuttX features without having so much conditional compilation in the source files. + * tools/mkconfig.c: No long depends on asprintf() and _GNU_SOURCE and + so should now build in non-GNU, non-GLIBC environments. * Started m68322 </pre></ul> From d69bb1466e5617472c176ae107dc62b49a380378 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 9 Jun 2007 20:31:09 +0000 Subject: [PATCH 0077/1518] SDCC specific changes. Z80 support; re-enable __FILE__ and __LINE__ in assert -- might have broken the 8051/2 git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@277 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 1adab64be5..c88c341547 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -605,6 +605,9 @@ Other memory: source files. * tools/mkconfig.c: No long depends on asprintf() and _GNU_SOURCE and so should now build in non-GNU, non-GLIBC environments. + * include/nuttx/compiler.h: Fix for using SDCC with the Z80. + * include/assert.h & arch/pjrc-8051/src/up_assert.c: SDCC does support + __FILE__and __LINE__ (not tested) * Started m68322 </pre></ul> From 3954977d11755438b6f6d569f4cc6d8afae4664c Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 9 Jun 2007 20:39:21 +0000 Subject: [PATCH 0078/1518] Don't call usleep if signals are disabled git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@278 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index c88c341547..bc4d64a16b 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -608,6 +608,8 @@ Other memory: * include/nuttx/compiler.h: Fix for using SDCC with the Z80. * include/assert.h & arch/pjrc-8051/src/up_assert.c: SDCC does support __FILE__and __LINE__ (not tested) + * examples/ostest/barrier.c: Don't call usleep() when signals are + disabled. * Started m68322 </pre></ul> From 70f12b06333dcedbd356f331a03df3aade6f04a9 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 9 Jun 2007 21:01:26 +0000 Subject: [PATCH 0079/1518] Prepare for release 0.2.7 git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@279 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index bc4d64a16b..20cd2db963 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -183,7 +183,7 @@ </table> <p> - The 9th release of NuttX (nuttx-0.2.6) is available for download + The 10th release of NuttX (nuttx-0.2.7) is available for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. The change log associated with the release is available <a href="#currentrelease">here</a>. @@ -550,17 +550,7 @@ Other memory: * close() was not closing the underlying device. * Added fsync() * Added strspn() and strcspn() -</pre></ul> -<table width ="100%"> - <tr bgcolor="#e4e4e4"> - <td> - <a name="currentrelease">ChangeLog for Current Release</a> - </td> - </tr> -</table> - -<pre><ul> 0.2.6 2007-05-26 Gregory Nutt <spudmonkey@racsa.co.cr> * Added unlink(), mkdir(), rmdir(), and rename() @@ -575,14 +565,13 @@ Other memory: <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="pendingchanges">Unreleased Changes</a> + <a name="currentrelease">ChangeLog for Current Release</a> </td> </tr> </table> <pre><ul> - -0.2.7 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> +0.2.7 2007-06-09 Gregory Nutt <spudmonkey@racsa.co.cr> * Added stat() to fs layer and to FAT * Fixed reference counting errors associated with mounted filesystems @@ -610,6 +599,20 @@ Other memory: __FILE__and __LINE__ (not tested) * examples/ostest/barrier.c: Don't call usleep() when signals are disabled. +</pre></ul> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="pendingchanges">Unreleased Changes</a> + </td> + </tr> +</table> + +<pre><ul> + +0.2.8 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> + * Started m68322 </pre></ul> From 2c4c9da5b313856b07dc0f82a32e4c2467631f2f Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 10 Jun 2007 00:18:40 +0000 Subject: [PATCH 0080/1518] Fixed a problem with arch/arm/src dependencies git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@282 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 20cd2db963..34bad5d7db 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -613,6 +613,8 @@ Other memory: 0.2.8 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> + * tools/Makefile.mkconfig: Under Cygwin, executable has a different name + * tools/mkdeps.sh & arch/arm/src/Makefile: Corrected a problem makeing dependencies * Started m68322 </pre></ul> From 5eb635293cf4f466654f66c1f634d8727ca99a42 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 10 Jun 2007 02:24:53 +0000 Subject: [PATCH 0081/1518] Force directory name to be nuttx-xx.yy.zz git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@284 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 34bad5d7db..3d765a8679 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -615,6 +615,7 @@ Other memory: * tools/Makefile.mkconfig: Under Cygwin, executable has a different name * tools/mkdeps.sh & arch/arm/src/Makefile: Corrected a problem makeing dependencies + * tools/zipme.sh: Force directory name to be nuttx-xx.yy.zz * Started m68322 </pre></ul> From 888aa5087a7de5cf25e4950987ba73064c62e40b Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 10 Jun 2007 17:50:16 +0000 Subject: [PATCH 0082/1518] Correct opendir semaphore hanlding -- was causing deadlock git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@285 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 3d765a8679..9e4ca3b7d6 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -616,6 +616,7 @@ Other memory: * tools/Makefile.mkconfig: Under Cygwin, executable has a different name * tools/mkdeps.sh & arch/arm/src/Makefile: Corrected a problem makeing dependencies * tools/zipme.sh: Force directory name to be nuttx-xx.yy.zz + * fs/fs_opendir.c: Correct errors in semaphore usage that can cause deadlock. * Started m68322 </pre></ul> From e5f9330ec4de6fc309ac110fa96a191c1762434d Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 10 Jun 2007 18:13:03 +0000 Subject: [PATCH 0083/1518] Add getopt git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@286 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 9e4ca3b7d6..13d8507367 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -617,6 +617,8 @@ Other memory: * tools/mkdeps.sh & arch/arm/src/Makefile: Corrected a problem makeing dependencies * tools/zipme.sh: Force directory name to be nuttx-xx.yy.zz * fs/fs_opendir.c: Correct errors in semaphore usage that can cause deadlock. + * lib/lib_getopt.c: Added getopt() support + * examples/nsh: NSH now supports mount, umount, and mkdir. * Started m68322 </pre></ul> From 2f99413d44fd028fe1e689bb636c93d78de8860f Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 10 Jun 2007 20:40:25 +0000 Subject: [PATCH 0084/1518] NSH: Add cat; add -l, -s, -R to ls git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@288 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 13d8507367..b9de71c31c 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -618,7 +618,8 @@ Other memory: * tools/zipme.sh: Force directory name to be nuttx-xx.yy.zz * fs/fs_opendir.c: Correct errors in semaphore usage that can cause deadlock. * lib/lib_getopt.c: Added getopt() support - * examples/nsh: NSH now supports mount, umount, and mkdir. + * examples/nsh: NSH now supports cat, mount, umount, and mkdir. ls supports + -l -s, and -R * Started m68322 </pre></ul> From a206e410e3a0ca65b5f4dcdaeb3a0ac8c61baeb5 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 30 Jun 2007 17:05:44 +0000 Subject: [PATCH 0085/1518] Add basic tasking support for environment variables git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@291 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index b9de71c31c..15b34a54d6 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -619,7 +619,10 @@ Other memory: * fs/fs_opendir.c: Correct errors in semaphore usage that can cause deadlock. * lib/lib_getopt.c: Added getopt() support * examples/nsh: NSH now supports cat, mount, umount, and mkdir. ls supports - -l -s, and -R + -l -s, and -R + * Added basic OS support to manage environment variables: environment + storage, cloning on task creation, sharing on pthread creation, destruction + on thread/task exit. * Started m68322 </pre></ul> From c74b7d9ee8850ad9a37ee803040c831b94a526bf Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 30 Jun 2007 19:39:17 +0000 Subject: [PATCH 0086/1518] Add environment variable function git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@294 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 15b34a54d6..0aa964dc90 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -623,6 +623,10 @@ Other memory: * Added basic OS support to manage environment variables: environment storage, cloning on task creation, sharing on pthread creation, destruction on thread/task exit. + * Add environment variables APIs: environ, getenv, putenv, clearenv, setenv, + unsetenv + * Add environment variables APIs: environ, getenv, putenv, clearenv, setenv, + unsetenv * Started m68322 </pre></ul> From ba5e6377e761a6b9ee7c2879841dc6bdedefc25a Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 30 Jun 2007 20:38:16 +0000 Subject: [PATCH 0087/1518] Fix error in realloc when memory is extended downward git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@295 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 0aa964dc90..e19cf3d0d3 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -627,6 +627,8 @@ Other memory: unsetenv * Add environment variables APIs: environ, getenv, putenv, clearenv, setenv, unsetenv + * Correct an error in realloc() when the block is extended "down" in memory. + In this case, the old memory contents need to be copied to the new location. * Started m68322 </pre></ul> From f5cd693fe1ca7d4fa27d10ab57bc1758640c0579 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 30 Jun 2007 22:39:20 +0000 Subject: [PATCH 0088/1518] Add environment variable test; fix several detected bugs git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@298 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index e19cf3d0d3..fad801a840 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -628,7 +628,9 @@ Other memory: * Add environment variables APIs: environ, getenv, putenv, clearenv, setenv, unsetenv * Correct an error in realloc() when the block is extended "down" in memory. - In this case, the old memory contents need to be copied to the new location. + In this case, the old memory contents need to be copied to the new location + and an allocated bit was not being set. + * examples/ostest: Added an environment variable test. * Started m68322 </pre></ul> From 3052fb65bc5ba49af59af44151f9297399ea2187 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 30 Jun 2007 23:42:46 +0000 Subject: [PATCH 0089/1518] document environment variables git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@299 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 +- Documentation/NuttxUserGuide.html | 356 ++++++++++++++++++++++-------- 2 files changed, 271 insertions(+), 87 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index fad801a840..fa3dbdd071 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: June 9, 2007</p> + <p>Last Updated: June 30, 2007</p> </td> </tr> </table> diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 46b4b2be44..7f0b7e5bf0 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -21,7 +21,7 @@ User's Manual <p> Gregory Nutt <p> -<small>Last Update: May 27, 2007</small> +<small>Last Update: June 30, 2007</small> </center> <h1>1.0 <A NAME="Introduction">Introduction</a></h1> @@ -53,7 +53,8 @@ Gregory Nutt <li>Paragraph 2.7 <a href="#ClocksNTimers">Clocks and Timers</a></li> <li>Paragraph 2.8 <a href="#Signals">Signal Interfaces</a></li> <li>Paragraph 2.9 <a href="#Pthread">Pthread Interfaces</a></li> - <li>Paragraph 2.10 <a href="#FileSystem">Filesystem Interfaces</a></li> + <li>Paragraph 2.10 <a href="#Environ">Environment Variables</a></li> + <li>Paragraph 2.11 <a href="#FileSystem">Filesystem Interfaces</a></li> </ul> </li> <li> @@ -2208,9 +2209,7 @@ queue. The specified watchdog function will be called from the interrupt level after the specified number of ticks has elapsed. Watchdog timers may be started from the interrupt level. <p> -Watchdog times execute in the context of the timer interrupt handler, but -with the PIC/PID address environment that was in place when wd_start() -was called. +Watchdog times execute in the context of the timer interrupt handler. <p> Watchdog timers execute only once. <p> @@ -5502,6 +5501,272 @@ interface of the same name. <b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. </p> +<h1><a name="Environ">2.10 Environment Variables</a></h1> +<p><b>Overview</b>. + NuttX supports environment variables that can be used to control the behavior of programs. + In the spirit of NuttX the environment variable behavior attempts to emulate the behavior of + environment variables in the mulit-processing OS: +</p> +<ul> + <li><b>Task environments</b>. + When a new task is created using <a href="#taskcreate">task_create</a>, the environment + of the child task is an inherited, exact copy of the environment of the parent. + However, after child task has been created, subsequent operations by the child task on + its environment does not alter the environment of the parent. + No do operations by the parent effect the child's environment. + The environments start identical but are independent and may diverge. + </li> + <li><b>Thread environments</b>. + When a pthread is created using <a href="#pthreadcreate">pthread_create</a>, the child + thread also inherits that envirnment of the parent. + However, the child does not recieve a copy of the environment but, rather, shares the same + environment. + Changes to the environment are visiable to all threads with the same parentage. + </li> +</ul> +<p><b>Programming Interfaces</b>. + The following environment variable programming interfaces are provided by Nuttx and are + described in detail in the following paragraphs. +</p> +<ul> + <li><a href="#getenv">2.10.1 <code>getenv</code></a></li> + <li><a href="#putenv">2.10.2 <code>putenv</code></a></li> + <li><a href="#clearenv">2.10.3 <code>clearenv</code></a></li> + <li><a href="#setenv">2.10.4 <code>setenv</code></a></li> + <li><a href="#unsetenv">2.10.5 <code>unsetenv</code></a></li> +</ul> +<p><b>Disabling Environment Variable Support</b>. + All support for environment variables can be disabled by setting <code>CONFIG_DISABLE_ENVIRONMENT</code> + in the board configuration file. +</p> + +<h2><a name="getenv">2.10.1 <code>getenv</code></a></h2> +<p> + <b>Function Prototype:</b> +</p> +<pre> + #include <stdlib.h> + FAR char *getenv(const char *name); +</pre> +<p> + <b>Description:</b> + The <code>getenv()</code> function searches the environment list for a string that + matches the string pointed to by <code>name</code>. +</p> +<p> + <b>Input Parameters:</b> +</p> +<p> +<ul> + <li> + <code>name</code>. + The name of the variable to find. + </li> +</ul> +<p> + <b>Returned Values:</b> + The value of the valiable (read-only) or NULL on failure. +</p> + +<h2><a name="putenv">2.10.2 <code>putenv</code></a></h2> +<p> + <b>Function Prototype:</b> +</p> +<pre> + #include <stdlib.h> + int putenv(char *string); +</pre> +<p> + <b>Description:</b> + The <code>putenv()</code> function adds or changes the value of environment variables. + The argument string is of the form <i>name=value</i>. If name does not already + exist in the environment, then string is added to the environment. If + name does exist, then the value of name in the environment is changed to + value. +</p> +<p> + <b>Input Parameters:</b> +</p> +<p> +<ul> + <li> + <code>string</code> + name=value string describing the environment setting to add/modify. + </li> +</ul> +<p> + <b>Returned Values:</b> + Zero on sucess. +</p> + +<h2><a name="clearenv">2.10.3 <code>clearenv</code></a></h2> +<p> + <b>Function Prototype:</b> +</p> +<pre> + #include <stdlib.h> + int clearenv(void); +</pre> +<p> + <b>Description:</b> + The <code>clearenv()</code> function clears the environment of all name-value pairs + and sets the value of the external variable environ to NULL. +</p> +<p> + <b>Input Parameters:</b> + None +</p> +<p> + <b>Returned Values:</b> + Zero on success. +</p> + +<h2><a name="setenv">2.10.4 <code>setenv</code></a></h2> +<p> + <b>Function Prototype:</b> +</p> +<pre> + #include <stdlib.h> + int setenv(const char *name, const char *value, int overwrite); +</pre> +<p> + <b>Description:</b> + The <code>setenv()</code> function adds the variable <code>name</code> to the environment with the + specified <code>value</code> if the variable <code>name</code> does not exist. If the <code>name</code> + does exist in the environment, then its value is changed to <code>value</code> if <code>overwrite</code> + is non-zero; if <code>overwrite</code> is zero, then the value of <code>name</code> is unaltered. +</p> +<p> + <b>Input Parameters:</b> +</p> +<p> +<ul> + <li> + <code>name</code> + The name of the variable to change. + </li> + <li> + <code>value</code> + The new value of the variable. + </li> + <li> + <code>value</code> + Replace any existing value if non-zero. + </li> +</ul> +<p> + <b>Returned Values:</b> + Zero on success. +</p> + +<h2><a name="unsetenv">2.10.5 <code>unsetenv</code></a></h2> +<p> + <b>Function Prototype:</b> +</p> +<pre> + #include <stdlib.h> + int unsetenv(const char *name); +</pre> +<p> + <b>Description:</b> + The <code>unsetenv()</code> function deletes the variable <code>name</code> from the environment. +</p> +<p> + <b>Input Parameters:</b> +</p> +<p> +<ul> + <li> + <code>name</code> + The name of the variable to delete. + </li> +</ul> +<p> + <b>Returned Values:</b> + Zero on success. +</p> + +<h1><a name="FileSystem">2.11 Filesystem Interfaces</a></h1> +<p> + The NuttX filesystem is very simple; it does not involve any block drivers or + particular filesystem (like FAT or EXT2 etc.). + The NuttX filesystem simply supports a set a filesystem APIs + (<code>open()</code>, <code>close()</code>, <code>read()</code>, <code>write</code>, etc.) + and a registration mechanism that allows devices drivers to a associated with <i>nodes</i> + in a file-system-like name space. +</p> + +<h2><a name="driveroperations">2.11.1 Driver Operations</a></h2> +<ul><pre> + #include &lt;fcntl.h&gt; + int open(const char *path, int oflag, ...); +</pre></ul> + +<ul><pre> + #include &lt;unistd.h&gt; + int close(int fd); + int dup(int fildes); + int dup2(int fildes1, int fildes2); + off_t lseek(int fd, off_t offset, int whence); + int read(int fd, void *buf, unsigned int nbytes); + int unlink(const char *path); + int write(int fd, const void *buf, unsigned int nbytes); +</pre></ul> + +<ul><pre> + #include &lt;sys/ioctl.h&gt; + int ioctl(int fd, int req, unsigned long arg); +</pre></ul> + +<h2><a name="directoryoperations">2.11.2 Directory Operations</a></h2> +<ul><pre> + #include &lt;dirent.h&gt; + int closedir(DIR *dirp); + FAR DIR *opendir(const char *path); + FAR struct dirent *readdir(FAR DIR *dirp); + int readdir_r(FAR DIR *dirp, FAR struct dirent *entry, FAR struct dirent **result); + void rewinddir(FAR DIR *dirp); + void seekdir(FAR DIR *dirp, int loc); + int telldir(FAR DIR *dirp); +</pre></ul> + +<h2><a name="standardio">2.11.3 Standard I/O</a></h2> +<ul><pre> + #include &lt;stdio.h&gt; + int fclose(FILE *stream); + int fflush(FILE *stream); + int feof(FILE *stream); /* Prototyped but not implemented */ + int ferror(FILE *stream); /* Prototyped but not implemented */ + int fgetc(FILE *stream); + char *fgets(char *s, int n, FILE *stream); + FILE *fopen(const char *path, const char *type); + int fprintf(FILE *stream, const char *format, ...); + int fputc(int c, FILE *stream); + int fputs(const char *s, FILE *stream); + size_t fread(void *ptr, size_t size, size_t n_items, FILE *stream); + int fseek(FILE *stream, long int offset, int whence); /* Prototyped but not implemented */ + size_t fwrite(const void *ptr, size_t size, size_t n_items, FILE *stream); + char *gets(char *s); + + int printf(const char *format, ...); + int puts(const char *s); + int rename(const char *source, const char *target); + int sprintf(char *dest, const char *format, ...); + int ungetc(int c, FILE *stream); + int vprintf(const char *s, va_list ap); + int vfprintf(FILE *stream, const char *s, va_list ap); + int vsprintf(char *buf, const char *s, va_list ap); + + int chdir(const char *path); /* Prototyped but not implemented */ + FILE *fdopen(int fd, const char *type); + int fstat(int fd, FAR struct stat *buf); /* Prototyped but not implemented */ + char *getcwd(FAR char *buf, size_t size); /* Prototyped but not implemented */ + int mkdir(const char *path, mode_t mode); + int rmdir(const char *path); + int stat(const char *path, FAR struct stat *buf); + int statfs(const char *path, FAR struct statfs *buf); /* Prototyped but not implemented */ +</pre></ul> + <hr> <h1>3.0 <A NAME="Data_Structures">OS Data Structures</a></h1> <H2>3.1 Scalar types</H2> @@ -5704,87 +5969,6 @@ notify a task when a message is available on a queue. have to do some redesign. </p> -<h1><a name="FileSystem">2.10 Filesystem Interfaces</a></h1> -<p> - The NuttX filesystem is very simple; it does not involve any block drivers or - particular filesystem (like FAT or EXT2 etc.). - The NuttX filesystem simply supports a set a filesystem APIs - (<code>open()</code>, <code>close()</code>, <code>read()</code>, <code>write</code>, etc.) - and a registration mechanism that allows devices drivers to a associated with <i>nodes</i> - in a file-system-like name space. -</p> - -<h2><a name="driveroperations">2.10.1 Driver Operations</a></h2> -<ul><pre> - #include &lt;fcntl.h&gt; - int open(const char *path, int oflag, ...); -</pre></ul> - -<ul><pre> - #include &lt;unistd.h&gt; - int close(int fd); - int dup(int fildes); - int dup2(int fildes1, int fildes2); - off_t lseek(int fd, off_t offset, int whence); - int read(int fd, void *buf, unsigned int nbytes); - int unlink(const char *path); - int write(int fd, const void *buf, unsigned int nbytes); -</pre></ul> - -<ul><pre> - #include &lt;sys/ioctl.h&gt; - int ioctl(int fd, int req, unsigned long arg); -</pre></ul> - -<h2><a name="directoryoperations">2.10.2 Directory Operations</a></h2> -<ul><pre> - #include &lt;dirent.h&gt; - int closedir(DIR *dirp); - FAR DIR *opendir(const char *path); - FAR struct dirent *readdir(FAR DIR *dirp); - int readdir_r(FAR DIR *dirp, FAR struct dirent *entry, FAR struct dirent **result); - void rewinddir(FAR DIR *dirp); - void seekdir(FAR DIR *dirp, int loc); - int telldir(FAR DIR *dirp); -</pre></ul> - -<h2><a name="standardio">2.10.3 Standard I/O</a></h2> -<ul><pre> - #include &lt;stdio.h&gt; - int fclose(FILE *stream); - int fflush(FILE *stream); - int feof(FILE *stream); /* Prototyped but not implemented */ - int ferror(FILE *stream); /* Prototyped but not implemented */ - int fgetc(FILE *stream); - char *fgets(char *s, int n, FILE *stream); - FILE *fopen(const char *path, const char *type); - int fprintf(FILE *stream, const char *format, ...); - int fputc(int c, FILE *stream); - int fputs(const char *s, FILE *stream); - size_t fread(void *ptr, size_t size, size_t n_items, FILE *stream); - int fseek(FILE *stream, long int offset, int whence); /* Prototyped but not implemented */ - size_t fwrite(const void *ptr, size_t size, size_t n_items, FILE *stream); - char *gets(char *s); - - int printf(const char *format, ...); - int puts(const char *s); - int rename(const char *source, const char *target); - int sprintf(char *dest, const char *format, ...); - int ungetc(int c, FILE *stream); - int vprintf(const char *s, va_list ap); - int vfprintf(FILE *stream, const char *s, va_list ap); - int vsprintf(char *buf, const char *s, va_list ap); - - int chdir(const char *path); /* Prototyped but not implemented */ - FILE *fdopen(int fd, const char *type); - int fstat(int fd, FAR struct stat *buf); /* Prototyped but not implemented */ - char *getcwd(FAR char *buf, size_t size); /* Prototyped but not implemented */ - int mkdir(const char *path, mode_t mode); - int rmdir(const char *path); - int stat(const char *path, FAR struct stat *buf); - int statfs(const char *path, FAR struct statfs *buf); /* Prototyped but not implemented */ -</pre></ul> - <h1><a name="index">Index</a></h1> <ul> <li><a href="#clockgetres">clock_getres</a></li> From a98793545d35d9cf678a9eb4c465cfa68f013c03 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 1 Jul 2007 18:23:03 +0000 Subject: [PATCH 0090/1518] Added cp command git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@303 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index fa3dbdd071..dd73585c12 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -614,7 +614,7 @@ Other memory: 0.2.8 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> * tools/Makefile.mkconfig: Under Cygwin, executable has a different name - * tools/mkdeps.sh & arch/arm/src/Makefile: Corrected a problem makeing dependencies + * tools/mkdeps.sh & arch/arm/src/Makefile: Corrected a problem making dependencies * tools/zipme.sh: Force directory name to be nuttx-xx.yy.zz * fs/fs_opendir.c: Correct errors in semaphore usage that can cause deadlock. * lib/lib_getopt.c: Added getopt() support @@ -631,6 +631,9 @@ Other memory: In this case, the old memory contents need to be copied to the new location and an allocated bit was not being set. * examples/ostest: Added an environment variable test. + * examples/nsh/: Break into several files. + * lib/: Added strrchr, basename, dirname + * examples/nsh/: Add cp command * Started m68322 </pre></ul> From 7ce7b67103e2ac423f1f769777783d5b5cda11c8 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 1 Jul 2007 19:22:54 +0000 Subject: [PATCH 0091/1518] Add rm and rmdir commandsChangeLog git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@304 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index dd73585c12..c9cf2f5d39 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -633,7 +633,7 @@ Other memory: * examples/ostest: Added an environment variable test. * examples/nsh/: Break into several files. * lib/: Added strrchr, basename, dirname - * examples/nsh/: Add cp command + * examples/nsh/: Add cp, rm, and rmdir commands * Started m68322 </pre></ul> From ab175dfc987999cc0b277fea3d4e105a7bd62fbf Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 1 Jul 2007 20:05:11 +0000 Subject: [PATCH 0092/1518] add set and unset git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@306 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index c9cf2f5d39..2ea742e702 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -633,7 +633,8 @@ Other memory: * examples/ostest: Added an environment variable test. * examples/nsh/: Break into several files. * lib/: Added strrchr, basename, dirname - * examples/nsh/: Add cp, rm, and rmdir commands + * examples/nsh/: Add cp, rm, rmdir, set, unset commands. echo will now print + environment variables. * Started m68322 </pre></ul> From 8e3f0d49efab1596bfbef5aab47c5772ae2eef5c Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 2 Jul 2007 13:02:56 +0000 Subject: [PATCH 0093/1518] Prep for 0.2.8 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@307 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 73 ++++++++++++++++++++-------------------- 1 file changed, 36 insertions(+), 37 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 2ea742e702..840879ef1e 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: June 30, 2007</p> + <p>Last Updated: July 2, 2007</p> </td> </tr> </table> @@ -183,7 +183,7 @@ </table> <p> - The 10th release of NuttX (nuttx-0.2.7) is available for download + The 11th release of NuttX (nuttx-0.2.8) is available for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. The change log associated with the release is available <a href="#currentrelease">here</a>. @@ -560,17 +560,7 @@ Other memory: telldir(), rewindir(). * Fixed ARM compilation errors introduced in 0.2.5 (that is what I get for only testing on the simulation). -</pre></ul> -<table width ="100%"> - <tr bgcolor="#e4e4e4"> - <td> - <a name="currentrelease">ChangeLog for Current Release</a> - </td> - </tr> -</table> - -<pre><ul> 0.2.7 2007-06-09 Gregory Nutt <spudmonkey@racsa.co.cr> * Added stat() to fs layer and to FAT @@ -592,7 +582,7 @@ Other memory: * Restructured some Makefiles to better handle enabling and disabling NuttX features without having so much conditional compilation in the source files. - * tools/mkconfig.c: No long depends on asprintf() and _GNU_SOURCE and + * tools/mkconfig.c: No longer depends on asprintf() and _GNU_SOURCE and so should now build in non-GNU, non-GLIBC environments. * include/nuttx/compiler.h: Fix for using SDCC with the Z80. * include/assert.h & arch/pjrc-8051/src/up_assert.c: SDCC does support @@ -601,6 +591,38 @@ Other memory: disabled. </pre></ul> +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="currentrelease">ChangeLog for Current Release</a> + </td> + </tr> +</table> + +<pre><ul> +0.2.8 2007-07-02 Gregory Nutt <spudmonkey@racsa.co.cr> + * tools/Makefile.mkconfig: Under Cygwin, executable has a different name + * tools/mkdeps.sh & arch/arm/src/Makefile: Corrected a problem makeing dependencies + * tools/zipme.sh: Force directory name to be nuttx-xx.yy.zz + * fs/fs_opendir.c: Correct errors in semaphore usage that can cause deadlock. + * lib/lib_getopt.c: Added getopt() support + * examples/nsh/: NSH now supports cat, mount, umount, and mkdir. ls supports + -l -s, and -R + * Added basic OS support to manage environment variables: environment + storage, cloning on task creation, sharing on pthread creation, destruction + on thread/task exit. + * Add environment variables APIs: environ, getenv, putenv, clearenv, setenv, + unsetenv + * Correct an error in realloc() when the block is extended "down" in memory. + In this case, the old memory contents need to be copied to the new location + and an allocated bit was not being set. + * examples/ostest/: Added an environment variable test. + * examples/nsh/: Break into several files. + * lib/: Added strrchr, basename, dirname + * examples/nsh/: Add cp, rm, rmdir, set, unset commands. echo will now print + environment variables. +</pre></ul> + <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> @@ -611,31 +633,8 @@ Other memory: <pre><ul> -0.2.8 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> +0.2.9 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> - * tools/Makefile.mkconfig: Under Cygwin, executable has a different name - * tools/mkdeps.sh & arch/arm/src/Makefile: Corrected a problem making dependencies - * tools/zipme.sh: Force directory name to be nuttx-xx.yy.zz - * fs/fs_opendir.c: Correct errors in semaphore usage that can cause deadlock. - * lib/lib_getopt.c: Added getopt() support - * examples/nsh: NSH now supports cat, mount, umount, and mkdir. ls supports - -l -s, and -R - * Added basic OS support to manage environment variables: environment - storage, cloning on task creation, sharing on pthread creation, destruction - on thread/task exit. - * Add environment variables APIs: environ, getenv, putenv, clearenv, setenv, - unsetenv - * Add environment variables APIs: environ, getenv, putenv, clearenv, setenv, - unsetenv - * Correct an error in realloc() when the block is extended "down" in memory. - In this case, the old memory contents need to be copied to the new location - and an allocated bit was not being set. - * examples/ostest: Added an environment variable test. - * examples/nsh/: Break into several files. - * lib/: Added strrchr, basename, dirname - * examples/nsh/: Add cp, rm, rmdir, set, unset commands. echo will now print - environment variables. - * Started m68322 </pre></ul> <table width ="100%"> From b8f1264da20dbe4a60d2da8d97bad93de9c4714a Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 26 Aug 2007 23:18:13 +0000 Subject: [PATCH 0094/1518] Adding uIP 1.0 git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@310 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 + Documentation/NuttxPortingGuide.html | 66 ++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 840879ef1e..7f8f7d8d1c 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -635,6 +635,8 @@ Other memory: 0.2.9 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> + * Imported uIP into the tree (see + http://www.sics.se/~adam/uip/index.php/Main_Page) </pre></ul> <table width ="100%"> diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 38ab0c31e9..26bf110556 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -1294,6 +1294,72 @@ The system can be re-made subsequently by just typing <code>make</code>. </li> </ul> +<h2>Network Support</h2> +<h3>TCP/IP support via uIP</h2> +<ul> + <li> + <code>CONFIG_NET_UIP</code>: Enable or disable all uIP features + </li> + <li> + <code>CONFIG_NET_UIP_IPv6</code>: Build in support for IPv6 + </li> + <li> + <code>CONFIG_UIP_MAX_CONNECTIONS</code>: Maximum number of TCP connections + </li> + <li> + <code>CONFIG_UIP_MAX_LISTENPORTS</code>: Maximum number of listening TCP ports + </li> + <li> + <code>CONFIG_UIP_BUFFER_SIZE</code>: uIP buffer size + </li> + <li> + <code>CONFIG_UIP_LOGGING</code>: Logging on or off + </li> + <li> + <code>CONFIG_UIP_UDP</code>: UDP support on or off + </li> + <li> + <code>CONFIG_UIP_UDP_CHECKSUMS</code>: UDP checksums on or off + </li> + <li> + <code>CONFIG_UIP_UDP_CONNS</code>: The maximum amount of concurrent UDP connections + </li> + <li> + <code>CONFIG_UIP_STATISTICS</code>: uIP statistics on or off + </li> + <li> + <code>CONFIG_UIP_PINGADDRCONF</code>: Use "ping" packet for setting IP address + </li> + <li> + <code>CONFIG_UIP_RECEIVE_WINDOW</code>: The size of the advertised receiver's window + </li> + <li> + <code>CONFIG_UIP_ARPTAB_SIZE</code>: The size of the ARP table + </li> + <li> + <code>CONFIG_UIP_BROADCAST</code>: Broadcast support + </li> + <li> + <code>CONFIG_UIP_LLH_LEN</code>: The link level header length + </li> + <li> + <code>CONFIG_UIP_EXTERNAL_BUFFER</code>: Incoming packet buffer (uip_buf) is defined externally + </li> + <li> + <code>CONFIG_UIP_FWCACHE_SIZE</code>: number of packets to remember when looking for duplicates + </li> +</ul> + +<h3>UIP Network Utilities</h3> +<ul> + <li> + <code>CONFIG_UIP_DHCP_LIGHT</code>: Reduces size of DHCP + </li> + <li> + <code>CONFIG_UIP_RESOLV_ENTRIES</code>: Number of resolver entries + </li> +</ul> + <h2>Stack and heap information</h2> <ul> From be776f264ff9651d4289c49425cf18a6e16c6cc9 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 1 Sep 2007 18:06:15 +0000 Subject: [PATCH 0095/1518] Added support for socket descriptors git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@318 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 43 +++++++++++++++------------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 26bf110556..03e76cd079 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -1295,68 +1295,71 @@ The system can be re-made subsequently by just typing <code>make</code>. </ul> <h2>Network Support</h2> -<h3>TCP/IP support via uIP</h2> +<h3>TCP/IP and UDP support via uIP</h2> <ul> <li> - <code>CONFIG_NET_UIP</code>: Enable or disable all uIP features + <code>CONFIG_NET</code>: Enable or disable all network features </li> <li> - <code>CONFIG_NET_UIP_IPv6</code>: Build in support for IPv6 + <code>CONFIG_NET_IPv6</code>: Build in support for IPv6 </li> <li> - <code>CONFIG_UIP_MAX_CONNECTIONS</code>: Maximum number of TCP connections + <code>CONFIG_NSOCKET_DESCRIPTORS</code>: Maximum number of socket descriptors per task/thread. </li> <li> - <code>CONFIG_UIP_MAX_LISTENPORTS</code>: Maximum number of listening TCP ports + <code>CONFIG_NET_MAX_CONNECTIONS</code>: Maximum number of TCP connections </li> <li> - <code>CONFIG_UIP_BUFFER_SIZE</code>: uIP buffer size + <code>CONFIG_NET_MAX_LISTENPORTS</code>: Maximum number of listening TCP ports </li> <li> - <code>CONFIG_UIP_LOGGING</code>: Logging on or off + <code>CONFIG_NET_BUFFER_SIZE</code>: uIP buffer size </li> <li> - <code>CONFIG_UIP_UDP</code>: UDP support on or off + <code>CONFIG_NET_LOGGING</code>: Logging on or off </li> <li> - <code>CONFIG_UIP_UDP_CHECKSUMS</code>: UDP checksums on or off + <code>CONFIG_NET_UDP</code>: UDP support on or off </li> <li> - <code>CONFIG_UIP_UDP_CONNS</code>: The maximum amount of concurrent UDP connections + <code>CONFIG_NET_UDP_CHECKSUMS</code>: UDP checksums on or off </li> <li> - <code>CONFIG_UIP_STATISTICS</code>: uIP statistics on or off + <code>CONFIG_NET_UDP_CONNS</code>: The maximum amount of concurrent UDP connections </li> <li> - <code>CONFIG_UIP_PINGADDRCONF</code>: Use "ping" packet for setting IP address + <code>CONFIG_NET_STATISTICS</code>: uIP statistics on or off </li> <li> - <code>CONFIG_UIP_RECEIVE_WINDOW</code>: The size of the advertised receiver's window + <code>CONFIG_NET_PINGADDRCONF</code>: Use "ping" packet for setting IP address </li> <li> - <code>CONFIG_UIP_ARPTAB_SIZE</code>: The size of the ARP table + <code>CONFIG_NET_RECEIVE_WINDOW</code>: The size of the advertised receiver's window </li> <li> - <code>CONFIG_UIP_BROADCAST</code>: Broadcast support + <code>CONFIG_NET_ARPTAB_SIZE</code>: The size of the ARP table </li> <li> - <code>CONFIG_UIP_LLH_LEN</code>: The link level header length + <code>CONFIG_NET_BROADCAST</code>: Broadcast support </li> <li> - <code>CONFIG_UIP_EXTERNAL_BUFFER</code>: Incoming packet buffer (uip_buf) is defined externally + <code>CONFIG_NET_LLH_LEN</code>: The link level header length </li> <li> - <code>CONFIG_UIP_FWCACHE_SIZE</code>: number of packets to remember when looking for duplicates + <code>CONFIG_NET_EXTERNAL_BUFFER</code>: Incoming packet buffer (uip_buf) is defined externally + </li> + <li> + <code>CONFIG_NET_FWCACHE_SIZE</code>: number of packets to remember when looking for duplicates </li> </ul> <h3>UIP Network Utilities</h3> <ul> <li> - <code>CONFIG_UIP_DHCP_LIGHT</code>: Reduces size of DHCP + <code>CONFIG_NET_DHCP_LIGHT</code>: Reduces size of DHCP </li> <li> - <code>CONFIG_UIP_RESOLV_ENTRIES</code>: Number of resolver entries + <code>CONFIG_NET_RESOLV_ENTRIES</code>: Number of resolver entries </li> </ul> From 43f373cb9833fefe74a3eb74a0269c7f88a24344 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 1 Sep 2007 20:56:19 +0000 Subject: [PATCH 0096/1518] Adding socket(), bind() logic git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@319 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 7f8f7d8d1c..308e51e7d2 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -637,6 +637,7 @@ Other memory: * Imported uIP into the tree (see http://www.sics.se/~adam/uip/index.php/Main_Page) + * Adding socket(), bind(), connect() </pre></ul> <table width ="100%"> From 5b9067615483d43abb1cae82d2f9469e1b18b75f Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 2 Sep 2007 19:43:16 +0000 Subject: [PATCH 0097/1518] Added snprintf git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@325 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 308e51e7d2..ef9aa49f7d 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -638,6 +638,7 @@ Other memory: * Imported uIP into the tree (see http://www.sics.se/~adam/uip/index.php/Main_Page) * Adding socket(), bind(), connect() + * Added snprintf() </pre></ul> <table width ="100%"> From 3bd3503f1a8574e841e9b5fcd75556c021eec7f7 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 3 Sep 2007 20:34:44 +0000 Subject: [PATCH 0098/1518] Add send, sendto, rec, recvfrom git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@328 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index ef9aa49f7d..e42714ad25 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -639,6 +639,8 @@ Other memory: http://www.sics.se/~adam/uip/index.php/Main_Page) * Adding socket(), bind(), connect() * Added snprintf() + * Added send() and sendto(); integrate write() and close() with socket descriptors. + * Added recv() and recvfrom(). </pre></ul> <table width ="100%"> From e4f45dc180f91db1a9d31f6e7eab60e3aa67fa14 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 7 Sep 2007 00:10:10 +0000 Subject: [PATCH 0099/1518] Added framework for getsockopt() setsockopt() git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@332 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index e42714ad25..1f21193459 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -632,15 +632,15 @@ Other memory: </table> <pre><ul> - 0.2.9 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> * Imported uIP into the tree (see http://www.sics.se/~adam/uip/index.php/Main_Page) * Adding socket(), bind(), connect() * Added snprintf() - * Added send() and sendto(); integrate write() and close() with socket descriptors. + * Added send() and sendto(); integrate write() and close() with socket descriptors. * Added recv() and recvfrom(). + * Added getsockopt() and setsockopt() </pre></ul> <table width ="100%"> From e5b0288b90e1ea47185fd38997758bcb3d691e42 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 8 Sep 2007 15:26:55 +0000 Subject: [PATCH 0100/1518] Documentation update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@333 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 +- Documentation/NuttxPortingGuide.html | 65 +++- Documentation/NuttxUserGuide.html | 538 ++++++++++++++++++++++++++- 3 files changed, 581 insertions(+), 25 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 1f21193459..bd511e9407 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: July 2, 2007</p> + <p>Last Updated: September 8, 2007</p> </td> </tr> </table> @@ -641,6 +641,7 @@ Other memory: * Added send() and sendto(); integrate write() and close() with socket descriptors. * Added recv() and recvfrom(). * Added getsockopt() and setsockopt() + * Documentation updated to address socket interfaces. </pre></ul> <table width ="100%"> diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 03e76cd079..5b83352329 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -16,7 +16,7 @@ </b></big> <p><small>by</small></p> <p>Gregory Nutt</p> - <p><small>Last Update: May 26, 2007</small></p> + <p><small>Last Update: September 8, 2007</small></p> </center> <center><h1>Table of Contents</h1></center> @@ -46,9 +46,11 @@ <li><a href="#DirStructInclude">2.7 include/</a></li> <li><a href="#DirStructLib">2.8 lib/</a></li> <li><a href="#DirStructMm">2.9 mm/</a></li> - <li><a href="#DirStructSched">2.10 sched/</a></li> - <li><a href="#DirStructTools">2.11 tools/</a></li> - <li><a href="#topmakefile">2.12 Makefile</a></li> + <li><a href="#DirStructNet">2.10 net</a></li> + <li><a href="#DirStructNetUtils">2.11 netutils</a></li> + <li><a href="#DirStructSched">2.12 sched/</a></li> + <li><a href="#DirStructTools">2.13 tools/</a></li> + <li><a href="#topmakefile">2.14 Makefile</a></li> </ul> <li><a href="#configandbuild">3.0 Configuring and Building</a></li> <ul> @@ -139,8 +141,8 @@ | | | `-- <i>(board-specific source files)</i> | | `-- <i>(board-specific configuration files)</i> | `-- <i>&lt;other-boards&gt;</i>/ -|-- <a href="#DirStructDrivers">drivers</a> -| |-- Makefile/ +|-- <a href="#DirStructDrivers">drivers</a>/ +| |-- Makefile | `-- <i>(common driver source files)</i> |-- <a href="#DirStructExamples">examples</a>/ | `-- <i>(example)</i>/ @@ -148,9 +150,16 @@ | `-- <i>(example source files)</i> |-- <a href="#DirStructFs">fs</a>/ | |-- Makefile -| `-- <i>(fs source files)</i> +| `-- <i>(common file system source files)</i> |-- <a href="#DirStructInclude">include</a>/ | |-- <i>(standard header files)</i> +| |-- arpa/ +| | `-- <i>(standard header files)</i> +| |-- net/ +| | `-- uip/ +| | `-- <i>(uIP specific header files)</i> +| |-- netinet/ +| | `-- <i>(standard header files)</i> | |-- nuttx/ | | `-- <i>(nuttx specific header files)</i> | `- sys/ @@ -160,7 +169,29 @@ | `-- <i>(lib source files)</i> |-- <a href="#DirStructMm">mm</a>/ | |-- Makefile -| `-- <i>(mm source files)</i> +| `-- <i>(memory management source files)</i> +|-- <a href="#DirStructNet">net</a>/ +| |-- Makefile +| |-- uip/ +| | `-- <i>(uip source files)</i> +| `-- <i>(socket source files)</i> +|-- <a href="#DirStructNetUtils">netutils</a>/ +| |-- dhcp/ +| | `-- <i>(dhcp source files)</i> +| |-- resolv/ +| | `-- <i>(resolv source files)</i> +| |-- smtp/ +| | `-- <i>(smtp source files)</i> +| |-- telnetd/ +| | `-- <i>(telnetd source files)</i> +| |-- uiplib/ +| | `-- <i>(uiplib source files)</i> +| |-- weblclient/ +| | `-- <i>(webclient source files)</i> +| |-- webserver/ +| | `-- <i>(webserver source files)</i> +| |-- Makefile +| `-- <i>(fs source files)</i> |-- <a href="#DirStructSched">sched</a>/ | |-- Makefile | `-- <i>(sched source files)</i> @@ -604,18 +635,30 @@ This is the NuttX memory manager. </p> -<h2>2.10 <a name="DirStructSched">sched</a></h2> +<h2>2.10 <a name="DirStructNet">net</a></h2> +<p> + This directory contains the implementation of the socket APIs. + The subdirectory, <code>uip</code> contians the uIP port. +</P> + +<h2>2.11 <a name="DirStructNetUtils">netutils</a></h2> +<p> + This directory contains most of the network applications contained under the uIP-1.0 apps directory. + As the uIP apps/README says, these applications "are not all heavily tested." +</p> + +<h2>2.12 <a name="DirStructSched">sched</a></h2> <p> The files forming core of the NuttX RTOS reside here. </p> -<h2>2.11 <a name="DirStructTools">tools</a></h2> +<h2>2.13 <a name="DirStructTools">tools</a></h2> <p> This directory holds a collection of tools and scripts to simplify configuring and building NuttX. </p> -<h2>2.12 <a name="topmakefile">Makefile</a></h2> +<h2>2.14 <a name="topmakefile">Makefile</a></h2> <p> The top-level <code>Makefile</code> in the <code>${TOPDIR}</code> directory contains all of the top-level control logic to build NuttX. diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 7f0b7e5bf0..8ba1521842 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -21,7 +21,7 @@ User's Manual <p> Gregory Nutt <p> -<small>Last Update: June 30, 2007</small> +<small>Last Update: September 8, 2007</small> </center> <h1>1.0 <A NAME="Introduction">Introduction</a></h1> @@ -55,6 +55,7 @@ Gregory Nutt <li>Paragraph 2.9 <a href="#Pthread">Pthread Interfaces</a></li> <li>Paragraph 2.10 <a href="#Environ">Environment Variables</a></li> <li>Paragraph 2.11 <a href="#FileSystem">Filesystem Interfaces</a></li> + <li>Paragraph 2.12 <a href="#Network">Network Interfaces</a></li> </ul> </li> <li> @@ -612,7 +613,7 @@ Compatible with the POSIX interface of the same name. <p> <b>Returned Values:</b> On success, sched_setparam() returns 0 (OK). - On error, -1 (ERROR) is returned, and errno is set appropriately. + On error, -1 (ERROR) is returned, and<code>errno</code>is set appropriately. </p> <ul> @@ -713,7 +714,7 @@ interface of the same name. <p> <b>Returned Values:</b> On success, <i>sched_setscheduler()</i> returns OK (zero). On - error, ERROR (-1) is returned, and errno is set appropriately: + error, ERROR (-1) is returned, and<code>errno</code>is set appropriately: </p> <ul> <li>EINVAL The scheduling policy is not one of the @@ -761,7 +762,7 @@ policy. <li> On success, <i>sched_getscheduler()</i> returns the policy for the task (either SCHED_FIFO or SCHED_RR). - On error, ERROR (-1) is returned, and errno is set appropriately: + On error, ERROR (-1) is returned, and<code>errno</code>is set appropriately: <ul> <li>ESRCH The task whose ID is pid could not be found.</li> </ul> @@ -893,7 +894,7 @@ priority of the calling task is returned. <p> <b>Returned Values:</b> On success, sched_rr_get_interval() returns OK (0). On - error, ERROR (-1) is returned, and errno is set to: + error, ERROR (-1) is returned, and<code>errno</code>is set to: </p> <ul> <li>EFAULT Cannot copy to interval</LI> @@ -2521,7 +2522,7 @@ VxWorks provides the following comparable interface: If the call succeeds, <code>timer_create()</code> will return 0 (<code>OK</code>) and update the location referenced by <code>timerid</code> to a <code>timer_t</code>, which can be passed to the other per-thread timer calls. If an error occurs, the function will return - a value of -1 (<code>ERROR</code>) and set errno to indicate the error. + a value of -1 (<code>ERROR</code>) and set<code>errno</code>to indicate the error. </p> <ul> <li><code>EAGAIN</code>. The system lacks sufficient signal queuing resources to honor the @@ -2569,7 +2570,7 @@ VxWorks provides the following comparable interface: </p> <p> If successful, the <I>timer_delete()</I> function will return zero (<I>OK</I>). - Otherwise, the function will return a value of -1 (ERROR) and set errno to indicate the error: + Otherwise, the function will return a value of -1 (ERROR) and set<code>errno</code>to indicate the error: </p> <ul> <li><code>EINVAL</code>. The timer specified timerid is not valid.</li> @@ -2646,7 +2647,7 @@ VxWorks provides the following comparable interface: </p> <p> If the timer_gettime() succeeds, a value of 0 (OK) will be returned. - If an error occurs, the value -1 (ERROR) will be returned, and errno set to indicate the error. + If an error occurs, the value -1 (ERROR) will be returned, and<code>errno</code>set to indicate the error. </p> <ul> <li><code>EINVAL</code>. The timerid argument does not correspond to an ID returned by timer_create() but not yet deleted by timer_delete().</li> @@ -3306,7 +3307,7 @@ is delivered more than once.&quot; <ul> <li> On success (at least one signal was sent), zero (OK) is returned. - On error, -1 (ERROR) is returned, and errno is set appropriately. + On error, -1 (ERROR) is returned, and<code>errno</code>is set appropriately. <ul> <li><code>EGAIN</code>. The limit of signals which may be queued has been reached.</li> <li><code>EINVAL</code>. signo was invalid.</li> @@ -5767,6 +5768,501 @@ interface of the same name. int statfs(const char *path, FAR struct statfs *buf); /* Prototyped but not implemented */ </pre></ul> +<h2>2.12 <a name="Network">Network Interfaces</a></h2> +<p>NuttX includes a simple interface layer based on uIP (see <a href="http://www.sics.se/~adam/uip/index.php/Main_Page">http://www.sics.se</a>). +NuttX supports subset of a standard socket interface to uIP. +These network feature can be enabled by settings in the architecture +<a href="NuttxPortingGuide.html#apndxconfigs">configuration file</a>. +Those socket APIs are discussed in the following paragraphs.</p> +<ul> +<li> +</li> +<li><a href="#socket">2.12.1 socket</a></li> +<li><a href="#bind">2.12.2 bind</a></li> +<li><a href="#connect">2.12.3 connect</a></li> +<li><a href="#send">2.12.4 send</a></li> +<li><a href="#sendto">2.12.5 sendto</a></li> +<li><a href="#recv">2.12.6 recv</a></li> +<li><a href="#recvfrom">2.12.7 recvfrom</a></li> +<li><a href="#setsockopt">2.12.8 setsockopt</a></li> +<li><a href="#getsockopt">2.12.9 getsockopt</a></li> +</ul> + +<h3><a name="socket">2.12.1 <code>socket</code></a></h3> +<p> + <b>Function Prototype:</b> +</p> +<pre> + #include <sys/socket.h> + int socket(int domain, int type, int protocol); +</pre> +<p> + <b>Description:</b> + socket() creates an endpoint for communication and returns a descriptor. +</p> +<p> + <b>Input Parameters:</b> +</p> +<p> +<ul> + <li><code>domain</code>: (see sys/socket.h)</li> + <li><code>type</code>: (see sys/socket.h)</li> + <li><code>protocol</code>: (see sys/socket.h)</li> +</ul> +<p> + <b>Returned Values:</b> + 0 on success; -1 on error with<code>errno</code>set appropriately: +</p> +<ul> + <li><code>EACCES</code>. + Permission to create a socket of the specified type and/or protocol is denied.</li> + <li><code>EAFNOSUPPORT</code>. + The implementation does not support the specified address family.</li> + <li><code>EINVAL</code>. + Unknown protocol, or protocol family not available.</li> + <li><code>EMFILE</code>. + Process file table overflow.</li> + <li><code>ENFILE</code> + The system limit on the total number of open files has been reached.</li> + <li><code>ENOBUFS</code> or <code>ENOMEM</code>. + Insufficient memory is available. The socket cannot be created until sufficient resources are freed.</li> + <li><code>EPROTONOSUPPORT</code>. + The protocol type or the specified protocol is not supported within this domain.</li> +</ul> + +<h3><a name="bind">2.12.2 <code>bind</code></a></h3> +<p> + <b>Function Prototype:</b> +</p> +<pre> + #include <sys/socket.h> + int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen); +</pre> +<p> + <b>Description:</b> + <code>bind()</code> gives the socket sockfd the local address <code>addr</code>. + <code>addr</code> is <code>addrlen</code> bytes long. Traditionally, this is called + &quot;assigning a name to a socket.&quot; When a socket is created with <code>socket()</code>, + it exists in a name space (address family) but has no name assigned. +<p> +</p> +<p> + <b>Input Parameters:</b> +</p> +<p> +<ul> + <li><code>sockfd</code>: Socket descriptor from socket.</li> + <li><code>addr</code>: Socket local address.</li> + <li><code>addrlen</code>: Length of <code>addr</code>.</li> +</ul> +<p> + <b>Returned Values:</b> + 0 on success; -1 on error with<code>errno</code>set appropriately: +</p> +<ul> + <li><code>EACCES</code> + The address is protected, and the user is not the superuser.</li> + <li><code>EADDRINUSE</code> + The given address is already in use.</li> + <li><code>EBADF</code> + <code>sockfd</code> is not a valid descriptor.</li> + <li><code>EINVAL</code> + The socket is already bound to an address.</li> + <li><code>ENOTSOCK</code> + <code>sockfd</code> is a descriptor for a file, not a socket.</li> +</ul> + +<h3><a name="connect">2.12.3 <code>connect</code></a></h3> +<p> + <b>Function Prototype:</b> +</p> +<pre> + #include <sys/socket.h> + int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen); +</pre> +<p> + <b>Description:</b> + <code>connect()</code> connects the socket referred to by the file descriptor + <code>sockfd</code> to the address specified by <code>addr</code>. + The <code>addrlen</code> argument specifies the size of <code>addr</code>. + The format of the address in <code>addr</code> is determined by the address space + of the socket sockfd. + + If the socket sockfd is of type SOCK_DGRAM then <code>addr</code> is the address + to which datagrams are sent by default, and the only address from which + datagrams are received. If the socket is of type SOCK_STREAM or + SOCK_SEQPACKET, this call attempts to make a connection to the socket + that is bound to the address specified by <code>addr</code>. + + Generally, connection-based protocol sockets may successfully <code>connect()</code> + only once; connectionless protocol sockets may use <code>connect()</code> multiple + times to change their association. Connectionless sockets may dissolve + the association by connecting to an address with the sa_family member of + sockaddr set to AF_UNSPEC. +<p> +</p> +<p> + <b>Input Parameters:</b> +</p> +<p> +<ul> + <li><code>sockfd</code>: Socket descriptor returned by <code>socket()</code></li> + <li><code>addr</code>: Server address (form depends on type of socket)</li> + <li><code>addrlen</code>: Length of actual <code>addr</code></li> +</ul> +<p> + <b>Returned Values:</b> + 0 on success; -1 on error with<code>errno</code>set appropriately: +</p> + <li><code>EACCES</code> or </code>EPERM</code>: + The user tried to connect to a broadcast address without having the + socket broadcast flag enabled or the connection request failed + because of a local firewall rule.</li> + <li><code>EADDRINUSE</code> + Local address is already in use.</li> + <li><code>EAFNOSUPPORT</code> + The passed address didn't have the correct address family in its + sa_family field.</li> + <li><code>EAGAIN</code> + No more free local ports or insufficient entries in the routing + cache. For PF_INET.</li> + <li><code>EALREADY</code> + The socket is non-blocking and a previous connection attempt has + not yet been completed.</li> + <li><code>EBADF</code> + The file descriptor is not a valid index in the descriptor table.</li> + <li><code>ECONNREFUSED</code> + No one listening on the remote address.</li> + <li><code>EFAULT</code> + The socket structure address is outside the user's address space.</li> + <li><code>EINPROGRESS</code> + The socket is non-blocking and the connection cannot be completed + immediately.</li> + <li><code>EINTR</code> + The system call was interrupted by a signal that was caught.</li> + <li><code>EISCONN</code> + The socket is already connected.</li> + <li><code>ENETUNREACH</code> + Network is unreachable.</li> + <li><code>ENOTSOCK</code> + The file descriptor is not associated with a socket.</li> + <li><code>ETIMEDOUT</code> + Timeout while attempting connection. The server may be too busy + to accept new connections.</li> +</ul> + +<h3><a name="send">2.12.4 <code>send</code></a></h3> +<p> + <b>Function Prototype:</b> +</p> +<pre> + #include <sys/socket.h> + ssize_t send(int sockfd, const void *buf, size_t len, int flags); +</pre> +<p> + <b>Description:</b> + The <code>send()</code> call may be used only when the socket is in a connected state + (so that the intended recipient is known). + The only difference between <code>send()</code> and <code>write()</code> is the + presence of <code>flags</code>. + With <code>zero</code> flags parameter, <code>send()</code> is equivalent to + <code>write()</code>. Also, <code>send(s,buf,len,flags)</code> is + equivalent to <code>sendto(s,buf,len,flags,NULL,0)</code>. +</p> +<p> + <b>Input Parameters:</b> +</p> +<ul> + <li><code>sockfd</code>: Socket descriptor of socket + <li><code>buf</code>: Data to send + <li><code>len</code>: Length of data to send + <li><code>flags</code>: Send flags +</ul> +<p> + <b>Returned Values:</b> + See <a href="#sendto"><code>sendto()</code></a>. +</p> + +<h3><a name="sendto">2.12.5 <code>sendto</code></a></h3> +<p> + <b>Function Prototype:</b> +</p> +<pre> + #include <sys/socket.h> + ssize_t sendto(int sockfd, const void *buf, size_t len, int flags, + const struct sockaddr *to, socklen_t tolen); +</pre> +<p> + <b>Description:</b> + If <code>sendto()</code> is used on a connection-mode (SOCK_STREAM, SOCK_SEQPACKET) + socket, the parameters to and tolen are ignored (and the error EISCONN + may be returned when they are not NULL and 0), and the error ENOTCONN is + returned when the socket was not actually connected. +<p> +</p> +<p> + <b>Input Parameters:</b> +</p> +<ul> + <li><code>sockfd</code>: Socket descriptor of socket + <li><code>buf</code>: Data to send + <li><code>len</code>: Length of data to send + <li><code>flags</code>: Send flags + <li><code>to</code>: Address of recipient + <li><code>tolen</code>: The length of the address structure +</ul> +<p> + <b>Returned Values:</b> + On success, returns the number of characters sent. On error, -1 is returned, and<code>errno</code>is set appropriately: +</p> +<ul> + <li><code>EAGAIN</code> or <code>EWOULDBLOCK</code>. + The socket is marked non-blocking and the requested operation would block. + <li><code>EBADF</code>. + An invalid descriptor was specified. + <li><code>ECONNRESET</code>. + Connection reset by peer. + <li><code>EDESTADDRREQ</code>. + The socket is not connection-mode, and no peer address is set. + <li><code>EFAULT</code>. + An invalid user space address was specified for a parameter. + <li><code>EINTR</code>. + A signal occurred before any data was transmitted. + <li><code>EINVAL</code>. + Invalid argument passed. + <li><code>EISCONN</code>. + The connection-mode socket was connected already but a recipient + was specified. (Now either this error is returned, or the recipient + specification is ignored.) + <li><code>EMSGSIZE</code>. + The socket type requires that message be sent atomically, and the + size of the message to be sent made this impossible. + <li><code>ENOBUFS</code>. + The output queue for a network interface was full. This generally + indicates that the interface has stopped sending, but may be + caused by transient congestion. + <li><code>ENOMEM</code>. + No memory available. + <li><code>ENOTCONN</code>. + The socket is not connected, and no target has been given. + <li><code>ENOTSOCK</code>. + The argument s is not a socket. + <li><code>EOPNOTSUPP</code>. + Some bit in the flags argument is inappropriate for the socket type. + <li><code>EPIPE</code>. + The local end has been shut down on a connection oriented socket. + In this case the process will also receive a SIGPIPE unless + MSG_NOSIGNAL is set. +</ul> + +<h3><a name="recv">2.12.6 <code>recv</code></a></h3> +<p> + <b>Function Prototype:</b> +</p> +<pre> + #include <sys/socket.h> + ssize_t recv(int sockfd, void *buf, size_t len, int flags); +</pre> +<p> + <b>Description:</b> + The <code>recv()</code> call is identical to + <a href="#recvfrom"><code>recvfrom()</code></a> with a NULL + <code>from</code> parameter. +<p> +</p> +<p> + <b>Input Parameters:</b> +</p> +<ul> + </li> + <li>sockfd</code>: Socket descriptor of socket </li> + <li>buf</code>: Buffer to receive data </li> + <li>len</code>: Length of buffer </li> + <li>flags</code>: Receive flags </li> +</ul> +<p> + <b>Returned Values:</b> + see <a href="#recvfrom"><code>recvfrom()</code></a>. + Zero on success. +</p> + +<h3><a name="recvfrom">2.12.7 <code>recvfrom</code></a></h3> +<p> + <b>Function Prototype:</b> +</p> +<pre> + #include <sys/socket.h> + ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags, + struct sockaddr *from, socklen_t *fromlen); +</pre> +<p> + <b>Description:</b> + <code>recvfrom()</code> receives messages from a socket, and may be used to receive + data on a socket whether or not it is connection-oriented. +</p> +<p> + If <code>from</code> is not NULL, and the underlying protocol provides the source + address, this source address is filled in. The argument <code>fromlen</code> + initialized to the size of the buffer associated with <code>from</code>, and modified + on return to indicate the actual size of the address stored there. +</p> +<p> + <b>Input Parameters:</b> +</p> +<ul> + <li><code>sockfd</code>: Socket descriptor of socket.</li> + <li><code>buf</code>: Buffer to receive data.</li> + <li><code>len</code>: Length of buffer.</li> + <li><code>flags</code>: Receive flags.</li> + <li><code>from</code>: Address of source.</li> + <li><code>fromlen</code>: The length of the address structure.</li> +</ul> +<p> + <b>Returned Values:</b> + On success, returns the number of characters sent. + On error, -1 is returned, and errno is set appropriately: +</p> +<ul> + <li><code>EAGAIN</code>. + The socket is marked non-blocking and the receive operation would block, + or a receive timeout had been set and the timeout expired before data + was received. + <li><code>EBADF</code>. + The argument <code>sockfd</code> is an invalid descriptor. + <li><code>ECONNREFUSED</code>. + A remote host refused to allow the network connection (typically because + it is not running the requested service). + <li><code>EFAULT</code>. + The receive buffer pointer(s) point outside the process's address space. + <li><code>EINTR</code>. + The receive was interrupted by delivery of a signal before any data were + available. + <li><code>EINVAL</code>. + Invalid argument passed. + <li><code>ENOMEM</code>. + Could not allocate memory. + <li><code>ENOTCONN</code>. + The socket is associated with a connection-oriented protocol and has + not been connected. + <li><code>ENOTSOCK</code>. + The argument <code>sockfd</code> does not refer to a socket. +</ul> + +<h3><a name="setsockopt">2.12.8 <code>setsockopt</code></a></h3> +<p> + <b>Function Prototype:</b> +</p> +<pre> + #include <sys/socket.h> + int setsockopt(int sockfd, int level, int option, + const void *value, socklen_t value_len); +</pre> +<p> + <b>Description:</b> + <code>setsockopt()</code> sets the option specified by the <code>option</code> argument, + at the protocol level specified by the <code>level</code> argument, to the value + pointed to by the <code>value</code> argument for the socket associated with the + file descriptor specified by the <code>sockfd</code> argument. +</p> +<p> + The <code>level</code> argument specifies the protocol level of the option. To set + options at the socket level, specify the level argument as SOL_SOCKET. +</p> +<p> + See <sys/socket.h> a complete list of values for the <code>option</code> argument. +</p> +<p> + <b>Input Parameters:</b> +</p> +<ul> + <li><code>sockfd</code>: Socket descriptor of socket + <li><code>level</code>: Protocol level to set the option + <li><code>option</code>: identifies the option to set + <li><code>value</code>: Points to the argument value + <li><code>value_len</code>: The length of the argument value +</ul> +<p> + <b>Returned Values:</b> + On success, returns the number of characters sent. + On error, -1 is returned, and errno is set appropriately: +</p> +<ul> + <li><code>BADF</code>. + The <code>sockfd</code> argument is not a valid socket descriptor. + <li><code>DOM</code>. + The send and receive timeout values are too big to fit into the + timeout fields in the socket structure. + <li><code>INVAL</code>. + The specified option is invalid at the specified socket <code>level</code> or the + socket has been shut down. + <li><code>ISCONN</code>. + The socket is already connected, and a specified option cannot be set + while the socket is connected. + <li><code>NOPROTOOPT</code>. + The <code>option</code> is not supported by the protocol. + <li><code>NOTSOCK</code>. + The <code>sockfd</code> argument does not refer to a socket. + <li><code>NOMEM</code>. + There was insufficient memory available for the operation to complete. + <li><code>NOBUFS</code>. + Insufficient resources are available in the system to complete the call. +</ul> + +<h3><a name="getsockopt">2.12.9 <code>getsockopt</code></a></h3> +<p> + <b>Function Prototype:</b> +</p> +<pre> + #include <sys/socket.h> + int getsockopt(int sockfd, int level, int option, + void *value, socklen_t *value_len); +</pre> +<p> + <b>Description:</b> + <code>getsockopt()</code> retrieve thse value for the option specified by the + <code>option</code> argument for the socket specified by the <code>sockfd</code> argument. If + the size of the option value is greater than <code>value_len</code>, the value + stored in the object pointed to by the <code>value</code> argument will be silently + truncated. Otherwise, the length pointed to by the <code>value_len</code> argument + will be modified to indicate the actual length of the<code>value</code>. +</p> +<p> + The <code>level</code> argument specifies the protocol level of the option. To + retrieve options at the socket level, specify the level argument as + SOL_SOCKET. +</p> +<p> + See <sys/socket.h> a complete list of values for the <code>option</code> argument. +</p> +<p> + <b>Input Parameters:</b> +</p> +<ul> + <li><code>sockfd Socket descriptor of socket + <li><code>level Protocol level to set the option + <li><code>option identifies the option to get + <li><code>value Points to the argument value + <li><code>value_len The length of the argument value +</ul> +<p> + <b>Returned Values:</b> + On success, returns the number of characters sent. + On error, -1 is returned, and errno is set appropriately: +</p> +<ul> + <li><code>BADF</code>. + The <code>sockfd</code> argument is not a valid socket descriptor.</li> + <li><code>INVAL</code>. + The specified option is invalid at the specified socket <code>level</code> or the + socket has been shutdown.</li> + <li><code>NOPROTOOPT</code>. + The <code>option</code> is not supported by the protocol.</li> + <li><code>NOTSOCK</code>. + The <code>sockfd</code> argument does not refer to a socket.</li> + <li><code>NOBUFS + Insufficient resources are available in the system to complete the call.</li> +</ul> + <hr> <h1>3.0 <A NAME="Data_Structures">OS Data Structures</a></h1> <H2>3.1 Scalar types</H2> @@ -5815,8 +6311,8 @@ function call: <b>Description</b>: <I>osGetErrnorPtr()</I> returns a pointer to the thread-specific <I>errno</I> value. <p> -This differs somewhat from the use for errno in a multi-threaded process environment: -Each pthread will have its own private copy of errno and the errno will not be shared +This differs somewhat from the use for<code>errno</code>in a multi-threaded process environment: +Each pthread will have its own private copy of<code>errno</code>and the<code>errno</code>will not be shared between pthreads. <p> <b>Input Parameters</b>: None @@ -5970,17 +6466,22 @@ notify a task when a message is available on a queue. </p> <h1><a name="index">Index</a></h1> -<ul> +<table width="100%"> +<tr> +<td> + <li><a href="#bind">bind</a></li> <li><a href="#clockgetres">clock_getres</a></li> <li><a href="#clockgettime">clock_gettime</a></li> <li><a href="#ClocksNTimers">Clocks</a></li> <li><a href="#clocksettime">clock_settime</a></li> + <li><a href="#connect">connect</a></li> <li><a href="#Data_Structures">Data structures</a></li> <li><a href="#directoryoperations">Directory operations</a></li> <li><a href="#driveroperations">Driver operations</a></li> <li><a href="#exit">exit</a></li> <li><a href="#FileSystem">Filesystem interfaces</a></li> <li><a href="#getpid">getpid</a></li> + <li><a href="#getsockopt">getsockopt</a></li> <li><a href="#gmtimer">gmtime_r</a></li> <li><a href="#Introduction">Introduction</a> <li><a href="#kill">kill</a></li> @@ -5997,6 +6498,7 @@ notify a task when a message is available on a queue. <li><a href="#mqtimedreceive">mq_timedreceive</a></li> <li><a href="#mqtimedsend">mq_timedsend</a></li> <li><a href="#mqunlink">mq_unlink</a></li> + <li><a href="#Network">Network Interfaces</a></li> <li><a href="#OS_Interfaces">OS Interfaces</a> <li><a href="#Pthread">Pthread Interfaces</a> <li><a href="#pthreadattrdestroy">pthread_attr_destroy</a></li> @@ -6040,6 +6542,8 @@ notify a task when a message is available on a queue. <li><a href="#pthreadmutexattrsetpshared">pthread_mutexattr_setpshared</a></li> <li><a href="#pthreadmutexdestrory">pthread_mutex_destroy</a></li> <li><a href="#pthreadmutexinit">pthread_mutex_init</a></li> +</td> +<td> <li><a href="#pthreadmutexlock">pthread_mutex_lock</a></li> <li><a href="#pthreadmutextrylock">pthread_mutex_trylock</a></li> <li><a href="#pthreadmutexunlock">pthread_mutex_unlock</a></li> @@ -6052,6 +6556,8 @@ notify a task when a message is available on a queue. <li><a href="#pthreadsigmask">pthread_sigmask</a></li> <li><a href="#pthreadtestcancelstate">pthread_testcancelstate</a></li> <li><a href="#pthreadyield">pthread_yield</a></li> + <li><a href="#recv">recv</a></li> + <li><a href="#recvfrom">recvfrom</a></li> <li><a href="#schedgetparam">sched_getparam</a></li> <li><a href="#schedgetprioritymax">sched_get_priority_max</a></li> <li><a href="#schedgetprioritymin">sched_get_priority_min</a></li> @@ -6073,6 +6579,9 @@ notify a task when a message is available on a queue. <li><a href="#semunlink">sem_unlink</a></li> <li><a href="#semwait">sem_wait</a></li> <li><a href="#setgetscheduler">sched_getscheduler</a></li> + <li><a href="#send">send</a></li> + <li><a href="#sendto">sendto</a></li> + <li><a href="#setsockopt">setsockopt</a></li> <li><a href="#sigaction">sigaction</a></li> <li><a href="#sigaddset">sigaddset</a></li> <li><a href="#sigdelset">sigdelset</a></li> @@ -6086,6 +6595,7 @@ notify a task when a message is available on a queue. <li><a href="#sigsuspend">sigsuspend</a></li> <li><a href="#sigtimedwait">sigtimedwait</a></li> <li><a href="#sigwaitinfo">sigwaitinfo</a></li> + <li><a href="#socket">socket</a></li> <li><a href="#standardio">Standard I/O</a></li> <li><a href="#taskactivate">task_activate</a></li> <li><a href="#Task_Control">Task Control Interfaces</a> @@ -6107,7 +6617,9 @@ notify a task when a message is available on a queue. <li><a href="#wddelete">wd_delete</a></li> <li><a href="#wdgettime">wd_gettime</a></li> <li><a href="#wdstart">wd_start</a></li> -</ul> +</td> +</tr> +</table> </BODY> </HTML> From 73f72f57590b8c21c2552cb8653da842982cd8ed Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 8 Sep 2007 19:50:59 +0000 Subject: [PATCH 0101/1518] Implemented several options in set/getsockopts git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@334 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 5b83352329..4e8c0beca8 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -1350,10 +1350,13 @@ The system can be re-made subsequently by just typing <code>make</code>. <code>CONFIG_NSOCKET_DESCRIPTORS</code>: Maximum number of socket descriptors per task/thread. </li> <li> - <code>CONFIG_NET_MAX_CONNECTIONS</code>: Maximum number of TCP connections + <code>CONFIG_NET_MAX_CONNECTIONS</code>: Maximum number of TCP connections (all tasks). </li> <li> - <code>CONFIG_NET_MAX_LISTENPORTS</code>: Maximum number of listening TCP ports + <code>CONFIG_NET_MAX_LISTENPORTS</code>: Maximum number of listening TCP ports (all tasks). + </li> + <li> + <code>CONFIG_NET_SOCKOPTS</code>: Enable or disable support for socket options. </li> <li> <code>CONFIG_NET_BUFFER_SIZE</code>: uIP buffer size From 30385cbb31bb714c9a53c628d59cda6eb4a86f35 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 8 Sep 2007 21:54:43 +0000 Subject: [PATCH 0102/1518] Added receive timeout via setsockopt(SO_RCVTIMEO) git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@336 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index bd511e9407..5e997c711b 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -632,7 +632,7 @@ Other memory: </table> <pre><ul> -0.2.9 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> +0.3.0 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> * Imported uIP into the tree (see http://www.sics.se/~adam/uip/index.php/Main_Page) @@ -642,6 +642,7 @@ Other memory: * Added recv() and recvfrom(). * Added getsockopt() and setsockopt() * Documentation updated to address socket interfaces. + * Implemented receive timeouts via setsockopt(SO_RCVTIMEO). </pre></ul> <table width ="100%"> From 4923399ec0d2b7ed32f986c9e53ec888e679deba Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 15 Sep 2007 22:45:45 +0000 Subject: [PATCH 0103/1518] Add basic structure to support multiple network interfaces git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@343 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 3 --- 1 file changed, 3 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 4e8c0beca8..9e823582ff 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -1391,9 +1391,6 @@ The system can be re-made subsequently by just typing <code>make</code>. <li> <code>CONFIG_NET_LLH_LEN</code>: The link level header length </li> - <li> - <code>CONFIG_NET_EXTERNAL_BUFFER</code>: Incoming packet buffer (uip_buf) is defined externally - </li> <li> <code>CONFIG_NET_FWCACHE_SIZE</code>: number of packets to remember when looking for duplicates </li> From 0291057897302061401f855e871ece15b2cc54a9 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 16 Sep 2007 22:12:04 +0000 Subject: [PATCH 0104/1518] Associate address with network driver; implement ioctl calls to set addresses git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@345 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 5e997c711b..43b85d5e95 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -643,6 +643,8 @@ Other memory: * Added getsockopt() and setsockopt() * Documentation updated to address socket interfaces. * Implemented receive timeouts via setsockopt(SO_RCVTIMEO). + * Provide support for multiple network devices + * Implement socket ioctl() calls to set addresses </pre></ul> <table width ="100%"> From bbd134bf41f3e208a86d60f6abc204e844577ec1 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 21 Sep 2007 00:43:20 +0000 Subject: [PATCH 0105/1518] CYGWIN caveat git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@350 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 9e823582ff..e97b6c69f5 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -373,6 +373,9 @@ This port does not support interrupts or a real timer (and hence no round robin scheduler) Otherwise, it is complete. </li> + <p>NOTE: This target will not run on Cygwin probably for many reasons but + first off because it uses some of the same symbols as does cygwind.dll. + </p> <li><code>arch/arm</code>: This directory holds common ARM architectures. At present, this includes From d9e7cffac83b6ee89cadb7e8405f31615339bf43 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 23 Sep 2007 16:58:09 +0000 Subject: [PATCH 0106/1518] Add framework for listen() and connect() -- still missing logic git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@353 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + Documentation/NuttxUserGuide.html | 147 +++++++++++++++++++++++++++--- 2 files changed, 134 insertions(+), 14 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 43b85d5e95..3369857b36 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -645,6 +645,7 @@ Other memory: * Implemented receive timeouts via setsockopt(SO_RCVTIMEO). * Provide support for multiple network devices * Implement socket ioctl() calls to set addresses + * Added listen() and accept() </pre></ul> <table width ="100%"> diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 8ba1521842..8485f287c0 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -21,7 +21,7 @@ User's Manual <p> Gregory Nutt <p> -<small>Last Update: September 8, 2007</small> +<small>Last Update: September 23, 2007</small> </center> <h1>1.0 <A NAME="Introduction">Introduction</a></h1> @@ -5780,12 +5780,14 @@ Those socket APIs are discussed in the following paragraphs.</p> <li><a href="#socket">2.12.1 socket</a></li> <li><a href="#bind">2.12.2 bind</a></li> <li><a href="#connect">2.12.3 connect</a></li> -<li><a href="#send">2.12.4 send</a></li> -<li><a href="#sendto">2.12.5 sendto</a></li> -<li><a href="#recv">2.12.6 recv</a></li> -<li><a href="#recvfrom">2.12.7 recvfrom</a></li> -<li><a href="#setsockopt">2.12.8 setsockopt</a></li> -<li><a href="#getsockopt">2.12.9 getsockopt</a></li> +<li><a href="#listen">2.12.4 listen</a></li> +<li><a href="#accept">2.12.5 accept</a></li> +<li><a href="#send">2.12.6 send</a></li> +<li><a href="#sendto">2.12.7 sendto</a></li> +<li><a href="#recv">2.12.8 recv</a></li> +<li><a href="#recvfrom">2.12.9 recvfrom</a></li> +<li><a href="#setsockopt">2.12.10 setsockopt</a></li> +<li><a href="#getsockopt">2.12.11 getsockopt</a></li> </ul> <h3><a name="socket">2.12.1 <code>socket</code></a></h3> @@ -5951,7 +5953,122 @@ Those socket APIs are discussed in the following paragraphs.</p> to accept new connections.</li> </ul> -<h3><a name="send">2.12.4 <code>send</code></a></h3> +<h3><a name="listen">2.12.4 listen</a></h3> +<p> + <b>Function Prototype:</b> +</p> +<pre> + #include <sys/socket.h> + int listen(int sockfd, int backlog); +</pre> +<p> + <b>Description:</b> + To accept connections, a socket is first created with <code>socket()</code>, a + willingness to accept incoming connections and a queue limit for incoming + connections are specified with <code>listen()</code>, and then the connections are + accepted with <code>accept()</code>. The <code>listen()</coe> call applies only to sockets of + type <code>SOCK_STREAM</code> or <code>SOCK_SEQPACKET</code>. +</p> +<p> + <b>Input Parameters:</b> +</p> +<ul> + <li><code>sockfd</code>: Socket descriptor of the bound socket.</li> + <li><code>backlog</code>: The maximum length the queue of pending connections may grow. + If a connection request arrives with the queue full, the client may receive an error + with an indication of ECONNREFUSED or, if the underlying protocol supports retransmission, + the request may be ignored so that retries succeed.</li> +</ul> +<p> + <b>Returned Values:</b> + On success, zero is returned. On error, -1 is returned, and errno is set appropriately. +</p> +<ul> + <li><code>EADDRINUSE</code>: Another socket is already listening on the same port.</li> + <li><code>EBADF</code>: The argument <code>sockfd</code> is not a valid descriptor.</li> + <li><code>ENOTSOCK</code>: The argument <code>sockfd</code> is not a socket.</li> + <li><code>EOPNOTSUPP</code>: The socket is not of a type that supports the listen operation.</li> + </ul> + +<h3><a name="accept">2.12.5 accept</a></h3> +<p> + <b>Function Prototype:</b> +</p> +<pre> + #include <sys/socket.h> + int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen); +</pre> +<p> + <b>Description:</b> + The <code>accept()</code> function is used with connection-based socket types + (<code>SOCK_STREAM</code>, <code>SOCK_SEQPACKET</code> and <code>SOCK_RDM</code>). + It extracts the first connection request on the queue of pending connections, + creates a new connected socket with most of the same properties as <code>sockfd</code>, + and allocates a new socket descriptor for the socket, which is returned. The + newly created socket is no longer in the listening state. The original + socket <code>sockfd</code> is unaffected by this call. Per file descriptor flags + are not inherited across an accept. +</p> +<p> + The <code>sockfd</code> argument is a socket descriptor that has been created with + <code>socket()</code>, bound to a local address with <code>bind()</code>, and is listening for + connections after a call to <code>listen()</code>. +</p> +<p> + On return, the <code>addr</code> structure is filled in with the address of the + connecting entity. The <code>addrlen</code> argument initially contains the size + of the structure pointed to by <code>addr</code>; on return it will contain the + actual length of the address returned. +</p> +<p> + If no pending connections are present on the queue, and the socket is + not marked as non-blocking, accept blocks the caller until a connection + is present. If the socket is marked non-blocking and no pending + connections are present on the queue, accept returns <code>EAGAIN</code>. +</p> +<p> + <b>Input Parameters:</b> +</p> +<ul> + <li><code>sockfd</code>: Socket descriptor of the listening socket.</li> + <li><code>addr</code>: Receives the address of the connecting client.</li> + <li><code>addrlen</code>: Input: allocated size of <code>addr</code>, Return: returned size of <code>addr</code>.</li> +</ul> +<p> + <b>Returned Values:</b> + Returns -1 on error. If it succeeds, it returns a non-negative integer + that is a descriptor for the accepted socket. +</p> +<ul> + <li><code>EAGAIN</code> or <code>EWOULDBLOCK</code>: + The socket is marked non-blocking and no connections are present to be accepted.</li> + <li><code>EBADF</code>: + The descriptor is invalid.</li> + <li><code>ENOTSOCK</code>: + The descriptor references a file, not a socket.</li> + <li><code>EOPNOTSUPP</code>: + The referenced socket is not of type <code>SOCK_STREAM</code>.</li> + <li><code>EINTR</code>: + The system call was interrupted by a signal that was caught before a valid connection arrived.</li> + <li><code>ECONNABORTED</code>: + A connection has been aborted.</li> + <li><code>EINVAL</code>: + Socket is not listening for connections.</li> + <li><code>EMFILE</code>: + The per-process limit of open file descriptors has been reached.</li> + <li><code>ENFILE</code>: + The system maximum for file descriptors has been reached.</li> + <li><code>EFAULT</code>: + The addr parameter is not in a writable part of the user address space.</li> + <li><code>ENOBUFS</code> or <code>ENOMEM</code>: + Not enough free memory.</li> + <li><code>EPROTO</code>: + Protocol error.</li> + <li><code>EPERM</code>: + Firewall rules forbid connection.</li> +</ul> + +<h3><a name="send">2.12.6 <code>send</code></a></h3> <p> <b>Function Prototype:</b> </p> @@ -5983,7 +6100,7 @@ Those socket APIs are discussed in the following paragraphs.</p> See <a href="#sendto"><code>sendto()</code></a>. </p> -<h3><a name="sendto">2.12.5 <code>sendto</code></a></h3> +<h3><a name="sendto">2.12.7 <code>sendto</code></a></h3> <p> <b>Function Prototype:</b> </p> @@ -6055,7 +6172,7 @@ Those socket APIs are discussed in the following paragraphs.</p> MSG_NOSIGNAL is set. </ul> -<h3><a name="recv">2.12.6 <code>recv</code></a></h3> +<h3><a name="recv">2.12.8 <code>recv</code></a></h3> <p> <b>Function Prototype:</b> </p> @@ -6086,7 +6203,7 @@ Those socket APIs are discussed in the following paragraphs.</p> Zero on success. </p> -<h3><a name="recvfrom">2.12.7 <code>recvfrom</code></a></h3> +<h3><a name="recvfrom">2.12.9 <code>recvfrom</code></a></h3> <p> <b>Function Prototype:</b> </p> @@ -6148,7 +6265,7 @@ Those socket APIs are discussed in the following paragraphs.</p> The argument <code>sockfd</code> does not refer to a socket. </ul> -<h3><a name="setsockopt">2.12.8 <code>setsockopt</code></a></h3> +<h3><a name="setsockopt">2.12.10 <code>setsockopt</code></a></h3> <p> <b>Function Prototype:</b> </p> @@ -6208,7 +6325,7 @@ Those socket APIs are discussed in the following paragraphs.</p> Insufficient resources are available in the system to complete the call. </ul> -<h3><a name="getsockopt">2.12.9 <code>getsockopt</code></a></h3> +<h3><a name="getsockopt">2.12.11 <code>getsockopt</code></a></h3> <p> <b>Function Prototype:</b> </p> @@ -6469,6 +6586,7 @@ notify a task when a message is available on a queue. <table width="100%"> <tr> <td> + <li><a href="#accept">accept</a></li> <li><a href="#bind">bind</a></li> <li><a href="#clockgetres">clock_getres</a></li> <li><a href="#clockgettime">clock_gettime</a></li> @@ -6485,6 +6603,7 @@ notify a task when a message is available on a queue. <li><a href="#gmtimer">gmtime_r</a></li> <li><a href="#Introduction">Introduction</a> <li><a href="#kill">kill</a></li> + <li><a href="#listen">listen</a></li> <li><a href="#localtimer">localtime_r</a></li> <li><a href="#Message_Queue">Named Message Queue Interfaces</a> <li><a href="#mktime">mktime</a></li> @@ -6541,9 +6660,9 @@ notify a task when a message is available on a queue. <li><a href="#pthreadmutexattrinit">pthread_mutexattr_init</a></li> <li><a href="#pthreadmutexattrsetpshared">pthread_mutexattr_setpshared</a></li> <li><a href="#pthreadmutexdestrory">pthread_mutex_destroy</a></li> - <li><a href="#pthreadmutexinit">pthread_mutex_init</a></li> </td> <td> + <li><a href="#pthreadmutexinit">pthread_mutex_init</a></li> <li><a href="#pthreadmutexlock">pthread_mutex_lock</a></li> <li><a href="#pthreadmutextrylock">pthread_mutex_trylock</a></li> <li><a href="#pthreadmutexunlock">pthread_mutex_unlock</a></li> From 9e0479057f1bbe2074b5b264fdeb627ef07e8608 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 2 Nov 2007 20:20:34 +0000 Subject: [PATCH 0107/1518] Add DM90x0 driver git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@362 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 3369857b36..0e0535bb00 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -646,6 +646,8 @@ Other memory: * Provide support for multiple network devices * Implement socket ioctl() calls to set addresses * Added listen() and accept() + * Added DM90x0 ethernet driver + * ARP timer is now built into the network layer </pre></ul> <table width ="100%"> From 1cfa0af175d9ec593a8de3998c3cf877823dec96 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 6 Nov 2007 19:58:14 +0000 Subject: [PATCH 0108/1518] Verified basic client-side network functionality git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@373 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 62 ++++++++++++++++++++++++++++------------ 1 file changed, 44 insertions(+), 18 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 0e0535bb00..9be4a5dbaa 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: September 8, 2007</p> + <p>Last Updated: November 6, 2007</p> </td> </tr> </table> @@ -183,13 +183,28 @@ </table> <p> - The 11th release of NuttX (nuttx-0.2.8) is available for download + The 12th release of NuttX (nuttx-0.3.0) is available for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. The change log associated with the release is available <a href="#currentrelease">here</a>. Unreleased changes after this release are avalable in CVS. These unreleased changes are listed <a href="#pendingchanges">here</a>. </p> +<p> + NuttX 30.3.0 includes the initial integration of a network subsystem and + a TCP/IP stack based on <a href="http://www.sics.se/~adam/uip/index.php/Main_Page">uIP</a>. + Also included is a device driver for the Davicom DM90x0 ethernet controller. +</p> +</p> + This integration is very preliminary. Only a small portion of the + network functionality has been integrated and there are a number of + open issues. The network subsystem is pre-alpha this point in time. + I expect that it will stabilize and mature over the next few releases. +</p> +<p> + The baseline functionality of NuttX continues to mature and remains at + post-beta (as long as the network is not used). +</p> <table width ="100%"> <tr bgcolor="#e4e4e4"> @@ -251,14 +266,14 @@ </p> <p> <b>STATUS:</b> - This port is in progress and should be available in the nuttx-0.2.7 release. + Initial coding of this port code complete but has not yet been verified. </p> </td> </tr> <tr> <td valign="top"><img src="favicon.ico"></td> <td bgcolor="#5eaee1"> - <b>ARM9EJS</b>. + <b>ARM926EJS</b>. </td> </tr> <tr> @@ -273,7 +288,7 @@ </p> <p> <b>STATUS:</b> - This port is code complete but totally untested due to hardware issues with my OSD. + This port is complete and verified. </p> </td> </tr> @@ -329,7 +344,7 @@ is available that be used to build a NuttX-compatible arm-elf toolchain.</blockq </table> <ul> -<p><b>C5471 (Arm7)</b> +<p><b>C5471 (ARM7)</b> The build for this ARM7 target that includes most of the OS features and a broad range of OS tests. The size of this executable as given by the Linux <tt>size</tt> command is (3/9/07): @@ -338,6 +353,14 @@ is available that be used to build a NuttX-compatible arm-elf toolchain.</blockq text data bss dec hex filename 53272 428 3568 57268 dfb4 nuttx </pre> +<p><b>DM320 (ARM9)</b> + This build for the ARM9 target includes a signficant subset of OS + features, ethernet driver and full TCP/IP stack (via uIP). +</p> +<pre> + text data bss dec hex filename + 51368 296 6072 57736 e188 nuttx +</pre> <p><b>87C52</b> A reduced functionality OS test for the 8052 target requires only about 18-19Kb: @@ -589,17 +612,7 @@ Other memory: __FILE__and __LINE__ (not tested) * examples/ostest/barrier.c: Don't call usleep() when signals are disabled. -</pre></ul> -<table width ="100%"> - <tr bgcolor="#e4e4e4"> - <td> - <a name="currentrelease">ChangeLog for Current Release</a> - </td> - </tr> -</table> - -<pre><ul> 0.2.8 2007-07-02 Gregory Nutt <spudmonkey@racsa.co.cr> * tools/Makefile.mkconfig: Under Cygwin, executable has a different name * tools/mkdeps.sh & arch/arm/src/Makefile: Corrected a problem makeing dependencies @@ -626,13 +639,13 @@ Other memory: <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="pendingchanges">Unreleased Changes</a> + <a name="currentrelease">ChangeLog for Current Release</a> </td> </tr> </table> <pre><ul> -0.3.0 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> +0.3.0 2007-11-06 Gregory Nutt <spudmonkey@racsa.co.cr> * Imported uIP into the tree (see http://www.sics.se/~adam/uip/index.php/Main_Page) @@ -648,6 +661,19 @@ Other memory: * Added listen() and accept() * Added DM90x0 ethernet driver * ARP timer is now built into the network layer + * Basic client functionality verified: socket(), bind(), connect(), recv(), send(). +</pre></ul> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="pendingchanges">Unreleased Changes</a> + </td> + </tr> +</table> + +<pre><ul> +0.3.1 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> </pre></ul> <table width ="100%"> From 8c7e83b44fe9cd17fdda8b5768edf499476c91af Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 6 Nov 2007 23:38:14 +0000 Subject: [PATCH 0109/1518] Breaking uip.c into smaller functions/files git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@374 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 9be4a5dbaa..e718722219 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -674,6 +674,8 @@ Other memory: <pre><ul> 0.3.1 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> + + * Separated net/uip/uip.c into several functions in several files. </pre></ul> <table width ="100%"> From 06ade1f07ce8bff396e117c751e4924b947385a7 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 7 Nov 2007 23:26:29 +0000 Subject: [PATCH 0110/1518] Remove uIP logging git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@377 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 3 --- 1 file changed, 3 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index e97b6c69f5..923f08e847 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -1364,9 +1364,6 @@ The system can be re-made subsequently by just typing <code>make</code>. <li> <code>CONFIG_NET_BUFFER_SIZE</code>: uIP buffer size </li> - <li> - <code>CONFIG_NET_LOGGING</code>: Logging on or off - </li> <li> <code>CONFIG_NET_UDP</code>: UDP support on or off </li> From 28f636b55a485fa4a7649b2c38a3f454e4140bd6 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 8 Nov 2007 17:12:12 +0000 Subject: [PATCH 0111/1518] Doc/comments update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@380 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index e718722219..3f67662f97 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: November 6, 2007</p> + <p>Last Updated: November 8, 2007</p> </td> </tr> </table> @@ -355,11 +355,11 @@ is available that be used to build a NuttX-compatible arm-elf toolchain.</blockq </pre> <p><b>DM320 (ARM9)</b> This build for the ARM9 target includes a signficant subset of OS - features, ethernet driver and full TCP/IP stack (via uIP). + features, ethernet driver and full TCP/IP stack (via uIP). (11/8/07) </p> <pre> text data bss dec hex filename - 51368 296 6072 57736 e188 nuttx + 49472 296 3972 53740 d1ec nuttx </pre> <p><b>87C52</b> A reduced functionality OS test for the 8052 target requires only From 9e157d4778dd7200283e20c147ee1306379cc6dd Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 15 Nov 2007 22:38:32 +0000 Subject: [PATCH 0112/1518] Fix probably where packets dropped because there was no recv() in place were being ACKed git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@381 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 3f67662f97..0626fbd208 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -676,6 +676,9 @@ Other memory: 0.3.1 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> * Separated net/uip/uip.c into several functions in several files. + * Corrected a TCP problem where packets were dropped because there was no + recv() in place but the packet was being ACKed. There are still TCP + recv buffering issues, but this is part of a larger buffering issue. </pre></ul> <table width ="100%"> From 04ad7896038a258f31423fd6ca756637a994e553 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 16 Nov 2007 18:48:39 +0000 Subject: [PATCH 0113/1518] Basic server functionality: listen(), accept() git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@382 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 0626fbd208..65a4a6e493 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -679,6 +679,7 @@ Other memory: * Corrected a TCP problem where packets were dropped because there was no recv() in place but the packet was being ACKed. There are still TCP recv buffering issues, but this is part of a larger buffering issue. + * Basic server functionality verified: listen(), accept() </pre></ul> <table width ="100%"> From 874f32d6ea44ecedc7d5d567655ec8f655745828 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 17 Nov 2007 14:28:10 +0000 Subject: [PATCH 0114/1518] Fix DM90x0 driver problem that caused TX overruns git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@384 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 65a4a6e493..c8079ed1d4 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -680,6 +680,7 @@ Other memory: recv() in place but the packet was being ACKed. There are still TCP recv buffering issues, but this is part of a larger buffering issue. * Basic server functionality verified: listen(), accept() + * Fix DM90x0 driver problem that caused TX overruns </pre></ul> <table width ="100%"> From 674a072b8a8f91bcb1108735e3310e93f29fd609 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 19 Nov 2007 18:17:23 +0000 Subject: [PATCH 0115/1518] uIP webserver now uses listen/accept git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@386 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index c8079ed1d4..8fa4cc0ad6 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -355,7 +355,8 @@ is available that be used to build a NuttX-compatible arm-elf toolchain.</blockq </pre> <p><b>DM320 (ARM9)</b> This build for the ARM9 target includes a signficant subset of OS - features, ethernet driver and full TCP/IP stack (via uIP). (11/8/07) + features, ethernet driver and full TCP/IP, UDP and (minimal) ICMP + stacks (via uIP). (11/8/07) </p> <pre> text data bss dec hex filename @@ -681,6 +682,7 @@ Other memory: recv buffering issues, but this is part of a larger buffering issue. * Basic server functionality verified: listen(), accept() * Fix DM90x0 driver problem that caused TX overruns + * Add strncmp() </pre></ul> <table width ="100%"> From 405f2dd8c78b6b40050437745c106dc5f7873c8b Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 19 Nov 2007 23:09:39 +0000 Subject: [PATCH 0116/1518] Add TCP readahead logic git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@387 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + Documentation/NuttxPortingGuide.html | 10 ++++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 8fa4cc0ad6..ce7ebbcc64 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -683,6 +683,7 @@ Other memory: * Basic server functionality verified: listen(), accept() * Fix DM90x0 driver problem that caused TX overruns * Add strncmp() + * Added TCP/IP read-ahead buffer to minimize failed ACKs and packet loss. </pre></ul> <table width ="100%"> diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 923f08e847..faf3c5f890 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -1353,7 +1353,7 @@ The system can be re-made subsequently by just typing <code>make</code>. <code>CONFIG_NSOCKET_DESCRIPTORS</code>: Maximum number of socket descriptors per task/thread. </li> <li> - <code>CONFIG_NET_MAX_CONNECTIONS</code>: Maximum number of TCP connections (all tasks). + <code>CONFIG_NET_TCP_CONNS</code>: Maximum number of TCP connections (all tasks). </li> <li> <code>CONFIG_NET_MAX_LISTENPORTS</code>: Maximum number of listening TCP ports (all tasks). @@ -1362,7 +1362,13 @@ The system can be re-made subsequently by just typing <code>make</code>. <code>CONFIG_NET_SOCKOPTS</code>: Enable or disable support for socket options. </li> <li> - <code>CONFIG_NET_BUFFER_SIZE</code>: uIP buffer size + <code>CONFIG_NET_BUFSIZE</code>: uIP buffer size + </li> + <li> + <code>CONFIG_NET_TCP_READAHEAD_BUFSIZE</code>: Size of TCP read-ahead buffers + </li> + <li> + <code>CONFIG_NET_NTCP_READAHEAD_BUFFERS</code>: Number of TCP read-ahead buffers (may be zero) </li> <li> <code>CONFIG_NET_UDP</code>: UDP support on or off From 2f26641d54841f24f3e77df75334b2fcd9b97025 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 20 Nov 2007 01:26:34 +0000 Subject: [PATCH 0117/1518] Prep for 0.3.1 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@389 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 74 ++++++++++++++++++++++------------------ 1 file changed, 40 insertions(+), 34 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index ce7ebbcc64..714f18970c 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: November 8, 2007</p> + <p>Last Updated: November 19, 2007</p> </td> </tr> </table> @@ -183,7 +183,7 @@ </table> <p> - The 12th release of NuttX (nuttx-0.3.0) is available for download + The 13th release of NuttX (nuttx-0.3.0) is available for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. The change log associated with the release is available <a href="#currentrelease">here</a>. @@ -191,15 +191,19 @@ These unreleased changes are listed <a href="#pendingchanges">here</a>. </p> <p> - NuttX 30.3.0 includes the initial integration of a network subsystem and - a TCP/IP stack based on <a href="http://www.sics.se/~adam/uip/index.php/Main_Page">uIP</a>. - Also included is a device driver for the Davicom DM90x0 ethernet controller. + NuttX 0.3.1 is the second release containing the integration of a network + subsystem and the uIP TCP/IP, UDP, and ICMP stacks based on + <a href="http://www.sics.se/~adam/uip/index.php/Main_Page">uIP</a> + into NuttX. </p> -</p> - This integration is very preliminary. Only a small portion of the - network functionality has been integrated and there are a number of - open issues. The network subsystem is pre-alpha this point in time. - I expect that it will stabilize and mature over the next few releases. +<p> + Many network-related problems have been fixed from version 0.3.0 + and the implementation has matured significantly. + However, the level of network reliability is probably still at the + pre-alpha or early level. + It is sufficiently complete that you may begin to perform some network + integration and is exepcted to achieve beta level of reliability over + the next few releases. </p> <p> The baseline functionality of NuttX continues to mature and remains at @@ -435,13 +439,13 @@ Other memory: </table> <ul><pre> -0.1.0 2007-03-09 Gregory Nutt <spudmonkey@racsa.co.cr> +0.1.0 2007-03-09 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Initial Release * Support for Linux user mode simulation and TI TMS320C5471 (Arm7) provided -0.1.1 2007-03-14 Gregory Nutt <spudmonkey@racsa.co.cr> +0.1.1 2007-03-14 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Corrected an error in interrupt level context switching for C5471 @@ -469,7 +473,7 @@ Other memory: issue when SP enters indirect address space. * Documentation updates -0.1.2 2007-03-19 Gregory Nutt <spudmonkey@racsa.co.cr> +0.1.2 2007-03-19 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Add dirent.h, opendir(), readdir(), closedir(), etc. * Add strerror() @@ -494,7 +498,7 @@ Other memory: cause various problems * Added a test for roundrobin scheduler. -0.2.1 2007-03-22 Gregory Nutt <spudmonkey@racsa.co.cr> +0.2.1 2007-03-22 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Fix error in handing signed decimal in vsprintf(). * Major restructuring of header files to get closer to @@ -506,7 +510,7 @@ Other memory: * Some Documentation updates * Added support for the Neuros OSD / DM320 -0.2.2 2007-03-26 Gregory Nutt <spudmonkey@racsa.co.cr> +0.2.2 2007-03-26 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Created the configs/ directory; separated board configuration from processor architecture logic * Add memory leak detection test to examples/ostest @@ -526,7 +530,7 @@ Other memory: * Added directories to hold board-specific header files * Added directories to hold board-specific drivers -0.2.3 2007-03-29 Gregory Nutt <spudmonkey@racsa.co.cr> +0.2.3 2007-03-29 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * mq_receive and mq_send now return errno's appropriately * mq_receive and mq_send are now correctly awakened by signals. @@ -548,7 +552,7 @@ Other memory: pthread_join. In the failure condition, memory was being deallocated while still in use. -0.2.4 2007-04-28 Gregory Nutt <spudmonkey@racsa.co.cr> +0.2.4 2007-04-28 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Verfied c5471 build under Cygwin on WinXP * Makesystem changes to better support different SoCs. @@ -558,7 +562,7 @@ Other memory: arch/c5471 and arch/dm320 are deprecated and will be removed when the new c5471 and dm320 logic is verified. -0.2.5 2007-05-19 Gregory Nutt <spudmonkey@racsa.co.cr> +0.2.5 2007-05-19 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Corrected some build/configuration issues introduced with the last release. @@ -575,7 +579,7 @@ Other memory: * Added fsync() * Added strspn() and strcspn() -0.2.6 2007-05-26 Gregory Nutt <spudmonkey@racsa.co.cr> +0.2.6 2007-05-26 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Added unlink(), mkdir(), rmdir(), and rename() * Fixed several serious FAT errors with oflags handling (&& instead of &) @@ -585,7 +589,7 @@ Other memory: * Fixed ARM compilation errors introduced in 0.2.5 (that is what I get for only testing on the simulation). -0.2.7 2007-06-09 Gregory Nutt <spudmonkey@racsa.co.cr> +0.2.7 2007-06-09 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Added stat() to fs layer and to FAT * Fixed reference counting errors associated with mounted filesystems @@ -614,7 +618,7 @@ Other memory: * examples/ostest/barrier.c: Don't call usleep() when signals are disabled. -0.2.8 2007-07-02 Gregory Nutt <spudmonkey@racsa.co.cr> +0.2.8 2007-07-02 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * tools/Makefile.mkconfig: Under Cygwin, executable has a different name * tools/mkdeps.sh & arch/arm/src/Makefile: Corrected a problem makeing dependencies * tools/zipme.sh: Force directory name to be nuttx-xx.yy.zz @@ -635,18 +639,8 @@ Other memory: * lib/: Added strrchr, basename, dirname * examples/nsh/: Add cp, rm, rmdir, set, unset commands. echo will now print environment variables. -</pre></ul> -<table width ="100%"> - <tr bgcolor="#e4e4e4"> - <td> - <a name="currentrelease">ChangeLog for Current Release</a> - </td> - </tr> -</table> - -<pre><ul> -0.3.0 2007-11-06 Gregory Nutt <spudmonkey@racsa.co.cr> +0.3.0 2007-11-06 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Imported uIP into the tree (see http://www.sics.se/~adam/uip/index.php/Main_Page) @@ -668,13 +662,13 @@ Other memory: <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="pendingchanges">Unreleased Changes</a> + <a name="currentrelease">ChangeLog for Current Release</a> </td> </tr> </table> <pre><ul> -0.3.1 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> +0.3.1 2007-11-19 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Separated net/uip/uip.c into several functions in several files. * Corrected a TCP problem where packets were dropped because there was no @@ -686,6 +680,18 @@ Other memory: * Added TCP/IP read-ahead buffer to minimize failed ACKs and packet loss. </pre></ul> +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="pendingchanges">Unreleased Changes</a> + </td> + </tr> +</table> + +<pre><ul> +0.3.2 2007-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; +</pre></ul> + <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> From cd42c4719271124acc40f8fdfeaee2a2d03f03cd Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 20 Nov 2007 20:32:33 +0000 Subject: [PATCH 0118/1518] Several webserver bugs fixed git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@391 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 714f18970c..d277aaa2b9 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -690,6 +690,9 @@ Other memory: <pre><ul> 0.3.2 2007-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + + * Add strcat() and strncat() + * Integrated uIP micro webserver </pre></ul> <table width ="100%"> From f8f5dd7d1e13a2419d6b080a5ac2b302301c073a Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 20 Nov 2007 21:55:06 +0000 Subject: [PATCH 0119/1518] Fix TCP list managment bug git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@392 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index d277aaa2b9..2bee653cd0 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: November 19, 2007</p> + <p>Last Updated: November 20, 2007</p> </td> </tr> </table> @@ -693,6 +693,7 @@ Other memory: * Add strcat() and strncat() * Integrated uIP micro webserver + * Corrected a serious bug in TCP queue management </pre></ul> <table width ="100%"> From eba655605631431ceffb54aac6582720f5732c20 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 21 Nov 2007 23:29:14 +0000 Subject: [PATCH 0120/1518] Fix leak in socket close git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@394 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 2bee653cd0..870918360e 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -358,14 +358,24 @@ is available that be used to build a NuttX-compatible arm-elf toolchain.</blockq 53272 428 3568 57268 dfb4 nuttx </pre> <p><b>DM320 (ARM9)</b> - This build for the ARM9 target includes a signficant subset of OS - features, ethernet driver and full TCP/IP, UDP and (minimal) ICMP - stacks (via uIP). (11/8/07) + This build for the ARM9 target includes a significant subset of OS + features, a filesystem, Ethernet driver, full TCP/IP, UDP and (minimal) + ICMP stacks (via uIP) and a small network test application: (11/8/07, + configuration netconfig, examples/nettest) </p> <pre> text data bss dec hex filename 49472 296 3972 53740 d1ec nuttx </pre> +<p> + Another build for the ARM9 target includes a minimal OS feature + set, Ethernet driver, full TCP/IP and (minimal) ICMP stacks, and + a small webserver: (11/20/07, configuration uipconfig, examples/uip) +</p> +<pre> + text data bss dec hex filename + 52040 72 4148 56260 dbc4 nuttx +</pre> <p><b>87C52</b> A reduced functionality OS test for the 8052 target requires only about 18-19Kb: @@ -694,6 +704,7 @@ Other memory: * Add strcat() and strncat() * Integrated uIP micro webserver * Corrected a serious bug in TCP queue management + * Fix leak in socket close logic </pre></ul> <table width ="100%"> From cf2027e03ad44e9b6712dc1b4e7b299fddc5fed4 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 22 Nov 2007 14:42:52 +0000 Subject: [PATCH 0121/1518] Add TX data notification git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@397 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 +++ Documentation/NuttxPortingGuide.html | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 870918360e..f024189e0a 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -705,6 +705,9 @@ Other memory: * Integrated uIP micro webserver * Corrected a serious bug in TCP queue management * Fix leak in socket close logic + * Add TX notification to driver so that it can respond faster to + the availability of TX data. + * Moved urgent data info into device structure. </pre></ul> <table width ="100%"> diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index faf3c5f890..98af10dae7 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -1370,6 +1370,11 @@ The system can be re-made subsequently by just typing <code>make</code>. <li> <code>CONFIG_NET_NTCP_READAHEAD_BUFFERS</code>: Number of TCP read-ahead buffers (may be zero) </li> + <li> + <code>CONFIG_NET_TCPURGDATA</code>: Determines if support for TCP urgent data + notification should be compiled in. Urgent data (out-of-band data) + is a rarely used TCP feature that is very seldom would be required. + </li> <li> <code>CONFIG_NET_UDP</code>: UDP support on or off </li> From 37ba8bd9b756933deb4351b4c0b96d9793722370 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 22 Nov 2007 18:36:46 +0000 Subject: [PATCH 0122/1518] TCP and ICMP protocols may now be disabled git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@398 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + Documentation/NuttxPortingGuide.html | 20 +++++++++++++------- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index f024189e0a..77cdee1f74 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -708,6 +708,7 @@ Other memory: * Add TX notification to driver so that it can respond faster to the availability of TX data. * Moved urgent data info into device structure. + * TCP and ICMP protocols can now be disabled. </pre></ul> <table width ="100%"> diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 98af10dae7..afe1aafa32 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -1352,24 +1352,27 @@ The system can be re-made subsequently by just typing <code>make</code>. <li> <code>CONFIG_NSOCKET_DESCRIPTORS</code>: Maximum number of socket descriptors per task/thread. </li> - <li> - <code>CONFIG_NET_TCP_CONNS</code>: Maximum number of TCP connections (all tasks). - </li> - <li> - <code>CONFIG_NET_MAX_LISTENPORTS</code>: Maximum number of listening TCP ports (all tasks). - </li> <li> <code>CONFIG_NET_SOCKOPTS</code>: Enable or disable support for socket options. </li> <li> <code>CONFIG_NET_BUFSIZE</code>: uIP buffer size </li> + <li> + <code>CONFIG_NET_TCP</code>: TCP support on or off + </li> + <li> + <code>CONFIG_NET_TCP_CONNS</code>: Maximum number of TCP connections (all tasks). + </li> <li> <code>CONFIG_NET_TCP_READAHEAD_BUFSIZE</code>: Size of TCP read-ahead buffers </li> <li> <code>CONFIG_NET_NTCP_READAHEAD_BUFFERS</code>: Number of TCP read-ahead buffers (may be zero) </li> + <li> + <code>CONFIG_NET_MAX_LISTENPORTS</code>: Maximum number of listening TCP ports (all tasks). + </li> <li> <code>CONFIG_NET_TCPURGDATA</code>: Determines if support for TCP urgent data notification should be compiled in. Urgent data (out-of-band data) @@ -1385,11 +1388,14 @@ The system can be re-made subsequently by just typing <code>make</code>. <code>CONFIG_NET_UDP_CONNS</code>: The maximum amount of concurrent UDP connections </li> <li> - <code>CONFIG_NET_STATISTICS</code>: uIP statistics on or off + <code>CONFIG_NET_ICMP</code>: ICMP ping support on or off </li> <li> <code>CONFIG_NET_PINGADDRCONF</code>: Use "ping" packet for setting IP address </li> + <li> + <code>CONFIG_NET_STATISTICS</code>: uIP statistics on or off + </li> <li> <code>CONFIG_NET_RECEIVE_WINDOW</code>: The size of the advertised receiver's window </li> From 80f1dd35dfc0aad02caaa9fb4d534ec46973a65d Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 22 Nov 2007 21:59:30 +0000 Subject: [PATCH 0123/1518] Added UDP test/example git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@400 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 77cdee1f74..7acf1be62c 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -709,6 +709,7 @@ Other memory: the availability of TX data. * Moved urgent data info into device structure. * TCP and ICMP protocols can now be disabled. + * Added UDP test in examples/udp </pre></ul> <table width ="100%"> From 97a7c4b702061b4ccc2c55ddc8a2e5c9b446376b Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 23 Nov 2007 13:31:28 +0000 Subject: [PATCH 0124/1518] Debug UDP send logic git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@401 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 7acf1be62c..1b74db8090 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -710,6 +710,7 @@ Other memory: * Moved urgent data info into device structure. * TCP and ICMP protocols can now be disabled. * Added UDP test in examples/udp + * Verified/debugged UDP send logic using examples/udp </pre></ul> <table width ="100%"> From 9f365c46d13db834b60b92f881bbce3830ca183b Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 23 Nov 2007 19:25:39 +0000 Subject: [PATCH 0125/1518] Verified recvfrom() git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@402 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 66 ++++++++++++++++++++++++---------------- 1 file changed, 40 insertions(+), 26 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 1b74db8090..eb8f7dfac6 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: November 20, 2007</p> + <p>Last Updated: November 23, 2007</p> </td> </tr> </table> @@ -183,27 +183,36 @@ </table> <p> - The 13th release of NuttX (nuttx-0.3.0) is available for download - from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> - website. - The change log associated with the release is available <a href="#currentrelease">here</a>. - Unreleased changes after this release are avalable in CVS. - These unreleased changes are listed <a href="#pendingchanges">here</a>. + The 14th release of NuttX (nuttx-0.3.2) is available for download + from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> + website. + The change log associated with the release is available <a href="#currentrelease">here</a>. + Unreleased changes after this release are avalable in CVS. + These unreleased changes are listed <a href="#pendingchanges">here</a>. </p> <p> - NuttX 0.3.1 is the second release containing the integration of a network + NuttX 0.3.2 is the 3rd release containing the integration of a network subsystem and the uIP TCP/IP, UDP, and ICMP stacks based on <a href="http://www.sics.se/~adam/uip/index.php/Main_Page">uIP</a> into NuttX. </p> <p> - Many network-related problems have been fixed from version 0.3.0 + Many network-related problems have been fixed from version 0.3.1 and the implementation has matured significantly. - However, the level of network reliability is probably still at the - pre-alpha or early level. - It is sufficiently complete that you may begin to perform some network - integration and is exepcted to achieve beta level of reliability over - the next few releases. + Changes in this release include: +</p> +<ul> +<li>TCP-related bug-fixes,</li> +<li>TCP performance improvements,</li> +<li>Initial UDP integration, and</li> +<li>Initial uIP micro webserver integration +</ul> +</p> + See the ChangeLog for a complete list of changes. +</p> +<p> + The level of network reliability is a a strong alpha level is expected to + achieve beta level of reliability over the next few releases. </p> <p> The baseline functionality of NuttX continues to mature and remains at @@ -667,17 +676,7 @@ Other memory: * Added DM90x0 ethernet driver * ARP timer is now built into the network layer * Basic client functionality verified: socket(), bind(), connect(), recv(), send(). -</pre></ul> -<table width ="100%"> - <tr bgcolor="#e4e4e4"> - <td> - <a name="currentrelease">ChangeLog for Current Release</a> - </td> - </tr> -</table> - -<pre><ul> 0.3.1 2007-11-19 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Separated net/uip/uip.c into several functions in several files. @@ -693,7 +692,7 @@ Other memory: <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="pendingchanges">Unreleased Changes</a> + <a name="currentrelease">ChangeLog for Current Release</a> </td> </tr> </table> @@ -710,7 +709,22 @@ Other memory: * Moved urgent data info into device structure. * TCP and ICMP protocols can now be disabled. * Added UDP test in examples/udp - * Verified/debugged UDP send logic using examples/udp + * Verified/debugged UDP socket(), bind(), sendto() and recvfrom() logic + using examples/udp + * recvfrom() and accept() now correctly return the remote address. + * Fixed computation error in ntohl(). +</pre></ul> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="pendingchanges">Unreleased Changes</a> + </td> + </tr> +</table> + +<pre><ul> +0.3.3 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> </pre></ul> <table width ="100%"> From 167618583b0f9e02a1a6f5762ce0662a2b53b302 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 23 Nov 2007 21:16:43 +0000 Subject: [PATCH 0126/1518] Removed unused uIP files git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@403 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index eb8f7dfac6..f03b1bb8fd 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -725,6 +725,8 @@ Other memory: <pre><ul> 0.3.3 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> + + * Removed unused uIP files </pre></ul> <table width ="100%"> From f3b1a18d54f91ad3a6c39b5e5e2042de86483f88 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 23 Nov 2007 22:32:52 +0000 Subject: [PATCH 0127/1518] Debug can now be selectively enabled by subystem git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@404 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + Documentation/NuttxPortingGuide.html | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index f03b1bb8fd..3b9d5ad10e 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -727,6 +727,7 @@ Other memory: 0.3.3 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> * Removed unused uIP files + * sched/, mm/, net/ subystem debug can not be selectively enabled/disabled </pre></ul> <table width ="100%"> diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index afe1aafa32..2aed8d106a 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -1196,6 +1196,15 @@ The system can be re-made subsequently by just typing <code>make</code>. <li> <code>CONFIG_DEBUG</code>: enables built-in debug options </li> + <li> + <code>CONFIG_DEBUG_SCHED</code>: enable OS debug output (disabled by default) + </li> + <li> + <code>CONFIG_DEBUG_MM</code>: enable memory management debug output (disabld by default) + </li> + <li> + <code>CONFIG_DEBUG_NET</code>: enable networkd debug output (disabled by default) + </li> <li> <code>CONFIG_DEBUG_VERBOSE</code>: enables verbose debug output </li> From 75d1c65dbd8196b6934b1f71dfbaeaf0ffe7cc4d Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 24 Nov 2007 13:02:03 +0000 Subject: [PATCH 0128/1518] Must disconnect TCP socket on close() git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@405 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 3b9d5ad10e..969f78cd6a 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: November 23, 2007</p> + <p>Last Updated: November 24, 2007</p> </td> </tr> </table> @@ -728,6 +728,8 @@ Other memory: * Removed unused uIP files * sched/, mm/, net/ subystem debug can not be selectively enabled/disabled + * Correct socket close logic -- needs to disconnect TCP socket on close + * uIP webserver now seems to be fully functional </pre></ul> <table width ="100%"> From 1062b0989486536d3a0c5620f2f65368b13aca97 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 24 Nov 2007 13:59:57 +0000 Subject: [PATCH 0129/1518] fs/ and lib/ debug can be selectively enabled git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@406 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 ++- Documentation/NuttxPortingGuide.html | 10 ++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 969f78cd6a..954ee19eed 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -727,9 +727,10 @@ Other memory: 0.3.3 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> * Removed unused uIP files - * sched/, mm/, net/ subystem debug can not be selectively enabled/disabled + * sched/, mm/, and net/ subystem debug can not be selectively enabled/disabled * Correct socket close logic -- needs to disconnect TCP socket on close * uIP webserver now seems to be fully functional + * fs/ and lib/ subystem debug can not be selectively enabled/disabled </pre></ul> <table width ="100%"> diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 2aed8d106a..fe18ecba8c 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -1196,6 +1196,9 @@ The system can be re-made subsequently by just typing <code>make</code>. <li> <code>CONFIG_DEBUG</code>: enables built-in debug options </li> + <li> + <code>CONFIG_DEBUG_VERBOSE</code>: enables verbose debug output + </li> <li> <code>CONFIG_DEBUG_SCHED</code>: enable OS debug output (disabled by default) </li> @@ -1203,10 +1206,13 @@ The system can be re-made subsequently by just typing <code>make</code>. <code>CONFIG_DEBUG_MM</code>: enable memory management debug output (disabld by default) </li> <li> - <code>CONFIG_DEBUG_NET</code>: enable networkd debug output (disabled by default) + <code>CONFIG_DEBUG_NET</code>: enable network debug output (disabled by default) </li> <li> - <code>CONFIG_DEBUG_VERBOSE</code>: enables verbose debug output + <code>CONFIG_DEBUG_FS</code>: enable filesystem debug output (disabled by default) + </li> + <li> + <code>CONFIG_DEBUG_LIB</code>: enable C library debug output (disabled by default) </li> <li> <code>CONFIG_HAVE_LOWPUTC</code>: architecture supports low-level, boot From 33dcd56a46e3669f4df39159f856b982f136ff7e Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 25 Nov 2007 16:50:16 +0000 Subject: [PATCH 0130/1518] Integrated uIP's TELNETD git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@408 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 954ee19eed..17ec1169d4 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -731,6 +731,8 @@ Other memory: * Correct socket close logic -- needs to disconnect TCP socket on close * uIP webserver now seems to be fully functional * fs/ and lib/ subystem debug can not be selectively enabled/disabled + * Added vsnprintf + * Integrated uIP telnetd </pre></ul> <table width ="100%"> From afc49e034c11f4f168b60e878c6ab34a1d058180 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 27 Nov 2007 19:19:30 +0000 Subject: [PATCH 0131/1518] Fixed missing logic in readahead buffer logic git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@409 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 17ec1169d4..fe6c5d5609 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -733,6 +733,7 @@ Other memory: * fs/ and lib/ subystem debug can not be selectively enabled/disabled * Added vsnprintf * Integrated uIP telnetd + * Add missing logic to readahead buffer logic </pre></ul> <table width ="100%"> From ea68bf1675a0236c2791162d4c7d9d61a15b48ff Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 28 Nov 2007 15:25:09 +0000 Subject: [PATCH 0132/1518] Improve send/close performance git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@410 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index fe6c5d5609..8247fa14c8 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -734,6 +734,9 @@ Other memory: * Added vsnprintf * Integrated uIP telnetd * Add missing logic to readahead buffer logic + * examples/nettest uses larger buffers + * Improved ACK handling in send() to better hander deferred acknowledgements + and polling intervals. Greatly improves send performance. </pre></ul> <table width ="100%"> From 8cc5e8575038b4e76d072bb66c667720b4be7ff8 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 28 Nov 2007 18:31:33 +0000 Subject: [PATCH 0133/1518] Prep for 0.3.3 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@412 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 62 +++++++++++++++++++++++----------------- 1 file changed, 36 insertions(+), 26 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 8247fa14c8..4255dd17a4 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: November 24, 2007</p> + <p>Last Updated: November 28, 2007</p> </td> </tr> </table> @@ -183,7 +183,7 @@ </table> <p> - The 14th release of NuttX (nuttx-0.3.2) is available for download + The 15th release of NuttX (nuttx-0.3.3) is available for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. The change log associated with the release is available <a href="#currentrelease">here</a>. @@ -191,32 +191,40 @@ These unreleased changes are listed <a href="#pendingchanges">here</a>. </p> <p> - NuttX 0.3.2 is the 3rd release containing the integration of a network + NuttX 0.3.3 is the 4th release containing the integration of a network subsystem and the uIP TCP/IP, UDP, and ICMP stacks based on <a href="http://www.sics.se/~adam/uip/index.php/Main_Page">uIP</a> into NuttX. </p> <p> - Many network-related problems have been fixed from version 0.3.1 + Many network-related problems have been fixed from version 0.3.2 and the implementation has matured significantly. Changes in this release include: </p> <ul> -<li>TCP-related bug-fixes,</li> +<li>TCP-related bug-fixes for disconnecting sockets,</li> +<li>Correction of some TCP read-ahead logic,<li> <li>TCP performance improvements,</li> <li>Initial UDP integration, and</li> -<li>Initial uIP micro webserver integration +<li>IMisc. additions and cleanup (See the ChangeLog for a complete list of + changes).</li> </ul> -</p> - See the ChangeLog for a complete list of changes. -</p> <p> - The level of network reliability is a a strong alpha level is expected to - achieve beta level of reliability over the next few releases. + The level of network reliability is at an early beta release level. The + baseline functionality of NuttX continues to mature and remains at + post-beta. Open network-related issues include only: </p> +<ul> +<li>Some minor unimplemented BSD socket functionality,</li> +<li>Thread safety issues: the same socket cannot be used concurrently on + different threads, </li> +<li>Pending design changes necessary to support multiple network interfaces, and </li> +<li>IPv6 support is incomplete.</li> +</ul> <p> - The baseline functionality of NuttX continues to mature and remains at - post-beta (as long as the network is not used). + This release has been verified only on the Neuros OSD (DM320 ARM9) + platform using the DM90x0 driver. Any feedback for improving the network + reliability/performance would be greatly appreciated. </p> <table width ="100%"> @@ -687,18 +695,8 @@ Other memory: * Fix DM90x0 driver problem that caused TX overruns * Add strncmp() * Added TCP/IP read-ahead buffer to minimize failed ACKs and packet loss. -</pre></ul> -<table width ="100%"> - <tr bgcolor="#e4e4e4"> - <td> - <a name="currentrelease">ChangeLog for Current Release</a> - </td> - </tr> -</table> - -<pre><ul> -0.3.2 2007-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; +0.3.2 2007-11-23 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Add strcat() and strncat() * Integrated uIP micro webserver @@ -718,13 +716,13 @@ Other memory: <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="pendingchanges">Unreleased Changes</a> + <a name="currentrelease">ChangeLog for Current Release</a> </td> </tr> </table> <pre><ul> -0.3.3 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> +0.3.3 2007-11-28 Gregory Nutt <spudmonkey@racsa.co.cr> * Removed unused uIP files * sched/, mm/, and net/ subystem debug can not be selectively enabled/disabled @@ -739,6 +737,18 @@ Other memory: and polling intervals. Greatly improves send performance. </pre></ul> +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="pendingchanges">Unreleased Changes</a> + </td> + </tr> +</table> + +<pre><ul> +0.3.4 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> +</pre></ul> + <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> From fc30132927d747c4b717f054bbd74884cfe850ec Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 30 Nov 2007 20:46:29 +0000 Subject: [PATCH 0134/1518] Add examples/dhcpd git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@413 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 4255dd17a4..20a4a29eb8 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -747,6 +747,8 @@ Other memory: <pre><ul> 0.3.4 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> + + * Added netutils/dhcpd </pre></ul> <table width ="100%"> From ff4d092a71654ff9642c04018696b10687cf85a2 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 30 Nov 2007 23:15:06 +0000 Subject: [PATCH 0135/1518] Basic DHPC client functionality git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@419 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 20a4a29eb8..e6fd36bdde 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -748,7 +748,11 @@ Other memory: <pre><ul> 0.3.4 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> - * Added netutils/dhcpd + * Added and partially verified DHCP server logic (netutils/dhcpd) + * Fix BROADCAST=y compilation problems + * Fix UDP recvfrom timeout bug + * Correct processing of input UDP broadcast packets. + * Verfied basic DHCP client functionality (netutils/dhcpc) </pre></ul> <table width ="100%"> From c5997cbbcd703d9589f8a3cead7268eb54dab8ce Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 2 Dec 2007 15:11:32 +0000 Subject: [PATCH 0136/1518] Add send() timeout logic git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@420 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index e6fd36bdde..a0546ee630 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -753,6 +753,7 @@ Other memory: * Fix UDP recvfrom timeout bug * Correct processing of input UDP broadcast packets. * Verfied basic DHCP client functionality (netutils/dhcpc) + * Implemented send() timeout logic </pre></ul> <table width ="100%"> From 5f27180ab1cd295a90ff76af459fadcb2d654bfe Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 2 Dec 2007 18:18:59 +0000 Subject: [PATCH 0137/1518] Add TELNET front end to NSH git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@421 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index a0546ee630..b45fde8527 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -754,6 +754,7 @@ Other memory: * Correct processing of input UDP broadcast packets. * Verfied basic DHCP client functionality (netutils/dhcpc) * Implemented send() timeout logic + * Add TELNETD front end to NSH (examples/nsh) </pre></ul> <table width ="100%"> From 7860a911e7edc54f2c02ba25626c47e6587c2d45 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 2 Dec 2007 23:11:54 +0000 Subject: [PATCH 0138/1518] Add skeleton ethernet driver git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@422 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index b45fde8527..95ced2b862 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -755,6 +755,7 @@ Other memory: * Verfied basic DHCP client functionality (netutils/dhcpc) * Implemented send() timeout logic * Add TELNETD front end to NSH (examples/nsh) + * Add a skeleton Ethernet device driver (drivers/net/skeleton.c) </pre></ul> <table width ="100%"> From 205dceb8f8905f45b0149f50c9b547a6e2f142b2 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 4 Dec 2007 17:11:55 +0000 Subject: [PATCH 0139/1518] Add c5471 Ethernet driver git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@423 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 95ced2b862..4efcc23b97 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -756,6 +756,7 @@ Other memory: * Implemented send() timeout logic * Add TELNETD front end to NSH (examples/nsh) * Add a skeleton Ethernet device driver (drivers/net/skeleton.c) + * Added C5471 Ethernet device driver (arch/arm/src/c5471/c5471_ethernet.c) </pre></ul> <table width ="100%"> From 9ead6e0650b1fdead695ddf20a704c07be069ee8 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 5 Dec 2007 01:02:45 +0000 Subject: [PATCH 0140/1518] Add feature set, trademarks git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@426 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 249 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 239 insertions(+), 10 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 4efcc23b97..9e7d048e19 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: November 28, 2007</p> + <p>Last Updated: December 5, 2007</p> </td> </tr> </table> @@ -53,6 +53,10 @@ <td><img src="favicon.ico"></td> <td><a href="#documentation">Other Documentation</a></td> </tr> +<tr> + <td><img src="favicon.ico"></td> + <td><a href="#trademarks">Trademarks</a></td> +</tr> </table> </td> </td> @@ -73,7 +77,7 @@ <p> <center><table width="90%"> <tr> - <td valign="top"><img src="favicon.ico"></td> + <td valign="top" width="18"><img src="favicon.ico"></td> <td bgcolor="#5eaee1"> <b>Small Footprint</b> </td> @@ -87,7 +91,7 @@ </p> </tr> <tr> - <td valign="top"><img src="favicon.ico"></td> + <td valign="top" width="18"><img src="favicon.ico"></td> <td bgcolor="#5eaee1"> <b>Rich Feature OS Set</b> </td> @@ -96,8 +100,8 @@ <td><br></td> <td> <p> - The goal is to provide most standard POSIX OS interfaces to support - a rich, multi-threaded development environment for deeply embedded + The goal is to provide implementations of most standard POSIX OS interfaces + to support a rich, multi-threaded development environment for deeply embedded processors. </p> NON-GOALS: (1) It is not a goal to provide the rich level of OS @@ -109,7 +113,7 @@ </p> </tr> <tr> - <td valign="top"><img src="favicon.ico"></td> + <td valign="top" width="18"><img src="favicon.ico"></td> <td bgcolor="#5eaee1"> <b>Highly Scalable</b> </td> @@ -125,7 +129,7 @@ </p> </tr> <tr> - <td valign="top"><img src="favicon.ico"></td> + <td valign="top" width="18"><img src="favicon.ico"></td> <td bgcolor="#5eaee1"> <b>Standards Compliance</b> </td> @@ -135,7 +139,7 @@ <td> <p> NuttX strives to achieve a high degree of standards compliance. - The primary governing standards are POSIX and ANSI standards. + The primary governing standards are POSIX, ANSI, and BSD standards. Additional standard APIs from Unix and other common RTOS's are adopted for functionality not available under these standards or for functionaly that is not appropriate for the deeply-embedded @@ -147,7 +151,7 @@ </p> </tr> <tr> - <td valign="top"><img src="favicon.ico"></td> + <td valign="top" width="18"><img src="favicon.ico"></td> <td bgcolor="#5eaee1"> <b>Real-Time</b> </td> @@ -160,7 +164,7 @@ </p> </tr> <tr> - <td valign="top"><img src="favicon.ico"></td> + <td valign="top" width="18"><img src="favicon.ico"></td> <td bgcolor="#5eaee1"> <b>Totally Open</b> </td> @@ -174,6 +178,209 @@ </tr> </table></center> +<p> + <b>Feature Set</b>. + Key features of NuttX include: +<p> +<center><table width="90%"> + +<tr> + <td valign="top" width="18"><img src="favicon.ico"></td> + <td bgcolor="#5eaee1"> + <b>Standards Compliant Core Task Management</b> + </td> +</tr> + +<tr> + <td><br></td> + <td> + <p> + Modular, micro-kernel + </p> +</tr> + +<tr> + <td><br></td> + <td> + <p> + Fully pre-emptible. + </p> +</tr> + +<tr> + <td><br></td> + <td> + <p> + Naturally calable. + </p> +</tr> + +<tr> + <td><br></td> + <td> + <p> + Easily extensible to new processor architectures, SoC architecture, or board architectures. + </p> +</tr> + +<tr> + <td><br></td> + <td> + <p> + FIFO and round-robin scheduling. + </p> +</tr> + +<tr> + <td><br></td> + <td> + <p> + Realtime, deterministic. + </p> +</tr> + +<tr> + <td><br></td> + <td> + <p> + POSIX/ANSI-like task controls, named message queues, counting semaphores, clocks/timers, signals, pthreads, environment variables, filesystem. + </p> +</tr> + +<tr> + <td><br></td> + <td> + <p> + VxWorks-like task management and watchdog timers. + </p> +</tr> + +<tr> + <td><br></td> + <td> + <p> + BSD socket interface. + </p> +</tr> + +<tr> + <td><br></td> + <td> + <p> + Extensions to manage pre-emption. + </p> +</tr> + +<tr> + <td><br></td> + <td> + <p> + Well documented in the NuttX <a href="NuttxUserGuide.html">User Guide</a>. + </p> +</tr> + +<tr> + <td valign="top" width="18"><img src="favicon.ico"></td> + <td bgcolor="#5eaee1"> + <b>File system</b> + </td> +</tr> + +<tr> + <td><br></td> + <td> + <p> + In-memory, pseudo file-system. + </p> +</tr> + +<tr> + <td><br></td> + <td> + <p> + Supports character and block drivers. + </p> +</tr> + +<tr> + <td><br></td> + <td> + <p> + Network and serial driver architecture. + </p> +</tr> + +<tr> + <td><br></td> + <td> + <p> + Mountable volumes. Binds mountpoint, filesystem, and block driver. + </p> +</tr> + +<tr> + <td><br></td> + <td> + <p> + VFAT filesystem support. + </p> +</tr> + +<tr> + <td valign="top" width="18"><img src="favicon.ico"></td> + <td bgcolor="#5eaee1"> + <b>C Library</b> + </td> +</tr> + +<tr> + <td><br></td> + <td> + <p> + Fully integrated into the OS. + </p> +</tr> + +<tr> + <td valign="top" width="18"><img src="favicon.ico"></td> + <td bgcolor="#5eaee1"> + <b>Networking</b> + </td> +</tr> + +<tr> + <td><br></td> + <td> + <p> + TCP/IP, UDP, ICMP stacks. + </p> +</tr> + +<tr> + <td><br></td> + <td> + <p> + Small footprint (based on uIP). + </p> +</tr> + +<tr> + <td><br></td> + <td> + <p> + BSD compatible socket layer. + </p> +</tr> + +<tr> + <td><br></td> + <td> + <p> + Networking utilities. + </p> +</tr> +</table></center> + <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> @@ -778,6 +985,28 @@ Other memory: </tr> </center></ul> +<small> +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="trademarks"><h1>Trademarks</h1></a> + </td> + </tr> +</table> +<ul> +<li>ARM, ARM7 ARM7TDMI, ARM9, ARM926EJS are trademarks of Advanced RISC Machines, Limited.</li> +<li>Cygwin is a trademarksof Red Hat, Incorporated.</li> +<li>Linux is a registered trademark of Linus Torvalds.</li> +<li>LPC2148 is a trademark of NXP Semiconductors.</li> +<li>TI is a tradename of Texas Instruments Incorporated.</li> +<li>VxWorks is a registered trademark of Wind River Systems, Incorporated.</li> +</ul> +<p> + NOTE: NuttX is <i>not</i> licensed to use the POSIX trademark. +</p> +</small> + + </body> </html> From 74a4947983988738f828ee481fdade54640504f0 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 5 Dec 2007 01:27:17 +0000 Subject: [PATCH 0141/1518] Clarifications git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@427 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 9e7d048e19..26e445c263 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -139,7 +139,7 @@ <td> <p> NuttX strives to achieve a high degree of standards compliance. - The primary governing standards are POSIX, ANSI, and BSD standards. + The primary governing standards are POSIX and ANSI standards. Additional standard APIs from Unix and other common RTOS's are adopted for functionality not available under these standards or for functionaly that is not appropriate for the deeply-embedded @@ -290,7 +290,7 @@ <td><br></td> <td> <p> - In-memory, pseudo file-system. + Tiny in-memory, root pseudo-file-system. </p> </tr> @@ -314,7 +314,7 @@ <td><br></td> <td> <p> - Mountable volumes. Binds mountpoint, filesystem, and block driver. + Mount-able volumes. Bind mountpoint, filesystem, and block device driver. </p> </tr> @@ -995,18 +995,19 @@ Other memory: </table> <ul> <li>ARM, ARM7 ARM7TDMI, ARM9, ARM926EJS are trademarks of Advanced RISC Machines, Limited.</li> -<li>Cygwin is a trademarksof Red Hat, Incorporated.</li> +<li>Cygwin is a trademark of Red Hat, Incorporated.</li> <li>Linux is a registered trademark of Linus Torvalds.</li> <li>LPC2148 is a trademark of NXP Semiconductors.</li> <li>TI is a tradename of Texas Instruments Incorporated.</li> +<li>UNIX is a registered trademark of The Open Group.</li> <li>VxWorks is a registered trademark of Wind River Systems, Incorporated.</li> </ul> <p> - NOTE: NuttX is <i>not</i> licensed to use the POSIX trademark. + NOTE: NuttX is <i>not</i> licensed to use the POSIX trademark. NuttX uses the POSIX + standard as a development guideline only. </p> </small> - </body> </html> From 47bd9691df568f4db04dd070eef7ace014b58e13 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 5 Dec 2007 15:12:38 +0000 Subject: [PATCH 0142/1518] Cosmetic git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@428 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 42 ++++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 26e445c263..45064cf89c 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -195,7 +195,7 @@ <td><br></td> <td> <p> - Modular, micro-kernel + <li>Modular, micro-kernel</li> </p> </tr> @@ -203,7 +203,7 @@ <td><br></td> <td> <p> - Fully pre-emptible. + <li>Fully pre-emptible.</li> </p> </tr> @@ -211,7 +211,7 @@ <td><br></td> <td> <p> - Naturally calable. + <li>Naturally scalable.</li> </p> </tr> @@ -219,7 +219,7 @@ <td><br></td> <td> <p> - Easily extensible to new processor architectures, SoC architecture, or board architectures. + <li>Easily extensible to new processor architectures, SoC architecture, or board architectures.</li> </p> </tr> @@ -227,7 +227,7 @@ <td><br></td> <td> <p> - FIFO and round-robin scheduling. + <li>FIFO and round-robin scheduling.</li> </p> </tr> @@ -235,7 +235,7 @@ <td><br></td> <td> <p> - Realtime, deterministic. + <li>Realtime, deterministic.</li> </p> </tr> @@ -243,7 +243,7 @@ <td><br></td> <td> <p> - POSIX/ANSI-like task controls, named message queues, counting semaphores, clocks/timers, signals, pthreads, environment variables, filesystem. + <li>POSIX/ANSI-like task controls, named message queues, counting semaphores, clocks/timers, signals, pthreads, environment variables, filesystem.</li> </p> </tr> @@ -251,7 +251,7 @@ <td><br></td> <td> <p> - VxWorks-like task management and watchdog timers. + <li>VxWorks-like task management and watchdog timers.</li> </p> </tr> @@ -259,7 +259,7 @@ <td><br></td> <td> <p> - BSD socket interface. + <li>BSD socket interface.</li> </p> </tr> @@ -267,7 +267,7 @@ <td><br></td> <td> <p> - Extensions to manage pre-emption. + <li>Extensions to manage pre-emption.</li> </p> </tr> @@ -275,7 +275,7 @@ <td><br></td> <td> <p> - Well documented in the NuttX <a href="NuttxUserGuide.html">User Guide</a>. + <li>Well documented in the NuttX <a href="NuttxUserGuide.html">User Guide</a>.</li> </p> </tr> @@ -290,7 +290,7 @@ <td><br></td> <td> <p> - Tiny in-memory, root pseudo-file-system. + <li>Tiny in-memory, root pseudo-file-system.</li> </p> </tr> @@ -298,7 +298,7 @@ <td><br></td> <td> <p> - Supports character and block drivers. + <li>Supports character and block drivers.</li> </p> </tr> @@ -306,7 +306,7 @@ <td><br></td> <td> <p> - Network and serial driver architecture. + <li>Network and serial driver architecture.</li> </p> </tr> @@ -314,7 +314,7 @@ <td><br></td> <td> <p> - Mount-able volumes. Bind mountpoint, filesystem, and block device driver. + <li>Mount-able volumes. Bind mountpoint, filesystem, and block device driver.</li> </p> </tr> @@ -322,7 +322,7 @@ <td><br></td> <td> <p> - VFAT filesystem support. + <li>VFAT filesystem support.</li> </p> </tr> @@ -337,7 +337,7 @@ <td><br></td> <td> <p> - Fully integrated into the OS. + <li>Fully integrated into the OS.</li> </p> </tr> @@ -352,7 +352,7 @@ <td><br></td> <td> <p> - TCP/IP, UDP, ICMP stacks. + <li>TCP/IP, UDP, ICMP stacks.</li> </p> </tr> @@ -360,7 +360,7 @@ <td><br></td> <td> <p> - Small footprint (based on uIP). + <li>Small footprint (based on uIP).</li> </p> </tr> @@ -368,7 +368,7 @@ <td><br></td> <td> <p> - BSD compatible socket layer. + <li>BSD compatible socket layer.</li> </p> </tr> @@ -376,7 +376,7 @@ <td><br></td> <td> <p> - Networking utilities. + <li>Networking utilities.</li> </p> </tr> </table></center> From 626c44b86c192cacfd9b619ae96023fcfc4d09be Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 6 Dec 2007 23:10:31 +0000 Subject: [PATCH 0143/1518] Improved read-ahead buffer management git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@430 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 45064cf89c..b5996a81f6 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -964,6 +964,7 @@ Other memory: * Add TELNETD front end to NSH (examples/nsh) * Add a skeleton Ethernet device driver (drivers/net/skeleton.c) * Added C5471 Ethernet device driver (arch/arm/src/c5471/c5471_ethernet.c) + * Improved utilization of read-ahead buffers </pre></ul> <table width ="100%"> From a54d7ba35330d3cd970e5df74a98b4ab88bac91a Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 10 Dec 2007 17:15:11 +0000 Subject: [PATCH 0144/1518] Release 0.3.4 git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@436 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 76 ++++++++++++++-------------- Documentation/NuttxPortingGuide.html | 64 +++++++++++++++++++---- Documentation/NuttxUserGuide.html | 61 +++++++++++++++++++--- 3 files changed, 147 insertions(+), 54 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index b5996a81f6..0ab1576188 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: December 5, 2007</p> + <p>Last Updated: December 10, 2007</p> </td> </tr> </table> @@ -390,7 +390,7 @@ </table> <p> - The 15th release of NuttX (nuttx-0.3.3) is available for download + The 16th release of NuttX (nuttx-0.3.4) is available for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. The change log associated with the release is available <a href="#currentrelease">here</a>. @@ -398,40 +398,38 @@ These unreleased changes are listed <a href="#pendingchanges">here</a>. </p> <p> - NuttX 0.3.3 is the 4th release containing the integration of a network + NuttX 0.3.4 is the 5th release containing the integration of a network subsystem and the uIP TCP/IP, UDP, and ICMP stacks based on <a href="http://www.sics.se/~adam/uip/index.php/Main_Page">uIP</a> into NuttX. </p> <p> - Many network-related problems have been fixed from version 0.3.2 - and the implementation has matured significantly. - Changes in this release include: + This release is primarily a bug-fix release. New features include only: </p> <ul> -<li>TCP-related bug-fixes for disconnecting sockets,</li> -<li>Correction of some TCP read-ahead logic,<li> -<li>TCP performance improvements,</li> -<li>Initial UDP integration, and</li> -<li>IMisc. additions and cleanup (See the ChangeLog for a complete list of - changes).</li> +<li>TELNET front-end to NSH,</li> +<li>DHCPC server functionality, and</li> +<li>C5471 Ethernet driver.</li> </ul> + <p> - The level of network reliability is at an early beta release level. The + Numerous network related problems were fixed related to DHCPC, UDP + input processing, UDP broadcast, send timeouts, and bad compilation when + uIP is compiled at high levels of optimizatin. +</p> + +<p> + The level of network reliability is at a strong beta release level. The baseline functionality of NuttX continues to mature and remains at - post-beta. Open network-related issues include only: + post-beta or production level. </p> -<ul> -<li>Some minor unimplemented BSD socket functionality,</li> -<li>Thread safety issues: the same socket cannot be used concurrently on - different threads, </li> -<li>Pending design changes necessary to support multiple network interfaces, and </li> -<li>IPv6 support is incomplete.</li> -</ul> + <p> - This release has been verified only on the Neuros OSD (DM320 ARM9) - platform using the DM90x0 driver. Any feedback for improving the network - reliability/performance would be greatly appreciated. + Parts of this release were verified only on the Neuros OSD (DM320 ARM9) + platform using the DM90x0 Ethernet driver and other parts on the Spectrum + Digital C5471 EVM using the C5471 Ethernet driver. Any feedback about bugs + or suggestions for mproving the network reliability/performance would be + greatly appreciated. </p> <table width ="100%"> @@ -918,17 +916,7 @@ Other memory: using examples/udp * recvfrom() and accept() now correctly return the remote address. * Fixed computation error in ntohl(). -</pre></ul> -<table width ="100%"> - <tr bgcolor="#e4e4e4"> - <td> - <a name="currentrelease">ChangeLog for Current Release</a> - </td> - </tr> -</table> - -<pre><ul> 0.3.3 2007-11-28 Gregory Nutt <spudmonkey@racsa.co.cr> * Removed unused uIP files @@ -947,13 +935,13 @@ Other memory: <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="pendingchanges">Unreleased Changes</a> + <a name="currentrelease">ChangeLog for Current Release</a> </td> </tr> </table> <pre><ul> -0.3.4 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> +0.3.4 2007-12-10 Gregory Nutt <spudmonkey@racsa.co.cr> * Added and partially verified DHCP server logic (netutils/dhcpd) * Fix BROADCAST=y compilation problems @@ -961,10 +949,22 @@ Other memory: * Correct processing of input UDP broadcast packets. * Verfied basic DHCP client functionality (netutils/dhcpc) * Implemented send() timeout logic - * Add TELNETD front end to NSH (examples/nsh) + * Added and verifed a TELNETD front end to NSH (examples/nsh) * Add a skeleton Ethernet device driver (drivers/net/skeleton.c) * Added C5471 Ethernet device driver (arch/arm/src/c5471/c5471_ethernet.c) - * Improved utilization of read-ahead buffers + * Found and fixed several problems in uIP when compiled for ARM with optimization. +</pre></ul> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="pendingchanges">Unreleased Changes</a> + </td> + </tr> +</table> + +<pre><ul> +0.3.5 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> </pre></ul> <table width ="100%"> diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index fe18ecba8c..4f54d4cdae 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -16,7 +16,7 @@ </b></big> <p><small>by</small></p> <p>Gregory Nutt</p> - <p><small>Last Update: September 8, 2007</small></p> + <p><small>Last Update: December 10, 2007</small></p> </center> <center><h1>Table of Contents</h1></center> @@ -88,6 +88,7 @@ <li><a href="#irqdispatch">4.2.4 <code>irq_dispatch()</code></a></li> </ul> </ul> +<li><a href="#NxFileSystem">5.0 NuttX File System</a></li> <li><a href="#apndxconfigs">Appendix A: NuttX Configuration Settings</a></li> <hr> @@ -607,13 +608,8 @@ <h2>2.6 <a name="DirStructFs">fs</a></h2> <p> - This directory contains the NuttX filesystem. - The NuttX filesystem is very simple; it does not involve any block drivers or - particular filesystem (like FAT or EXT2 etc.). - The NuttX filesystem simply supports a set a filesystem APIs - (<code>open()</code>, <code>close()</code>, <code>read()</code>, <code>write</code>, etc.) - and a registration mechanism that allows devices drivers to a associated with <i>nodes</i> - in a file-system-like name space. + This directory contains the NuttX file system. + This file system is described <a href="#NxFileSystem">below</a>. </p> <h2>2.7 <a name="DirStructInclude">include</a></h2> @@ -1144,6 +1140,56 @@ The system can be re-made subsequently by just typing <code>make</code>. the appropriate, registered handling logic. </p> +<h1><a name="NxFileSystem">5.0 NuttX File System</a></h1> + +<p><b>Overview</b>. + NuttX includes an optional, scalable file system. + This file-system may be omitted altogther; NuttX does not depend on the presence + of any file system. +</p> + +<p><b>Pseudo Root File System</b>. + Or, a simple <i>in-memory</i>, <i>psuedo</i> file system can be enabled. + This simple file system can be enabled setting the CONFIG_NFILE_DESCRIPTORS + option to a non-zero value (see <a href="#apndxconfigs">Appendix A</a>). + This is an <i>in-memory</i> file system because it does not require any + storage medium or block driver support. + Rather, file system contents are generated on-the-fly as referenced via + standard file system operations (open, close, read, write, etc.). + In this sense, the file system is <i>psuedo</i> file system (in the + same sense that the Linux <code>/proc</code> file system is also + referred to as a psuedo file system). +</p> + +<p> + Any user supplied data or logic can be accessed via the psuedo-file system. + Built in support is provided for character and block drivers in the + <code>/dev</code> psuedo file system directory. +</p> + +<p><b>Mounted File Systems</b> + The simple in-memory file system can be extended my mounting block + devices that provide access to true file systems backed up via some + mass storage device. + NuttX supports the standard <code>mount()</code> command that allows + a block driver to be bound to a mountpoint within the psuedo file system + and to a a file system. + At present, NuttX supports only the VFAT file system. +</p> + +<p><b>Comparison to Linux</b> + From a programming perspective, the NuttX file system appears very similar + to a Linux file system. + However, there is a fundamental difference: + The NuttX root file system is a psuedo file system and true file systems may be + mounted in the psuedo file system. + In the typical Linux installation by comparison, the Linux root file system + is a true file system and psuedo file systems may be mounted in the true, + root file system. + The approach selected by NuttX is intended to support greater scalability + from the very tiny platform to the moderate platform. +</p> + <h1><a name="apndxconfigs">Appendix A: NuttX Configuration Settings</a></h1> <p> @@ -1209,7 +1255,7 @@ The system can be re-made subsequently by just typing <code>make</code>. <code>CONFIG_DEBUG_NET</code>: enable network debug output (disabled by default) </li> <li> - <code>CONFIG_DEBUG_FS</code>: enable filesystem debug output (disabled by default) + <code>CONFIG_DEBUG_FS</code>: enable file system debug output (disabled by default) </li> <li> <code>CONFIG_DEBUG_LIB</code>: enable C library debug output (disabled by default) diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 8485f287c0..9e63bb0b5d 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -21,7 +21,7 @@ User's Manual <p> Gregory Nutt <p> -<small>Last Update: September 23, 2007</small> +<small>Last Update: December 10, 2007</small> </center> <h1>1.0 <A NAME="Introduction">Introduction</a></h1> @@ -54,7 +54,7 @@ Gregory Nutt <li>Paragraph 2.8 <a href="#Signals">Signal Interfaces</a></li> <li>Paragraph 2.9 <a href="#Pthread">Pthread Interfaces</a></li> <li>Paragraph 2.10 <a href="#Environ">Environment Variables</a></li> - <li>Paragraph 2.11 <a href="#FileSystem">Filesystem Interfaces</a></li> + <li>Paragraph 2.11 <a href="#FileSystem">File System Interfaces</a></li> <li>Paragraph 2.12 <a href="#Network">Network Interfaces</a></li> </ul> </li> @@ -5687,11 +5687,58 @@ interface of the same name. Zero on success. </p> -<h1><a name="FileSystem">2.11 Filesystem Interfaces</a></h1> +<h1><a name="FileSystem">2.11 File System Interfaces</a></h1> + +<p><b>Overview</b>. + NuttX includes an optional, scalable file system. + This file-system may be omitted altogther; NuttX does not depend on the presence + of any file system. +</p> + +<p><b>Pseudo Root File System</b>. + Or, a simple <i>in-memory</i>, <i>psuedo</i> file system can be enabled. + This simple file system can be enabled setting the CONFIG_NFILE_DESCRIPTORS + option to a non-zero value. + This is an <i>in-memory</i> file system because it does not require any + storage medium or block driver support. + Rather, file system contents are generated on-the-fly as referenced via + standard file system operations (open, close, read, write, etc.). + In this sense, the file system is <i>psuedo</i> file system (in the + same sense that the Linux <code>/proc</code> file system is also + referred to as a psuedo file system). +</p> + <p> - The NuttX filesystem is very simple; it does not involve any block drivers or - particular filesystem (like FAT or EXT2 etc.). - The NuttX filesystem simply supports a set a filesystem APIs + Any user supplied data or logic can be accessed via the psuedo-file system. + Built in support is provided for character and block drivers in the + <code>/dev</code> psuedo file system directory. +</p> + +<p><b>Mounted File Systems</b> + The simple in-memory file system can be extended my mounting block + devices that provide access to true file systems backed up via some + mass storage device. + NuttX supports the standard <code>mount()</code> command that allows + a block driver to be bound to a mountpoint within the psuedo file system + and to a a file system. + At present, NuttX supports only the VFAT file system. +</p> + +<p><b>Comparison to Linux</b> + From a programming perspective, the NuttX file system appears very similar + to a Linux file system. + However, there is a fundamental difference: + The NuttX root file system is a psuedo file system and true file systems may be + mounted in the psuedo file system. + In the typical Linux installation by comparison, the Linux root file system + is a true file system and psuedo file systems may be mounted in the true, + root file system. + The approach selected by NuttX is intended to support greater scalability + from the very tiny platform to the moderate platform. +</p> + +<p><b>File System Interfaces</b>. + The NuttX file system simply supports a set of standard, file system APIs (<code>open()</code>, <code>close()</code>, <code>read()</code>, <code>write</code>, etc.) and a registration mechanism that allows devices drivers to a associated with <i>nodes</i> in a file-system-like name space. @@ -6597,7 +6644,7 @@ notify a task when a message is available on a queue. <li><a href="#directoryoperations">Directory operations</a></li> <li><a href="#driveroperations">Driver operations</a></li> <li><a href="#exit">exit</a></li> - <li><a href="#FileSystem">Filesystem interfaces</a></li> + <li><a href="#FileSystem">File system interfaces</a></li> <li><a href="#getpid">getpid</a></li> <li><a href="#getsockopt">getsockopt</a></li> <li><a href="#gmtimer">gmtime_r</a></li> From b5cadb9bb4a5f0917d8882245cfcbc165aa77808 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 10 Dec 2007 17:41:40 +0000 Subject: [PATCH 0145/1518] Updates git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@437 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 0ab1576188..8edba79e96 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -219,7 +219,8 @@ <td><br></td> <td> <p> - <li>Easily extensible to new processor architectures, SoC architecture, or board architectures.</li> + <li>Easily extensible to new processor architectures, SoC architecture, or board architectures. + A <a href="NuttxPortingGuide.html">Porting Guide</a> is in development.</li> </p> </tr> @@ -978,11 +979,11 @@ Other memory: <ul><table> <tr> <td><img src="favicon.ico"></td> - <td><a href="NuttxUserGuide.html">User Guide</td> + <td><a href="NuttxUserGuide.html">User Guide</a></td> </tr> <tr> <td><img src="favicon.ico"></td> - <td><a href="NuttxPortingGuide.html">Porting Guide</td> + <td><a href="NuttxPortingGuide.html">Porting Guide</a></td> </tr> </center></ul> From 86092475f9b91c2666e208cab90dd84719887d49 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 11 Dec 2007 14:28:16 +0000 Subject: [PATCH 0146/1518] Moved MAC and ethernet definitions to include/net/ethernet.h git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@443 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 8edba79e96..39a9bd32f1 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: December 10, 2007</p> + <p>Last Updated: December 11, 2007</p> </td> </tr> </table> @@ -471,7 +471,7 @@ <td><br></td> <td> <p> - <b>TI TMS320C5471</b> (also called a <b>C5471</b> or <b>TMS320DM180</b>). + <b>TI TMS320C5471</b> (also called <b>C5471</b> or <b>TMS320DA180</b> or <b>DA180</a>). NuttX operates on the ARM7 of this dual core processor. This port uses the <a href="http://www.spectrumdigital.com/">Spectrum Digital</a> evaluation board with a GNU arm-elf toolchain*. @@ -966,6 +966,11 @@ Other memory: <pre><ul> 0.3.5 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> + + * Added inet_ntoa() and ether_ntoa() + * Added netdev_foreach() to support traversal of registered network devices + * Added support for 'ifconfig' command to NSH (examples/nsh) + * Moved MAC and ethernet definitions to net/ethernet.h </pre></ul> <table width ="100%"> From 02153019070d43620c9a9d8b5241792e1579a59c Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 11 Dec 2007 14:49:02 +0000 Subject: [PATCH 0147/1518] Fix compilation errors git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@444 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 39a9bd32f1..0ae087aa1c 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -971,6 +971,7 @@ Other memory: * Added netdev_foreach() to support traversal of registered network devices * Added support for 'ifconfig' command to NSH (examples/nsh) * Moved MAC and ethernet definitions to net/ethernet.h + * Fix sim and DM90x0 compilation errors introduced in 0.3.4 </pre></ul> <table width ="100%"> From 2cf80fbbfe388e15e594523d513decf6ed3fac4e Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 11 Dec 2007 22:08:57 +0000 Subject: [PATCH 0148/1518] update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@447 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 0ae087aa1c..979d25e9b7 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -972,6 +972,9 @@ Other memory: * Added support for 'ifconfig' command to NSH (examples/nsh) * Moved MAC and ethernet definitions to net/ethernet.h * Fix sim and DM90x0 compilation errors introduced in 0.3.4 + * Fixed errors in C5471 configuration files for examples/uip + * Modified DHCPC (netutils/dhcpc) so that it should work in environments where + there are more than one DHCPD server. </pre></ul> <table width ="100%"> From 0d313167f842ea63ad234c447ddcc354df0ec6e7 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 12 Dec 2007 14:41:36 +0000 Subject: [PATCH 0149/1518] ifconfig shows uIP stats git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@450 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 979d25e9b7..d795e086e7 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: December 11, 2007</p> + <p>Last Updated: December 12, 2007</p> </td> </tr> </table> @@ -975,6 +975,7 @@ Other memory: * Fixed errors in C5471 configuration files for examples/uip * Modified DHCPC (netutils/dhcpc) so that it should work in environments where there are more than one DHCPD server. + * NSH ifconfig command now shows uIP status was well (examples/nsh) </pre></ul> <table width ="100%"> From 5a2df7b6a513c09c85a967e29751d64b592e0fe8 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 13 Dec 2007 16:52:37 +0000 Subject: [PATCH 0150/1518] update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@451 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 305 +++++---------------------------------- 1 file changed, 34 insertions(+), 271 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index d795e086e7..c419118999 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -49,6 +49,10 @@ <td><img src="favicon.ico"></td> <td><a href="#history">Release History</a></td> </tr> +<tr> + <td><img src="favicon.ico"></td> + <td><a href="#TODO">Bugs, Issues, <i>Things-To-Do</i></a></td> +</tr> <tr> <td><img src="favicon.ico"></td> <td><a href="#documentation">Other Documentation</a></td> @@ -642,11 +646,18 @@ Other memory: </tr> </table> +<ul> +<p> + The current NuttX Change Log is available in CVS <a href="http://nuttx.cvs.sourceforge.net/*checkout*/nuttx/nuttx/ChangeLog">here</a>. + ChangeLog snapshots associated with the current release are available below. +</p> +</ul> + <center><table width ="80%"> <tr> <td><img src="favicon.ico"></td> <td> - <a href="#olderreleases">Change Logs for Older Releases</a><br> + <a href="ChangeLog.txt">Change Logs for all releases</a><br> </td> </tr> <tr> @@ -663,276 +674,6 @@ Other memory: </tr> </table></center> -<table width ="100%"> - <tr bgcolor="#e4e4e4"> - <td> - <a name="olderreleases">Change Logs for Older Releases</a> - </td> - </tr> -</table> - -<ul><pre> -0.1.0 2007-03-09 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - - * Initial Release - * Support for Linux user mode simulation and TI - TMS320C5471 (Arm7) provided - -0.1.1 2007-03-14 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - - * Corrected an error in interrupt level context switching - for C5471 - * Added fgets() and gets() logic; verified c5471 console read. - * Corrected error in reading from the C5471 serial port: - Improper use of semaphore can cause deadlock. - * Fixed an error in the memory cleanup: The idle task - cannot take sempahores (because it must always be ready - to run). - * Tasks can now accept a configurable maximum number of - input parameters (argc) - * _task_init() was divided into separate functions that - require fewer parameters. This was necessary to keep - the stack usage down for the 8051/2 (which has only - 256 bytes of stack). - * Attempts to use C5471 console from interrupt handlers - can cause errors. Added a special path for this case. - * Refuse calls to sem_wait and sem_trywait from interrupt - handlers. This was happening because interrupt handlers - were calling printf-like functions. - * Added strtok() and strtok_r() - * Added a simple shell called nsh (see examples/nsh). - * Platform support for 8052 is complete but not stable - when the timer interrupt is enabled. Seems to be an - issue when SP enters indirect address space. - * Documentation updates - -0.1.2 2007-03-19 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - - * Add dirent.h, opendir(), readdir(), closedir(), etc. - * Add strerror() - * Added 'ls' command to nsh - * Added C5471 watchdog driver - * Fixed another bug where free() is called from IDLE task. - Can't do this; the caller must be able to wait for access - to memory. - * Fixed bugs associated with debug output: - Cannot do dbg() in middle of context switch logic. - because it may require use of semaphores and cause - additional context switches. lldbg() is safe. - * Interrupt must be disabled throughout all context switches. - * Separated C5471 serial driver; a shareable part is - in drivers/. ; the C5471 specific part is in arch/C5471. - serial.h defines the interface. - * Fixed mq_receive() and mq_send() -- bad memcpy() - * Fixed C5471 signal deliver logic: use of dbg() and - other actions by use signal handler can alter errno. - need to protect errno during signal handling. - * Fixed uninitialized variable in filesystem that could - cause various problems - * Added a test for roundrobin scheduler. - -0.2.1 2007-03-22 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - - * Fix error in handing signed decimal in vsprintf(). - * Major restructuring of header files to get closer to - POSIX compliance. - * Eliminate compilation warnings that that crept into - recent check-ins - * Add kill() - * Added support for POSIX timers - * Some Documentation updates - * Added support for the Neuros OSD / DM320 - -0.2.2 2007-03-26 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - * Created the configs/ directory; separated board configuration - from processor architecture logic - * Add memory leak detection test to examples/ostest - * Corrected memory leak in OS pthread join logic - * Corrected memory leaks in examples/ostest due to failures - to join or detach from pthreads. - * Added pthread_once(), pthread_kill(), pthread_sigmask() - * Added pthread_barrierattr_*() APIs - * Added pthread_barrier_init(), pthread_barrier_destroy(), and - pthread_barrier_wait(); - * Added pthread barrier test - * Added protection so that errno cannot be modified from - interrupt handling. - * sched_setparam(), sched_setscheduler() now correctly set - errno; pthread_setscheduler() now returns the correct errno. - * Added pthread_setschedprio(). - * Added directories to hold board-specific header files - * Added directories to hold board-specific drivers - -0.2.3 2007-03-29 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - - * mq_receive and mq_send now return errno's appropriately - * mq_receive and mq_send are now correctly awakened by signals. - * Fixed an unmatched sched_lock/unlock pair in task_delete(). - * sched_lock must be called in _exit() because operation of - task_delete() can cause pending tasks to be merged and a - context switch to occur. - * Added mq_timedreceive() and mq_timedsend() - * signal mask is now inherited by both child tasks and threads. - * Improved sharebility of stdout among pthreads (only). Nothing - was broken, but by moving the mutual exclusion logic to a - higher level, the printf output is more readable. - * Fixed a bug in file system cleanup: A list was being deleted - before the buffers contained in the list. - * Fixed a bug in the wait-for-message-queue-not-empty logic. - * Added a test of timed mqueue operations; detected and corrected - some mqueue errors. - * Identified and corrected a race condition associated with - pthread_join. In the failure condition, memory was being - deallocated while still in use. - -0.2.4 2007-04-28 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - - * Verfied c5471 build under Cygwin on WinXP - * Makesystem changes to better support different SoCs. - * Made arch/c5471/include and arch/dm320/include identical in - preparation for merging into arch/arm - * Logic from arch/c5471 and arch/dm320 combined into arch/arm. - arch/c5471 and arch/dm320 are deprecated and will be removed - when the new c5471 and dm320 logic is verified. - -0.2.5 2007-05-19 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - - * Corrected some build/configuration issues introduced with the - last release. - * Added support for the NXP 214x processor on the mcu123.com lpc214x - development board (untested) - * Added support for block devices. - * Simulated target now exports a VFAT filesystem - * Begin support for VFAT filesystem (missing functionalit) - * Added mount() and umount() - * Fix bug in memcmp return value - * Fix errors in timeslice calculation (several places) - * Added missing irqrestore() in timer_deletall(). - * close() was not closing the underlying device. - * Added fsync() - * Added strspn() and strcspn() - -0.2.6 2007-05-26 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - - * Added unlink(), mkdir(), rmdir(), and rename() - * Fixed several serious FAT errors with oflags handling (&& instead of &) - * Added FAT support for unlink(), mkdir(), rmdir(), and rename - * Added FAT support for opendir(), closedir(), readdir(), seekdir(), - telldir(), rewindir(). - * Fixed ARM compilation errors introduced in 0.2.5 (that is what I get - for only testing on the simulation). - -0.2.7 2007-06-09 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - - * Added stat() to fs layer and to FAT - * Fixed reference counting errors associated with mounted filesystems - * Added fat_getattrib() and fat_setattrib() - * Added statfs() to fs layer and to FAT - * Correct file name extension in tools/zipme.sh - * Fix error in dependencies in 8051/2 Makefile - * sched/Makefile: Don't build sleep() or usleep() if signals are disabled - * sched/sched_setparam.c: Remove redundant disabling of interrupts - * sched/usleep.c: Fixed nsec calculation - * lib/lib_strcspn.c: Function incorrectly named strspn(). - * examples/ostest/main.c: Errors in SDCC version of a memcpy() call - * examples/ostest/sighand.c: Don't call fflush() if streams are disabled - * include/limits.h, include/time.h, sched/clock_internal.h: A support for - using selectable system timer frequency. - * Fixed error in mountpoint related conditional compilation introduced - in 0.2.5 - * Restructured some Makefiles to better handle enabling and disabling - NuttX features without having so much conditional compilation in the - source files. - * tools/mkconfig.c: No longer depends on asprintf() and _GNU_SOURCE and - so should now build in non-GNU, non-GLIBC environments. - * include/nuttx/compiler.h: Fix for using SDCC with the Z80. - * include/assert.h & arch/pjrc-8051/src/up_assert.c: SDCC does support - __FILE__and __LINE__ (not tested) - * examples/ostest/barrier.c: Don't call usleep() when signals are - disabled. - -0.2.8 2007-07-02 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - * tools/Makefile.mkconfig: Under Cygwin, executable has a different name - * tools/mkdeps.sh & arch/arm/src/Makefile: Corrected a problem makeing dependencies - * tools/zipme.sh: Force directory name to be nuttx-xx.yy.zz - * fs/fs_opendir.c: Correct errors in semaphore usage that can cause deadlock. - * lib/lib_getopt.c: Added getopt() support - * examples/nsh/: NSH now supports cat, mount, umount, and mkdir. ls supports - -l -s, and -R - * Added basic OS support to manage environment variables: environment - storage, cloning on task creation, sharing on pthread creation, destruction - on thread/task exit. - * Add environment variables APIs: environ, getenv, putenv, clearenv, setenv, - unsetenv - * Correct an error in realloc() when the block is extended "down" in memory. - In this case, the old memory contents need to be copied to the new location - and an allocated bit was not being set. - * examples/ostest/: Added an environment variable test. - * examples/nsh/: Break into several files. - * lib/: Added strrchr, basename, dirname - * examples/nsh/: Add cp, rm, rmdir, set, unset commands. echo will now print - environment variables. - -0.3.0 2007-11-06 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - - * Imported uIP into the tree (see - http://www.sics.se/~adam/uip/index.php/Main_Page) - * Adding socket(), bind(), connect() - * Added snprintf() - * Added send() and sendto(); integrate write() and close() with socket descriptors. - * Added recv() and recvfrom(). - * Added getsockopt() and setsockopt() - * Documentation updated to address socket interfaces. - * Implemented receive timeouts via setsockopt(SO_RCVTIMEO). - * Provide support for multiple network devices - * Implement socket ioctl() calls to set addresses - * Added listen() and accept() - * Added DM90x0 ethernet driver - * ARP timer is now built into the network layer - * Basic client functionality verified: socket(), bind(), connect(), recv(), send(). - -0.3.1 2007-11-19 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - - * Separated net/uip/uip.c into several functions in several files. - * Corrected a TCP problem where packets were dropped because there was no - recv() in place but the packet was being ACKed. There are still TCP - recv buffering issues, but this is part of a larger buffering issue. - * Basic server functionality verified: listen(), accept() - * Fix DM90x0 driver problem that caused TX overruns - * Add strncmp() - * Added TCP/IP read-ahead buffer to minimize failed ACKs and packet loss. - -0.3.2 2007-11-23 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - - * Add strcat() and strncat() - * Integrated uIP micro webserver - * Corrected a serious bug in TCP queue management - * Fix leak in socket close logic - * Add TX notification to driver so that it can respond faster to - the availability of TX data. - * Moved urgent data info into device structure. - * TCP and ICMP protocols can now be disabled. - * Added UDP test in examples/udp - * Verified/debugged UDP socket(), bind(), sendto() and recvfrom() logic - using examples/udp - * recvfrom() and accept() now correctly return the remote address. - * Fixed computation error in ntohl(). - -0.3.3 2007-11-28 Gregory Nutt <spudmonkey@racsa.co.cr> - - * Removed unused uIP files - * sched/, mm/, and net/ subystem debug can not be selectively enabled/disabled - * Correct socket close logic -- needs to disconnect TCP socket on close - * uIP webserver now seems to be fully functional - * fs/ and lib/ subystem debug can not be selectively enabled/disabled - * Added vsnprintf - * Integrated uIP telnetd - * Add missing logic to readahead buffer logic - * examples/nettest uses larger buffers - * Improved ACK handling in send() to better hander deferred acknowledgements - and polling intervals. Greatly improves send performance. -</pre></ul> - <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> @@ -978,6 +719,20 @@ Other memory: * NSH ifconfig command now shows uIP status was well (examples/nsh) </pre></ul> +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="TODO"><h1>Bugs, Issues, <i>Things-To-Do</i></h1></a> + </td> + </tr> +</table> + +<ul> +<p> + The current list of NuttX <i>Things-To-Do</i> in CVS <a href="http://nuttx.cvs.sourceforge.net/*checkout*/nuttx/nuttx/TODO">here</a>. + A snapshot of the <i>To-Do</i> list associated with the current release are available <a href="TODO.txt">here</a>. +</p> +</ul> <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> @@ -995,6 +750,14 @@ Other memory: <td><img src="favicon.ico"></td> <td><a href="NuttxPortingGuide.html">Porting Guide</a></td> </tr> +<tr> + <td><img src="favicon.ico"></td> + <td><a href="ChangeLog.txt">Change Log</a></td> +</tr> +<tr> + <td><img src="favicon.ico"></td> + <td><a href="TODO.txt">To-Do List</a></td> +</tr> </center></ul> <small> From 569a76baa35e6d8a45ecf585f1afdb380ced9314 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 18 Dec 2007 20:03:03 +0000 Subject: [PATCH 0151/1518] Updated for 0.3.5 git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@452 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 62 +++++++++++++--------------------------- 1 file changed, 20 insertions(+), 42 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index c419118999..27a436ffe8 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: December 12, 2007</p> + <p>Last Updated: December 18, 2007</p> </td> </tr> </table> @@ -395,7 +395,7 @@ </table> <p> - The 16th release of NuttX (nuttx-0.3.4) is available for download + The 17th release of NuttX (nuttx-0.3.5) is available for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. The change log associated with the release is available <a href="#currentrelease">here</a>. @@ -403,26 +403,16 @@ These unreleased changes are listed <a href="#pendingchanges">here</a>. </p> <p> - NuttX 0.3.4 is the 5th release containing the integration of a network + NuttX 0.3.5 is the 6th release containing the integration of a network subsystem and the uIP TCP/IP, UDP, and ICMP stacks based on <a href="http://www.sics.se/~adam/uip/index.php/Main_Page">uIP</a> into NuttX. </p> <p> - This release is primarily a bug-fix release. New features include only: + This release is primarily a bug-fix release and intended to synchronize + with the current CVS contents. See the <a href="#currentrelease">ChangeLog</a> + for a detailed list of changes and fixes. </p> -<ul> -<li>TELNET front-end to NSH,</li> -<li>DHCPC server functionality, and</li> -<li>C5471 Ethernet driver.</li> -</ul> - -<p> - Numerous network related problems were fixed related to DHCPC, UDP - input processing, UDP broadcast, send timeouts, and bad compilation when - uIP is compiled at high levels of optimizatin. -</p> - <p> The level of network reliability is at a strong beta release level. The baseline functionality of NuttX continues to mature and remains at @@ -430,11 +420,9 @@ </p> <p> - Parts of this release were verified only on the Neuros OSD (DM320 ARM9) - platform using the DM90x0 Ethernet driver and other parts on the Spectrum - Digital C5471 EVM using the C5471 Ethernet driver. Any feedback about bugs - or suggestions for mproving the network reliability/performance would be - greatly appreciated. + This release was verified only on the Spectrum Digital C5471 EVM using + the C5471 Ethernet driver. Any feedback about bugsor suggestions for + improvement would be greatly appreciated. </p> <table width ="100%"> @@ -683,18 +671,17 @@ Other memory: </table> <pre><ul> -0.3.4 2007-12-10 Gregory Nutt <spudmonkey@racsa.co.cr> +0.3.5 2007-12-18 Gregory Nutt <spudmonkey@racsa.co.cr> - * Added and partially verified DHCP server logic (netutils/dhcpd) - * Fix BROADCAST=y compilation problems - * Fix UDP recvfrom timeout bug - * Correct processing of input UDP broadcast packets. - * Verfied basic DHCP client functionality (netutils/dhcpc) - * Implemented send() timeout logic - * Added and verifed a TELNETD front end to NSH (examples/nsh) - * Add a skeleton Ethernet device driver (drivers/net/skeleton.c) - * Added C5471 Ethernet device driver (arch/arm/src/c5471/c5471_ethernet.c) - * Found and fixed several problems in uIP when compiled for ARM with optimization. + * Added inet_ntoa() and ether_ntoa() + * Added netdev_foreach() to support traversal of registered network devices + * Added support for 'ifconfig' command to NSH (examples/nsh) + * Moved MAC and ethernet definitions to net/ethernet.h + * Fix sim and DM90x0 compilation errors introduced in 0.3.4 + * Fixed errors in C5471 configuration files for examples/uip + * Modified DHCPC (netutils/dhcpc) so that it should work in environments where + there are more than one DHCPD server. + * NSH ifconfig command now shows uIP status was well (examples/nsh) </pre></ul> <table width ="100%"> @@ -706,17 +693,8 @@ Other memory: </table> <pre><ul> -0.3.5 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> +0.3.6 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> - * Added inet_ntoa() and ether_ntoa() - * Added netdev_foreach() to support traversal of registered network devices - * Added support for 'ifconfig' command to NSH (examples/nsh) - * Moved MAC and ethernet definitions to net/ethernet.h - * Fix sim and DM90x0 compilation errors introduced in 0.3.4 - * Fixed errors in C5471 configuration files for examples/uip - * Modified DHCPC (netutils/dhcpc) so that it should work in environments where - there are more than one DHCPD server. - * NSH ifconfig command now shows uIP status was well (examples/nsh) </pre></ul> <table width ="100%"> From 0b1f865353a301e8163de346ffdb6d9cf82346dc Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 28 Dec 2007 22:10:14 +0000 Subject: [PATCH 0152/1518] Fixed for 8051 w/SDCC compiler git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@454 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 27a436ffe8..7b2ffe3a6e 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -695,6 +695,7 @@ Other memory: <pre><ul> 0.3.6 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> + * Changes for use with SDCC compiler </pre></ul> <table width ="100%"> From 87a0bd93ceee2c0ad35220b1a819c0a8b45f1e72 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 29 Dec 2007 01:06:06 +0000 Subject: [PATCH 0153/1518] Add z80 target git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@456 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 7b2ffe3a6e..e928a0861f 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -696,6 +696,7 @@ Other memory: 0.3.6 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> * Changes for use with SDCC compiler + * Added a simulated z80 target </pre></ul> <table width ="100%"> From 90a40cc2a5a6c662d399e4c9e3c8d2af79859553 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 31 Dec 2007 00:50:09 +0000 Subject: [PATCH 0154/1518] update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@469 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 26 +++++++++++++++++++++++++- Documentation/NuttxPortingGuide.html | 15 ++++++++++++++- 2 files changed, 39 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index e928a0861f..c6455af6d2 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: December 18, 2007</p> + <p>Last Updated: December 30, 2007</p> </td> </tr> </table> @@ -535,6 +535,30 @@ </p> </td> </tr> +<tr> + <td valign="top"><img src="favicon.ico"></td> + <td bgcolor="#5eaee1"> + <b>Z80</b> + </td> +</tr> +<tr> + <td><br></td> + <td> + <p> + <b>Z80 Instruction Set Simulator</b>. + This port uses the <a href="http://sdcc.sourceforge.net/">SDCC</a> toolchain + (verfied using version 2.6.0). + This port has been verified using only a Z80 instruction simulator. + That simulator can be found in the NuttX CVS + <a href="http://nuttx.cvs.sourceforge.net/nuttx/misc/sims/z80sim/">here</a>. + </p> + <p> + <b>STATUS:</b> + This port is complete and stable to the extent that it can be teste + using an instruction set simulator. + </p> + </td> +</tr> <tr> <td valign="top"><img src="favicon.ico"></td> <td bgcolor="#5eaee1"> diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 4f54d4cdae..538a18d204 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -420,6 +420,10 @@ <li><code>arch/pjrc-8051</code>: 8051 Microcontroller. This port is not quite ready for prime time.</li> </li> + + <li><code>arch/z80</code>: + z80 Microcontroller. This port has been verified using only a z80 instruction simulator.</li> + </li> </ul> <p> @@ -584,7 +588,16 @@ <li><code>configs/pjrc-8051</code>: 8051 Microcontroller. This port uses the PJRC 87C52 development system - and the SDCC toolchain. This port is not quite ready for prime time. + and the <a href="http://sdcc.sourceforge.net/">SDCC</a> toolchain. + This port is not quite ready for prime time. + </li> + + <li><code>configs/z80sim</code>: + z80 Microcontroller. This port uses a Z80 instruction set simulator. + That simulator can be found in the NuttX CVS + <a href="http://nuttx.cvs.sourceforge.net/nuttx/misc/sims/z80sim/">here</a>. + This port also the <a href="http://sdcc.sourceforge.net/">SDCC</a> toolchain + (verfied with version 2.6.0). </li> </ul> From 77e3cddb5700263afaff0c17d86cba1f9eeef966 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 31 Dec 2007 00:51:20 +0000 Subject: [PATCH 0155/1518] update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@470 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 538a18d204..2f72ed6d6f 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -16,7 +16,7 @@ </b></big> <p><small>by</small></p> <p>Gregory Nutt</p> - <p><small>Last Update: December 10, 2007</small></p> + <p><small>Last Update: December 30, 2007</small></p> </center> <center><h1>Table of Contents</h1></center> From 7717b236abc0e7605ffe1026c40d56a6c5e9e0ab Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 31 Dec 2007 15:45:58 +0000 Subject: [PATCH 0156/1518] Add z80 signals git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@472 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index c6455af6d2..4044642d45 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -417,6 +417,10 @@ The level of network reliability is at a strong beta release level. The baseline functionality of NuttX continues to mature and remains at post-beta or production level. + Extensive testing has been done for the ARM architecture using the GCC + compiler/toolchain. + Other architectures and the SDCC toolchain are also supported but not as + well exercised. </p> <p> @@ -773,13 +777,14 @@ Other memory: </tr> </table> <ul> -<li>ARM, ARM7 ARM7TDMI, ARM9, ARM926EJS are trademarks of Advanced RISC Machines, Limited.</li> -<li>Cygwin is a trademark of Red Hat, Incorporated.</li> -<li>Linux is a registered trademark of Linus Torvalds.</li> -<li>LPC2148 is a trademark of NXP Semiconductors.</li> -<li>TI is a tradename of Texas Instruments Incorporated.</li> -<li>UNIX is a registered trademark of The Open Group.</li> -<li>VxWorks is a registered trademark of Wind River Systems, Incorporated.</li> + <li>ARM, ARM7 ARM7TDMI, ARM9, ARM926EJS are trademarks of Advanced RISC Machines, Limited.</li> + <li>Cygwin is a trademark of Red Hat, Incorporated.</li> + <li>Linux is a registered trademark of Linus Torvalds.</li> + <li>LPC2148 is a trademark of NXP Semiconductors.</li> + <li>TI is a tradename of Texas Instruments Incorporated.</li> + <li>UNIX is a registered trademark of The Open Group.</li> + <li>VxWorks is a registered trademark of Wind River Systems, Incorporated.</li> + <li>Z80 is a registered trademark of Zilog, Inc.</li> </ul> <p> NOTE: NuttX is <i>not</i> licensed to use the POSIX trademark. NuttX uses the POSIX From 8e38a4a6e1274776ae10fd260f931434bf583851 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 1 Jan 2008 14:54:10 +0000 Subject: [PATCH 0157/1518] Debug z80sim NSH (still doesn't work) git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@476 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 4044642d45..2b4fc48e02 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: December 30, 2007</p> + <p>Last Updated: January 1, 2008</p> </td> </tr> </table> @@ -725,6 +725,7 @@ Other memory: * Changes for use with SDCC compiler * Added a simulated z80 target + * Fix deadlock errors when using stdio but with no buffering </pre></ul> <table width ="100%"> From 952d967eddec0841646c81e7b2d7e1ff1ee95625 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 4 Jan 2008 13:11:45 +0000 Subject: [PATCH 0158/1518] Fix html errors git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@484 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 16 ++++++++-------- Documentation/NuttxPortingGuide.html | 14 +++++++------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 2b4fc48e02..8aed05749b 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -422,7 +422,6 @@ Other architectures and the SDCC toolchain are also supported but not as well exercised. </p> - <p> This release was verified only on the Spectrum Digital C5471 EVM using the C5471 Ethernet driver. Any feedback about bugsor suggestions for @@ -467,10 +466,10 @@ <td><br></td> <td> <p> - <b>TI TMS320C5471</b> (also called <b>C5471</b> or <b>TMS320DA180</b> or <b>DA180</a>). + <b>TI TMS320C5471</b> (also called <b>C5471</b> or <b>TMS320DA180</b> or <b>DA180</b>). NuttX operates on the ARM7 of this dual core processor. This port uses the <a href="http://www.spectrumdigital.com/">Spectrum Digital</a> - evaluation board with a GNU arm-elf toolchain*. + evaluation board with a GNU arm-elf toolchain* under Linux or Cygwin. </p> <p> <b>STATUS:</b> @@ -485,7 +484,7 @@ <b>NXP LPC214x</b>. Support is provided for the NXP LPC214x family of processors. In particular, support is provided for the mcu123.com lpc214x evaluation board (LPC2148). - This port also used the GNU arm-eld toolchain*. + This port also used the GNU arm-eld toolchain* under Linux or Cygwin. </p> <p> <b>STATUS:</b> @@ -507,7 +506,7 @@ NuttX operates on the ARM9 of this dual core processor. This port uses the <a href="http://wiki.neurostechnology.com/index.php/Developer_Welcome">Neuros OSD</a> - with a GNU arm-elf toolchain*. + with a GNU arm-elf toolchain* under Linux or Cygwin. </p> <p> <b>STATUS:</b> @@ -527,7 +526,7 @@ <p> <b>PJRC 87C52 Development Board</b>. This port uses the <a href="http://www.pjrc.com/">PJRC</a> 87C52 development system - and the <a href="http://sdcc.sourceforge.net/">SDCC</a> toolchain. + and the <a href="http://sdcc.sourceforge.net/">SDCC</a> toolchain under Linux or Cygwin. </p> <p> <b>STATUS:</b> @@ -551,7 +550,7 @@ <p> <b>Z80 Instruction Set Simulator</b>. This port uses the <a href="http://sdcc.sourceforge.net/">SDCC</a> toolchain - (verfied using version 2.6.0). + under Linux or Cygwin (verfied using version 2.6.0). This port has been verified using only a Z80 instruction simulator. That simulator can be found in the NuttX CVS <a href="http://nuttx.cvs.sourceforge.net/nuttx/misc/sims/z80sim/">here</a>. @@ -580,7 +579,8 @@ </table></center> <blockquote>* A highly modified <a href="http://buildroot.uclibc.org/">buildroot</a> -is available that be used to build a NuttX-compatible arm-elf toolchain.</blockquote> +is available that may be used to build a NuttX-compatible arm-elf toolchain under +Linux or Cygwin.</blockquote> <table width ="100%"> <tr bgcolor="#e4e4e4"> diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 2f72ed6d6f..601bb2720b 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -560,20 +560,20 @@ This is a port to the Spectrum Digital C5471 evaluation board. The C5471 is a dual core processor from TI with an ARM7TDMI general purpose processor and a c54 SDP. NuttX runs on the ARM core and is built with - with a GNU arm-elf toolchain*. This port is complete, verified, and - included in the NuttX release. + with a GNU arm-elf toolchain* under Linux or Cygwin. + This port is complete, verified, and included in the NuttX release. </li> <li><code>configs/mcu123-lpc214x</code>: This port is for the NXP LPC2148 as provided on the mcu123.com lpc214x development board. - This OS is also built with the arm-elf toolchain*. + This OS is also built with the arm-elf toolchain* under Linux or Cygwin. STATUS: This port is in progress and should be available in the nuttx-0.2.5 release. </li> <li><code>configs/ntosd-dm320</code>: - This port uses the Neuros OSD with a GNU arm-elf toolchain*. + This port uses the Neuros OSD with a GNU arm-elf toolchain* under Linux or Cygwin. See <a href="http://wiki.neurostechnology.com/index.php/Developer_Welcome">Neuros Wiki</a> for futher information. NuttX operates on the ARM9EJS of this dual core processor. @@ -588,7 +588,7 @@ <li><code>configs/pjrc-8051</code>: 8051 Microcontroller. This port uses the PJRC 87C52 development system - and the <a href="http://sdcc.sourceforge.net/">SDCC</a> toolchain. + and the <a href="http://sdcc.sourceforge.net/">SDCC</a> toolchain under Linux or Cygwin. This port is not quite ready for prime time. </li> @@ -597,13 +597,13 @@ That simulator can be found in the NuttX CVS <a href="http://nuttx.cvs.sourceforge.net/nuttx/misc/sims/z80sim/">here</a>. This port also the <a href="http://sdcc.sourceforge.net/">SDCC</a> toolchain - (verfied with version 2.6.0). + under Linux or Cygwin(verfied with version 2.6.0). </li> </ul> <p><small><blockquote> * A customized version of the <a href="http://www.buildroot.org">buildroot</a> - is available to build these toolchains. + is available to build these toolchains under Linux or Cygwin. </blockquote></small></p> <h2>2.4 <a name="DirStructDrivers">drivers</a></h2> From 00143641616f13c8bf17d23862bc978a33460407 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 5 Jan 2008 19:05:31 +0000 Subject: [PATCH 0159/1518] Add support for Pascal P-Code interpreter git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@511 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 8aed05749b..f41834c474 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -726,6 +726,7 @@ Other memory: * Changes for use with SDCC compiler * Added a simulated z80 target * Fix deadlock errors when using stdio but with no buffering + * Add support for Pascal P-Code interpreter </pre></ul> <table width ="100%"> From bfad5e4a5265955238c33dc7b37264cee2c2462a Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 6 Jan 2008 20:46:45 +0000 Subject: [PATCH 0160/1518] Add configuration for toolchains without libm git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@517 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 601bb2720b..39769e6019 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -16,7 +16,7 @@ </b></big> <p><small>by</small></p> <p>Gregory Nutt</p> - <p><small>Last Update: December 30, 2007</small></p> + <p><small>Last Update: January 6, 2006</small></p> </center> <center><h1>Table of Contents</h1></center> @@ -1245,6 +1245,16 @@ The system can be re-made subsequently by just typing <code>make</code>. The startaddress of DRAM (virtual)</li> </ul> +<p> + General build options: +</p> +<ul> + <li><code>CONFIG_RRLOAD_BINARY</code>: + Make the rrload binary format used with BSPs from <a href="www.ridgerun.com">ridgerun.com</a>.</li> + <li><code>CONFIG_HAVE_LIBM</code>: + Toolchain supports libm.a</li> +</ul> + <h2>General OS setup</h2> <ul> From a06cbc331aff1bcba317783fcdcdcdfd2b5b47fb Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 6 Jan 2008 21:03:42 +0000 Subject: [PATCH 0161/1518] Prep for 0.3.6 git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@518 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 79 ++++++++++++++++++++++++++-------------- 1 file changed, 51 insertions(+), 28 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index f41834c474..b0d9a6390e 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: January 1, 2008</p> + <p>Last Updated: January 6, 2008</p> </td> </tr> </table> @@ -386,6 +386,30 @@ </tr> </table></center> +<p> + <b>NuttX Add-Ons</b>. + The following packages are available to extend the basic NuttX feature set: +<p> +<center><table width="90%"> + +<tr> + <td valign="top" width="18"><img src="favicon.ico"></td> + <td bgcolor="#5eaee1"> + <b>Pascal Compiler with NuttX runtime P-Code interpreter add-on</b> + </td> +</tr> + +<tr> + <td><br></td> + <td> + <p> + <li>The Pascal add-on is available for download from the + <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> + website.</li> + </p> +</tr> +</table></center> + <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> @@ -395,7 +419,7 @@ </table> <p> - The 17th release of NuttX (nuttx-0.3.5) is available for download + The 18th release of NuttX (nuttx-0.3.6) is available for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. The change log associated with the release is available <a href="#currentrelease">here</a>. @@ -403,29 +427,38 @@ These unreleased changes are listed <a href="#pendingchanges">here</a>. </p> <p> - NuttX 0.3.5 is the 6th release containing the integration of a network + NuttX 0.3.8 is the 7th release containing the integration of a network subsystem and the uIP TCP/IP, UDP, and ICMP stacks based on <a href="http://www.sics.se/~adam/uip/index.php/Main_Page">uIP</a> into NuttX. </p> <p> - This release is primarily a bug-fix release and intended to synchronize - with the current CVS contents. See the <a href="#currentrelease">ChangeLog</a> - for a detailed list of changes and fixes. + This release contains on a few changes. + The primary purpose of this release is to synchronize with the release + of the pascal-0.1.0 add-on package. + This release of NuttX includes the following changes: </p> +<ul> +<li>Fixes for use with SDCC compiler, <li> +<li>Added a simulated z80 target (arch/z80), <li> +<li>Fix deadlock errors when using stdio but with no buffering, and</li> +<li>Add support for the add-on Pascal P-Code interpreter (pcode/) + (see the pascal-0.1.0 package)</li> +</ul> <p> - The level of network reliability is at a strong beta release level. The - baseline functionality of NuttX continues to mature and remains at - post-beta or production level. + The Pascal add-on it integrated but has so far been tested very little; + it is certainly at an early, pre-alpha release leve. + The baseline functionality of NuttX (including recently added network) + functionality continues to mature and remains at post-beta or production level. Extensive testing has been done for the ARM architecture using the GCC compiler/toolchain. Other architectures and the SDCC toolchain are also supported but not as well exercised. </p> <p> - This release was verified only on the Spectrum Digital C5471 EVM using - the C5471 Ethernet driver. Any feedback about bugsor suggestions for - improvement would be greatly appreciated. + The current release were verified only on the simulated Z80 and and host + simulation targets. As usual, any feedback about bugs or suggestions + for improvement would be greatly appreciated. </p> <table width ="100%"> @@ -699,17 +732,12 @@ Other memory: </table> <pre><ul> -0.3.5 2007-12-18 Gregory Nutt <spudmonkey@racsa.co.cr> +0.3.6 2007-01-06 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - * Added inet_ntoa() and ether_ntoa() - * Added netdev_foreach() to support traversal of registered network devices - * Added support for 'ifconfig' command to NSH (examples/nsh) - * Moved MAC and ethernet definitions to net/ethernet.h - * Fix sim and DM90x0 compilation errors introduced in 0.3.4 - * Fixed errors in C5471 configuration files for examples/uip - * Modified DHCPC (netutils/dhcpc) so that it should work in environments where - there are more than one DHCPD server. - * NSH ifconfig command now shows uIP status was well (examples/nsh) + * Changes for use with SDCC compiler + * Added a simulated z80 target + * Fix deadlock errors when using stdio but with no buffering + * Add support for Pascal P-Code interpreter </pre></ul> <table width ="100%"> @@ -721,12 +749,7 @@ Other memory: </table> <pre><ul> -0.3.6 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> - - * Changes for use with SDCC compiler - * Added a simulated z80 target - * Fix deadlock errors when using stdio but with no buffering - * Add support for Pascal P-Code interpreter +0.3.7 2007-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; </pre></ul> <table width ="100%"> From 9cfc01dcb891748705742a56e6a8431915c7247f Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 7 Jan 2008 23:13:12 +0000 Subject: [PATCH 0162/1518] Adding support for the z16f git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@520 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 32 ++++++++++++++++++++++++---- Documentation/NuttxPortingGuide.html | 21 ++++++++++++++---- 2 files changed, 45 insertions(+), 8 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index b0d9a6390e..a82874b270 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: January 6, 2008</p> + <p>Last Updated: January 8, 2008</p> </td> </tr> </table> @@ -574,7 +574,28 @@ <tr> <td valign="top"><img src="favicon.ico"></td> <td bgcolor="#5eaee1"> - <b>Z80</b> + <b>Zilog Z16F</b> + </td> +</tr> +<tr> + <td><br></td> + <td> + <p> + <b>Zilog z16f Microncontroller</b>. + This port use the Zilog z16f2800100zcog development kit and the Zilog + ZDS-II Windows command line tools. + The development envirnoment is Cygwin under WinXP. + </p> + <p> + <b>STATUS:</b> + This is a work in progress. + </p> + </td> +</tr> +<tr> + <td valign="top"><img src="favicon.ico"></td> + <td bgcolor="#5eaee1"> + <b>Zilog Z80</b> </td> </tr> <tr> @@ -583,7 +604,7 @@ <p> <b>Z80 Instruction Set Simulator</b>. This port uses the <a href="http://sdcc.sourceforge.net/">SDCC</a> toolchain - under Linux or Cygwin (verfied using version 2.6.0). + under Linux or Cygwin (verified using version 2.6.0). This port has been verified using only a Z80 instruction simulator. That simulator can be found in the NuttX CVS <a href="http://nuttx.cvs.sourceforge.net/nuttx/misc/sims/z80sim/">here</a>. @@ -750,6 +771,9 @@ Other memory: <pre><ul> 0.3.7 2007-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + + * Began adding support for the Zilog Z16F using the Zilog + Z16F2800100ZCOG Development Kit. </pre></ul> <table width ="100%"> @@ -809,7 +833,7 @@ Other memory: <li>TI is a tradename of Texas Instruments Incorporated.</li> <li>UNIX is a registered trademark of The Open Group.</li> <li>VxWorks is a registered trademark of Wind River Systems, Incorporated.</li> - <li>Z80 is a registered trademark of Zilog, Inc.</li> + <li>ZDS, ZNEO, Z16F, Z80, and Zilog are a registered trademark of Zilog, Inc.</li> </ul> <p> NOTE: NuttX is <i>not</i> licensed to use the POSIX trademark. NuttX uses the POSIX diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 39769e6019..1d266406ac 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -414,15 +414,22 @@ </li> <li><code>arch/m68322</code> - A work in progress.</li> + A work in progress. </li> <li><code>arch/pjrc-8051</code>: - 8051 Microcontroller. This port is not quite ready for prime time.</li> + 8051 Microcontroller. This port is not quite ready for prime time. </li> - <li><code>arch/z80</code>: - z80 Microcontroller. This port has been verified using only a z80 instruction simulator.</li> + <li><code>arch/z16f</code>: + Zilog z16f Microcontroller. + This port uses the Zilog z16f2800100zcog Development Kit. + This is a work in progress. + </li> + + <li><code>arch/z80</code>: + Zilog z80 Microcontroller. + This port has been verified using only a z80 instruction simulator. </li> </ul> @@ -592,6 +599,12 @@ This port is not quite ready for prime time. </li> + <li><code>configs/z16f2800100zcog</code> + z16f Microncontroller. + This port use the Zilog z16f2800100zcog development kit and the + Zilog ZDS-II Windows command line tools. + The development environment is Cygwin under WinXP. + <li><code>configs/z80sim</code>: z80 Microcontroller. This port uses a Z80 instruction set simulator. That simulator can be found in the NuttX CVS From ef7fefefea412eb36fa3841d8f672cc8e3575124 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 8 Jan 2008 00:19:24 +0000 Subject: [PATCH 0163/1518] Add support for tools that can't make dependencies git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@522 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index a82874b270..ada834701b 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -774,6 +774,8 @@ Other memory: * Began adding support for the Zilog Z16F using the Zilog Z16F2800100ZCOG Development Kit. + * Fix Makefile error when Pascal P-Code interpreter is NOT installed (oops) + * Add support toolchains that do not support making of dependencies </pre></ul> <table width ="100%"> From b95910c650da0db149faf9bcac3e8f229d2de5b9 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 8 Jan 2008 04:48:36 +0000 Subject: [PATCH 0164/1518] Document 0.3.6.1 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@523 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index ada834701b..56983591c6 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -460,6 +460,13 @@ simulation targets. As usual, any feedback about bugs or suggestions for improvement would be greatly appreciated. </p> +<p> + <b>NOTE</b>: + There was an error in the initial 0.3.6 release that prevented + a successful build <i>unless</i> the Pascal add-on was present. The + tarball was patched to include the fix. Make sure that you download + the nuttx-0.3.6.1.tar.gz version to avoid this problem. +</p> <table width ="100%"> <tr bgcolor="#e4e4e4"> @@ -759,6 +766,12 @@ Other memory: * Added a simulated z80 target * Fix deadlock errors when using stdio but with no buffering * Add support for Pascal P-Code interpreter + +0.3.6.1 2008-01-07 Gregory Nutt <spudmonkey@racsa.co.cr> + + * The initial 0.3.6 release including an error that prevented + building successfully if the Pascal add-on was + was not present. </pre></ul> <table width ="100%"> @@ -774,7 +787,6 @@ Other memory: * Began adding support for the Zilog Z16F using the Zilog Z16F2800100ZCOG Development Kit. - * Fix Makefile error when Pascal P-Code interpreter is NOT installed (oops) * Add support toolchains that do not support making of dependencies </pre></ul> From b798c46ef392f2eb082ece43202094d2d479d2ec Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 8 Jan 2008 04:52:50 +0000 Subject: [PATCH 0165/1518] Fix dates git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@524 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 56983591c6..bacd6a6c6d 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: January 8, 2008</p> + <p>Last Updated: January 7, 2008</p> </td> </tr> </table> @@ -760,14 +760,14 @@ Other memory: </table> <pre><ul> -0.3.6 2007-01-06 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; +0.3.6 2008-01-06 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Changes for use with SDCC compiler * Added a simulated z80 target * Fix deadlock errors when using stdio but with no buffering * Add support for Pascal P-Code interpreter -0.3.6.1 2008-01-07 Gregory Nutt <spudmonkey@racsa.co.cr> +0.3.6.1 2008-01-07 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * The initial 0.3.6 release including an error that prevented building successfully if the Pascal add-on was @@ -783,7 +783,7 @@ Other memory: </table> <pre><ul> -0.3.7 2007-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; +0.3.7 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Began adding support for the Zilog Z16F using the Zilog Z16F2800100ZCOG Development Kit. From f69bafa725995694894af0113144df998c82a9ca Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 8 Jan 2008 13:41:00 +0000 Subject: [PATCH 0166/1518] Reduce make output git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@526 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index bacd6a6c6d..67137a66ed 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -788,6 +788,7 @@ Other memory: * Began adding support for the Zilog Z16F using the Zilog Z16F2800100ZCOG Development Kit. * Add support toolchains that do not support making of dependencies + * Fix Cygwin build with spaces in directory names </pre></ul> <table width ="100%"> From d8e24ce8df40b94f0fa2bb7796a24425db1e4098 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 8 Jan 2008 17:06:21 +0000 Subject: [PATCH 0167/1518] Make logic reorganized for non-GNU toolchain git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@528 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + Documentation/NuttxPortingGuide.html | 1 + 2 files changed, 2 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 67137a66ed..52ed3cfa99 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -789,6 +789,7 @@ Other memory: Z16F2800100ZCOG Development Kit. * Add support toolchains that do not support making of dependencies * Fix Cygwin build with spaces in directory names + * Name make system changes to deal with non-GNU toolchains (i.e., Zilog) </pre></ul> <table width ="100%"> diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 1d266406ac..11c134634f 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -518,6 +518,7 @@ <ul> <li>Tools: CC, LD, AR, NM, OBJCOPY, OBJDUMP</li> <li>Tool options: CFLAGS, LDFLAGS</li> + <li>COMPILE, ASSEMBLE, ARCHIVE, and MKDEP macros</li> </ul> <p> When this makefile fragment runs, it will be passed TOPDIR which From 8ea8236173aa961effd33d86e563108b3864043d Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 8 Jan 2008 22:11:00 +0000 Subject: [PATCH 0168/1518] Add logic for environments that can't use soft links git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@530 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 211 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 201 insertions(+), 10 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 52ed3cfa99..69d7d4c253 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: January 7, 2008</p> + <p>Last Updated: January 8, 2008</p> </td> </tr> </table> @@ -27,39 +27,76 @@ <table> <tr> <td><img src="favicon.ico"></td> - <td><a href="#overview">Overview</a></td> + <td> + <a href="#overview">Overview</a>.<br> + What is NuttX? + </td> </tr> <tr> <td><img src="favicon.ico"></td> - <td><a href="#downloads">Downloads</a></td> + <td> + <a href="#downloads">Downloads</a>.<br> + Where can I get NuttX? What is the current development status? + </td> </tr> <tr> <td><img src="favicon.ico"></td> - <td><a href="#platforms">Supported Platforms</a></td> + <td> + <a href="#platforms">Supported Platforms</a>.<br> + What target platforms has NuttX been ported to? + </td> </tr> <tr> <td><img src="favicon.ico"></td> - <td><a href="#footprint">Memory Footprint</a></td> + <td> + <a href="#environments">Development Environments</a>.<br> + What kinds of host cross-development platforms can be used with NuttX? + </td> </tr> <tr> <td><img src="favicon.ico"></td> - <td><a href="#licensing">Licensing</a></td> + <td> + <a href="#footprint">Memory Footprint</a>.<br> + Just how big is it? Do I have enough memory to use NuttX? + </td> </tr> <tr> <td><img src="favicon.ico"></td> - <td><a href="#history">Release History</a></td> + <td> + <a href="#licensing">Licensing</a>.<br> + Are there any licensing restrictions for the use of NuttX? (Almost none) + Will there be problems if I link my proprietary code with NuttX? (No) + </td> </tr> <tr> <td><img src="favicon.ico"></td> - <td><a href="#TODO">Bugs, Issues, <i>Things-To-Do</i></a></td> + <td> + <a href="#history">Release History</a><br> + What has changed in the last release of NuttX? + What unreleased changes are pending in CVS? + </td> </tr> <tr> <td><img src="favicon.ico"></td> - <td><a href="#documentation">Other Documentation</a></td> + <td> + <a href="#TODO">Bugs, Issues, <i>Things-To-Do</i></a>.<br> + Software is never finished nor ever tested well enough. + (Do you want to help devlop NuttX? If so, send me an email). + </td> </tr> <tr> <td><img src="favicon.ico"></td> - <td><a href="#trademarks">Trademarks</a></td> + <td> + <a href="#documentation">Other Documentation</a>.<br> + What other NuttX documentation is available? + </td> +</tr> +<tr> + <td><img src="favicon.ico"></td> + <td> + <a href="#trademarks">Trademarks</a>.<br> + Some of the words used in this document belong to other people. + </td> </tr> </table> </td> @@ -643,6 +680,159 @@ is available that may be used to build a NuttX-compatible arm-elf toolchain under Linux or Cygwin.</blockquote> +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="environments"><h1>Development Environments</h1></a> + </td> + </tr> +</table> + +<center><table width="90%"> +<tr> + <td valign="top"><img src="favicon.ico"></td> + <td bgcolor="#5eaee1"> + <b>Linux + GNU make + GCC/binutils</b> + </td> +</tr> +<tr> + <td><br></td> + <td> + <p> + The is the most natural development environment for NuttX. + Any version of the GCC/binutils toolchain may be used. + There is a highly modified <a href="http://buildroot.uclibc.org/">buildroot</a> + available for download from the + <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">NuttX SourceForge</a> + page. + This download may be used to build a NuttX-compatible arm-elf toolchain under Linux or Cygwin. + Additional support for m68k, m68hc11, and m68hc12 is available in the + <a href="http://nuttx.cvs.sourceforge.net/nuttx/misc/buildroot/">NuttX CVS</a>. + </p> + </td> +</tr> + +<tr> + <td valign="top"><img src="favicon.ico"></td> + <td bgcolor="#5eaee1"> + <b>Linux + GNU make + SDCC</b> + </td> +</tr> +<tr> + <td><br></td> + <td> + <p> + Also very usable is the Linux environment using the + <a href="http://sdcc.sourceforge.net/">SDCC</a> compiler. + The SDCC compiler provides support for the 8051/2, z80, hc08, and other microcontrollers. + The SDCC-based logic is less well exercised and you will likely find some compilation + issues if you use parts of NuttX with SDCC that have not been well-tested. + </p> + </td> +</tr> + +<tr> + <td valign="top"><img src="favicon.ico"></td> + <td bgcolor="#5eaee1"> + <b>Cygwin + GNU make + GCC/binutils</b> + </td> +</tr> +<tr> + <td><br></td> + <td> + <p> + This combination works well too. + It works just as well as the native Linux environment except + that compilation and build times are a little longer. + The custom NuttX buildroot referenced above may be build in + the Cygwin environment as well. + </p> + </td> +</tr> + +<tr> + <td valign="top"><img src="favicon.ico"></td> + <td bgcolor="#5eaee1"> + <b>Cygwin + GNU make + SDCC</b> + </td> +</tr> +<tr> + <td><br></td> + <td> + <p> + I have never tried this combination, but it would probably work just fine. + </p> + </td> +</tr> + +<tr> + <td valign="top"><img src="favicon.ico"></td> + <td bgcolor="#5eaee1"> + <b>Cygwin + GNU make + Windows Native Toolchain</b> + </td> +</tr> +<tr> + <td><br></td> + <td> + <p> + This is a tougher environment. + In this case, the Windows native toolchain is unaware of the the + Cygwin <i>sandbox</i> and, instead, operates in the native Windows environment. + The primary difficulties with this are: + </p> + <ul> + <li> + <b>Pathes</b>. + Full pathes for the native toolchain must follow Windows standards. + For example, the path <code>/home/my\ name/nuttx/include</code> my have to be + converted to something like <code>'C:\cygwin\home\my name\nuttx\include'</code> + to be usable by the toolchain. + </li> + <p> + Fortunately, this conversion is done simply using the <code>cygpath</code> utility. + </p> + <li> + <b>Symbolic Links</b> + NuttX depends on symbolic links to install platform-specific directories in the build system. + On Linux, true symbolic links are used. + On Cygwin, emulated symbolic links are used. + Unfortunately, for native Windows applications that operate outside of the + Cygwin <i>sandbox</i>, these symbolic links cannot be used. + </li> + <p> + The NuttX make system works around this limitation by copying the platform + specific directories in place. + These copied directories make work a little more complex, but otherwise work well. + </p> + </ul> + <p> + At present, on the Zilog Z16F port uses a native Windows toolchain + (the Zilog ZDS-II toolchain). + </p. + </td> +</tr> + +<tr> + <td valign="top"><img src="favicon.ico"></td> + <td bgcolor="#5eaee1"> + <b>Others?</b> + </td> +</tr> +<tr> + <td><br></td> + <td> + <p> + The primary environmental dependency of NuttX is GNU make. + If you have other platforms that support GNU make or make + utilities that are compatible with GNU make, then it is very + likely that NuttX would work in that environment as well. + If GNU make is not supported, then some significant modification + of the Make system would be required. + </p> + </td> +</tr> +</table></center> + <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> @@ -790,6 +980,7 @@ Other memory: * Add support toolchains that do not support making of dependencies * Fix Cygwin build with spaces in directory names * Name make system changes to deal with non-GNU toolchains (i.e., Zilog) + * Add support for Windows native toolchains that cannot follow Cygwin soft links </pre></ul> <table width ="100%"> From edbf5183e2f8c81de5588ca3c77490663411a4e4 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 8 Jan 2008 22:19:32 +0000 Subject: [PATCH 0169/1518] Spell checked git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@531 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 69d7d4c253..2daf9c7394 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -81,7 +81,7 @@ <td> <a href="#TODO">Bugs, Issues, <i>Things-To-Do</i></a>.<br> Software is never finished nor ever tested well enough. - (Do you want to help devlop NuttX? If so, send me an email). + (Do you want to help develop NuttX? If so, send me an email). </td> </tr> <tr> @@ -183,7 +183,7 @@ The primary governing standards are POSIX and ANSI standards. Additional standard APIs from Unix and other common RTOS's are adopted for functionality not available under these standards - or for functionaly that is not appropriate for the deeply-embedded + or for functionality that is not appropriate for the deeply-embedded RTOS (such as <code>fork()</code>). </p> <p> @@ -460,7 +460,7 @@ from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. The change log associated with the release is available <a href="#currentrelease">here</a>. - Unreleased changes after this release are avalable in CVS. + Unreleased changes after this release are available in CVS. These unreleased changes are listed <a href="#pendingchanges">here</a>. </p> <p> @@ -484,7 +484,7 @@ </ul> <p> The Pascal add-on it integrated but has so far been tested very little; - it is certainly at an early, pre-alpha release leve. + it is certainly at an early, pre-alpha release level. The baseline functionality of NuttX (including recently added network) functionality continues to mature and remains at post-beta or production level. Extensive testing has been done for the ARM architecture using the GCC @@ -525,7 +525,7 @@ <td> <p> A user-mode port of NuttX to the x86 Linux platform is available. - The purpose of this port is primarily to support OS feature developement. + The purpose of this port is primarily to support OS feature development. </p> <p> <b>STATUS:</b> @@ -628,7 +628,7 @@ <b>Zilog z16f Microncontroller</b>. This port use the Zilog z16f2800100zcog development kit and the Zilog ZDS-II Windows command line tools. - The development envirnoment is Cygwin under WinXP. + The development environment is Cygwin under WinXP. </p> <p> <b>STATUS:</b> @@ -655,7 +655,7 @@ </p> <p> <b>STATUS:</b> - This port is complete and stable to the extent that it can be teste + This port is complete and stable to the extent that it can be tested using an instruction set simulator. </p> </td> @@ -782,8 +782,8 @@ Linux or Cygwin.</blockquote> </p> <ul> <li> - <b>Pathes</b>. - Full pathes for the native toolchain must follow Windows standards. + <b>Paths</b>. + Full paths for the native toolchain must follow Windows standards. For example, the path <code>/home/my\ name/nuttx/include</code> my have to be converted to something like <code>'C:\cygwin\home\my name\nuttx\include'</code> to be usable by the toolchain. From 3f8f0ca8cd39a5c2482998d2d322aa02eb7e8382 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 9 Jan 2008 22:53:52 +0000 Subject: [PATCH 0170/1518] Compiles with ZDS-II git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@540 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 2daf9c7394..02810277fa 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: January 8, 2008</p> + <p>Last Updated: January 9, 2008</p> </td> </tr> </table> @@ -815,19 +815,20 @@ Linux or Cygwin.</blockquote> <tr> <td valign="top"><img src="favicon.ico"></td> <td bgcolor="#5eaee1"> - <b>Others?</b> + <b>Others Environments?</b> </td> </tr> <tr> <td><br></td> <td> <p> - The primary environmental dependency of NuttX is GNU make. + The primary environmental dependency of NuttX are (1) GNU make, + (2) bash scripting, and (3) Linux utilities (such as sed). If you have other platforms that support GNU make or make utilities that are compatible with GNU make, then it is very - likely that NuttX would work in that environment as well. - If GNU make is not supported, then some significant modification - of the Make system would be required. + likely that NuttX would work in that environment as well (with some + porting effort). If GNU make is not supported, then some significant + modification of the Make system would be required. </p> </td> </tr> From b0a2584e1c6865b96323d693f4a48987fc084b3a Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 10 Jan 2008 13:38:13 +0000 Subject: [PATCH 0171/1518] Clean operations are now toolchain specific git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@542 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 11c134634f..9ae720862c 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -16,7 +16,7 @@ </b></big> <p><small>by</small></p> <p>Gregory Nutt</p> - <p><small>Last Update: January 6, 2006</small></p> + <p><small>Last Update: January 10, 2008</small></p> </center> <center><h1>Table of Contents</h1></center> @@ -518,7 +518,7 @@ <ul> <li>Tools: CC, LD, AR, NM, OBJCOPY, OBJDUMP</li> <li>Tool options: CFLAGS, LDFLAGS</li> - <li>COMPILE, ASSEMBLE, ARCHIVE, and MKDEP macros</li> + <li>COMPILE, ASSEMBLE, ARCHIVE, CLEAN, and MKDEP macros</li> </ul> <p> When this makefile fragment runs, it will be passed TOPDIR which From 409fbdcca362108c1aefb381f29eca5a955a99ca Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 10 Jan 2008 19:16:50 +0000 Subject: [PATCH 0172/1518] Passing union parms as const upsets ZDS-II compiler git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@547 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxUserGuide.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 9e63bb0b5d..a6002e5f9b 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -3280,7 +3280,7 @@ the unblocked signal is ignored. <b>Function Prototype:</b> <pre> #include &lt;signal.h&gt; - int sigqueue (int tid, int signo, const union sigval value); + int sigqueue (int tid, int signo, union sigval value); </pre> <p> From 8748174a0cc4ff62718322b5048a8cf255e4304d Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 26 Jan 2008 23:46:09 +0000 Subject: [PATCH 0173/1518] Structure serial driver interface to support different interrupt architectures git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@571 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 02810277fa..38bea91aa0 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -976,12 +976,14 @@ Other memory: <pre><ul> 0.3.7 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - * Began adding support for the Zilog Z16F using the Zilog - Z16F2800100ZCOG Development Kit. + * Added support for the Zilog Z16F using the Zilog Z16F2800100ZCOG + Development Kit. * Add support toolchains that do not support making of dependencies * Fix Cygwin build with spaces in directory names * Name make system changes to deal with non-GNU toolchains (i.e., Zilog) * Add support for Windows native toolchains that cannot follow Cygwin soft links + * Modified serial driver interface to handle hardware with non-16550A-like + interrupt architecture (like the Z16F) </pre></ul> <table width ="100%"> From 03a43a269f292891b6bd780ccf48afbf2949445b Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 30 Jan 2008 00:59:17 +0000 Subject: [PATCH 0174/1518] Added low-level console driver git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@585 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 38bea91aa0..2c7d6531a9 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -984,6 +984,7 @@ Other memory: * Add support for Windows native toolchains that cannot follow Cygwin soft links * Modified serial driver interface to handle hardware with non-16550A-like interrupt architecture (like the Z16F) + * Added a &quot;dumb&quot; serial console driver to simply OS bringup </pre></ul> <table width ="100%"> From 39276ef39cd2d9303eb0da42c722ff58365a691e Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 30 Jan 2008 18:49:31 +0000 Subject: [PATCH 0175/1518] errno was clobbered by mm_trysemaphore when task exists git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@591 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 2c7d6531a9..0fdeffaee2 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: January 9, 2008</p> + <p>Last Updated: January 30, 2008</p> </td> </tr> </table> @@ -984,7 +984,9 @@ Other memory: * Add support for Windows native toolchains that cannot follow Cygwin soft links * Modified serial driver interface to handle hardware with non-16550A-like interrupt architecture (like the Z16F) - * Added a &quot;dumb&quot; serial console driver to simply OS bringup + * Added a &quot;dumb&quot; serial console driver to simplify OS bringup + * Corrected a bug that caused the errno value of one task to be clobbered + when a different task exits. Effects all architectures. </pre></ul> <table width ="100%"> From 2304ae813c737abc8584df50fdb92c8be540c49a Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 31 Jan 2008 23:15:03 +0000 Subject: [PATCH 0176/1518] Prep for 0.3.7 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@601 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 91 +++++++++++++++------------------------- 1 file changed, 33 insertions(+), 58 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 0fdeffaee2..6b40bafdc6 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: January 30, 2008</p> + <p>Last Updated: January 31, 2008</p> </td> </tr> </table> @@ -456,7 +456,7 @@ </table> <p> - The 18th release of NuttX (nuttx-0.3.6) is available for download + The 19th release of NuttX (nuttx-0.3.7) is available for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. The change log associated with the release is available <a href="#currentrelease">here</a>. @@ -464,45 +464,30 @@ These unreleased changes are listed <a href="#pendingchanges">here</a>. </p> <p> - NuttX 0.3.8 is the 7th release containing the integration of a network - subsystem and the uIP TCP/IP, UDP, and ICMP stacks based on - <a href="http://www.sics.se/~adam/uip/index.php/Main_Page">uIP</a> - into NuttX. + This release includes the preliminary port of NuttX to the ZiLOG z16f 16-bit microcontroller. + This port was verified using the ZiLOG z16f2800100zcog Development and the ZiLOG ZDS-II toolchain. + See http://www.zilog.com for further information. </p> <p> - This release contains on a few changes. - The primary purpose of this release is to synchronize with the release - of the pascal-0.1.0 add-on package. - This release of NuttX includes the following changes: + I emphasize that this is a preliminary release of the z16f port and is only alpha or, perhaps, + pre-alpha quality as of this writing. + There are a list of known issues in the TODO file in the <a href="TODO.txt">here</a> + The overall quality of NuttX (excluding the z16f port) continues to improve beyond the late beta level. +</p> +<p> + The z16f port required numerous changes to NuttX to handle: </p> <ul> -<li>Fixes for use with SDCC compiler, <li> -<li>Added a simulated z80 target (arch/z80), <li> -<li>Fix deadlock errors when using stdio but with no buffering, and</li> -<li>Add support for the add-on Pascal P-Code interpreter (pcode/) - (see the pascal-0.1.0 package)</li> + <li>NEAR and FAR addressing, and</li> + <li>Use of a Windows native toolchain in a Cygwin build environment.</li> </ul> <p> - The Pascal add-on it integrated but has so far been tested very little; - it is certainly at an early, pre-alpha release level. - The baseline functionality of NuttX (including recently added network) - functionality continues to mature and remains at post-beta or production level. - Extensive testing has been done for the ARM architecture using the GCC - compiler/toolchain. - Other architectures and the SDCC toolchain are also supported but not as - well exercised. + In addition to the z16f port, at least one very critical bug was found and corrected in NuttX: + The thread-specific errno value of one task was being randomly trashed when a different thread exitted. </p> <p> - The current release were verified only on the simulated Z80 and and host - simulation targets. As usual, any feedback about bugs or suggestions - for improvement would be greatly appreciated. -</p> -<p> - <b>NOTE</b>: - There was an error in the initial 0.3.6 release that prevented - a successful build <i>unless</i> the Pascal add-on was present. The - tarball was patched to include the fix. Make sure that you download - the nuttx-0.3.6.1.tar.gz version to avoid this problem. + This release were verified on the ZiLOG z16f2800100zcog, Neuros OSD (ARM9), and the simulation platforms. + As usual, any feedback about bugs or suggestions for improvement would be greatly appreciated. </p> <table width ="100%"> @@ -632,7 +617,7 @@ </p> <p> <b>STATUS:</b> - This is a work in progress. + The preliminary release of support for the z16f was made available in NuttX version 0.3.7. </p> </td> </tr> @@ -951,30 +936,7 @@ Other memory: </table> <pre><ul> -0.3.6 2008-01-06 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - - * Changes for use with SDCC compiler - * Added a simulated z80 target - * Fix deadlock errors when using stdio but with no buffering - * Add support for Pascal P-Code interpreter - -0.3.6.1 2008-01-07 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - - * The initial 0.3.6 release including an error that prevented - building successfully if the Pascal add-on was - was not present. -</pre></ul> - -<table width ="100%"> - <tr bgcolor="#e4e4e4"> - <td> - <a name="pendingchanges">Unreleased Changes</a> - </td> - </tr> -</table> - -<pre><ul> -0.3.7 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; +0.3.7 2008-01-31 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Added support for the Zilog Z16F using the Zilog Z16F2800100ZCOG Development Kit. @@ -989,6 +951,19 @@ Other memory: when a different task exits. Effects all architectures. </pre></ul> +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="pendingchanges">Unreleased Changes</a> + </td> + </tr> +</table> + +<pre><ul> +0.3.8 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + +</pre></ul> + <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> From fb774737516731e281364cef38ddcec613a6c3ab Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 1 Feb 2008 00:20:35 +0000 Subject: [PATCH 0177/1518] Free ports git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@602 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttXBanner.html | 5 +++++ Documentation/freeports.html | 20 ++++++++++++++++++++ Documentation/freeports.jpg | Bin 0 -> 4936 bytes 3 files changed, 25 insertions(+) create mode 100644 Documentation/freeports.html create mode 100644 Documentation/freeports.jpg diff --git a/Documentation/NuttXBanner.html b/Documentation/NuttXBanner.html index a5f5925602..33ed439a9b 100644 --- a/Documentation/NuttXBanner.html +++ b/Documentation/NuttXBanner.html @@ -29,6 +29,11 @@ </tr> </table> </td> + <td width="210"> + <a href="freeports.html" target="_blank"> + <img src="freeports.jpg" width="210" height="62" border="0"/> + </a> + </td> </tr> </body> </html> \ No newline at end of file diff --git a/Documentation/freeports.html b/Documentation/freeports.html new file mode 100644 index 0000000000..ef58fa474e --- /dev/null +++ b/Documentation/freeports.html @@ -0,0 +1,20 @@ +<html> +<head> +<title>Free NuttX Ports</title> +</head> +<body background="backgd.gif"> +<center> +<table border="1" width="80%" bgcolor="#eeeeee"> +<tr><td> +<big><b><i>Free</i> Ports</b></big>. +If you have a hardware platform that you would like to see NuttX ported to then have I got a deal for you: +I am willing to port NuttX to run on your hardware <b><i>FREE</i></b>. +You would, of course, have to provide all hardware, development tools, and documentation. +The functionality would be limited to basic boot-up, serial console, networking, ... +I would need to retain the hardware throught the support cycle. +Of course, this offer depends the availability of free time to do the port. +If you are interested, contact <a href="http://sourceforge.net/users/patacongo/">patacongo</a> at SourceForge. +</td></tr></table> +</body> +</html> + diff --git a/Documentation/freeports.jpg b/Documentation/freeports.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0991ca75db75cd1ce837d8bbe0e8437c5d282e04 GIT binary patch literal 4936 zcmb7{XHe5k*T(-qAb<!a5T%5YP!j~C7eypWN$3dz2}Kd966xGjr9}|wO%aeTpn&uy zDu#{}L6DC09tA;)2)^9&%scaZd*{7&c4ueL?r+aE=hOK+_IDOIhttMt19WtBfbQu4 z{>}mCwfvkN0KmWiKm!24d^%6{cM`Y`FfxEZAO^<Mg^`hw3CzX}J{8BAGc0Tn4k#4D z0fBIyhhO02;)OvV+z4)7ettngLCy<E5u|_!TtHCZUkKglQ!o>lotc?kfD6JU@c-7| z768HwTm^<0=#T(CgpL71_qPpz0|3LRiGO|kub9Bhj37FChSR9VIe?CVfu4csG=0#S ze=nS#g8)Vd6BLY)W#&X`n%Hu|<UEA$geHn$a?i^XJh?^19K!MnE2~=<{>9S)bd3KE z{}18R3G-=G33AE<F#^mCV8;Laeu@V`5CkJsR?~zD%!#!12u;M~R&vST`8YVYEi8xk z-1<8Kurbh`I$(eR8o>C?txQLnrjS71OH$f)DGjb|#SJC@q<uj=mPP7ox}mk9>*v;) zG?yuUNpDJb>0k95DvERmFWiVVf?R2C$~L<(R8zK4{Nvo_zM<f^H+!had8vwQj}Ex5 zUT;H$L`Z?4N7oLx>$z3-8|msA((dokpEPF#xdlbOVb=^wH#pp6#to};WxcmLkX0C| zvQKRwrPqv0yY;4S%|VCY9;xq(E|;~OATQ;nB*x!%KHRW>_bD?lzmnH<j8;<jqVqAz zOc@AfmrR?Vwo5ZJrb^mJZyHf^{((nLA8}RlhPj!n)r0uwJZWu{c`5;EWv+RK6)y7K zX@kFoQ8AG=7C%{qTQr^(`!hrarZrTM#%h9G2e&WS%SFW~&wEhkbio4Ho=2ws4;soP zsw~gFP3~<Y7nNU!X5xYj{d{ANDdJP!(VNDu50Q26{L%&H_{XKY6Bx>sdSDf(c1IU{ zPRMDYKbt-?CrZ6vCGReko6JgmGttmwGfjD2XAnD(RZ||qYV5V!D6(iik>M0L^QL)Y zG9s`bBhYLk=x(HNt7}T+)HdiTtWQe<$OOf6FPTPo!G=Y}GBWIC6kJlB{NWwKn<&bn z*?R%y_z^DC$QU^JUgYnRw`T$ZmtV^oAH@Z^c~uk_gBISJ`2$|rYG0BPANbGoSgWR% zw{GZ$;#gp^HhI+nfq1sq3GUF9C*==!N5m;XwqHnl#JY;fy~$#%#S@|M8M@vS2~RVy z96QI0ODwN<tOeQ%`J|f$S$Lm^?~3ulu@$m9dCjAG5qvk_ZBTkFWs#S%`kU9O_|WeL zT8bLZ*0S{YvC8ok8)$gk;XTNtd6Oq=<-YE#BnzvlZKQS8tH8hvOo^si`%rY)+RPWV z2Ua!mfnRpWWQm3M&T|NfePI{Ft1a0s4HGNWCd+3HlLfVCkqE|`9hV-n<Ykm&MPnm9 zh{}3zUA_GVi?LbaT3+rSZ5sX8q_0o;)%w#8qaq4&x(*|K8nswV_yTL~K#8M04a_v% zq}&hJ6SC!`8#NAI?O1cS^OL0!ufovMSsbMbO^MA;ztR5G8R@mypx-$+e#}}!!>XZ% zausSR5^za@%y>c!+mJ&O4ch;FWdAY)FJa*e-OrDSI|4rfl7IOH=EuO}iVDr|(YNsj z<JX*4bW51RW(t_`HKC;TiRiv>YuJ<dzre_cgHZy`Hzv?{J<vWjmUFuCD#4>QTVcA| zGXyQ%xD2QsqlbP=Mdym*Tw1rqe?`y;y|<hS*@d?S^;RXiZhj|?poYIYz`ZHWv%fm7 zF-+fJ*MW&9Pek+HLMp`scT{&9TG7Lfm<Ep5OJ6WX8Rpm6<`McLYjsOeBtl6nr<RWQ zEhlUK;Ag{pDgJ3h_F_?1KQIqkooROmevAjdvv^gy7}1;bQ(vgy;6&#-J1grDt3+N2 zl?uLKGgxm4dZ+$y*mu%3Ig&>ji?g;J>^sBK|Ip}??oPpbzR8RAe&=MO90ECKRqBSr z6@OL1KVniM%CtmT;U5`t1yaAxM;yz0en4f=7vR1o$VEs`Oqh{Yj;AORk9y=s(3c}k zXGdSzcl_Yct=nDQPH%2bsY**HS_c2_AD&HMr&GNeBKXeJu+jtUrHt+g5&LSr>WlZ= zjyDpbAT2}{8Fd2hxr8<d`z=m+A7>DI8v5UNa!_OP&m-$oQe4H~xu5g5_ct1^w3^hL zh&%gzz~?aM=A+H|=LU@(9d-(7DVC(0qifg1r=FkSYX*lBX6kDnHtI!sV%c?q1H+}n zC4-%>5_M5WrRMR3b={w{)F$h(#Jjb+#*vUlX2kT9&Y*3aSB)zl=ZR-fyPt!lbWCg} zE#r(6s^W68r_MpLK<vw}E4ve_lZy2DdafL8x+TctA=_-DZ6>J>@2D?j%4bM?_MVo> zh-SG3hWw1?DrS}amt*pXDP*2L&&3{FJL-ZSEB07R%G#!W9W+t8mDc+@sOFE}5;q>k z-)yU4e=*1IGrH-yodL0CUL>!N1;UrK;x~`a)AooXuBuaR4=AHk9B{Y`RX$v0GM3?U zex1+t>u?b%lD5UO!x`aZ85X!!&G^N>i%N^jFKu4JQ2SzC2TpCF@0N1W%!>&C$O|D{ zgo|feTI1eh_C2c@R6n3^Hb6<&^=KVHlR{LxO}ekXY~-!{r+_FTY1A2g-03zahS@8c zI?8qp{Vw^DN+fBY9r4}gPw6O6Q^pze(LryuoM7ZALbvCnk^p}Bq<|H(v8rWWf^;!d z)%xZvy)V7|%Eth6*%IN=;VqQy0*utPud&xzo8x%Y@%(Krqq=ri318&cKJIwK!m6;A zep<|H<*c^-{f1y@0`?@VQu&NRN98D~YT>fp^knT6ku_<z7V8ssx&7QVf-}0i`&j<g z4R4cz!p3xpgxKRxgq*%V%s;<pgz|;9<vQWvIMc98Ik^d1cFP&{Z)#2NIxW^A#C8XD z<6|?fVISUCB`^Lkv{>uOn4azA{x0?G=>ufp>XXHJm`~c4@Sj(@OeH}=bFlcxcCYY_ z#u>PFyPgLfqUJ>jS@p8lGFIe>-83n#`!?-L!FxD<2oI$z+!xvY-J(f6U!Z+3S}b$L zaK06OwW9e3b5)FY(N)Ig%>D8={FqBQ>Pfo4U;S$B=X17(k)5CTG(KGh#qD{~C|Bm2 z`;CS)B$oC!h#OV8xQ0PRb0}yaEXm|UNno?~kJ0;ofeq43a>0PKUUh4_0tU}g)Mi+) z^SfoNZ$?&$#+YB)6dq~*B;uJXa_)ZAV#Cj*5IB}Bs-?QF3B(9m{i06_<epyA{bIgx z`8!NI6j78u^&oCn#$90CO~W(TIk}d-@^R5YpjcOA(*1uT{yAI2p-`LMMih9~6WsGI z7PS>NaT2w;QKERGCe7YzLFI^N5u?N<XEcpN3-oXunyNH28ob>uL%?=mMUOtHaLkZ6 z51{O2G=B6+j@bnNQ;(I;jL?(^?QJI`Wj5q`62T3@u9Qm=y)G2*Veuwxg4254_x=R~ zo`?6lx7PLl$&$B;E0Uj|ID=JX01|><_m#)JuW-rUd{O)LLN33HPQZSr1|n6iyj&D* zJOjRJ6{iV%6LY(4-fKF;EyOrM?sF1wVjE>+I;9gJe~!bYxX-DrPAKo^pl<9g2w;nC zSgKEcr)oD*$09_JZQ(aCY*44tWb%+=ORmA@#G!P-jSI3ArBcXrXgBIgJl?1r6&`JV zE6IJu*os<L_KbbsanJ>e(^y6}_baN*h{}DrXc`d`a#{{(jy>pEUo$J%Y%f0bq4CUr zJ71uYW~v?Uyfw2PHm@zpBSsIsKT4}ShL8-ihgL9^0^Mo|ga-P=J(itjcVV0U-uaV3 zWuA%e(_(Y?UFHj=FI}0659684q)*6-<N;=5cFK7253;DAGPP$(<$IqznOPtr3dqny z_Z;X$jB`B6DNCl*t}si>@s6#lZM}c)*Ulx9uCc&)XRWTHj)UdpRgY=qhfmMWlsMdB zC`(>zR6z+G+_W|mrp(9GO%0_CB>=Tw$ZJO&D*CUmwey*OfwKw<?+n~V&JvNeO2Sz? z_hRVzd@Qy~umZ4i?l}RA><*c)C4HTS)#8n|wfY71lZs|bJh^>hk3P5dQlK@0LOAB7 zu0=rv>1CzIxbosRJ?X|wW3FuKJsO85$W&8{%k1J+;UKrS&Ro;!)n!ozF3N-yD;vM| zbBT+ESCUdC4j+A7SqZi2(_p<)CnX(wL*~vD#h%t>;xi&n=OVGlj5TK1@hXx=4kWt_ z4J~U{UG`6pO<YhK@K1f6Yo4cr4`xzJBuMedZh$g;9#2bp$0Ao3-n^B=+Vby&-1neH zTr5HH0BnF<qE&UNmEyjoeygIYW*Jn1@hsNlLqfbxWP`a>s*-S$%)QV2j4CJUq^}CK z)M3tSO&xz8r7>aEt)^?F4z>IEmcKxVd0lTt@baOT&%mQZ0jO5vOH&N>+DGq{LwifY zz#okO=ZVxfKjE3w!c|GAqd^mC?9jg7^dFKOw>VIG`;CM9%^y~YkM~l>$yB_rklFKq zSVh?IgaYw7*&sy)XV}KNUG|aJMY5#E!`7L}ZHF}MUhY-K|0Qdf3uDu90s*sNjr1ib zlAF1vw=c=+UD2p>;nQmDx-gl7rB&B9+?N~hE#G9bz2<rR!Arj_^y}+8@nxfLugqZ$ zQx^I|j@taf*FAbE{z)11Dtq8>e%7O(?9IS=ukpy1osvH&(Z!raf4|0sQIH@;^1xkg zEq_^B>-{*r@P)Bfxf%N}2s!XURM286eAi^^MPyg%@l7?~oCn6C1=2=F6$U2)mbOpv zPkkvs0gRINl>+#Ci^Dt7-(%9G0|H>}zC~qjYVmE+JAvnWK2nqSx>T;(f&1SYnR63{ zlG;b<c-~+V-MtalP3E{{VN6Tmjt{sl23;G5^#5_|S-_VIQ=aaXT`KI)K%!zMA?buT z2^9=1qJXm-Exw6jsJfckWT9~U-Di1JZW?V>ppaHr@iNVL!jp?WL`9S;PotT$N><c9 zE-PW|E>t3dvS@li`TblYH^ZVOO1r!rZKT}836sC_Y6sZQKR~$gNXASIMH0P_aoYYU zba#(Y3AfO!KgYQv&E~H9d@Z%fgUM}7|EgKAXa4kGK;JAi?;U3_0-u2sBkEC<7%{uE zJCMB~UTx3MnULXtNRzXKcGcJZF2=-&qVTwPaiK0o6y`rA>Z*RuKWcjK)x^QjeMK}* zM^$OU#gZtKl)3BJo}F4?PAFIS7Yv`5<Hi3hfZP~)4FPUSyc_L~zyMqjna%bhhqajt z3e!DoQ3MCQfa|4QPIdFD5of!NL7vw%$^ul5TkC!;C*gDJLIXp%Hbr-(IhLKWwd|he zGJI0h&3i4$^^n%#qjdA$kw5-(qqbEg$L2@hkuCDZ;O`>CTZl@2(N95*#{3v)_Od+= z@2*bB_E<%Q*KC-lXG;5y-mM*I)KIcCXc$)6@WGNr8cZ>oEj>{A@911D+_D5Lie<Qt z4#Z0~`LM$B^le(@|Cz7+woPBLA`_*7xI28XRfIF7E=-0H9M`W2uc6`9;a%Ac&UvrZ zqf|EMGK3t^eFoZ1n267Kxux=lPQh%6pot<IWc?gjT28D;z=Fj7Cy?{gXY(eT3fkFM zJW2;7lTRpbGNJF9l|AtA^7`cm3*gh18CG7NP*><1o$C7LId7mD-}ph>laMK-S)~8Q zuRT34nJP;Ox+>GCwJXDP8u<A1V{p3SghVNEZKddi%oP`-V@(bmMhnDcqGd{n@8(fd z9saFsYU8s|@9Q>5OW=gaT3oDvC!{!fMZgY>O-tG4tP)<N>L~6oDB3vOEP46KNL<da z^E&6H-(zNX?-glS4ET~szmg576W#QWwa{FR@mQY~W#++2A1td+fBINV1iNE7uwsN) z)GEosvbPlN>!*y9FxvRI8wC=(jGAa6pUXE5@HJV5yoO7+>#pD7<Fsq;W-+?hki;5a zqS~!)Aa3xPevo<?TP-VdD?ilZFg*PEVvRC=5S7`m*I#7eN58C1x#-JGLK!+@Mf^B^ zFWMDEj=@+jeB%;1{^zO{ogmN1-qXUF+)Ml0=TlJk3+?D^QQatwUb-GbH3&{Q7_)So zB}2cO5trG})1XbfZn!C3vyQ_|xO-Z#k~}%CcSXB3Zhd_6lr3+ZH`C6BXiLpV0xPPm zs_*?URl#;03FHulpD@1kX=1}}5fh?Z$YV#zeMOMiSJ-vt&QvVrmye{_mQO2QE^!&` z2gzlESj4=&<$L!26|G|CoigWQ3Yn+C2Nq7!Z|Ht6?^V|um6j=aSK(xD<iN%38+{yC zjxNj3rJiDzRf(22c}*9a-{SioJvV?Vz_o=3q<%Ttyr0mSkjQ%(m6I1O5q8>NMG5^M J8;!r?{{yW=^~wMM literal 0 HcmV?d00001 From 6ec1fd0674cfacd872a7f8f856a0da6ae175874d Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 1 Feb 2008 14:32:56 +0000 Subject: [PATCH 0178/1518] Add Pascal test case git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@604 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 6b40bafdc6..b9ac934c9e 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -962,6 +962,7 @@ Other memory: <pre><ul> 0.3.8 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + * Added a test case to verify the Pascal P-Code interpreter </pre></ul> <table width ="100%"> From d6e60e94bae3efbf68d00befdb1e3f4f3b0d2d7b Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 1 Feb 2008 20:47:32 +0000 Subject: [PATCH 0179/1518] Add pascal test git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@606 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index b9ac934c9e..b12036faa4 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -963,6 +963,7 @@ Other memory: 0.3.8 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Added a test case to verify the Pascal P-Code interpreter + * Added /dev/zero </pre></ul> <table width ="100%"> From e293e5aef9bdcd053e1f9ec661ebce33b32554a9 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 1 Feb 2008 21:23:19 +0000 Subject: [PATCH 0180/1518] errno now defined to be *get_errno_ptr() git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@607 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index b12036faa4..60e1857cda 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: January 31, 2008</p> + <p>Last Updated: February 1, 2008</p> </td> </tr> </table> @@ -964,6 +964,7 @@ Other memory: * Added a test case to verify the Pascal P-Code interpreter * Added /dev/zero + * 'errno' is now defined to be *get_errno_ptr() with no name conflicts </pre></ul> <table width ="100%"> From c0cf7a1be2b1183407f013175dd2daa2a6397001 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 1 Feb 2008 22:19:20 +0000 Subject: [PATCH 0181/1518] Added lseek() git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@612 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 60e1857cda..9fd1c534be 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -965,6 +965,7 @@ Other memory: * Added a test case to verify the Pascal P-Code interpreter * Added /dev/zero * 'errno' is now defined to be *get_errno_ptr() with no name conflicts + * Added lseek() </pre></ul> <table width ="100%"> From 9d4410773d2137a25876ac718d08284fbf3d0326 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 1 Feb 2008 22:32:16 +0000 Subject: [PATCH 0182/1518] Add fseek() git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@613 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 9fd1c534be..e1db573b7a 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -965,7 +965,7 @@ Other memory: * Added a test case to verify the Pascal P-Code interpreter * Added /dev/zero * 'errno' is now defined to be *get_errno_ptr() with no name conflicts - * Added lseek() + * Added lseek() and fseek() </pre></ul> <table width ="100%"> From f41de20bdbacf2f1d324e393e405ef1b7b91064d Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 1 Feb 2008 22:47:24 +0000 Subject: [PATCH 0183/1518] Integration pascal test case on the sim platform git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@614 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index e1db573b7a..c32d726a13 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -966,6 +966,7 @@ Other memory: * Added /dev/zero * 'errno' is now defined to be *get_errno_ptr() with no name conflicts * Added lseek() and fseek() + * Integrated pascal test case on the simulation platform. Needs pascal-0.1.1. </pre></ul> <table width ="100%"> From 49b48da6075dfd8bf61ffa90f807b2f80c5c64e3 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 3 Feb 2008 14:03:34 +0000 Subject: [PATCH 0184/1518] update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@624 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index c32d726a13..0a13f31185 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -910,13 +910,13 @@ Other memory: <tr> <td><img src="favicon.ico"></td> <td> - <a href="ChangeLog.txt">Change Logs for all releases</a><br> + <a href="ChangeLog.txt">Change Logs for All NuttX Releases</a><br> </td> </tr> <tr> <td><img src="favicon.ico"></td> <td> - <a href="#currentrelease">ChangeLog for Current Release</a><br> + <a href="#currentrelease">ChangeLog for Current Releases</a><br> </td> </tr> <tr> @@ -936,7 +936,7 @@ Other memory: </table> <pre><ul> -0.3.7 2008-01-31 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; +nuttx-0.3.7 2008-01-31 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Added support for the Zilog Z16F using the Zilog Z16F2800100ZCOG Development Kit. @@ -949,6 +949,14 @@ Other memory: * Added a &quot;dumb&quot; serial console driver to simplify OS bringup * Corrected a bug that caused the errno value of one task to be clobbered when a different task exits. Effects all architectures. + +pascal-0.1.1 2008-02-01 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + + * Correct some errors in the NuttX installation logic + +buildroot-0.1.0 2007-03-09 &lt;spudmonkey@racsa.co.cr&gt + + * Support for arm-elf toolchain </pre></ul> <table width ="100%"> @@ -960,13 +968,24 @@ Other memory: </table> <pre><ul> -0.3.8 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; +nuttx-0.3.8 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Added a test case to verify the Pascal P-Code interpreter * Added /dev/zero * 'errno' is now defined to be *get_errno_ptr() with no name conflicts * Added lseek() and fseek() * Integrated pascal test case on the simulation platform. Needs pascal-0.1.1. + * Integrated pascal test case on the z16f platform. Needs pascal-0.1.2 (not + yet released). + +pascal-0.1.2 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + + * Add logic to build and link with the ZDS-II toolchain + use with the z16f. + +buildroot-0.1.1 2007-xx-xx &lt;spudmonkey@racsa.co.cr&gt + + * Support for m68k-elf and m68hc11 toolchain </pre></ul> <table width ="100%"> From ab59be6eab5271347762a01dada1c24614ac8b64 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 3 Feb 2008 17:09:22 +0000 Subject: [PATCH 0185/1518] Update errno discussion git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@627 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxUserGuide.html | 128 +++++++++++++++++------------- 1 file changed, 73 insertions(+), 55 deletions(-) diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index a6002e5f9b..a5ef33f1b3 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -21,7 +21,7 @@ User's Manual <p> Gregory Nutt <p> -<small>Last Update: December 10, 2007</small> +<small>Last Update: Februrary 2, 2008</small> </center> <h1>1.0 <A NAME="Introduction">Introduction</a></h1> @@ -62,9 +62,15 @@ Gregory Nutt <b>Section 3.0, <a href="#Data_Structures">OS Data Structures</a></b>: This section documents the data structures that are used at the NuttX interface. + <ul> + <li>Paragraph 3.1 <a href="#ScalarType">Scalar Types</a></li> + <li>Paragraph 3.2 <a href="#HiddenStructures">Hidden Interface Structures</a></li> + <li>Paragraph 3.3 <a href="#ErrnoAccess">Access to the <code>errno</code> Variable</a></li> + <li>Paragraph 3.4 <a href="#UserStructures">User Interface Structures</a></li> + </ul> </li> <li> - <a href="#index">Index</a> + <a href="#index"><b>Index</b></a> </li> </ul> @@ -227,7 +233,7 @@ paragraphs. <li> Returns the non-zero task ID of the new task or ERROR if memory is insufficient or the task cannot be - created (errno is not set). + created (<a href="#ErrnoAccess"><code>errno</code></a> is not set). </LI> </ul> @@ -296,7 +302,7 @@ VxWorks provides the following similar interface: <ul> <li><p>OK, or ERROR if the task cannot be initialized.</P> <p>This function can only failure is it is unable to assign - a new, unique task ID to the TCB (errno is not set).</P> + a new, unique task ID to the TCB (<a href="#ErrnoAccess"><code>errno</code></a> is not set).</P> </ul> <p> <b>Assumptions/Limitations:</b> @@ -348,7 +354,7 @@ task_init argument). <p> <b>Returned Values:</b> <ul> -<li>OK, or ERROR if the task cannot be activated (errno is not set). +<li>OK, or ERROR if the task cannot be activated (<a href="#ErrnoAccess"><code>errno</code></a> is not set). </ul> <p> @@ -399,7 +405,7 @@ zero signifies the calling task. <b>Returned Values:</b> <ul> <li>OK, or ERROR if the task cannot be deleted. -This function can fail if the provided pid does not correspond to a task (errno is not set) +This function can fail if the provided pid does not correspond to a task (<a href="#ErrnoAccess"><code>errno</code></a> is not set) </ul> <p> @@ -613,7 +619,7 @@ Compatible with the POSIX interface of the same name. <p> <b>Returned Values:</b> On success, sched_setparam() returns 0 (OK). - On error, -1 (ERROR) is returned, and<code>errno</code>is set appropriately. + On error, -1 (ERROR) is returned, and <a href="#ErrnoAccess"><code>errno</code></a> is set appropriately. </p> <ul> @@ -714,7 +720,7 @@ interface of the same name. <p> <b>Returned Values:</b> On success, <i>sched_setscheduler()</i> returns OK (zero). On - error, ERROR (-1) is returned, and<code>errno</code>is set appropriately: + error, ERROR (-1) is returned, and <a href="#ErrnoAccess"><code>errno</code></a> is set appropriately: </p> <ul> <li>EINVAL The scheduling policy is not one of the @@ -762,7 +768,7 @@ policy. <li> On success, <i>sched_getscheduler()</i> returns the policy for the task (either SCHED_FIFO or SCHED_RR). - On error, ERROR (-1) is returned, and<code>errno</code>is set appropriately: + On error, ERROR (-1) is returned, and <a href="#ErrnoAccess"><code>errno</code></a> is set appropriately: <ul> <li>ESRCH The task whose ID is pid could not be found.</li> </ul> @@ -775,7 +781,7 @@ policy. interface of the same name. Differences from the full POSIX implementation include: <ul> -<li>Does not report errors via <I>errno</I>. +<li>Does not report errors via <a href="#ErrnoAccess"><code>errno</code></a>. </ul> <H3><a name="sched_yield">2.2.5 sched_yield</a></H3> @@ -894,7 +900,7 @@ priority of the calling task is returned. <p> <b>Returned Values:</b> On success, sched_rr_get_interval() returns OK (0). On - error, ERROR (-1) is returned, and<code>errno</code>is set to: + error, ERROR (-1) is returned, and <a href="#ErrnoAccess"><code>errno</code></a> is set to: </p> <ul> <li>EFAULT Cannot copy to interval</LI> @@ -1216,7 +1222,7 @@ interface of the same name. <p> <b>Returned Values:</b> On success, <code>mq_send()</code> returns 0 (<code>OK</code>); - on error, -1 (<code>ERROR</code>) is returned, with <code>errno</code> set + on error, -1 (<code>ERROR</code>) is returned, with <a href="#ErrnoAccess"><code>errno</code></a> set to indicate the error: </p> <ul> @@ -1299,7 +1305,7 @@ interface of the same name. <p> <b>Returned Values:</b> On success, <code>mq_send()</code> returns 0 (<code>OK</code>); - on error, -1 (<code>ERROR</code>) is returned, with <code>errno</code> set + on error, -1 (<code>ERROR</code>) is returned, with <a href="#ErrnoAccess"><code>errno</code></a> set to indicate the error: </p> <ul> @@ -1370,7 +1376,7 @@ interface of the same name. <p> <b>Returned Values:</b>. One success, the length of the selected message in bytes is returned. - On failure, -1 (<code>ERROR</code>) is returned and the <code>errno</code> is set appropriately: + On failure, -1 (<code>ERROR</code>) is returned and the <a href="#ErrnoAccess"><code>errno</code></a> is set appropriately: </p> <ul> <li> @@ -1451,7 +1457,7 @@ interface of the same name. <p> <b>Returned Values:</b>. One success, the length of the selected message in bytes is returned. - On failure, -1 (<code>ERROR</code>) is returned and the <code>errno</code> is set appropriately: + On failure, -1 (<code>ERROR</code>) is returned and the <a href="#ErrnoAccess"><code>errno</code></a> is set appropriately: </p> <ul> <li> @@ -1516,7 +1522,7 @@ registration. <li><I>mqdes</I>. Message queue descriptor <li><I>notification</I>. Real-time signal structure containing: <ul> -<li><I>sigev_notify</I>. Should be osSIGEV_SIGNAL (but actually +<li><I>sigev_notify</I>. Should be SIGEV_SIGNAL (but actually ignored) <li><I>sigev_signo</I>. The signo to use for the notification <li><I>sigev_value</I>. Value associated with the signal @@ -1951,9 +1957,8 @@ the lock or the call is interrupted by a signal. </ul> <p> If <I>sem_wait</I> returns -1 (ERROR) then the cause of the failure -will be indicated by the thread-specific <I>errno</I> value (a pointer -to this value can be obtained using <I>get_errno_ptr()</I>). The following -lists the possible values for <I>errno</I>: +will be indicated by the thread-specific <a href="#ErrnoAccess"><code>errno</code></a>. +The following lists the possible values for <a href="#ErrnoAccess"><code>errno</code></a>: <p> <ul> <li><I>EINVAL</I>: Indicates that the <I>sem</I> input parameter is @@ -1992,9 +1997,8 @@ returns without blocking. <li>0 (OK) or -1 (ERROR) if unsuccessful </ul> If <I>sem_wait</I> returns -1 (ERROR) then the cause of the failure -will be indicated by the thread-specific <I>errno</I> value (a pointer -to this value can be obtained using <I>get_errno_ptr()</I>). The following -lists the possible values for <I>errno</I>: +will be indicated by the thread-specific <a href="#ErrnoAccess"><code>errno</code></a>. +The following lists the possible values for <a href="#ErrnoAccess"><code>errno</code></a>: <p> <ul> <li><I>EINVAL</I>: Indicates that the <I>sem</I> input parameter is @@ -2522,7 +2526,7 @@ VxWorks provides the following comparable interface: If the call succeeds, <code>timer_create()</code> will return 0 (<code>OK</code>) and update the location referenced by <code>timerid</code> to a <code>timer_t</code>, which can be passed to the other per-thread timer calls. If an error occurs, the function will return - a value of -1 (<code>ERROR</code>) and set<code>errno</code>to indicate the error. + a value of -1 (<code>ERROR</code>) and set <a href="#ErrnoAccess"><code>errno</code></a> to indicate the error. </p> <ul> <li><code>EAGAIN</code>. The system lacks sufficient signal queuing resources to honor the @@ -2570,7 +2574,8 @@ VxWorks provides the following comparable interface: </p> <p> If successful, the <I>timer_delete()</I> function will return zero (<I>OK</I>). - Otherwise, the function will return a value of -1 (ERROR) and set<code>errno</code>to indicate the error: + Otherwise, the function will return a value of -1 (ERROR) and set + <a href="#ErrnoAccess"><code>errno</code></a> to indicate the error: </p> <ul> <li><code>EINVAL</code>. The timer specified timerid is not valid.</li> @@ -2647,7 +2652,8 @@ VxWorks provides the following comparable interface: </p> <p> If the timer_gettime() succeeds, a value of 0 (OK) will be returned. - If an error occurs, the value -1 (ERROR) will be returned, and<code>errno</code>set to indicate the error. + If an error occurs, the value -1 (ERROR) will be returned, and + <a href="#ErrnoAccess"><code>errno</code></a> set to indicate the error. </p> <ul> <li><code>EINVAL</code>. The timerid argument does not correspond to an ID returned by timer_create() but not yet deleted by timer_delete().</li> @@ -3065,12 +3071,12 @@ If sigprocmask() fails, the signal mask of the task is not changed. <ul> <li><I>how</I>. How the signal mast will be changed: <ul> -<li><I>osSIG_BLOCK</I>. The resulting set is the union of the +<li><I>SIG_BLOCK</I>. The resulting set is the union of the current set and the signal set pointed to by the <I>set</I> input parameter. -<li><I>osSIG_UNBLOCK</I>. The resulting set is the intersection +<li><I>SIG_UNBLOCK</I>. The resulting set is the intersection of the current set and the complement of the signal set pointed to by the <I>set</I> input parameter. -<li><I>osSIG_SETMASK</I>. The resulting set is the signal set +<li><I>SIG_SETMASK</I>. The resulting set is the signal set pointed to by the <I>set</I> input parameter. </ul> @@ -3307,7 +3313,7 @@ is delivered more than once.&quot; <ul> <li> On success (at least one signal was sent), zero (OK) is returned. - On error, -1 (ERROR) is returned, and<code>errno</code>is set appropriately. + On error, -1 (ERROR) is returned, and <a href="#ErrnoAccess"><code>errno</code></a> is set appropriately. <ul> <li><code>EGAIN</code>. The limit of signals which may be queued has been reached.</li> <li><code>EINVAL</code>. signo was invalid.</li> @@ -5860,7 +5866,7 @@ Those socket APIs are discussed in the following paragraphs.</p> </ul> <p> <b>Returned Values:</b> - 0 on success; -1 on error with<code>errno</code>set appropriately: + 0 on success; -1 on error with <a href="#ErrnoAccess"><code>errno</code></a> set appropriately: </p> <ul> <li><code>EACCES</code>. @@ -5906,7 +5912,7 @@ Those socket APIs are discussed in the following paragraphs.</p> </ul> <p> <b>Returned Values:</b> - 0 on success; -1 on error with<code>errno</code>set appropriately: + 0 on success; -1 on error with <a href="#ErrnoAccess"><code>errno</code></a> set appropriately: </p> <ul> <li><code>EACCES</code> @@ -5961,7 +5967,7 @@ Those socket APIs are discussed in the following paragraphs.</p> </ul> <p> <b>Returned Values:</b> - 0 on success; -1 on error with<code>errno</code>set appropriately: + 0 on success; -1 on error with <a href="#ErrnoAccess"><code>errno</code></a> set appropriately: </p> <li><code>EACCES</code> or </code>EPERM</code>: The user tried to connect to a broadcast address without having the @@ -6028,7 +6034,8 @@ Those socket APIs are discussed in the following paragraphs.</p> </ul> <p> <b>Returned Values:</b> - On success, zero is returned. On error, -1 is returned, and errno is set appropriately. + On success, zero is returned. On error, -1 is returned, and + <a href="#ErrnoAccess"><code>errno</code></a> is set appropriately. </p> <ul> <li><code>EADDRINUSE</code>: Another socket is already listening on the same port.</li> @@ -6177,7 +6184,8 @@ Those socket APIs are discussed in the following paragraphs.</p> </ul> <p> <b>Returned Values:</b> - On success, returns the number of characters sent. On error, -1 is returned, and<code>errno</code>is set appropriately: + On success, returns the number of characters sent. On error, -1 is returned, + and <a href="#ErrnoAccess"><code>errno</code></a> is set appropriately: </p> <ul> <li><code>EAGAIN</code> or <code>EWOULDBLOCK</code>. @@ -6284,7 +6292,7 @@ Those socket APIs are discussed in the following paragraphs.</p> <p> <b>Returned Values:</b> On success, returns the number of characters sent. - On error, -1 is returned, and errno is set appropriately: + On error, -1 is returned, and <a href="#ErrnoAccess"><code>errno</code></a> is set appropriately: </p> <ul> <li><code>EAGAIN</code>. @@ -6348,7 +6356,7 @@ Those socket APIs are discussed in the following paragraphs.</p> <p> <b>Returned Values:</b> On success, returns the number of characters sent. - On error, -1 is returned, and errno is set appropriately: + On error, -1 is returned, and <a href="#ErrnoAccess"><code>errno</code></a> is set appropriately: </p> <ul> <li><code>BADF</code>. @@ -6411,7 +6419,7 @@ Those socket APIs are discussed in the following paragraphs.</p> <p> <b>Returned Values:</b> On success, returns the number of characters sent. - On error, -1 is returned, and errno is set appropriately: + On error, -1 is returned, and <a href="#ErrnoAccess"><code>errno</code></a> is set appropriately: </p> <ul> <li><code>BADF</code>. @@ -6428,8 +6436,8 @@ Those socket APIs are discussed in the following paragraphs.</p> </ul> <hr> -<h1>3.0 <A NAME="Data_Structures">OS Data Structures</a></h1> -<H2>3.1 Scalar types</H2> +<h1>3.0 <A NAME="Data_Structures">OS Data Structures</A></h1> +<H2>3.1 <A NAME="ScalarType">Scalar Types</A></H2> <p> Many of the types used to communicate with NuttX are simple scalar types. These types are used to provide architecture independence @@ -6443,7 +6451,7 @@ interface include: <li>time_t </ul> -<H2>3.2 Hidden Interface Structures</H2> +<H2>3.2 <A NAME="HiddenStructures">Hidden Interface Structures</A></H2> <p> Several of the types used to interface with NuttX are structures that are intended to be hidden from the application. @@ -6458,37 +6466,47 @@ OS resources. These hidden structures include: <li>pthread_key_t </ul> <p> -In order to maintain portability, applications should not reference -specific elements within these hidden structures. These hidden -structures will not be described further in this user's manual. + In order to maintain portability, applications should not reference + specific elements within these hidden structures. These hidden + structures will not be described further in this user's manual. +</p> <p> -<H2>3.3. Access to the <I>errno</I> Variable</H2> +<H2>3.3 <A NAME="ErrnoAccess">Access to the <code>errno</code> Variable</A></H2> <p> -A pointer to the thread-specific <I>errno</I>. value is available through a -function call: + A pointer to the thread-specific <code>errno</code> value is available through a + function call: +</p> <p> -<b>Function Prototype:</b> + <b>Function Prototype:</b> <p> -<pre> int *get_errno_ptr( void )</pre> +<pre> #include <errno.h> + #define errno *get_errno_ptr() + int *get_errno_ptr( void )</pre> <p> -<b>Description</b>: <I>osGetErrnorPtr()</I> returns a pointer to -the thread-specific <I>errno</I> value. + <b>Description</b>: + <code>get_errno_ptr()</code> returns a pointer to the thread-specific <code>errno</code> value. + Note that the symbol <code>errno</code> is defined to be <code>get_errno_ptr()</code> so that the usual + access by referencing the symbol <code>errno</code> will work as expected. +</p> <p> -This differs somewhat from the use for<code>errno</code>in a multi-threaded process environment: -Each pthread will have its own private copy of<code>errno</code>and the<code>errno</code>will not be shared -between pthreads. + There is a unique, private <code>errno</code> value for each NuttX task. + However, the implementation of <code>errno</code> differs somewhat from the use of + <code>errno</code> in most multi-threaded process environments: + In NuttX, each pthread will also have its own private copy of <code>errno</code> and the + <code>errno</code> will not be shared between pthreads. + This is, perhaps, non-standard but promotes better thread independence. <p> <b>Input Parameters</b>: None <p> <b>Returned Values</b>: <p> <ul> -<li>A pointer to the thread-specific <I>errno</I> value. +<li>A pointer to the thread-specific <code>errno</code> value. </ul> <p> -<H2>3.4 User Interface Structures</H2> +<H2>3.4 <A NAME="UserStructures">User Interface Structures</A></H2> <p> <H3>3.4.1 main_t</H3> <p> From 20ba31f37785a37e3f606391a3077621589832f8 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 4 Feb 2008 00:27:37 +0000 Subject: [PATCH 0186/1518] Make freeports transparent git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@628 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttXBanner.html | 4 ++-- Documentation/freeports.gif | Bin 0 -> 5087 bytes Documentation/freeports.jpg | Bin 4936 -> 0 bytes 3 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 Documentation/freeports.gif delete mode 100644 Documentation/freeports.jpg diff --git a/Documentation/NuttXBanner.html b/Documentation/NuttXBanner.html index 33ed439a9b..9907d2e93f 100644 --- a/Documentation/NuttXBanner.html +++ b/Documentation/NuttXBanner.html @@ -31,9 +31,9 @@ </td> <td width="210"> <a href="freeports.html" target="_blank"> - <img src="freeports.jpg" width="210" height="62" border="0"/> + <img src="freeports.gif" width="210" height="62" border="0"/> </a> </td> </tr> </body> -</html> \ No newline at end of file +</html> diff --git a/Documentation/freeports.gif b/Documentation/freeports.gif new file mode 100644 index 0000000000000000000000000000000000000000..9bdcdcf185bccadc79dad8d59e623873d7ccf7e0 GIT binary patch literal 5087 zcmWlcd0dQ(|HVJE@6S9fC`C`}ZNnr>n@kJJO(u#;7%jHKly1c>%~aa7Obc?!cPc7L zrUh}icUrXAnq*0mNvXMn(IQ0i^ZWO_-sk*xUgvezd9Jmy-}M-rVN?zCK$C#;1&G4o z!YL49@=Jgez{lGHjttp$zyLxa5YB5s0zfU`D}j>Z3M3Ys#=|XJ29AiY*M&4Mz-xiT zjf`7O10c1q;10kb5FY~JISX2Kp^6Cao!PJzSOGYKHnb68(f}Il=YS4$1;KnE|6Bks zd|7Y+2OBjYn1)-U3nnn+g5kDnK^#HLR}aEbaI%0vJ;<QK9(@QlglJvZ`5PQEg$f!( zn?R;69K+!F0tmOpM{*!y1*BSla4{rs;K*_~u^3_;A>0KL?Qj{(A;AgvKWh*#gJegj zuz<51h;zlu3?Rc1j=4g@8n|r+$6etsdx&2TC!HbI8}eM>)*?vp#MLc@+%-_)0FTY# zsso(#go|#t|E<N}wu6EVaMlxYd?3RYdTgQI9WnzUX$StQCp>h3bDQCeKU8djD?ZTf z4)s28Wh=aPhRSWw?hP$IP!<gG4bT_}vH&RC2j>sK-@Bk{KU@!ktNUPx2Tudw<ra|b zg)33`t`KNE1lJBj<x!}Ofqw<i6#;i+;bAnqiU8T4aQhhiw+|+E!^2~Q`Yd=A3yqo3 zoC<d`aJ}*HBpK8Pab0OJ5er}cfKR{pQ_!757(NcKGoa%%^yI_CQ_v@d$qeW_1Im2( znE?}GxL*!E7oo2V)cNqP7{>pCky20>!9X?4o`d%l&{q%tT>*6&?ngO{Uxn{gB;_@{ zx&}VpfQf4`TMvp>7-@p9H(~rAm~F&;YzFn;p#B$rG{bZ!sPDp9H+*>n>U*Gm0F#eF zEr(BipneKJUck40Q1|1e2SGguUq?Yb3e#gSse+$l@L>u*Pk{O(etH7`<1=AM4YT9$ zWg66zFfju^rs2~pe4hdJH<(t#&sk8baR6XAJI5_5Y*%zxC>FafdN1a?Hw;_nxq%0U z--tLmsKNRd1pi+ap#JjE^gX1Krevy?Wl)E-q$LeCUVqM`wzOG$uI>K*j@q*JT+$Mu zzGvNq&I0nBP;>ta9$87I?xp8E>&rKYmgk!o#)Ur4PjXN1*I(aY-l{>)6^xgK@{4!p zU0^!lGc&s{``5P#J|D(3`K^x{zfn@QG=>Ec7iajgeDsqXw(KtcJ$5+9%v;KAtvjGE zHQhfD7ryo5CLPo4>-*}5!z5aZIPcb<ul~%ab>C#zX;X2q|B7jG-;1(&SJq1oynB$h z|9cq2(tV}*{qsM?w1$Hvx8rVJ@ZRxvWJ6`s%jci^tApQ-T`E|fx*iMeUHntBq4+3$ z0qJ6d)t*NIMgi}>&vw2%?PT!pvB?LW^*083&+rBw9WhS1z|VR2wSHXQ6hbo)ZPOv- zIuwg~yjRbRCFialnM%%GHN)Mz(f(Oh59080tSO!ArSqA<`gVM8p+=HUDP^9(ckqGW zdvyrg@u#Y+D{ES%wJT}nYw|{?Z=A+1yPZU%H2oAWygPfYt{4dH6orsr$j6!rHHF-6 z;s$39j%sFSA}T;UI)QBHB*c-~9uhH0$BUnI#@iXIIJeP3m{iDECKc2DGwns|Jb%<O z9opkG+ZVr0iIuEg`n^8a`A4hmfb-O3PnYA52W1wHebu6Li$@VX_cV0(U2>%?c))R^ z7{n_?^jXUy&aeCp{|RYk@t7+^>L3>WMc*ZHWf-YwNfd(yc@+iY%eZ)oy}XI`cWEE~ zs&vQY{gg#s3K@aoY2PHheCvA^ovkB~t&N<#=xwhQ_MBNcqTkVVXGUJY&;F*=Dsh}{ z>?vC{<ll0}LCGs!v(^u>a=mutn6Qd!TPYOb7@m?aM*lI6Tit?6Sp-#XHVL&x@xseB zM*hE#NfEF@$;bmiGtEFKuCBWh)gM(i;J`--h#;%#TIa`mm#>;`)o!=$wD^r}pKTs| zfBC4gXQR^>F7?up6(ez1ou`#Oj|4Nap@+KjS4k!)dQKJ<1>2&m$M4c?IE!bmnh8}O z2pj)`%deN}r8G6XI`26`blE7ZqrXPng+wGm*i1N@4DTuNspu$y#`oeC<Q)Dex)D_> zYa&Y#$EHH|9BwnRnQ1~b9+A1_M!k%8Svx<jKYzZ%>}}igtEaw(Tzd9JRnRrDvM<DY z(N5;F<LF`xx`_)L6u3sJpF;S^Oxqbfb7h8g%q6Q#W_QKytV(d2W}jhsi}8o#2*aG? zUQelu0t(s;w8k#n`y>x$DmQIq;Vy=cj+>og7dyJTMY{q>ScmFFq$F5(K$sS%Lo(F; z<KdA}PqDL7l(WX&kme^&n)??oIXy)Yw!yK3;3Qk5HLNn2EiBL({(c(8<=o%)dGkrR zb`oAIh(R>urN0ck*2<?nBKib%yg$~9-i{XN4>q>h+|ytuRJQ14soLzSe6kK;E%Z?H zl*LC6vlH#A7S7J^>eWtR$EO?5Z<CW99^^5XfT0mvDXY<u+)cZrNMm<Ar97(;qsp;A z$s*aD!3vZD*(Zp3+#2i#%9Kb*82^Hs`@FoRCPw;7;krA@5_aquVcyw}?WC4kng<v$ z5>%;&9%<aKxp>7OCfYY?ZUd57O)z*RPSG;a#QP;+CunEjnzOj2Ad+#G8L9u8-V9A^ zY6>g*xOk0mm?L<!p6&^wH5vJ~l}X&mSy}r<RX4Jp8{+hnNAZ=2nBLMsU8QiXSzumP zr1r#)(OToxA3r0Rv&wm!@;Znyq^|YOV+4kd2h~?<`EgZi<Yl8bTr-)yz|7tMRp6*g z+ezD09UxwMx7SlCNDbGgZr-ieW_oWIJ3*1WuvU22?ol_>nG>RanM2V1F3s3i8Dd90 zs_ou2k&_TK#Ecbpw5e{03yQfU!{QhBt9nsNrNloXyXfxxH;sq{3h|Nf`)b)1e3FFp zgf9B#yeZw(*H!O}GR;xxf^76pUZcX+nVu@iNr*_+cv6&VWcQhBD|ON7^(U{e9$ucH z+-oq-p%|CS(pI^<AF@=;3N5vQLA&uF#**t>7#fK-CkPAFe2f2)!_nCF)mKSPvYr2R zieu(7i2g>e)`rRmhSr13Z1XisI+`kv$;x!ogcp6DHZeD*v>2#_YfV}`G9s1{=9LJ^ zHXpfZJ|->t-y4jVTIn!-O-hkq0bU~*Ky7ny%gK14@J;K9S?@P!1VEiL=VhW37Vz+% z0mc8Cs6kU6g6>YI96V{;)I>kAIm*I4TAZ>GZP8PDv^zYj?TV?!Yc}_i9X1`N?Q3W; z_<*&UO9nG`wB~b_T+)I%4rQehzkm^yRu=6pIb7X6Z)>HYo2%3`G_0riJK>|pYE?zL z2?X%;x6jsj^mVeLa|x}c9#oT&8-dx;e$|<C>V7R{y0r_VQ<?g4ti&m?w?!{O>1ts1 znd!R4b-|Q>ngb_~5o&Fu|4wpoRYzn-(1m7=XlP6N_%>J9zGI<EXPpf`(&N^3`YpDU zi`N9vPFxN_Kjh$!fIj@3LjgC&+)iHJebOv@SB*C&T<&(^>7v?Oep|LZeoDLLSDuk2 zqK){at?uo9n&Rz>?&c9JZ`))BHViG?AMS1!9Lb1tqApbGq?&iwAQ5&g`YZb=j)kL0 z;t^xrNMVwjVt0_Q>$Jb6;_;(E`JRpE`DEFFj;3!Wdro;jhz67Y{?lCS&)~S@Z?FC6 zHp{8Fxb?UfQNQww`v8v?kuEiO&s}FM7BRP-Gtzl#M_eZFMh-1A(m8#%EqB_+!&6YU zU|itqe7I0@OuWHBS+qt+u0n5=uTR8!W#oJoUc0gDkmce&ngeezwSl%p(LdO2$61Ul z>n^^RbnYtq4L@w^h!KV@@U)uyIjz!=R-{95>eXQH^)-t9K&99p6=jA;49!1NL|h?^ z%tUK=k`vPQRpXKDm`NL#d&%FN`vx;tN^wT#nYt8-365ZH5lt@oQ&2G_vU{GJxe!Z_ zI=n)JT63S#{AG=jvomSdimRco(uq2Ps@#kq!*yI&eSRJ*TDoq*c`CV2Ia`8wa*cIk zsjHVtY%;g-hdSOVQ@(s^n*GziDr;6iSuH>N7awh=T`0AxJ!h9!no#|T?qh1N6=?`u zJryqXu=Ng#2K^bXZd~JOE8Y_OlWao_lvD5UkYOn@BNM&lQVrepKM0sb9F|l;PU5kK z#Ek7iidf8e32cR6U*~7@P}{_;Qm1uqqsJx46CQ1kT$>>ZU!aN~j9wgj8m0ZVbZ8U$ z;Yq~ZYkbXu6spDnhr1dm_}_VkYV+`pJZdWzR~crZk}~SBxN-j4Dqy~p(yD<q%ty}g zsG$mSG&kXngkD5uzaNaA7+o@*gn6u6I3#CQbKPdORh#TChCeY`YB|SSzaW-0XkRlP z-|x1j`T}adIRoqVZux>P!H5Es@sf{>bt5BUY6kw$7db0~6PPV!4oMK-9_Dp1Em6$0 zpQiq!VkxE3xtdvlwm#pIkU@-jj7wZ1wsCNa)Gjf#5BZZ&i~Fs`CfClkKiPe3a_iNe zEsHn=Ot_V32xyaKrTcMu3CT}NZs4>2iDX{n`VNbb8X03q!8#(GKO$$8^N{Hx)_|CC zke8MzVD2RxosqGB&RsErGDSR+W7Dtous7nTJiHq|Sc#%?@BTM%_qRQbrP-9Gm~EP7 zgUc3~i8H7+;g8KXIrLb+X`Dqx0^;f2$Vmyatio|XOdS^UL?|){tZWW~y0RxZ$T^_r zD98~K`m=e)SxbE;_OL&2*)<Z<F5Vx{HLd0j^08AX1CK4uWVk&`H{UkOr{JOzTI{lY ztruN7<=+a=?a)I;L5Sox?OIZ?fTfbNcKZaBH8IO2$f$&o%0WiB%(FuFoGIi3mzBk1 zbx0VEJk|#xd)t&#@u;~{h%`z_+avQ0%QQ+GcE4^0uQz6zwg+@mQ9Z$;!~0ObH@J$j zHBVeu(`-PKn_{VDrpXEaw>hkAc#-8d)Q?B5;%9zuLl)>59*<;hJ^s7nTAGX(@KtV9 zgE2nL3j8MJNUKevJ$?nXdEqz@xg(~8NW%^W<L3rg-O$YEZL-&_U#5(UvE;>!wQlnF zb?-OEhn1sQ1y+&m_H}i8Fv6NeXHYvSQOaF%@~zXVB=!u-D(7b^QAVv0c_pXzaoJQn z`-BUkk~oQjE$lr?XO`=K6(EB`W;~Wc+l4ztbkG->X7&6LR=Tya9%aeR{t1o|x@8Z? zp?H<)ooV!Ri`^%CyKQe4ZKY~h2?=ou#&ZFSScmkRmHd<={a`pEp<NfUZpay5r;x80 z`wovzHD+rD?$1f`qBd{T49*(hu<nZ)TclYxkHB0$xb<lqndg8Pz^u|ACCGs+hs0Yb zL1jfofvN#S0o1J2U`jzUVWp{v)UCxY;Sz&*<P-s|RK{{NDjBdaE{mmg0xMoZ{a4De z4lQtu72A!MBTE<F8qzIP?F<%@)<_9fm{BWTb1zDX<gzA#b8j+wOqkg$q_}V>aZ>t_ zidm#!jfu|K7a5<@H1w=69+J>}xYWBxYfNiN4d}u#?g~x11upsEfP`@gsN2Q#UX(5s zu#h>%=Ftnyj=KIVXFo(K*`gZiON}6z-m4d0CJx5&lh_vl(kEc{ikbVxBq9IU7ZuWR z!F6J~HYU_}7-jYpO3lMHN;6p=&t{9CTNtBOCFnhNe;VtooOGB^D&iv@J>?fpdF^(K zekW#~gEEUh8`!nPD?;W&G4qy+@r>tsab(E`iqABUJ;O(yqVz%mQ^~P-ebaA-i?pj4 ztr)WdWA5b<JzidCMiSP`$$NMtFBK^e)2GpV?oF8cSR}4^d}f4)%uJQ5@39{bxo+T) zL*(QG3c}HM*Tvh=#VSpL3nhhzI2e_*<{8Jd-q>*C(CHV^ownyuO=DabbDs_B#Uu1- z-K;r*ZbIqtl}KrKw0FhwoYI@$Q`e39Sab}V57XFtdRS4aTW$AIKHu-sbyh#d{v^FY zH}ctXpFM@L&1c`GjdPH80V}eXby^^8*ZYS!NJ^2i1_jJKF11wXwSA7E?NT56y$j3V zvOU*biy3AKWKmBQtXj#uH#7gL<%DDj^@xPD1ttBhxIMY;@2>ak&nokuse!8)p);68 zub6TaBYSYEXJkZIkiB6LmSe=H6Kr1@gMep0!7xTMqWX2UG}#}-NY{PjEuUFWEfuNe zs#WB*5`qV=x$Sq{d>+b^G25uj5Sbol>GDy@5{**UxD1)X*lh|@v2gwiAvKtX>KL|S z@x;3dR*{4h%cVMPb;;*22MvGEN13ByWL(DB!68TS7(GJTMrez7LS2Q7`ai^p!EzRH zGo6Rg?%>#W<itc^5sm1FRP6OqVzPiT)!iQdfZze-9fQmP4r7ywx`WSrha%|$%1${| zu3(+wkqH{wwW3abP%9Bfx+P)k;8N5Wsa(Zs<&p4)q&y*0#|yPVadqb&s4-$1Py#H_ zFfKD*^&mfp>LYp3>xDY;iKnemPdVke7wXKt`QqF|7bnz(OLXF)D=@9MKOPZX?yH=- LCYjAR960_TVEQbR literal 0 HcmV?d00001 diff --git a/Documentation/freeports.jpg b/Documentation/freeports.jpg deleted file mode 100644 index 0991ca75db75cd1ce837d8bbe0e8437c5d282e04..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4936 zcmb7{XHe5k*T(-qAb<!a5T%5YP!j~C7eypWN$3dz2}Kd966xGjr9}|wO%aeTpn&uy zDu#{}L6DC09tA;)2)^9&%scaZd*{7&c4ueL?r+aE=hOK+_IDOIhttMt19WtBfbQu4 z{>}mCwfvkN0KmWiKm!24d^%6{cM`Y`FfxEZAO^<Mg^`hw3CzX}J{8BAGc0Tn4k#4D z0fBIyhhO02;)OvV+z4)7ettngLCy<E5u|_!TtHCZUkKglQ!o>lotc?kfD6JU@c-7| z768HwTm^<0=#T(CgpL71_qPpz0|3LRiGO|kub9Bhj37FChSR9VIe?CVfu4csG=0#S ze=nS#g8)Vd6BLY)W#&X`n%Hu|<UEA$geHn$a?i^XJh?^19K!MnE2~=<{>9S)bd3KE z{}18R3G-=G33AE<F#^mCV8;Laeu@V`5CkJsR?~zD%!#!12u;M~R&vST`8YVYEi8xk z-1<8Kurbh`I$(eR8o>C?txQLnrjS71OH$f)DGjb|#SJC@q<uj=mPP7ox}mk9>*v;) zG?yuUNpDJb>0k95DvERmFWiVVf?R2C$~L<(R8zK4{Nvo_zM<f^H+!had8vwQj}Ex5 zUT;H$L`Z?4N7oLx>$z3-8|msA((dokpEPF#xdlbOVb=^wH#pp6#to};WxcmLkX0C| zvQKRwrPqv0yY;4S%|VCY9;xq(E|;~OATQ;nB*x!%KHRW>_bD?lzmnH<j8;<jqVqAz zOc@AfmrR?Vwo5ZJrb^mJZyHf^{((nLA8}RlhPj!n)r0uwJZWu{c`5;EWv+RK6)y7K zX@kFoQ8AG=7C%{qTQr^(`!hrarZrTM#%h9G2e&WS%SFW~&wEhkbio4Ho=2ws4;soP zsw~gFP3~<Y7nNU!X5xYj{d{ANDdJP!(VNDu50Q26{L%&H_{XKY6Bx>sdSDf(c1IU{ zPRMDYKbt-?CrZ6vCGReko6JgmGttmwGfjD2XAnD(RZ||qYV5V!D6(iik>M0L^QL)Y zG9s`bBhYLk=x(HNt7}T+)HdiTtWQe<$OOf6FPTPo!G=Y}GBWIC6kJlB{NWwKn<&bn z*?R%y_z^DC$QU^JUgYnRw`T$ZmtV^oAH@Z^c~uk_gBISJ`2$|rYG0BPANbGoSgWR% zw{GZ$;#gp^HhI+nfq1sq3GUF9C*==!N5m;XwqHnl#JY;fy~$#%#S@|M8M@vS2~RVy z96QI0ODwN<tOeQ%`J|f$S$Lm^?~3ulu@$m9dCjAG5qvk_ZBTkFWs#S%`kU9O_|WeL zT8bLZ*0S{YvC8ok8)$gk;XTNtd6Oq=<-YE#BnzvlZKQS8tH8hvOo^si`%rY)+RPWV z2Ua!mfnRpWWQm3M&T|NfePI{Ft1a0s4HGNWCd+3HlLfVCkqE|`9hV-n<Ykm&MPnm9 zh{}3zUA_GVi?LbaT3+rSZ5sX8q_0o;)%w#8qaq4&x(*|K8nswV_yTL~K#8M04a_v% zq}&hJ6SC!`8#NAI?O1cS^OL0!ufovMSsbMbO^MA;ztR5G8R@mypx-$+e#}}!!>XZ% zausSR5^za@%y>c!+mJ&O4ch;FWdAY)FJa*e-OrDSI|4rfl7IOH=EuO}iVDr|(YNsj z<JX*4bW51RW(t_`HKC;TiRiv>YuJ<dzre_cgHZy`Hzv?{J<vWjmUFuCD#4>QTVcA| zGXyQ%xD2QsqlbP=Mdym*Tw1rqe?`y;y|<hS*@d?S^;RXiZhj|?poYIYz`ZHWv%fm7 zF-+fJ*MW&9Pek+HLMp`scT{&9TG7Lfm<Ep5OJ6WX8Rpm6<`McLYjsOeBtl6nr<RWQ zEhlUK;Ag{pDgJ3h_F_?1KQIqkooROmevAjdvv^gy7}1;bQ(vgy;6&#-J1grDt3+N2 zl?uLKGgxm4dZ+$y*mu%3Ig&>ji?g;J>^sBK|Ip}??oPpbzR8RAe&=MO90ECKRqBSr z6@OL1KVniM%CtmT;U5`t1yaAxM;yz0en4f=7vR1o$VEs`Oqh{Yj;AORk9y=s(3c}k zXGdSzcl_Yct=nDQPH%2bsY**HS_c2_AD&HMr&GNeBKXeJu+jtUrHt+g5&LSr>WlZ= zjyDpbAT2}{8Fd2hxr8<d`z=m+A7>DI8v5UNa!_OP&m-$oQe4H~xu5g5_ct1^w3^hL zh&%gzz~?aM=A+H|=LU@(9d-(7DVC(0qifg1r=FkSYX*lBX6kDnHtI!sV%c?q1H+}n zC4-%>5_M5WrRMR3b={w{)F$h(#Jjb+#*vUlX2kT9&Y*3aSB)zl=ZR-fyPt!lbWCg} zE#r(6s^W68r_MpLK<vw}E4ve_lZy2DdafL8x+TctA=_-DZ6>J>@2D?j%4bM?_MVo> zh-SG3hWw1?DrS}amt*pXDP*2L&&3{FJL-ZSEB07R%G#!W9W+t8mDc+@sOFE}5;q>k z-)yU4e=*1IGrH-yodL0CUL>!N1;UrK;x~`a)AooXuBuaR4=AHk9B{Y`RX$v0GM3?U zex1+t>u?b%lD5UO!x`aZ85X!!&G^N>i%N^jFKu4JQ2SzC2TpCF@0N1W%!>&C$O|D{ zgo|feTI1eh_C2c@R6n3^Hb6<&^=KVHlR{LxO}ekXY~-!{r+_FTY1A2g-03zahS@8c zI?8qp{Vw^DN+fBY9r4}gPw6O6Q^pze(LryuoM7ZALbvCnk^p}Bq<|H(v8rWWf^;!d z)%xZvy)V7|%Eth6*%IN=;VqQy0*utPud&xzo8x%Y@%(Krqq=ri318&cKJIwK!m6;A zep<|H<*c^-{f1y@0`?@VQu&NRN98D~YT>fp^knT6ku_<z7V8ssx&7QVf-}0i`&j<g z4R4cz!p3xpgxKRxgq*%V%s;<pgz|;9<vQWvIMc98Ik^d1cFP&{Z)#2NIxW^A#C8XD z<6|?fVISUCB`^Lkv{>uOn4azA{x0?G=>ufp>XXHJm`~c4@Sj(@OeH}=bFlcxcCYY_ z#u>PFyPgLfqUJ>jS@p8lGFIe>-83n#`!?-L!FxD<2oI$z+!xvY-J(f6U!Z+3S}b$L zaK06OwW9e3b5)FY(N)Ig%>D8={FqBQ>Pfo4U;S$B=X17(k)5CTG(KGh#qD{~C|Bm2 z`;CS)B$oC!h#OV8xQ0PRb0}yaEXm|UNno?~kJ0;ofeq43a>0PKUUh4_0tU}g)Mi+) z^SfoNZ$?&$#+YB)6dq~*B;uJXa_)ZAV#Cj*5IB}Bs-?QF3B(9m{i06_<epyA{bIgx z`8!NI6j78u^&oCn#$90CO~W(TIk}d-@^R5YpjcOA(*1uT{yAI2p-`LMMih9~6WsGI z7PS>NaT2w;QKERGCe7YzLFI^N5u?N<XEcpN3-oXunyNH28ob>uL%?=mMUOtHaLkZ6 z51{O2G=B6+j@bnNQ;(I;jL?(^?QJI`Wj5q`62T3@u9Qm=y)G2*Veuwxg4254_x=R~ zo`?6lx7PLl$&$B;E0Uj|ID=JX01|><_m#)JuW-rUd{O)LLN33HPQZSr1|n6iyj&D* zJOjRJ6{iV%6LY(4-fKF;EyOrM?sF1wVjE>+I;9gJe~!bYxX-DrPAKo^pl<9g2w;nC zSgKEcr)oD*$09_JZQ(aCY*44tWb%+=ORmA@#G!P-jSI3ArBcXrXgBIgJl?1r6&`JV zE6IJu*os<L_KbbsanJ>e(^y6}_baN*h{}DrXc`d`a#{{(jy>pEUo$J%Y%f0bq4CUr zJ71uYW~v?Uyfw2PHm@zpBSsIsKT4}ShL8-ihgL9^0^Mo|ga-P=J(itjcVV0U-uaV3 zWuA%e(_(Y?UFHj=FI}0659684q)*6-<N;=5cFK7253;DAGPP$(<$IqznOPtr3dqny z_Z;X$jB`B6DNCl*t}si>@s6#lZM}c)*Ulx9uCc&)XRWTHj)UdpRgY=qhfmMWlsMdB zC`(>zR6z+G+_W|mrp(9GO%0_CB>=Tw$ZJO&D*CUmwey*OfwKw<?+n~V&JvNeO2Sz? z_hRVzd@Qy~umZ4i?l}RA><*c)C4HTS)#8n|wfY71lZs|bJh^>hk3P5dQlK@0LOAB7 zu0=rv>1CzIxbosRJ?X|wW3FuKJsO85$W&8{%k1J+;UKrS&Ro;!)n!ozF3N-yD;vM| zbBT+ESCUdC4j+A7SqZi2(_p<)CnX(wL*~vD#h%t>;xi&n=OVGlj5TK1@hXx=4kWt_ z4J~U{UG`6pO<YhK@K1f6Yo4cr4`xzJBuMedZh$g;9#2bp$0Ao3-n^B=+Vby&-1neH zTr5HH0BnF<qE&UNmEyjoeygIYW*Jn1@hsNlLqfbxWP`a>s*-S$%)QV2j4CJUq^}CK z)M3tSO&xz8r7>aEt)^?F4z>IEmcKxVd0lTt@baOT&%mQZ0jO5vOH&N>+DGq{LwifY zz#okO=ZVxfKjE3w!c|GAqd^mC?9jg7^dFKOw>VIG`;CM9%^y~YkM~l>$yB_rklFKq zSVh?IgaYw7*&sy)XV}KNUG|aJMY5#E!`7L}ZHF}MUhY-K|0Qdf3uDu90s*sNjr1ib zlAF1vw=c=+UD2p>;nQmDx-gl7rB&B9+?N~hE#G9bz2<rR!Arj_^y}+8@nxfLugqZ$ zQx^I|j@taf*FAbE{z)11Dtq8>e%7O(?9IS=ukpy1osvH&(Z!raf4|0sQIH@;^1xkg zEq_^B>-{*r@P)Bfxf%N}2s!XURM286eAi^^MPyg%@l7?~oCn6C1=2=F6$U2)mbOpv zPkkvs0gRINl>+#Ci^Dt7-(%9G0|H>}zC~qjYVmE+JAvnWK2nqSx>T;(f&1SYnR63{ zlG;b<c-~+V-MtalP3E{{VN6Tmjt{sl23;G5^#5_|S-_VIQ=aaXT`KI)K%!zMA?buT z2^9=1qJXm-Exw6jsJfckWT9~U-Di1JZW?V>ppaHr@iNVL!jp?WL`9S;PotT$N><c9 zE-PW|E>t3dvS@li`TblYH^ZVOO1r!rZKT}836sC_Y6sZQKR~$gNXASIMH0P_aoYYU zba#(Y3AfO!KgYQv&E~H9d@Z%fgUM}7|EgKAXa4kGK;JAi?;U3_0-u2sBkEC<7%{uE zJCMB~UTx3MnULXtNRzXKcGcJZF2=-&qVTwPaiK0o6y`rA>Z*RuKWcjK)x^QjeMK}* zM^$OU#gZtKl)3BJo}F4?PAFIS7Yv`5<Hi3hfZP~)4FPUSyc_L~zyMqjna%bhhqajt z3e!DoQ3MCQfa|4QPIdFD5of!NL7vw%$^ul5TkC!;C*gDJLIXp%Hbr-(IhLKWwd|he zGJI0h&3i4$^^n%#qjdA$kw5-(qqbEg$L2@hkuCDZ;O`>CTZl@2(N95*#{3v)_Od+= z@2*bB_E<%Q*KC-lXG;5y-mM*I)KIcCXc$)6@WGNr8cZ>oEj>{A@911D+_D5Lie<Qt z4#Z0~`LM$B^le(@|Cz7+woPBLA`_*7xI28XRfIF7E=-0H9M`W2uc6`9;a%Ac&UvrZ zqf|EMGK3t^eFoZ1n267Kxux=lPQh%6pot<IWc?gjT28D;z=Fj7Cy?{gXY(eT3fkFM zJW2;7lTRpbGNJF9l|AtA^7`cm3*gh18CG7NP*><1o$C7LId7mD-}ph>laMK-S)~8Q zuRT34nJP;Ox+>GCwJXDP8u<A1V{p3SghVNEZKddi%oP`-V@(bmMhnDcqGd{n@8(fd z9saFsYU8s|@9Q>5OW=gaT3oDvC!{!fMZgY>O-tG4tP)<N>L~6oDB3vOEP46KNL<da z^E&6H-(zNX?-glS4ET~szmg576W#QWwa{FR@mQY~W#++2A1td+fBINV1iNE7uwsN) z)GEosvbPlN>!*y9FxvRI8wC=(jGAa6pUXE5@HJV5yoO7+>#pD7<Fsq;W-+?hki;5a zqS~!)Aa3xPevo<?TP-VdD?ilZFg*PEVvRC=5S7`m*I#7eN58C1x#-JGLK!+@Mf^B^ zFWMDEj=@+jeB%;1{^zO{ogmN1-qXUF+)Ml0=TlJk3+?D^QQatwUb-GbH3&{Q7_)So zB}2cO5trG})1XbfZn!C3vyQ_|xO-Z#k~}%CcSXB3Zhd_6lr3+ZH`C6BXiLpV0xPPm zs_*?URl#;03FHulpD@1kX=1}}5fh?Z$YV#zeMOMiSJ-vt&QvVrmye{_mQO2QE^!&` z2gzlESj4=&<$L!26|G|CoigWQ3Yn+C2Nq7!Z|Ht6?^V|um6j=aSK(xD<iN%38+{yC zjxNj3rJiDzRf(22c}*9a-{SioJvV?Vz_o=3q<%Ttyr0mSkjQ%(m6I1O5q8>NMG5^M J8;!r?{{yW=^~wMM From 7c2c705595f23e6d4bd4971c04ea13314f01b6e4 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 5 Feb 2008 18:13:13 +0000 Subject: [PATCH 0187/1518] Various fixes for buffered R/W I/O and seeking git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@630 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 0a13f31185..998f55ad4f 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: February 1, 2008</p> + <p>Last Updated: February 5, 2008</p> </td> </tr> </table> @@ -977,6 +977,13 @@ nuttx-0.3.8 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Integrated pascal test case on the simulation platform. Needs pascal-0.1.1. * Integrated pascal test case on the z16f platform. Needs pascal-0.1.2 (not yet released). + * C Buffered I/O fixes: + (1) Fix fflush() return value, + (2) Add correct fflush behavior when the FILE argument is null. + (3) Add logic to a correctly handle read/write access on the same FILE + (4) fseek() flushes read/write data when before moving the file pointer + (5) When read data is flushed, reposition the file pointer to account for + buffered, but unreand data pascal-0.1.2 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From f12d0f98a1023ad2247400af0a3fbda74a8132bc Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 6 Feb 2008 15:44:29 +0000 Subject: [PATCH 0188/1518] Pascal P-Code binaries are now big-endian git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@639 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 998f55ad4f..a7e6caae9e 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -984,6 +984,7 @@ nuttx-0.3.8 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; (4) fseek() flushes read/write data when before moving the file pointer (5) When read data is flushed, reposition the file pointer to account for buffered, but unreand data + * Pascal P-Code files are now standardized to big-endian for portability pascal-0.1.2 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 4cef62dc47c95cf9672dfdbf61d42ea7e0af8048 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 6 Feb 2008 19:13:50 +0000 Subject: [PATCH 0189/1518] Fix bug 1887170 git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@642 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index a7e6caae9e..623ac7651c 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -977,14 +977,16 @@ nuttx-0.3.8 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Integrated pascal test case on the simulation platform. Needs pascal-0.1.1. * Integrated pascal test case on the z16f platform. Needs pascal-0.1.2 (not yet released). - * C Buffered I/O fixes: - (1) Fix fflush() return value, - (2) Add correct fflush behavior when the FILE argument is null. - (3) Add logic to a correctly handle read/write access on the same FILE - (4) fseek() flushes read/write data when before moving the file pointer - (5) When read data is flushed, reposition the file pointer to account for - buffered, but unreand data + * C buffered I/O fixes: + - Fix fflush() return value, + - Add correct fflush behavior when the FILE argument is null. + - Add logic to a correctly handle read/write access on the same FILE + - fseek() flushes read/write data when before moving the file pointer + - When read data is flushed, reposition the file pointer to account for + buffered, but unreand data * Pascal P-Code files are now standardized to big-endian for portability + * Fix a build problem with z80 and SDCC 2.7.0 (format of a map file changed). + (see bug 1887170) pascal-0.1.2 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From a03c3a118dd35a0560a46027e2f19f15ce6847a4 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 7 Feb 2008 14:41:11 +0000 Subject: [PATCH 0190/1518] update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@659 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 12 ++-- Documentation/NuttxPortingGuide.html | 87 +++++++++++++++++++--------- 2 files changed, 67 insertions(+), 32 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 623ac7651c..59c0189838 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: February 5, 2008</p> + <p>Last Updated: February 7, 2008</p> </td> </tr> </table> @@ -974,9 +974,10 @@ nuttx-0.3.8 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Added /dev/zero * 'errno' is now defined to be *get_errno_ptr() with no name conflicts * Added lseek() and fseek() - * Integrated pascal test case on the simulation platform. Needs pascal-0.1.1. - * Integrated pascal test case on the z16f platform. Needs pascal-0.1.2 (not - yet released). + * Integrated Pascal interpreter test case on the simulation platform. Needs + pascal-0.1.1. + * Add Pascal test case on the z16f platform. Needs pascal-0.1.2 (does not + yet work due to some tool issues). * C buffered I/O fixes: - Fix fflush() return value, - Add correct fflush behavior when the FILE argument is null. @@ -985,8 +986,9 @@ nuttx-0.3.8 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - When read data is flushed, reposition the file pointer to account for buffered, but unreand data * Pascal P-Code files are now standardized to big-endian for portability - * Fix a build problem with z80 and SDCC 2.7.0 (format of a map file changed). + * Fix a build problem with z80 and SDCC 2.7.0 (format of a map file changed) (see bug 1887170) + * Pascal P-Code runtime now compiles with the SDCC toolchain. pascal-0.1.2 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 9ae720862c..3f6a84e391 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -16,7 +16,7 @@ </b></big> <p><small>by</small></p> <p>Gregory Nutt</p> - <p><small>Last Update: January 10, 2008</small></p> + <p><small>Last Update: February 7, 2008</small></p> </center> <center><h1>Table of Contents</h1></center> @@ -36,7 +36,7 @@ <li><a href="#summaryofconfigfiles">2.3.2 Summary of Files</a></li> <ul> <li><a href="#boardlogic">2.3.2.1 Board Specific Logic</a></li> - <li><a href="#boardconfigfiles">2.3.2.2 Board Specific Configuration Files</a></li> + <li><a href="#boardconfigsubdirs">2.3.2.2 Board Specific Configuration Sub-Directories</a></li> </ul> <li><a href="#supportedboards">2.3.3 Supported Boards</a></li> </ul> @@ -90,13 +90,13 @@ </ul> <li><a href="#NxFileSystem">5.0 NuttX File System</a></li> <li><a href="#apndxconfigs">Appendix A: NuttX Configuration Settings</a></li> - +<li><a href="#apndxtrademarks">Appendix B: Trademarks</a></li> <hr> <h1>1.0 <a name="Introduction">Introduction</a></h1> <p><b>Overview</b> This document provides and overview of the NuttX build and configuration - logic and provides hints for the incorporation of new processor/board archectures + logic and provides hints for the incorporation of new processor/board architectures into the build. </p> <p> @@ -132,7 +132,7 @@ | | | `-- <i>(chip-specific source files)</i> | | |--<i>&lt;other-chips&gt;</i>/ | | `-- <i>(architecture-specific source files)</i> -| `-- <i>&lt;other-architectures&gt;</i>/ +| `-- <i>&lt;other-architecture directories&gt;</i>/ |-- <a href="#DirStructConfigs">configs</a>/ | |-- <i>&lt;board-name&gt;</i>/ | | |-- include/ @@ -140,8 +140,10 @@ | | |-- src/ | | | |-- Makefile | | | `-- <i>(board-specific source files)</i> -| | `-- <i>(board-specific configuration files)</i> -| `-- <i>&lt;other-boards&gt;</i>/ +| | |---<i>&lt;config1-dir&gt;</i>/ +| | | `-- <i>(board-specific/configuration-specific files)</i> +| | `---<i>(other board-specific configuration sub-directories)</i>/ +| `-- <i>&lt;(other board directories)&gt;</i>/ |-- <a href="#DirStructDrivers">drivers</a>/ | |-- Makefile | `-- <i>(common driver source files)</i> @@ -226,14 +228,14 @@ </p> </li> <li> - <i>Board specific files</i>. + <i>Board specific configurations</i>. In order to be usable, the chip must be contained in a board environment. The board configuration defines additional properties of the board including such things as peripheral LEDs, external peripherals (such as network, USB, etc.). <p> These board-specific configuration files can be found in the <code>configs/</code><i>&lt;board-name&gt;</i><code>/</code> sub-directories and are discussed - in a a paragraph <a href="#configsdirectorystructure">below</a>. + in a paragraph <a href="#configsdirectorystructure">below</a>. </p> </li> </ul> @@ -251,8 +253,8 @@ This directory contains several sub-directories, each containing architecture-specific logic. The task of porting NuttX to a new processor consists of - add a new sudirectory under <code>arch/</code> containing logic specific - to the new architecuture. + add a new subdirectory under <code>arch/</code> containing logic specific + to the new architecture. The complete board port in is defined by the architecture-specific code in this directory (plus the board-specific configurations in the <code>config/</code> subdirectory). @@ -468,15 +470,24 @@ provide a subdirectory &lt;board-name&gt; under <code>configs/</code> with the following characteristics: </p> <ul><pre> + |-- Make.defs + |-- defconfig + `-- setenv.sh <i>&lt;board-name&gt;</i> |-- include/ | `-- <i>(board-specific header files)</i> |-- src/ | |-- Makefile | `-- <i>(board-specific source files)</i> - |-- Make.defs - |-- defconfig - `-- setenv.sh + |-- <i>&lt;config1-dir&gt;</i> + | |-- Make.defs + | |-- defconfig + | `-- setenv.sh + |-- <i>&lt;config2-dir&gt;</i> + | |-- Make.defs + | |-- defconfig + | `-- setenv.sh + `-- <i>(other board-specific configuration sub-directories)</i>/ </pre></ul> <h3><a name="summaryofconfigfiles">2.3.2 Summary of Files</a></h3> @@ -502,10 +513,15 @@ It must support the following targets: <code>libext$(LIBEXT)</code>, <code>clean</code>, and <code>distclean</code>. </li> </ul> -<h4><a name="boardconfigfiles">2.3.2.2 Board Specific Configuration Files</a></h4> +<h4><a name="boardconfigsubdirs">2.3.2.2 Board Specific Configuration Sub-Directories</a></h4> <p> The <code>configs/</code><i>&lt;board-name&gt;</i><code>/</code> sub-directory holds all of the files that are necessary to configure Nuttx for the particular board. + A board may have various different configurations using the common source files. + Each board configuration is described by three files: <code>Make.defs</code>, <code>defconfig</code>, and <code>setenv.sh</code>. + Typically, each set of configuration files is retained in a separate configuration sub-directory + (<i>&lt;config1-dir&gt;</i>, <i>&lt;config2-dir&gt;</i>, .. in the above diagram). + The procedure for configuring NuttX is described <a href="#configuringnuttx">below</a>, This paragraph will describe the contents of these configuration files. </p> @@ -530,7 +546,7 @@ </li> <li> <code>defconfig</code>: This is a configuration file similar to the Linux - configuration file. In contains varialble/value pairs like: + configuration file. In contains variable/value pairs like: <ul> <li><code>CONFIG_VARIABLE</code>=value</li> </ul> @@ -697,19 +713,20 @@ <p> <b>Manual Configuration</b>. Configuring NuttX requires only copying the - <a href="#boardconfigfiles">board-specific configuration files</a> into the top level directory which appears in the make files as the make variable, <code>${TOPDIR}</code>. + <a href="#boardconfigsubdirs">board-specific configuration files</a> into the top level directory which appears in the make files as the make variable, <code>${TOPDIR}</code>. This could be done manually as follows: </p> <ul> - <li>Copy <code>configs/</code><i>&lt;board-name&gt;</i></code>/Make.def</code> to <code>${TOPDIR}/Make.defs</code>,<li> - <li>Copy <code>configs/</code><i>&lt;board-name&gt;</i></code>/setenv.sh</code> to <code>${TOPDIR}/setenv.sh</code>, and</li> - <li>Copy <code>configs/</code><i>&lt;board-name&gt;</i></code>/defconfig</code> to <code>${TOPDIR}/.config</code></li> + <li>Copy <code>configs/</code><i>&lt;board-name&gt;</i><code>/[</code><i>&lt;config-dir&gt;</i><code>/]Make.def</code> to <code>${TOPDIR}/Make.defs</code>,<li> + <li>Copy <code>configs/</code><i>&lt;board-name&gt;</i><code>/[</code><i>&lt;config-dir&gt;</i><code>/]setenv.sh</code> to <code>${TOPDIR}/setenv.sh</code>, and</li> + <li>Copy <code>configs/</code><i>&lt;board-name&gt;</i><code>/[</code><i>&lt;config-dir&gt;</i><code>/]defconfig</code> to <code>${TOPDIR}/.config</code></li> </ul> <p> Where <i>&lt;board-name&gt;</i> is the name of one of the sub-directories of the NuttX <a href="#DirStructConfigs"><code>configs/</code></a> directory. This sub-directory name corresponds to one of the supported boards identified <a href="#supportedboards">above</a>. + And &lt;config-dir&gt; is the optional, specific configuration directory for the board. </p> <p> <b>Automated Configuration</b>. @@ -718,7 +735,7 @@ </p> <ul><pre> cd tools - ./configure.sh <i>&lt;board-name&gt;</i> + ./configure.sh <i>&lt;board-name&gt;</i></i><code>[/</code><i>&lt;config-dir&gt;</i><code>]</code> </pre></ul> <p> @@ -747,14 +764,14 @@ make That directory also holds: </p> <ul> - <li>The makefile fragment <a href="#boardconfigfiles"><code>.config</code></a> that describes the current configuration.</li> - <li>The makefile fragment <a href="#boardconfigfiles"><code>Make.defs</code></a> that provides customized build targers, and</li> - <li>The shell script <a href="#boardconfigfiles"><code>setenv.sh</code></a> that sets up the configuration environment for the build.</li> + <li>The makefile fragment <a href="#boardconfigsubdirs"><code>.config</code></a> that describes the current configuration.</li> + <li>The makefile fragment <a href="#boardconfigsubdirs"><code>Make.defs</code></a> that provides customized build targers, and</li> + <li>The shell script <a href="#boardconfigsubdirs"><code>setenv.sh</code></a> that sets up the configuration environment for the build.</li> </ul> <p> -The <a href="#boardconfigfiles"><code>setenv.sh</code></a> contains Linux environmental settings that are needed for the build. -The specific environmental definitions are unique for each board but should include, as a minimum, updates to the <code>PATH</code> variable to include the full path to the architecture-specific toolchain identified in <a href="#boardconfigfiles"><code>Make.defs</code></a>. -The <a href="#boardconfigfiles"><code>setenv.sh</code></a> only needs to be source'ed at the beginning of a session. +The <a href="#boardconfigsubdirs"><code>setenv.sh</code></a> contains Linux/Cygwin environmental settings that are needed for the build. +The specific environmental definitions are unique for each board but should include, as a minimum, updates to the <code>PATH</code> variable to include the full path to the architecture-specific toolchain identified in <a href="#boardconfigsubdirs"><code>Make.defs</code></a>. +The <a href="#boardconfigsubdirs"><code>setenv.sh</code></a> only needs to be source'ed at the beginning of a session. The system can be re-made subsequently by just typing <code>make</code>. </p> <p> @@ -1548,6 +1565,22 @@ The system can be re-made subsequently by just typing <code>make</code>. </li> </ul> +<h1><a name="apndxtrademarks">Appendix B: Trademarks</a></h1> + + <li>ARM, ARM7 ARM7TDMI, ARM9, ARM926EJS are trademarks of Advanced RISC Machines, Limited.</li> + <li>Cygwin is a trademark of Red Hat, Incorporated.</li> + <li>Linux is a registered trademark of Linus Torvalds.</li> + <li>LPC2148 is a trademark of NXP Semiconductors.</li> + <li>TI is a tradename of Texas Instruments Incorporated.</li> + <li>UNIX is a registered trademark of The Open Group.</li> + <li>VxWorks is a registered trademark of Wind River Systems, Incorporated.</li> + <li>ZDS, ZNEO, Z16F, Z80, and Zilog are a registered trademark of Zilog, Inc.</li> + +<p> + NOTE: NuttX is <i>not</i> licensed to use the POSIX trademark. NuttX uses the POSIX + standard as a development guideline only. +</p> + </body> </html> From b226a9eab38ceae4a0cd36699b61aaeecc825823 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 8 Feb 2008 00:56:16 +0000 Subject: [PATCH 0191/1518] Add a generic CAN driver git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@660 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 59c0189838..ef37668cc3 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -989,6 +989,7 @@ nuttx-0.3.8 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Fix a build problem with z80 and SDCC 2.7.0 (format of a map file changed) (see bug 1887170) * Pascal P-Code runtime now compiles with the SDCC toolchain. + * Added a generic CAN driver. This driver is untested as of this writing. pascal-0.1.2 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 5064e992b307224414cf2f9261a52f616d1f12a0 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 8 Feb 2008 17:25:29 +0000 Subject: [PATCH 0192/1518] Fix DM320 serial configuration problem git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@661 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index ef37668cc3..4019ce28a9 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -990,6 +990,7 @@ nuttx-0.3.8 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; (see bug 1887170) * Pascal P-Code runtime now compiles with the SDCC toolchain. * Added a generic CAN driver. This driver is untested as of this writing. + * Corrected DM320 UART configuration problem pascal-0.1.2 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 8ebb31f53f553a62fd51f09d17a8db26a18ae9af Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 10 Feb 2008 14:08:11 +0000 Subject: [PATCH 0193/1518] Prep for 0.3.8 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@663 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 86 ++++++++++++++-------------------------- 1 file changed, 30 insertions(+), 56 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 4019ce28a9..fc1ad062c5 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: February 7, 2008</p> + <p>Last Updated: February 10, 2008</p> </td> </tr> </table> @@ -456,7 +456,7 @@ </table> <p> - The 19th release of NuttX (nuttx-0.3.7) is available for download + The 20th release of NuttX (nuttx-0.3.8) is available for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. The change log associated with the release is available <a href="#currentrelease">here</a>. @@ -464,26 +464,9 @@ These unreleased changes are listed <a href="#pendingchanges">here</a>. </p> <p> - This release includes the preliminary port of NuttX to the ZiLOG z16f 16-bit microcontroller. - This port was verified using the ZiLOG z16f2800100zcog Development and the ZiLOG ZDS-II toolchain. - See http://www.zilog.com for further information. -</p> -<p> - I emphasize that this is a preliminary release of the z16f port and is only alpha or, perhaps, - pre-alpha quality as of this writing. - There are a list of known issues in the TODO file in the <a href="TODO.txt">here</a> - The overall quality of NuttX (excluding the z16f port) continues to improve beyond the late beta level. -</p> -<p> - The z16f port required numerous changes to NuttX to handle: -</p> -<ul> - <li>NEAR and FAR addressing, and</li> - <li>Use of a Windows native toolchain in a Cygwin build environment.</li> -</ul> -<p> - In addition to the z16f port, at least one very critical bug was found and corrected in NuttX: - The thread-specific errno value of one task was being randomly trashed when a different thread exitted. + nuttx-0.3.8 is a minor bugfix release. It corrects a few minor problems, adds a few minor features, and + continues the integration of the ZiLOG Z18F and of the Pascal P-Code add-on. + This release is synchronized with the release of Pascal-0.1.2. </p> <p> This release were verified on the ZiLOG z16f2800100zcog, Neuros OSD (ARM9), and the simulation platforms. @@ -936,39 +919,7 @@ Other memory: </table> <pre><ul> -nuttx-0.3.7 2008-01-31 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - - * Added support for the Zilog Z16F using the Zilog Z16F2800100ZCOG - Development Kit. - * Add support toolchains that do not support making of dependencies - * Fix Cygwin build with spaces in directory names - * Name make system changes to deal with non-GNU toolchains (i.e., Zilog) - * Add support for Windows native toolchains that cannot follow Cygwin soft links - * Modified serial driver interface to handle hardware with non-16550A-like - interrupt architecture (like the Z16F) - * Added a &quot;dumb&quot; serial console driver to simplify OS bringup - * Corrected a bug that caused the errno value of one task to be clobbered - when a different task exits. Effects all architectures. - -pascal-0.1.1 2008-02-01 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - - * Correct some errors in the NuttX installation logic - -buildroot-0.1.0 2007-03-09 &lt;spudmonkey@racsa.co.cr&gt - - * Support for arm-elf toolchain -</pre></ul> - -<table width ="100%"> - <tr bgcolor="#e4e4e4"> - <td> - <a name="pendingchanges">Unreleased Changes</a> - </td> - </tr> -</table> - -<pre><ul> -nuttx-0.3.8 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; +0.3.8 2008-02-10 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Added a test case to verify the Pascal P-Code interpreter * Added /dev/zero @@ -992,10 +943,33 @@ nuttx-0.3.8 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Added a generic CAN driver. This driver is untested as of this writing. * Corrected DM320 UART configuration problem -pascal-0.1.2 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; +pascal-0.1.2 2008-02-10 Gregory Nutt <spudmonkey@racsa.co.cr> * Add logic to build and link with the ZDS-II toolchain use with the z16f. + * Make sure that POFF header structures are aligned + * Standardized POFF file format to big-endian + * Break up large switch statements to lower complexity + and eliminate a compiler bug + * Changes so that runtime compiles with SDCC. + +buildroot-0.1.0 2007-03-09 &lt;spudmonkey@racsa.co.cr&gt + + * Support for arm-elf toolchain +</pre></ul> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="pendingchanges">Unreleased Changes</a> + </td> + </tr> +</table> + +<pre><ul> +nuttx-0.3.9 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + +pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; buildroot-0.1.1 2007-xx-xx &lt;spudmonkey@racsa.co.cr&gt From 3f1002599dc2f841ea7bfc706e55b9049d22f309 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 11 Feb 2008 13:57:08 +0000 Subject: [PATCH 0194/1518] Cosmetic git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@665 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 3f6a84e391..0e5963b2a1 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -6,14 +6,14 @@ </head> <body background="backgd.gif"> -<hr> +<hr><hr> <center><h1><i>Under Construction</i></h1></center> -<hr> +<hr><hr> <center> - <big><b> - <p>NuttX Operating System</p> - <p>Porting Guide</p> - </b></big> + <h1><big><b> + <p>NuttX Operating System</br> + Porting Guide</p> + </b></big></h1> <p><small>by</small></p> <p>Gregory Nutt</p> <p><small>Last Update: February 7, 2008</small></p> From ed04797e576d8aac6d305a93ef8b1a1a74c25f92 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 11 Feb 2008 17:11:20 +0000 Subject: [PATCH 0195/1518] Adding Z8Encore\! git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@666 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 28 +++++++++++++++++-- Documentation/NuttxPortingGuide.html | 40 +++++++++++++++++++++++----- 2 files changed, 60 insertions(+), 8 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index fc1ad062c5..c7a455600d 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: February 10, 2008</p> + <p>Last Updated: February 11, 2008</p> </td> </tr> </table> @@ -600,7 +600,28 @@ </p> <p> <b>STATUS:</b> - The preliminary release of support for the z16f was made available in NuttX version 0.3.7. + The initial release of support for the z16f was made available in NuttX version 0.3.7. + </p> + </td> +</tr> +<tr> + <td valign="top"><img src="favicon.ico"></td> + <td bgcolor="#5eaee1"> + <b>Zilog Z8Encore!</b> + </td> +</tr> +<tr> + <td><br></td> + <td> + <p> + <b>Zilog Z8Encore! Microncontroller</b>. + This port use the Zilog z8encore000zco development kit, Z8F642 part, and the Zilog + ZDS-II Windows command line tools. + The development environment is Cygwin under WinXP. + </p> + <p> + <b>STATUS:</b> + The Z8Encore! port is a work in progress and will be released in a future NuttX version. </p> </td> </tr> @@ -969,6 +990,9 @@ buildroot-0.1.0 2007-03-09 &lt;spudmonkey@racsa.co.cr&gt <pre><ul> nuttx-0.3.9 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + * Began adding support for the ZiLOG Z8Encore! microcontroller for the Z8Encore000ZCO + development board and the Z8F642 part. + pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; buildroot-0.1.1 2007-xx-xx &lt;spudmonkey@racsa.co.cr&gt diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 0e5963b2a1..9a668d86c5 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -16,7 +16,7 @@ </b></big></h1> <p><small>by</small></p> <p>Gregory Nutt</p> - <p><small>Last Update: February 7, 2008</small></p> + <p><small>Last Update: February 11, 2008</small></p> </center> <center><h1>Table of Contents</h1></center> @@ -384,7 +384,7 @@ This directory holds common ARM architectures. At present, this includes the following subdirectories: <ul> - <li><code>arch/arm/include</code> and <code>arch/arm/common</code>: + <li><code>arch/arm/include</code> and <code>arch/arm/src/common</code>: Common ARM logic. </li> @@ -426,13 +426,34 @@ <li><code>arch/z16f</code>: Zilog z16f Microcontroller. This port uses the Zilog z16f2800100zcog Development Kit. - This is a work in progress. + This port was released with nuttx-0.3.7. </li> <li><code>arch/z80</code>: - Zilog z80 Microcontroller. - This port has been verified using only a z80 instruction simulator. - </li> + This directory holds 8-bit ZiLOG architectures. At present, this includes the + Zilog z80 and z8Encore! Microcontrollers. + <ul> + <li><code>arch/z80/include</code> and <code>arch/z80/src/common</code>: + Common logic. + </li> + + <li><code>arch/z80/include/z80</code> and <code>arch/z80/src/z80</code>: + The Z80 port was released in nuttx-0.3.6 has been verified using only a + z80 instruction simulator. + The set simulator can be found in the NuttX CVS at + http://nuttx.cvs.sourceforge.net/nuttx/misc/sims/z80sim. + This port also the SDCC toolchain (http://sdcc.sourceforge.net/") + (verified with version 2.6.0 and 2.7.0). + </li> + + <li><code>arch/z80/include/z8</code> and <code>arch/z80/src/z8</code>: + The Z8Encore! port use the Zilog z8encore000zco + development kit, Z8F642 part, and the Zilog ZDS-II Windows command line + tools. The development environment is Cygwin under WinXP. + This port is in progress and will be released in a future NuttX release. + </li> + </ul> + </li> </ul> <p> @@ -621,6 +642,13 @@ This port use the Zilog z16f2800100zcog development kit and the Zilog ZDS-II Windows command line tools. The development environment is Cygwin under WinXP. + </li> + + <li><code>configs/z8encore000zco</code> + z8Encore! Microncontroller. This port use the Zilog z8encore000zco + development kit, Z8F642 part, and the Zilog ZDS-II Windows command line + tools. The development environment is Cygwin under WinXP. + </li> <li><code>configs/z80sim</code>: z80 Microcontroller. This port uses a Z80 instruction set simulator. From 47fb18fdb8717321b7f6604948e31abe64b5d138 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 12 Feb 2008 14:52:34 +0000 Subject: [PATCH 0196/1518] More z80 repairs due to z8 port git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@672 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index c7a455600d..f18c1bf7e2 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -992,6 +992,7 @@ nuttx-0.3.9 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Began adding support for the ZiLOG Z8Encore! microcontroller for the Z8Encore000ZCO development board and the Z8F642 part. + * Fix broken 'clean' target on z80sim configurations pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 7e13851fd006b03a88d244638b78e67f74108e2a Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 12 Feb 2008 20:35:38 +0000 Subject: [PATCH 0197/1518] cosmetic git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@673 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index f18c1bf7e2..f1c8b3c592 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -956,7 +956,7 @@ Other memory: - Add logic to a correctly handle read/write access on the same FILE - fseek() flushes read/write data when before moving the file pointer - When read data is flushed, reposition the file pointer to account for - buffered, but unreand data + buffered, but unread data * Pascal P-Code files are now standardized to big-endian for portability * Fix a build problem with z80 and SDCC 2.7.0 (format of a map file changed) (see bug 1887170) From c24b1acd0707a2bb9321596f538ad6805753414c Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 14 Feb 2008 17:24:14 +0000 Subject: [PATCH 0198/1518] Move all z80-dependencies into arch/z80/src/z80 git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@683 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index f1c8b3c592..a3762e77e1 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: February 11, 2008</p> + <p>Last Updated: February 14, 2008</p> </td> </tr> </table> @@ -993,6 +993,8 @@ nuttx-0.3.9 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Began adding support for the ZiLOG Z8Encore! microcontroller for the Z8Encore000ZCO development board and the Z8F642 part. * Fix broken 'clean' target on z80sim configurations + * Re-structure arch/z80 to provide support for all ZiLOG 8-bit microcontrollers (ez8 + in particular for now). pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 0265b92e541c99f1349cfb8413a2be0245ba7166 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 15 Feb 2008 20:14:05 +0000 Subject: [PATCH 0199/1518] z8encore000zco has z8f6403 git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@688 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 ++-- Documentation/NuttxPortingGuide.html | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index a3762e77e1..90d8dd1a0c 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -615,7 +615,7 @@ <td> <p> <b>Zilog Z8Encore! Microncontroller</b>. - This port use the Zilog z8encore000zco development kit, Z8F642 part, and the Zilog + This port use the Zilog z8encore000zco development kit, Z8F6403 part, and the Zilog ZDS-II Windows command line tools. The development environment is Cygwin under WinXP. </p> @@ -991,7 +991,7 @@ buildroot-0.1.0 2007-03-09 &lt;spudmonkey@racsa.co.cr&gt nuttx-0.3.9 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Began adding support for the ZiLOG Z8Encore! microcontroller for the Z8Encore000ZCO - development board and the Z8F642 part. + development board and the Z8F6403 part. * Fix broken 'clean' target on z80sim configurations * Re-structure arch/z80 to provide support for all ZiLOG 8-bit microcontrollers (ez8 in particular for now). diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 9a668d86c5..fcf74416c5 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -448,7 +448,7 @@ <li><code>arch/z80/include/z8</code> and <code>arch/z80/src/z8</code>: The Z8Encore! port use the Zilog z8encore000zco - development kit, Z8F642 part, and the Zilog ZDS-II Windows command line + development kit, Z8F6403 part, and the Zilog ZDS-II Windows command line tools. The development environment is Cygwin under WinXP. This port is in progress and will be released in a future NuttX release. </li> @@ -646,7 +646,7 @@ <li><code>configs/z8encore000zco</code> z8Encore! Microncontroller. This port use the Zilog z8encore000zco - development kit, Z8F642 part, and the Zilog ZDS-II Windows command line + development kit, Z8F6403 part, and the Zilog ZDS-II Windows command line tools. The development environment is Cygwin under WinXP. </li> From ab1ebb2f3e63b90178ed68d0eabd376e8e6a2478 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 15 Feb 2008 22:14:00 +0000 Subject: [PATCH 0200/1518] Add support for the TRS-80 Model 3 git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@690 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 ++ Documentation/NuttxPortingGuide.html | 22 ++++++++++++++-------- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 90d8dd1a0c..a2a4803a38 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -995,6 +995,8 @@ nuttx-0.3.9 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Fix broken 'clean' target on z80sim configurations * Re-structure arch/z80 to provide support for all ZiLOG 8-bit microcontrollers (ez8 in particular for now). + * Add support for TRS80-Model 3 based on the xtrs emulation (http://www.tim-mann.org/xtrs.html) + Per patch from Jacques Pelletier. pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index fcf74416c5..c84fa4fe10 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -16,7 +16,7 @@ </b></big></h1> <p><small>by</small></p> <p>Gregory Nutt</p> - <p><small>Last Update: February 11, 2008</small></p> + <p><small>Last Update: February 15, 2008</small></p> </center> <center><h1>Table of Contents</h1></center> @@ -442,7 +442,7 @@ z80 instruction simulator. The set simulator can be found in the NuttX CVS at http://nuttx.cvs.sourceforge.net/nuttx/misc/sims/z80sim. - This port also the SDCC toolchain (http://sdcc.sourceforge.net/") + This port also uses the SDCC toolchain (http://sdcc.sourceforge.net/") (verified with version 2.6.0 and 2.7.0). </li> @@ -590,7 +590,7 @@ <h3><a name="supportedboards">2.3.3 Supported Boards</a></h3> <p> All of the specific boards supported by NuttX are identified below. - These the the specific <i>&lt;board-name&gt;</i>'s that may be used to configure NuttX + These are the specific <i>&lt;board-name&gt;</i>'s that may be used to configure NuttX as described <a href="#configuringnuttx">below</a>. </p> <ul> @@ -637,15 +637,21 @@ This port is not quite ready for prime time. </li> + <li><code>configs/xtrs</code> + TRS80 Model 3. This port uses a vintage computer based on the Z80. + An emulator for this computer is available to run TRS80 programs on a + linux platform (http://www.tim-mann.org/xtrs.html). + </li> + <li><code>configs/z16f2800100zcog</code> - z16f Microncontroller. + z16f Microcontroller. This port use the Zilog z16f2800100zcog development kit and the Zilog ZDS-II Windows command line tools. The development environment is Cygwin under WinXP. </li> <li><code>configs/z8encore000zco</code> - z8Encore! Microncontroller. This port use the Zilog z8encore000zco + z8Encore! Microcontroller. This port use the Zilog z8encore000zco development kit, Z8F6403 part, and the Zilog ZDS-II Windows command line tools. The development environment is Cygwin under WinXP. </li> @@ -994,7 +1000,7 @@ The system can be re-made subsequently by just typing <code>make</code>. <p><b>Inputs:</b></p> <ul> <li><code>tcb</code>: 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 @@ -1293,7 +1299,7 @@ The system can be re-made subsequently by just typing <code>make</code>. </ul> <p> - Some architectures require a description of the the RAM configuration: + Some architectures require a description of the RAM configuration: </p> <ul> <li><code>CONFIG_DRAM_SIZE</code>: @@ -1301,7 +1307,7 @@ The system can be re-made subsequently by just typing <code>make</code>. <li><code>CONFIG_DRAM_START</code>: The start address of DRAM (physical)</li> <li><code>CONFIG_DRAM_VSTART</code>: - The startaddress of DRAM (virtual)</li> + The start address of DRAM (virtual)</li> </ul> <p> From 3b4ac789dcc0c903a3cd9330f27ba55d93475d10 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 20 Feb 2008 12:55:07 +0000 Subject: [PATCH 0201/1518] Incorporate patch 1897630 git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@714 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index c84fa4fe10..ba4de942ab 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -1349,7 +1349,7 @@ The system can be re-made subsequently by just typing <code>make</code>. <code>CONFIG_DEBUG_LIB</code>: enable C library debug output (disabled by default) </li> <li> - <code>CONFIG_HAVE_LOWPUTC</code>: architecture supports low-level, boot + <code>CONFIG_ARCH_LOWPUTC</code>: architecture supports low-level, boot time console output </li> <li> From a91950ab3c0d8baca2544dff05dc9dd80737e260 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 8 Mar 2008 16:26:08 +0000 Subject: [PATCH 0202/1518] script changes git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@724 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index a2a4803a38..b5e44e68ad 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: February 14, 2008</p> + <p>Last Updated: March 3, 2008</p> </td> </tr> </table> @@ -997,6 +997,8 @@ nuttx-0.3.9 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; in particular for now). * Add support for TRS80-Model 3 based on the xtrs emulation (http://www.tim-mann.org/xtrs.html) Per patch from Jacques Pelletier. + * In all shell scripts, change #!/bin/sh to #!/bin/bash to resolve problems in + Ubuntu where /bin/sh is a link to dash. pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 54eb88909e37366e4cf867f84e71c70fde68e71c Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 9 Mar 2008 15:11:51 +0000 Subject: [PATCH 0203/1518] Prep for 0.3.9 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@728 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 60 ++++++++++++++-------------------------- 1 file changed, 20 insertions(+), 40 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index b5e44e68ad..47dadc611b 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: March 3, 2008</p> + <p>Last Updated: March 9, 2008</p> </td> </tr> </table> @@ -456,7 +456,7 @@ </table> <p> - The 20th release of NuttX (nuttx-0.3.8) is available for download + The 21st release of NuttX (nuttx-0.3.9) is available for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. The change log associated with the release is available <a href="#currentrelease">here</a>. @@ -464,12 +464,13 @@ These unreleased changes are listed <a href="#pendingchanges">here</a>. </p> <p> - nuttx-0.3.8 is a minor bugfix release. It corrects a few minor problems, adds a few minor features, and - continues the integration of the ZiLOG Z18F and of the Pascal P-Code add-on. - This release is synchronized with the release of Pascal-0.1.2. + nuttx-0.3.8 is a minor feature enhancement release. + This release includes support for the ZiLOG Z8Encore! microcontroller. + Also included is the initial framework for support for the Z80, + <a href="http://www.tim-mann.org/xtrs.html">XTRS</a> platform. </p> <p> - This release were verified on the ZiLOG z16f2800100zcog, Neuros OSD (ARM9), and the simulation platforms. + This released has been verified only on the ZiLOG ZDS-II Z8Encore! chip simulation. As usual, any feedback about bugs or suggestions for improvement would be greatly appreciated. </p> @@ -621,7 +622,7 @@ </p> <p> <b>STATUS:</b> - The Z8Encore! port is a work in progress and will be released in a future NuttX version. + This released has been verified only on the ZiLOG ZDS-II Z8Encore! chip simulation. </p> </td> </tr> @@ -940,29 +941,18 @@ Other memory: </table> <pre><ul> -0.3.8 2008-02-10 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; +nuttx-0.3.9 2008-03-09 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - * Added a test case to verify the Pascal P-Code interpreter - * Added /dev/zero - * 'errno' is now defined to be *get_errno_ptr() with no name conflicts - * Added lseek() and fseek() - * Integrated Pascal interpreter test case on the simulation platform. Needs - pascal-0.1.1. - * Add Pascal test case on the z16f platform. Needs pascal-0.1.2 (does not - yet work due to some tool issues). - * C buffered I/O fixes: - - Fix fflush() return value, - - Add correct fflush behavior when the FILE argument is null. - - Add logic to a correctly handle read/write access on the same FILE - - fseek() flushes read/write data when before moving the file pointer - - When read data is flushed, reposition the file pointer to account for - buffered, but unread data - * Pascal P-Code files are now standardized to big-endian for portability - * Fix a build problem with z80 and SDCC 2.7.0 (format of a map file changed) - (see bug 1887170) - * Pascal P-Code runtime now compiles with the SDCC toolchain. - * Added a generic CAN driver. This driver is untested as of this writing. - * Corrected DM320 UART configuration problem + * Began adding support for the ZiLOG Z8Encore! microcontroller for the Z8Encore000ZCO + development board and the Z8F6403 part. + * Fix broken 'clean' target on z80sim configurations + * Re-structure arch/z80 to provide support for all ZiLOG 8-bit microcontrollers (ez8 + in particular for now). + * Add support for TRS80-Model 3 based on the xtrs emulation (http://www.tim-mann.org/xtrs.html) + Per patch from Jacques Pelletier. + * In all shell scripts, change #!/bin/sh to #!/bin/bash to resolve problems in + Ubuntu where /bin/sh is a link to dash. + * Z8Encore! port verified on ZDS-II instruction set/chip simulator. pascal-0.1.2 2008-02-10 Gregory Nutt <spudmonkey@racsa.co.cr> @@ -988,17 +978,7 @@ buildroot-0.1.0 2007-03-09 &lt;spudmonkey@racsa.co.cr&gt </table> <pre><ul> -nuttx-0.3.9 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - - * Began adding support for the ZiLOG Z8Encore! microcontroller for the Z8Encore000ZCO - development board and the Z8F6403 part. - * Fix broken 'clean' target on z80sim configurations - * Re-structure arch/z80 to provide support for all ZiLOG 8-bit microcontrollers (ez8 - in particular for now). - * Add support for TRS80-Model 3 based on the xtrs emulation (http://www.tim-mann.org/xtrs.html) - Per patch from Jacques Pelletier. - * In all shell scripts, change #!/bin/sh to #!/bin/bash to resolve problems in - Ubuntu where /bin/sh is a link to dash. +nuttx-0.3.10 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From b53f3bf03bb64e08f0c5b1822051110af2c0463d Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 9 Mar 2008 19:59:46 +0000 Subject: [PATCH 0204/1518] Adding ez80 support git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@730 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 47dadc611b..18f8bbbdbf 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -980,6 +980,8 @@ buildroot-0.1.0 2007-03-09 &lt;spudmonkey@racsa.co.cr&gt <pre><ul> nuttx-0.3.10 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + * Add support for the ZiLOG EZ80Acclaim microcontrooler (EZ80F91 chip). + pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; buildroot-0.1.1 2007-xx-xx &lt;spudmonkey@racsa.co.cr&gt From e9637d79713dd8e55f8df130a25a3e2a0b7dbfa5 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 10 Mar 2008 23:37:56 +0000 Subject: [PATCH 0205/1518] Fixed of Z8F6423 -- still doesn't like correctly git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@732 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 15 +++++++++++---- Documentation/NuttxPortingGuide.html | 10 ++++++++-- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 18f8bbbdbf..511aa8d8bb 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: March 9, 2008</p> + <p>Last Updated: March 10, 2008</p> </td> </tr> </table> @@ -464,7 +464,7 @@ These unreleased changes are listed <a href="#pendingchanges">here</a>. </p> <p> - nuttx-0.3.8 is a minor feature enhancement release. + nuttx-0.3.9 is a minor feature enhancement release. This release includes support for the ZiLOG Z8Encore! microcontroller. Also included is the initial framework for support for the Z80, <a href="http://www.tim-mann.org/xtrs.html">XTRS</a> platform. @@ -616,8 +616,14 @@ <td> <p> <b>Zilog Z8Encore! Microncontroller</b>. - This port use the Zilog z8encore000zco development kit, Z8F6403 part, and the Zilog - ZDS-II Windows command line tools. + This port uses the either: + </p> + <ul> + <li>Zilog z8encore000zco development kit, Z8F6403 part, or</li> + <li>Zilog z8f64200100kit development kit, Z8F6423 part</li> + </ul> + <p> + and the Zilog ZDS-II Windows command line tools. The development environment is Cygwin under WinXP. </p> <p> @@ -981,6 +987,7 @@ buildroot-0.1.0 2007-03-09 &lt;spudmonkey@racsa.co.cr&gt nuttx-0.3.10 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Add support for the ZiLOG EZ80Acclaim microcontrooler (EZ80F91 chip). + * Add configuration for the ZiLOG z8f64200100kit development kit, Z8F6423 part. pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index ba4de942ab..cce8daa7d3 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -447,8 +447,8 @@ </li> <li><code>arch/z80/include/z8</code> and <code>arch/z80/src/z8</code>: - The Z8Encore! port use the Zilog z8encore000zco - development kit, Z8F6403 part, and the Zilog ZDS-II Windows command line + The Z8Encore! port uses either the ZiLOG z8encore000zco development kit, Z8F6403 part, + or the z8f64200100kit development kit, Z8F6423 part with the Zilog ZDS-II Windows command line tools. The development environment is Cygwin under WinXP. This port is in progress and will be released in a future NuttX release. </li> @@ -656,6 +656,12 @@ tools. The development environment is Cygwin under WinXP. </li> + <li><code>configs/z8encore000zco</code> + z8Encore! Microcontroller. This port use the Zilog z8f64200100kit + development kit, Z8F6423 part, and the Zilog ZDS-II Windows command line + tools. The development environment is Cygwin under WinXP. + </li> + <li><code>configs/z80sim</code>: z80 Microcontroller. This port uses a Z80 instruction set simulator. That simulator can be found in the NuttX CVS From eda3ba568ba678bd5d020aeb81346233667153ca Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 15 Mar 2008 20:04:06 +0000 Subject: [PATCH 0206/1518] Add ez80f0910200kitg configuration git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@735 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 27 +++++++++++++++++++++++++-- Documentation/NuttxPortingGuide.html | 19 ++++++++++++++++--- 2 files changed, 41 insertions(+), 5 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 511aa8d8bb..75e7843615 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: March 10, 2008</p> + <p>Last Updated: March 15, 2008</p> </td> </tr> </table> @@ -605,6 +605,27 @@ </p> </td> </tr> +<tr> + <td valign="top"><img src="favicon.ico"></td> + <td bgcolor="#5eaee1"> + <b>Zilog eZ80Acclaim!</b> + </td> +</tr> +<tr> + <td><br></td> + <td> + <p> + <b>Zilog eZ80Acclaim! Microncontroller</b>. + This port uses the ZiLOG ez80f0910200kitg development kit, eZ80F091 part + and the Zilog ZDS-II Windows command line tools. + The development environment is Cygwin under WinXP. + </p> + <p> + <b>STATUS:</b> + This is a work in progress. Verified ez80 support will be announced in a future NuttX release. + </p> + </td> +</tr> <tr> <td valign="top"><img src="favicon.ico"></td> <td bgcolor="#5eaee1"> @@ -628,7 +649,8 @@ </p> <p> <b>STATUS:</b> - This released has been verified only on the ZiLOG ZDS-II Z8Encore! chip simulation. + This release has been verified only on the ZiLOG ZDS-II Z8Encore! chip simulation + as of nuttx-0.3.9. </p> </td> </tr> @@ -988,6 +1010,7 @@ nuttx-0.3.10 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Add support for the ZiLOG EZ80Acclaim microcontrooler (EZ80F91 chip). * Add configuration for the ZiLOG z8f64200100kit development kit, Z8F6423 part. + * Add configuration for the ZiLOG ez80f0910200kitg development kit, EZ80F091 part. pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index cce8daa7d3..d59315db9c 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -16,7 +16,7 @@ </b></big></h1> <p><small>by</small></p> <p>Gregory Nutt</p> - <p><small>Last Update: February 15, 2008</small></p> + <p><small>Last Update: March 15, 2008</small></p> </center> <center><h1>Table of Contents</h1></center> @@ -431,7 +431,7 @@ <li><code>arch/z80</code>: This directory holds 8-bit ZiLOG architectures. At present, this includes the - Zilog z80 and z8Encore! Microcontrollers. + Zilog z80, ez80Acclaim! and z8Encore! Microcontrollers. <ul> <li><code>arch/z80/include</code> and <code>arch/z80/src/common</code>: Common logic. @@ -446,11 +446,18 @@ (verified with version 2.6.0 and 2.7.0). </li> + <li><code>arch/z80/include/ez80</code> and <code>arch/z80/src/ez80</code>: + The ez80Acclaim! port uses the ZiLOG ez80f0910200kitg development kit, eZ80F091 part, + with the Zilog ZDS-II Windows command line tools. + The development environment is Cygwin under WinXP. + This is a work in progress. Verified ez80 support will be announced in a future NuttX release. + </li> + <li><code>arch/z80/include/z8</code> and <code>arch/z80/src/z8</code>: The Z8Encore! port uses either the ZiLOG z8encore000zco development kit, Z8F6403 part, or the z8f64200100kit development kit, Z8F6423 part with the Zilog ZDS-II Windows command line tools. The development environment is Cygwin under WinXP. - This port is in progress and will be released in a future NuttX release. + The initial release, verified only on the ZDS-II ez8 simulator, was released in nuttx-0.3.9. </li> </ul> </li> @@ -650,6 +657,12 @@ The development environment is Cygwin under WinXP. </li> + <li><code>configs/ez80f0910200kitg</code> + ez80Acclaim! Microcontroller. This port use the Zilog ez80f0910200kitg + development kit, eZ80F091 part, and the Zilog ZDS-II Windows command line + tools. The development environment is Cygwin under WinXP. + </li> + <li><code>configs/z8encore000zco</code> z8Encore! Microcontroller. This port use the Zilog z8encore000zco development kit, Z8F6403 part, and the Zilog ZDS-II Windows command line From 5271b3b2c958be4df8603b4049258c627c8c7e72 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 15 May 2008 10:51:14 +0000 Subject: [PATCH 0207/1518] Prepare for 0.9.10 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@751 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 41 ++++++++++++++++++---------------------- 1 file changed, 18 insertions(+), 23 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 75e7843615..a0f552e8d7 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: March 15, 2008</p> + <p>Last Updated: May 15, 2008</p> </td> </tr> </table> @@ -456,7 +456,7 @@ </table> <p> - The 21st release of NuttX (nuttx-0.3.9) is available for download + The 22nd release of NuttX (nuttx-0.3.11) is available for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. The change log associated with the release is available <a href="#currentrelease">here</a>. @@ -464,13 +464,17 @@ These unreleased changes are listed <a href="#pendingchanges">here</a>. </p> <p> - nuttx-0.3.9 is a minor feature enhancement release. - This release includes support for the ZiLOG Z8Encore! microcontroller. - Also included is the initial framework for support for the Z80, - <a href="http://www.tim-mann.org/xtrs.html">XTRS</a> platform. + nuttx-0.3.10 is an important bug fix release. + This release incorporates fixes to correct critical list handling errors + in task shutdown logic: One in timer deletion logic (timer_delete.c) and one + in stream logic (lib_init.c). +</p> +<p> + Additional, minor enhancements includes support to ZiLOG EZ80Acclaim + microcontrooler (EZ80F91 chip) and configurations fot the ZiLOG z8f64200100kit (Z8F6423) + and ez80f0910200kitg (EZ80F091) development kit. </p> <p> - This released has been verified only on the ZiLOG ZDS-II Z8Encore! chip simulation. As usual, any feedback about bugs or suggestions for improvement would be greatly appreciated. </p> @@ -969,18 +973,13 @@ Other memory: </table> <pre><ul> -nuttx-0.3.9 2008-03-09 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; +nuttx-0.3.10 2008-05-15 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - * Began adding support for the ZiLOG Z8Encore! microcontroller for the Z8Encore000ZCO - development board and the Z8F6403 part. - * Fix broken 'clean' target on z80sim configurations - * Re-structure arch/z80 to provide support for all ZiLOG 8-bit microcontrollers (ez8 - in particular for now). - * Add support for TRS80-Model 3 based on the xtrs emulation (http://www.tim-mann.org/xtrs.html) - Per patch from Jacques Pelletier. - * In all shell scripts, change #!/bin/sh to #!/bin/bash to resolve problems in - Ubuntu where /bin/sh is a link to dash. - * Z8Encore! port verified on ZDS-II instruction set/chip simulator. + * Add support for the ZiLOG EZ80Acclaim microcontrooler (EZ80F91 chip). + * Add configuration for the ZiLOG z8f64200100kit development kit, Z8F6423 part. + * Add configuration for the ZiLOG ez80f0910200kitg development kit, EZ80F091 part. + * Correct critical list handling errors in task shutdown logic: One in timer + deletion logic (timer_delete.c) and one in stream logic (lib_init.c). pascal-0.1.2 2008-02-10 Gregory Nutt <spudmonkey@racsa.co.cr> @@ -1006,11 +1005,7 @@ buildroot-0.1.0 2007-03-09 &lt;spudmonkey@racsa.co.cr&gt </table> <pre><ul> -nuttx-0.3.10 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - - * Add support for the ZiLOG EZ80Acclaim microcontrooler (EZ80F91 chip). - * Add configuration for the ZiLOG z8f64200100kit development kit, Z8F6423 part. - * Add configuration for the ZiLOG ez80f0910200kitg development kit, EZ80F091 part. +nuttx-0.3.11 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From d4268535565b7af04a96950c63fc09fb45903c86 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 31 May 2008 17:13:08 +0000 Subject: [PATCH 0208/1518] Add support for recursive mutexes git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@753 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 8 +- Documentation/NuttxPortingGuide.html | 3 + Documentation/NuttxUserGuide.html | 198 +++++++++++++++++++-------- 3 files changed, 151 insertions(+), 58 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index a0f552e8d7..3a48481f2e 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: May 15, 2008</p> + <p>Last Updated: May 31, 2008</p> </td> </tr> </table> @@ -1007,11 +1007,13 @@ buildroot-0.1.0 2007-03-09 &lt;spudmonkey@racsa.co.cr&gt <pre><ul> nuttx-0.3.11 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + * Add support for recursive mutexes. + pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; -buildroot-0.1.1 2007-xx-xx &lt;spudmonkey@racsa.co.cr&gt +buildroot-0.1.1 2008-xx-xx &lt;spudmonkey@racsa.co.cr&gt - * Support for m68k-elf and m68hc11 toolchain + * Support for m68k-elf and m68hc11 toolchain </pre></ul> <table width ="100%"> diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index d59315db9c..44059c231d 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -1408,6 +1408,9 @@ The system can be re-made subsequently by just typing <code>make</code>. <code>CONFIG_DEV_CONSOLE</code>: Set if architecture-specific logic provides /dev/console. Enables stdout, stderr, stdin. </li> + <li> + <code>CONFIG_MUTEX_TYPES</code>: Set to enabled support for recursive and + errorcheck mutexes. Enables <code>pthread_mutexattr_settype()</code>. </ul> <p> diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index a5ef33f1b3..554915b772 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -21,7 +21,7 @@ User's Manual <p> Gregory Nutt <p> -<small>Last Update: Februrary 2, 2008</small> +<small>Last Update: May 31, 2008</small> </center> <h1>1.0 <A NAME="Introduction">Introduction</a></h1> @@ -3434,32 +3434,34 @@ be sent. <li><a href="#pthreadmutexattrdestroy">2.9.27 pthread_mutexattr_destroy</a></li> <li><a href="#pthreadmutexattrgetpshared">2.9.28 pthread_mutexattr_getpshared</a></li> <li><a href="#pthreadmutexattrsetpshared">2.9.29 pthread_mutexattr_setpshared</a></li> - <li><a href="#pthreadmutexinit">2.9.30 pthread_mutex_init</a></li> - <li><a href="#pthreadmutexdestrory">2.9.31 pthread_mutex_destroy</a></li> - <li><a href="#pthreadmutexlock">2.9.32 pthread_mutex_lock</a></li> - <li><a href="#pthreadmutextrylock">2.9.33 pthread_mutex_trylock</a></li> - <li><a href="#pthreadmutexunlock">2.9.34 pthread_mutex_unlock</a></li> - <li><a href="#pthreadconaddrinit">2.9.35 pthread_condattr_init</a></li> - <li><a href="#pthreadocndattrdestroy">2.9.36 pthread_condattr_destroy</a></li> - <li><a href="#pthreadcondinit">2.9.37 pthread_cond_init</a></li> - <li><a href="#pthreadconddestroy">2.9.38 pthread_cond_destroy</a></li> - <li><a href="#pthreadcondbroadcast">2.9.39 pthread_cond_broadcast</a></li> - <li><a href="#pthreadcondsignal">2.9.40 pthread_cond_signal</a></li> - <li><a href="#pthreadcondwait">2.9.41 pthread_cond_wait</a></li> - <li><a href="#pthreadcondtimedwait">2.9.42 pthread_cond_timedwait</a></li> - <li><a href="#pthreadbarrierattrinit">2.9.43 pthread_barrierattr_init</a></li> - <li><a href="#pthreadbarrierattrdestroy">2.9.44 pthread_barrierattr_destroy</a></li> - <li><a href="#pthreadbarrierattrsetpshared">2.9.45 pthread_barrierattr_setpshared</a></li> - <li><a href="#pthreadbarrierattrgetpshared">2.9.46 pthread_barrierattr_getpshared</a></li> - <li><a href="#pthreadbarrierinit">2.9.47 pthread_barrier_init</a></li> - <li><a href="#pthreadbarrierdestroy">2.9.48 pthread_barrier_destroy</a></li> - <li><a href="#pthreadbarrierwait">2.9.49 pthread_barrier_wait</a></li> - <li><a href="#pthreadonce">2.9.50 pthread_once</a></li> - <li><a href="#pthreadkill">2.9.51 pthread_kill</a></li> - <li><a href="#pthreadsigmask">2.9.52 pthread_sigmask</a></li> + <li><a href="#pthreadmutexattrgettype">2.9.30 pthread_mutexattr_gettype</a></li> + <li><a href="#pthreadmutexattrsettype">2.9.31 pthread_mutexattr_settype</a></li> + <li><a href="#pthreadmutexinit">2.9.32 pthread_mutex_init</a></li> + <li><a href="#pthreadmutexdestrory">2.9.33 pthread_mutex_destroy</a></li> + <li><a href="#pthreadmutexlock">2.9.34 pthread_mutex_lock</a></li> + <li><a href="#pthreadmutextrylock">2.9.35 pthread_mutex_trylock</a></li> + <li><a href="#pthreadmutexunlock">2.9.36 pthread_mutex_unlock</a></li> + <li><a href="#pthreadconaddrinit">2.9.37 pthread_condattr_init</a></li> + <li><a href="#pthreadocndattrdestroy">2.9.38 pthread_condattr_destroy</a></li> + <li><a href="#pthreadcondinit">2.9.39 pthread_cond_init</a></li> + <li><a href="#pthreadconddestroy">2.9.40 pthread_cond_destroy</a></li> + <li><a href="#pthreadcondbroadcast">2.9.41 pthread_cond_broadcast</a></li> + <li><a href="#pthreadcondsignal">2.9.42 pthread_cond_signal</a></li> + <li><a href="#pthreadcondwait">2.9.43 pthread_cond_wait</a></li> + <li><a href="#pthreadcondtimedwait">2.9.44 pthread_cond_timedwait</a></li> + <li><a href="#pthreadbarrierattrinit">2.9.45 pthread_barrierattr_init</a></li> + <li><a href="#pthreadbarrierattrdestroy">2.9.46 pthread_barrierattr_destroy</a></li> + <li><a href="#pthreadbarrierattrsetpshared">2.9.47 pthread_barrierattr_setpshared</a></li> + <li><a href="#pthreadbarrierattrgetpshared">2.9.48 pthread_barrierattr_getpshared</a></li> + <li><a href="#pthreadbarrierinit">2.9.49 pthread_barrier_init</a></li> + <li><a href="#pthreadbarrierdestroy">2.9.50 pthread_barrier_destroy</a></li> + <li><a href="#pthreadbarrierwait">2.9.51 pthread_barrier_wait</a></li> + <li><a href="#pthreadonce">2.9.52 pthread_once</a></li> + <li><a href="#pthreadkill">2.9.53 pthread_kill</a></li> + <li><a href="#pthreadsigmask">2.9.54 pthread_sigmask</a></li> </ul> <p> - No support for the ollowing pthread interfaces is provided by NuttX: + No support for the following pthread interfaces is provided by NuttX: </p> <ul> <li><code>pthread_atfork</code>. register fork handlers.</li> @@ -3479,10 +3481,10 @@ be sent. <li><code>pthread_barrier_wait</code>. synchronize at a barrier.</li> <li><code>pthread_cleanup_pop</code>. establish cancellation handlers.</li> <li><code>pthread_cleanup_push</code>. establish cancellation handlers.</li> - <li><code>pthread_condattr_getclock</code>. get and set the clock selection condition variable attribute.</li> - <li><code>pthread_condattr_getpshared</code>. get and set the process-shared condition variable attributes.</li> - <li><code>pthread_condattr_setclock</code>. get and set the clock selection condition variable attribute.</li> - <li><code>pthread_condattr_setpshared</code>. get and set the process-shared condition variable attributes.</li> + <li><code>pthread_condattr_getclock</code>. set the clock selection condition variable attribute.</li> + <li><code>pthread_condattr_getpshared</code>. get the process-shared condition variable attribute.</li> + <li><code>pthread_condattr_setclock</code>. set the clock selection condition variable attribute.</li> + <li><code>pthread_condattr_setpshared</code>. set the process-shared condition variable attribute.</li> <li><code>pthread_getconcurrency</code>. get and set the level of concurrency.</li> <li><code>pthread_getcpuclockid</code>. access a thread CPU-time clock.</li> <li><code>pthread_mutex_getprioceiling</code>. get and set the priority ceiling of a mutex.</li> @@ -3490,10 +3492,8 @@ be sent. <li><code>pthread_mutex_timedlock</code>. lock a mutex.</li> <li><code>pthread_mutexattr_getprioceiling</code>. get and set the prioceiling attribute of the mutex attributes object.</li> <li><code>pthread_mutexattr_getprotocol</code>. get and set the protocol attribute of the mutex attributes object.</li> - <li><code>pthread_mutexattr_gettype</code>. get and set the mutex type attribute.</li> <li><code>pthread_mutexattr_setprioceiling</code>. get and set the prioceiling attribute of the mutex attributes object.</li> <li><code>pthread_mutexattr_setprotocol</code>. get and set the protocol attribute of the mutex attributes object.</li> - <li><code>pthread_mutexattr_settype</code>. get and set the mutex type attribute.</li> <li><code>pthread_rwlock_destroy</code>. destroy and initialize a read-write lock object.</li> <li><code>pthread_rwlock_init</code>. destroy and initialize a read-write lock object.</li> <li><code>pthread_rwlock_rdlock</code>. lock a read-write lock object for reading.</li> @@ -4627,7 +4627,93 @@ returned to indicate the error: <b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadmutexinit">2.9.30 pthread_mutex_init</a></H3> +<h3><a name="pthreadmutexattrgettype">2.9.30 pthread_mutexattr_gettype</a></h3> +<p> +<b>Function Prototype:</b> +<p> +<pre> + #include &lt;pthread.h&gt; +#ifdef CONFIG_MUTEX_TYPES + int pthread_mutexattr_gettype(const pthread_mutexattr_t *attr, int *type); +#endif +</pre> +<p> +<b>Description:</b> Return the mutex type from the mutex attributes. +<p> +<b>Input Parameters:</b> +<p> +<ul> + <li><code>attr</code>. The mutex attributes to query</li> + <li><code>type</code>. Location to return the mutex type. See + <a href="#pthreadmutexattrsettype"><code>pthread_mutexattr_setttyp()</code></a> + for a description of possible mutex types that may be returned.</li> +</ul> +<p> +<b>Returned Values:</b> +<p> +If successful, the <I>pthread_mutexattr_settype()</I> function will return +zero (<I>OK</I>). Otherwise, an error number will be +returned to indicate the error: +<p> +<ul> + <li><code>EINVAL</code>. Parameters <code>attr</code> and/or <code>attr</code> are invalid.</li> +</ul> +<b>Assumptions/Limitations:</b> +<p> +<b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. + +<h3><a name="pthreadmutexattrsettype">2.9.31 pthread_mutexattr_settype</a></h3> +<p> +<b>Function Prototype:</b> +<p> +<pre> + #include &lt;pthread.h&gt; +#ifdef CONFIG_MUTEX_TYPES + int pthread_mutexattr_settype(pthread_mutexattr_t *attr, int type); +#endif +</pre> +<p> +<b>Description:</b> Set the mutex type in the mutex attributes. +<p> +<b>Input Parameters:</b> +<p> +<ul> + <li><code>attr</code>. The mutex attributes in which to set the mutex type.</li> + <li><code>type</code>. The mutex type value to set. The following values are supported: + <ul> + <li><code>PTHREAD_MUTEX_NORMAL</code>. This type of mutex does not detect deadlock. A thread + attempting to relock this mutex without first unlocking it will deadlock. + Attempting to unlock a mutex locked by a different thread results in undefined + behavior. Attempting to unlock an unlocked mutex results in undefined behavior. </li> + <li><code>PTHREAD_MUTEX_ERRORCHECK</code>. This type of mutex provides error checking. + A thread attempting to relock this mutex without first unlocking it will return with an error. + A thread attempting to unlock a mutex which another thread has locked will return with an error. + A thread attempting to unlock an unlocked mutex will return with an error.</li> + <li><code>PTHREAD_MUTEX_RECURSIVE</code>. A thread attempting to relock this mutex without first + unlocking it will succeed in locking the mutex. The relocking deadlock which can occur with mutexes + of type PTHREAD_MUTEX_NORMAL cannot occur with this type of mutex. Multiple locks of this mutex + require the same number of unlocks to release the mutex before another thread can acquire the mutex. + A thread attempting to unlock a mutex which another thread has locked will return with an error. + A thread attempting to unlock an unlocked mutex will return with an error.</li> + <li><code>PTHREAD_MUTEX_DEFAULT</code>. The default mutex type (PTHREAD_MUTEX_NORMAL).</li> + </ul> + In NuttX, PTHREAD_MUTEX_NORMAL is not implemented. PTHREAD_MUTEX_ERRORCHECK is the <i>normal</i> behavior.</li> +</ul> +<p> +<b>Returned Values:</b> +<p> +If successful, the <I>pthread_mutexattr_settype()</I> function will return +zero (<I>OK</I>). Otherwise, an error number will be +returned to indicate the error: +<p> +<ul> + <li><code>EINVAL</code>. Parameters <code>attr</code> and/or <code>attr</code> are invalid.</li> +</ul> +<b>Assumptions/Limitations:</b> +<p> +<b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. + +<H3><a name="pthreadmutexinit">2.9.32 pthread_mutex_init</a></H3> <p> <b>Function Prototype:</b> <p> @@ -4659,7 +4745,7 @@ returned to indicate the error: <b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadmutexdestrory">2.9.31 pthread_mutex_destroy</a></H3> +<H3><a name="pthreadmutexdestrory">2.9.33 pthread_mutex_destroy</a></H3> <p> <b>Function Prototype:</b> <p> @@ -4690,7 +4776,7 @@ returned to indicate the error: <b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadmutexlock">2.9.32 pthread_mutex_lock</a></H3> +<H3><a name="pthreadmutexlock">2.9.34 pthread_mutex_lock</a></H3> <p> <b>Function Prototype:</b> <p> @@ -4721,7 +4807,7 @@ returned to indicate the error: <b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadmutextrylock">2.9.33 pthread_mutex_trylock</a></H3> +<H3><a name="pthreadmutextrylock">2.9.35 pthread_mutex_trylock</a></H3> <p> <b>Function Prototype:</b> <p> @@ -4752,7 +4838,7 @@ returned to indicate the error: <b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadmutexunlock">2.9.34 pthread_mutex_unlock</a></H3> +<H3><a name="pthreadmutexunlock">2.9.36 pthread_mutex_unlock</a></H3> <p> <b>Function Prototype:</b> <p> @@ -4783,7 +4869,7 @@ returned to indicate the error: <b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadconaddrinit">2.9.35 pthread_condattr_init</a></H3> +<H3><a name="pthreadconaddrinit">2.9.37 pthread_condattr_init</a></H3> <p> <b>Function Prototype:</b> <p> @@ -4814,7 +4900,7 @@ returned to indicate the error: <b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadocndattrdestroy">2.9.36 pthread_condattr_destroy</a></H3> +<H3><a name="pthreadocndattrdestroy">2.9.38 pthread_condattr_destroy</a></H3> <p> <b>Function Prototype:</b> <p> @@ -4845,7 +4931,7 @@ returned to indicate the error: <b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadcondinit">2.9.37 pthread_cond_init</a></H3> +<H3><a name="pthreadcondinit">2.9.39 pthread_cond_init</a></H3> <p> <b>Function Prototype:</b> <p> @@ -4876,7 +4962,7 @@ returned to indicate the error: <b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadconddestroy">2.9.38 pthread_cond_destroy</a></H3> +<H3><a name="pthreadconddestroy">2.9.40 pthread_cond_destroy</a></H3> <p> <b>Function Prototype:</b> <p> @@ -4907,7 +4993,7 @@ returned to indicate the error: <b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadcondbroadcast">2.9.39 pthread_cond_broadcast</a></H3> +<H3><a name="pthreadcondbroadcast">2.9.41 pthread_cond_broadcast</a></H3> <p> <b>Function Prototype:</b> <p> @@ -4938,7 +5024,7 @@ returned to indicate the error: <b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadcondsignal">2.9.40 pthread_cond_signal</a></H3> +<H3><a name="pthreadcondsignal">2.9.42 pthread_cond_signal</a></H3> <p> <b>Function Prototype:</b> <p> @@ -4969,7 +5055,7 @@ returned to indicate the error: <b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadcondwait">2.9.41 pthread_cond_wait</a></H3> +<H3><a name="pthreadcondwait">2.9.43 pthread_cond_wait</a></H3> <p> <b>Function Prototype:</b> <p> @@ -5000,7 +5086,7 @@ returned to indicate the error: <b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. -<H3><a name="pthreadcondtimedwait">2.9.42 pthread_cond_timedwait</a></H3> +<H3><a name="pthreadcondtimedwait">2.9.44 pthread_cond_timedwait</a></H3> <p> <b>Function Prototype:</b> </p> @@ -5037,7 +5123,7 @@ interface of the same name. <b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. </p> -<h3><a name="pthreadbarrierattrinit">2.9.43 pthread_barrierattr_init</a></h3> +<h3><a name="pthreadbarrierattrinit">2.9.45 pthread_barrierattr_init</a></h3> <p> <b>Function Prototype:</b> </p> @@ -5070,7 +5156,7 @@ interface of the same name. <b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. </p> -<h3><a name="pthreadbarrierattrdestroy">2.9.44 pthread_barrierattr_destroy</a></h3> +<h3><a name="pthreadbarrierattrdestroy">2.9.46 pthread_barrierattr_destroy</a></h3> <p> <b>Function Prototype:</b> </p> @@ -5102,7 +5188,7 @@ interface of the same name. <b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. </p> -<h3><a name="pthreadbarrierattrsetpshared">2.9.45 pthread_barrierattr_setpshared</a></h3> +<h3><a name="pthreadbarrierattrsetpshared">2.9.47 pthread_barrierattr_setpshared</a></h3> <p> <b>Function Prototype:</b> </p> @@ -5140,7 +5226,7 @@ interface of the same name. <b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. </p> -<h3><a name="pthreadbarrierattrgetpshared">2.9.46 pthread_barrierattr_getpshared</a></h3> +<h3><a name="pthreadbarrierattrgetpshared">2.9.48 pthread_barrierattr_getpshared</a></h3> <p> <b>Function Prototype:</b> </p> @@ -5172,7 +5258,7 @@ interface of the same name. <b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. </p> -<h3><a name="pthreadbarrierinit">2.9.47 pthread_barrier_init</a></h3> +<h3><a name="pthreadbarrierinit">2.9.49 pthread_barrier_init</a></h3> <p> <b>Function Prototype:</b> </p> @@ -5242,7 +5328,7 @@ interface of the same name. <b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. </p> -<h3><a name="pthreadbarrierdestroy">2.9.48 pthread_barrier_destroy</a></h3> +<h3><a name="pthreadbarrierdestroy">2.9.50 pthread_barrier_destroy</a></h3> <p> <b>Function Prototype:</b> </p> @@ -5286,7 +5372,7 @@ interface of the same name. <b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. </p> -<h3><a name="pthreadbarrierwait">2.9.49 pthread_barrier_wait</a></h3> +<h3><a name="pthreadbarrierwait">2.9.51 pthread_barrier_wait</a></h3> <p> <b>Function Prototype:</b> </p> @@ -5346,7 +5432,7 @@ interface of the same name. </p> -<h3><a name="pthreadonce">2.9.50 pthread_once</a></h3> +<h3><a name="pthreadonce">2.9.52 pthread_once</a></h3> <p> <b>Function Prototype:</b> </p> @@ -5390,7 +5476,7 @@ interface of the same name. <b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. </p> -<h3><a name="pthreadkill">2.9.51 pthread_kill</a></h3> +<h3><a name="pthreadkill">2.9.53 pthread_kill</a></h3> <p> <b>Function Prototype:</b> </p> @@ -5452,7 +5538,7 @@ interface of the same name. <b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. </p> -<h3><a name="pthreadsigmask">2.9.52 pthread_sigmask</a></h3> +<h3><a name="pthreadsigmask">2.9.54 pthread_sigmask</a></h3> <p> <b>Function Prototype:</b> </p> @@ -6722,11 +6808,13 @@ notify a task when a message is available on a queue. <li><a href="#pthreadkill">pthread_kill</a></li> <li><a href="#pthreadmutexattrdestroy">pthread_mutexattr_destroy</a></li> <li><a href="#pthreadmutexattrgetpshared">pthread_mutexattr_getpshared</a></li> + <li><a href="#pthreadmutexattrgettype">pthread_mutexattr_gettype</a></li> <li><a href="#pthreadmutexattrinit">pthread_mutexattr_init</a></li> <li><a href="#pthreadmutexattrsetpshared">pthread_mutexattr_setpshared</a></li> - <li><a href="#pthreadmutexdestrory">pthread_mutex_destroy</a></li> + <li><a href="#pthreadmutexattrsettype">pthread_mutexattr_settype</a></li> </td> <td> + <li><a href="#pthreadmutexdestrory">pthread_mutex_destroy</a></li> <li><a href="#pthreadmutexinit">pthread_mutex_init</a></li> <li><a href="#pthreadmutexlock">pthread_mutex_lock</a></li> <li><a href="#pthreadmutextrylock">pthread_mutex_trylock</a></li> From 89d6a9914501d4620a1a9c6cef0e571e8628a94f Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 31 May 2008 18:02:49 +0000 Subject: [PATCH 0209/1518] Comment updates git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@754 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxUserGuide.html | 80 +++++++++++++++++++++++++++---- 1 file changed, 71 insertions(+), 9 deletions(-) diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 554915b772..c424662d0d 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -4697,7 +4697,10 @@ returned to indicate the error: A thread attempting to unlock an unlocked mutex will return with an error.</li> <li><code>PTHREAD_MUTEX_DEFAULT</code>. The default mutex type (PTHREAD_MUTEX_NORMAL).</li> </ul> - In NuttX, PTHREAD_MUTEX_NORMAL is not implemented. PTHREAD_MUTEX_ERRORCHECK is the <i>normal</i> behavior.</li> + <p> + In NuttX, <code>PTHREAD_MUTEX_NORMAL</code> is not implemented. Rather, the behavior described + for <code>PTHREAD_MUTEX_ERRORCHECK</code> is the <i>normal</i> behavior. + </p> </ul> <p> <b>Returned Values:</b> @@ -4786,22 +4789,57 @@ interface of the same name. </pre> <p> <b>Description:</b> + The mutex object referenced by mutex is locked by calling <code>pthread_mutex_lock()</code>. + If the mutex is already locked, the calling thread blocks until the mutex + becomes available. This operation returns with the mutex object referenced + by mutex in the locked state with the calling thread as its owner. +</p> +<p> + If the mutex type is <code>PTHREAD_MUTEX_NORMAL</code>, deadlock detection is not provided. + Attempting to relock the mutex causes deadlock. If a thread attempts to unlock + a mutex that it has not locked or a mutex which is unlocked, undefined behavior + results. +</p> +<p> + In NuttX, <code>PTHREAD_MUTEX_NORMAL</code> is not implemented. Rather, the behavior described + for <code>PTHREAD_MUTEX_ERRORCHECK</code> is the <i>normal</i> behavior. +</p> +<p> + If the mutex type is <code>PTHREAD_MUTEX_ERRORCHECK</code>, then error checking is provided. + If a thread attempts to relock a mutex that it has already locked, an error + will be returned. If a thread attempts to unlock a mutex that it has not + locked or a mutex which is unlocked, an error will be returned. +</p> +<p> + If the mutex type is <code>PTHREAD_MUTEX_RECURSIVE</code>, then the mutex maintains the concept + of a lock count. When a thread successfully acquires a mutex for the first time, + the lock count is set to one. Every time a thread relocks this mutex, the lock count + is incremented by one. Each time the thread unlocks the mutex, the lock count is + decremented by one. When the lock count reaches zero, the mutex becomes available + for other threads to acquire. If a thread attempts to unlock a mutex that it has + not locked or a mutex which is unlocked, an error will be returned. +</p> +<p> + If a signal is delivered to a thread waiting for a mutex, upon return from + the signal handler the thread resumes waiting for the mutex as if it was + not interrupted. +</p> <p> <b>Input Parameters:</b> <p> <ul> - <li><code>To be provided</code>.</li> + <li><code>mutex</code>. A reference to the mutex to be locked.</li> </ul> <p> <b>Returned Values:</b> <p> -If successful, the <I>pthread_mutex_lock()</I> function will return -zero (<I>OK</I>). Otherwise, an error number will be -returned to indicate the error: +If successful, the <I>pthread_mutex_lock()</I> function will return zero (<I>OK</I>). +Otherwise, an error number will be returned to indicate the error: <p> <ul> <li><code>To be provided</code>. </li> </ul> +<p>Note that this function will never return the error EINTR.</p> <b>Assumptions/Limitations:</b> <p> <b>POSIX Compatibility:</b> Comparable to the POSIX @@ -4817,22 +4855,31 @@ interface of the same name. </pre> <p> <b>Description:</b> + The function pthread_mutex_trylock() is identical to <a href="#pthreadmutexlock"><code>pthread_mutex_lock()</code></a> + except that if the mutex object referenced by mutex is currently locked + (by any thread, including the current thread), the call returns immediately + with the errno <code>EBUSY</code>. +<p> + If a signal is delivered to a thread waiting for a mutex, upon return from + the signal handler the thread resumes waiting for the mutex as if it was + not interrupted. +</p> <p> <b>Input Parameters:</b> <p> <ul> - <li><code>To be provided</code>.</li> + <li><code>mutex</code>. A reference to the mutex to be locked.</li> </ul> <p> <b>Returned Values:</b> <p> -If successful, the <I>pthread_mutex_trylock()</I> function will return -zero (<I>OK</I>). Otherwise, an error number will be -returned to indicate the error: +If successful, the <I>pthread_mutex_trylock()</I> function will return zero (<I>OK</I>). +Otherwise, an error number will be returned to indicate the error: <p> <ul> <li><code>To be provided</code>. </li> </ul> +<p>Note that this function will never return the error EINTR.</p> <b>Assumptions/Limitations:</b> <p> <b>POSIX Compatibility:</b> Comparable to the POSIX @@ -4849,6 +4896,20 @@ interface of the same name. <p> <b>Description:</b> <p> + The <code>pthread_mutex_unlock()</code> function releases the mutex object referenced + by mutex. The manner in which a mutex is released is dependent upon the + mutex's type attribute. If there are threads blocked on the mutex object + referenced by mutex when <code>pthread_mutex_unlock()</code> is called, resulting in + the mutex becoming available, the scheduling policy is used to determine + which thread shall acquire the mutex. (In the case of <code>PTHREAD_MUTEX_RECURSIVE</code> + mutexes, the mutex becomes available when the count reaches zero and the + calling thread no longer has any locks on this mutex). +</p> +<p> + If a signal is delivered to a thread waiting for a mutex, upon return from + the signal handler the thread resumes waiting for the mutex as if it was + not interrupted. +</p> <b>Input Parameters:</b> <p> <ul> @@ -4864,6 +4925,7 @@ returned to indicate the error: <ul> <li><code>To be provided</code>. </li> </ul> +<p>Note that this function will never return the error EINTR.</p> <b>Assumptions/Limitations:</b> <p> <b>POSIX Compatibility:</b> Comparable to the POSIX From 8d6274a9038b6c0da4011c0d496b6c868dd47305 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 31 May 2008 18:33:44 +0000 Subject: [PATCH 0210/1518] Fix memory leak: Contained watchdog not being deleted with POSIX timer deleted git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@756 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 3a48481f2e..0ad73fcc2a 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1008,6 +1008,8 @@ buildroot-0.1.0 2007-03-09 &lt;spudmonkey@racsa.co.cr&gt nuttx-0.3.11 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Add support for recursive mutexes. + * BUGFIX: Eliminate a memory leak -- contained watchdog instance was not + being deleted with a POSIX timer was deleted. pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 35281583ee339af66e880201157fad942b76f0cb Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 31 May 2008 20:14:15 +0000 Subject: [PATCH 0211/1518] Eliminate deadlock condition in opendir() git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@757 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 0ad73fcc2a..3efaa0ebf1 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1008,8 +1008,9 @@ buildroot-0.1.0 2007-03-09 &lt;spudmonkey@racsa.co.cr&gt nuttx-0.3.11 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Add support for recursive mutexes. - * BUGFIX: Eliminate a memory leak -- contained watchdog instance was not + * BUGFIX: Eliminate a memory leak -- contained watchdog instance was not being deleted with a POSIX timer was deleted. + * BUGFIX: Eliminate a deadlock condition in opendir(). pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From a774665436d230b972dd94eb9f7f238a280eb79f Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 31 May 2008 22:10:21 +0000 Subject: [PATCH 0212/1518] Fix several problems with accessing FAT filesystems git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@758 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 3efaa0ebf1..1ed7d6e62d 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -979,7 +979,8 @@ nuttx-0.3.10 2008-05-15 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Add configuration for the ZiLOG z8f64200100kit development kit, Z8F6423 part. * Add configuration for the ZiLOG ez80f0910200kitg development kit, EZ80F091 part. * Correct critical list handling errors in task shutdown logic: One in timer - deletion logic (timer_delete.c) and one in stream logic (lib_init.c). + deletion logic (timer_delete.c) and one in stream logic (lib_init.c) reported + by kwonsk. pascal-0.1.2 2008-02-10 Gregory Nutt <spudmonkey@racsa.co.cr> @@ -1007,10 +1008,12 @@ buildroot-0.1.0 2007-03-09 &lt;spudmonkey@racsa.co.cr&gt <pre><ul> nuttx-0.3.11 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - * Add support for recursive mutexes. + * FEATURE: Add support for recursive mutexes. * BUGFIX: Eliminate a memory leak -- contained watchdog instance was not - being deleted with a POSIX timer was deleted. - * BUGFIX: Eliminate a deadlock condition in opendir(). + being deleted with a POSIX timer was deleted reported by kwonsk. + * BUGFIX: Eliminate a deadlock condition in opendir() reported by kwonsk. + * BUGFIX: Fix several FAT filesystem problems reported by kwonsk (Changes + not yet verified). pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 39ad8318d3d9642d35a90e0891ddf94d4f740a44 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 1 Jun 2008 13:18:51 +0000 Subject: [PATCH 0213/1518] Sim target no longer uses Linux syscalls; works with Cygwin git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@759 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 1ed7d6e62d..43e26d663c 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1008,12 +1008,13 @@ buildroot-0.1.0 2007-03-09 &lt;spudmonkey@racsa.co.cr&gt <pre><ul> nuttx-0.3.11 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - * FEATURE: Add support for recursive mutexes. - * BUGFIX: Eliminate a memory leak -- contained watchdog instance was not - being deleted with a POSIX timer was deleted reported by kwonsk. - * BUGFIX: Eliminate a deadlock condition in opendir() reported by kwonsk. - * BUGFIX: Fix several FAT filesystem problems reported by kwonsk (Changes - not yet verified). + * Add support for recursive mutexes. + * Eliminate a memory leak -- contained watchdog instance was not being + deleted with a POSIX timer was deleted reported by kwonsk. + * Eliminate a deadlock condition in opendir() reported by kwonsk. + * Fix several FAT filesystem problems reported by kwonsk (Changes not yet + verified). + * Host simulator no longer uses Linux system calls directly; Now works with Cygwin. pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From c4c1f115c4c83bc7721cdd8bcf1c69a194091de8 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 1 Jun 2008 17:46:26 +0000 Subject: [PATCH 0214/1518] Fix problem when timer deleted by timer handler git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@762 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 43e26d663c..c6b94fa595 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1015,6 +1015,7 @@ nuttx-0.3.11 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Fix several FAT filesystem problems reported by kwonsk (Changes not yet verified). * Host simulator no longer uses Linux system calls directly; Now works with Cygwin. + * Fix an error that occurs when a POSIX timer is deleted by the timer signal handler. pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 97c4f5bffc13f31a19dfbf9545c4dd1048f01370 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 1 Jun 2008 17:50:07 +0000 Subject: [PATCH 0215/1518] examples/ostest can be executed in a loop git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@763 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index c6b94fa595..6d8a69ba15 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1016,6 +1016,7 @@ nuttx-0.3.11 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; verified). * Host simulator no longer uses Linux system calls directly; Now works with Cygwin. * Fix an error that occurs when a POSIX timer is deleted by the timer signal handler. + * Add logic to allow the examples/ostest to be run repetitively as an endurance test. pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 10bbe0958ebe83ec18fa0875076acc0e80e19950 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 1 Jun 2008 20:08:20 +0000 Subject: [PATCH 0216/1518] Add RAM disk support git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@765 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 56 +++++++++++++++++++++------------------- 1 file changed, 29 insertions(+), 27 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 6d8a69ba15..16ccfb1991 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: May 31, 2008</p> + <p>Last Updated: June 1, 2008</p> </td> </tr> </table> @@ -456,7 +456,7 @@ </table> <p> - The 22nd release of NuttX (nuttx-0.3.11) is available for download + The 23rd release of NuttX (nuttx-0.3.11) is available for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. The change log associated with the release is available <a href="#currentrelease">here</a>. @@ -464,16 +464,24 @@ These unreleased changes are listed <a href="#pendingchanges">here</a>. </p> <p> - nuttx-0.3.10 is an important bug fix release. - This release incorporates fixes to correct critical list handling errors - in task shutdown logic: One in timer deletion logic (timer_delete.c) and one - in stream logic (lib_init.c). + nuttx-0.3.11 is another important bugfix release. + This release fixes several bugs: </p> +<ul> + <li>Two POSIX timer bugs: a memory leak as well a fatal sequencing error.</li> + <li>Several FAT filesystem errors.</li> + <li>A deadlock that can occur in <code>opendir()</code></li> +</ul> <p> - Additional, minor enhancements includes support to ZiLOG EZ80Acclaim - microcontrooler (EZ80F91 chip) and configurations fot the ZiLOG z8f64200100kit (Z8F6423) - and ez80f0910200kitg (EZ80F091) development kit. + A few new features were also added: </p> +<ul> + <li>Support for recursive mutexes</li> + <li>Added a RAM disk block driver</li> + <li>The host simulator no longer uses direct Linux system calls and now also works on Cygwin.</li> + <li>The OS test was strengthen and now runs as an endurance test</li> +</ul> + <p> As usual, any feedback about bugs or suggestions for improvement would be greatly appreciated. </p> @@ -973,14 +981,18 @@ Other memory: </table> <pre><ul> -nuttx-0.3.10 2008-05-15 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; +nuttx-0.3.11 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - * Add support for the ZiLOG EZ80Acclaim microcontrooler (EZ80F91 chip). - * Add configuration for the ZiLOG z8f64200100kit development kit, Z8F6423 part. - * Add configuration for the ZiLOG ez80f0910200kitg development kit, EZ80F091 part. - * Correct critical list handling errors in task shutdown logic: One in timer - deletion logic (timer_delete.c) and one in stream logic (lib_init.c) reported - by kwonsk. + * Add support for recursive mutexes. + * Eliminate a memory leak -- contained watchdog instance was not being + deleted with a POSIX timer was deleted reported by kwonsk. + * Eliminate a deadlock condition in opendir() reported by kwonsk. + * Fix several FAT filesystem problems reported by kwonsk (Changes not yet + verified). + * Host simulator no longer uses Linux system calls directly; Now works with Cygwin. + * Fix an error that occurs when a POSIX timer is deleted by the timer signal handler. + * Add logic to allow the examples/ostest to be run repetitively as an endurance test. + * Add a ramdisk block driver pascal-0.1.2 2008-02-10 Gregory Nutt <spudmonkey@racsa.co.cr> @@ -1006,17 +1018,7 @@ buildroot-0.1.0 2007-03-09 &lt;spudmonkey@racsa.co.cr&gt </table> <pre><ul> -nuttx-0.3.11 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - - * Add support for recursive mutexes. - * Eliminate a memory leak -- contained watchdog instance was not being - deleted with a POSIX timer was deleted reported by kwonsk. - * Eliminate a deadlock condition in opendir() reported by kwonsk. - * Fix several FAT filesystem problems reported by kwonsk (Changes not yet - verified). - * Host simulator no longer uses Linux system calls directly; Now works with Cygwin. - * Fix an error that occurs when a POSIX timer is deleted by the timer signal handler. - * Add logic to allow the examples/ostest to be run repetitively as an endurance test. +nuttx-0.3.12 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 817e4fc51d86e5c43706f92f10f800dc56920236 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 5 Jun 2008 01:58:08 +0000 Subject: [PATCH 0217/1518] Add recursive mutex test git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@771 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 16ccfb1991..9dbac248d7 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: June 1, 2008</p> + <p>Last Updated: June 3, 2008</p> </td> </tr> </table> @@ -1020,6 +1020,10 @@ buildroot-0.1.0 2007-03-09 &lt;spudmonkey@racsa.co.cr&gt <pre><ul> nuttx-0.3.12 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + * Improved solution to POSIX timer lifetime controls bug fixed in 0.3.11. + * Add test for recursive mutexes + * Correct bug in recursive mutex logic + pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; buildroot-0.1.1 2008-xx-xx &lt;spudmonkey@racsa.co.cr&gt From 0b066e5d9e58efa46bcaef85e62c90d58747dcbd Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 20 Jul 2008 20:58:32 +0000 Subject: [PATCH 0218/1518] Add mkfifo() git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@773 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 ++- Documentation/NuttxUserGuide.html | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 9dbac248d7..70ab56081e 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: June 3, 2008</p> + <p>Last Updated: July 20, 2008</p> </td> </tr> </table> @@ -1023,6 +1023,7 @@ nuttx-0.3.12 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Improved solution to POSIX timer lifetime controls bug fixed in 0.3.11. * Add test for recursive mutexes * Correct bug in recursive mutex logic + * Add mkfifo() pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index c424662d0d..c69987f8cb 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -21,7 +21,7 @@ User's Manual <p> Gregory Nutt <p> -<small>Last Update: May 31, 2008</small> +<small>Last Update: July 20, 2008</small> </center> <h1>1.0 <A NAME="Introduction">Introduction</a></h1> @@ -5964,6 +5964,7 @@ interface of the same name. int fstat(int fd, FAR struct stat *buf); /* Prototyped but not implemented */ char *getcwd(FAR char *buf, size_t size); /* Prototyped but not implemented */ int mkdir(const char *path, mode_t mode); + int mkfifo(const char *path, mode_t mode); int rmdir(const char *path); int stat(const char *path, FAR struct stat *buf); int statfs(const char *path, FAR struct statfs *buf); /* Prototyped but not implemented */ From d20dc4b50934a264052858c3b3e1650b6730201c Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 22 Jul 2008 00:52:07 +0000 Subject: [PATCH 0219/1518] Debugging FIFO logic git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@774 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 44059c231d..c164f5a54b 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -16,7 +16,7 @@ </b></big></h1> <p><small>by</small></p> <p>Gregory Nutt</p> - <p><small>Last Update: March 15, 2008</small></p> + <p><small>Last Update: July 21, 2008</small></p> </center> <center><h1>Table of Contents</h1></center> @@ -1509,6 +1509,10 @@ The system can be re-made subsequently by just typing <code>make</code>. structures. The system manages a pool of preallocated watchdog structures to minimize dynamic allocations </li> + <li> + <code>CONFIG_DEV_FIFO_SIZE</code>: Size, in bytes, of the buffer to allocated + for FIFO support (default is 1024). + </li> </ul> <h2>Network Support</h2> From 4004e471406066dd1bb824dd0a9831840e303790 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 26 Jul 2008 13:12:11 +0000 Subject: [PATCH 0220/1518] Add pipe() git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@779 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 70ab56081e..70b781c8ed 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: July 20, 2008</p> + <p>Last Updated: July 26, 2008</p> </td> </tr> </table> @@ -1024,6 +1024,7 @@ nuttx-0.3.12 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Add test for recursive mutexes * Correct bug in recursive mutex logic * Add mkfifo() + * Add pipe() and test for both pipes and fifos pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From c9ae47c068736d88d0b046b6e53eca67975be2a8 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 26 Jul 2008 14:02:46 +0000 Subject: [PATCH 0221/1518] Minor pipe updates git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@780 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index c164f5a54b..4c07bbba76 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -1510,8 +1510,8 @@ The system can be re-made subsequently by just typing <code>make</code>. watchdog structures to minimize dynamic allocations </li> <li> - <code>CONFIG_DEV_FIFO_SIZE</code>: Size, in bytes, of the buffer to allocated - for FIFO support (default is 1024). + <code>CONFIG_DEV_PIPE_SIZE</code>: Size, in bytes, of the buffer to allocated + for pipe and FIFO support (default is 1024). </li> </ul> From b77c9afafe756d53f0e2b50b264d962486189966 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 26 Jul 2008 14:24:17 +0000 Subject: [PATCH 0222/1518] O_RDONLY open on FIFO blocks until writer opens git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@781 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 70b781c8ed..5d3c130bcd 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1025,6 +1025,7 @@ nuttx-0.3.12 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Correct bug in recursive mutex logic * Add mkfifo() * Add pipe() and test for both pipes and fifos + * Attempts to open a FIFO will now block until there is at least one writer pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From c421cdd92d8abebc5de9a343df2a301df05284cd Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 26 Jul 2008 15:09:21 +0000 Subject: [PATCH 0223/1518] Pipe/FIFO info git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@782 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxUserGuide.html | 146 ++++++++++++++++++++++++++++-- 1 file changed, 139 insertions(+), 7 deletions(-) diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index c69987f8cb..b3b144cf9d 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -5843,6 +5843,8 @@ interface of the same name. <h1><a name="FileSystem">2.11 File System Interfaces</a></h1> +<h2><a name="FileSystemOverview"2.11.1 >Overview</a></h2> + <p><b>Overview</b>. NuttX includes an optional, scalable file system. This file-system may be omitted altogther; NuttX does not depend on the presence @@ -5898,7 +5900,7 @@ interface of the same name. in a file-system-like name space. </p> -<h2><a name="driveroperations">2.11.1 Driver Operations</a></h2> +<h2><a name="driveroperations">2.11.2 Driver Operations</a></h2> <ul><pre> #include &lt;fcntl.h&gt; int open(const char *path, int oflag, ...); @@ -5920,7 +5922,7 @@ interface of the same name. int ioctl(int fd, int req, unsigned long arg); </pre></ul> -<h2><a name="directoryoperations">2.11.2 Directory Operations</a></h2> +<h2><a name="directoryoperations">2.11.3 Directory Operations</a></h2> <ul><pre> #include &lt;dirent.h&gt; int closedir(DIR *dirp); @@ -5932,7 +5934,7 @@ interface of the same name. int telldir(FAR DIR *dirp); </pre></ul> -<h2><a name="standardio">2.11.3 Standard I/O</a></h2> +<h2><a name="standardio">2.11.4 Standard I/O</a></h2> <ul><pre> #include &lt;stdio.h&gt; int fclose(FILE *stream); @@ -5964,12 +5966,139 @@ interface of the same name. int fstat(int fd, FAR struct stat *buf); /* Prototyped but not implemented */ char *getcwd(FAR char *buf, size_t size); /* Prototyped but not implemented */ int mkdir(const char *path, mode_t mode); - int mkfifo(const char *path, mode_t mode); int rmdir(const char *path); int stat(const char *path, FAR struct stat *buf); int statfs(const char *path, FAR struct statfs *buf); /* Prototyped but not implemented */ </pre></ul> +<h2><a name="PipesNFifos">2.11.4 Pipes and FIFOs</a></h2> + +<h3>2.11.4.1 <a name="pipe"><code>pipe</code></a></h3> +<p> + <b>Function Prototype:</b> +</p> +<pre> + #include <unistd.h> + int pipe(int filedes[2]); +</pre> +<p> + <b>Description:</b> + <ul> + <p> + <code>pipe()</code> creates a pair of file descriptors, pointing to a pipe inode, and + places them in the array pointed to by <code>filedes</code>. + <code>filedes[0]</code> is for reading, <code>filedes[1]</code> is for writing. + </p> + </ul> +</p> +<p> + <b>Input Parameters:</b> + <ul> + <li><code>filedes[2]</code>. The user provided array in which to catch the pipe file descriptors.</li> + </ul> +</p> +</p> +<p> + <b>Returned Values:</b> + <ul> + <p> + 0 is returned on success; otherwise, -1 is returned with <code>errno</code> set appropriately. + </p> + </ul> +</p> + +<h3>2.11.4.2 <a name="mkfifo"><code>mkfifo</code></a></h3> +<p> + <b>Function Prototype:</b> +</p> +<pre> + #include <sys/stat.h> + int mkfifo(FAR const char *pathname, mode_t mode); +</pre> +<p> + <b>Description:</b> + <ul> + <p> + <code>mkfifo()</code> makes a FIFO device driver file with name <code>pathname</code>. + Unlike Linux, a NuttX FIFO is not a special file type but simply a device driver instance. + <code>mode</code> specifies the FIFO's permissions (but is ignored in the current implementation). + </p> + <p> + Once the FIFO has been created by <code>mkfifo()</code>, any thread can open it for + reading or writing, in the same way as an ordinary file. + However, it must have been opened from both reading and writing before input or output can be performed. + This FIFO implementation will block all attempts to open a FIFO read-only until at least one thread has opened the FIFO for writing. + </p> + <p> + If all threads that write to the FIFO have closed, subsequent calls to <code>read()</code> on the FIFO will return 0 (end-of-file). + </p> + </ul> +</p> +<p> + <b>Input Parameters:</b> + <ul> + <li><code>pathname</code>. + The full path to the FIFO instance to attach to or to create (if not already created). + </li> + <li><code>mode<code>. + Ignored for now + </li> + </ul> +</p> +<p> + <b>Returned Values:</b> + <ul> + <p> + 0 is returned on success; otherwise, -1 is returned with <code>errno</code> set appropriately. + </p> + </ul> +</p> + +<h2><a name="setenv">2.10.4 <code>setenv</code></a></h2> +<p> + <b>Function Prototype:</b> +</p> +<pre> + #include <stdlib.h> + int setenv(const char *name, const char *value, int overwrite); +</pre> +<p> + <b>Description:</b> + <ul> + <p> + The <code>setenv()</code> function adds the variable <code>name</code> to the environment with the + specified <code>value</code> if the variable <code>name</code> does not exist. If the <code>name</code> + does exist in the environment, then its value is changed to <code>value</code> if <code>overwrite</code> + is non-zero; if <code>overwrite</code> is zero, then the value of <code>name</code> is unaltered. + </p> + </ul> +</p> +<p> + <b>Input Parameters:</b> + <ul> + <li> + <code>name</code> + The name of the variable to change. + </li> + <li> + <code>value</code> + The new value of the variable. + </li> + <li> + <code>value</code> + Replace any existing value if non-zero. + </li> + </ul> +</p> +<p> + <b>Returned Values:</b> + <ul> + <p> + Zero on success. + </p> + </ul> +</p> + <h2>2.12 <a name="Network">Network Interfaces</a></h2> <p>NuttX includes a simple interface layer based on uIP (see <a href="http://www.sics.se/~adam/uip/index.php/Main_Page">http://www.sics.se</a>). NuttX supports subset of a standard socket interface to uIP. @@ -6811,7 +6940,8 @@ notify a task when a message is available on a queue. <li><a href="#directoryoperations">Directory operations</a></li> <li><a href="#driveroperations">Driver operations</a></li> <li><a href="#exit">exit</a></li> - <li><a href="#FileSystem">File system interfaces</a></li> + <li><a href="#FileSystem">File system, interfaces</a></li> + <li><a href="#FileSystemOverview">File system, overview</a></li> <li><a href="#getpid">getpid</a></li> <li><a href="#getsockopt">getsockopt</a></li> <li><a href="#gmtimer">gmtime_r</a></li> @@ -6820,6 +6950,7 @@ notify a task when a message is available on a queue. <li><a href="#listen">listen</a></li> <li><a href="#localtimer">localtime_r</a></li> <li><a href="#Message_Queue">Named Message Queue Interfaces</a> + <li><a href="#mkfifo">mkfifo</a></li> <li><a href="#mktime">mktime</a></li> <li><a href="#mqclose">mq_close</a></li> <li><a href="#mqgetattr">mq_getattr</a></li> @@ -6832,7 +6963,8 @@ notify a task when a message is available on a queue. <li><a href="#mqtimedsend">mq_timedsend</a></li> <li><a href="#mqunlink">mq_unlink</a></li> <li><a href="#Network">Network Interfaces</a></li> - <li><a href="#OS_Interfaces">OS Interfaces</a> + <li><a href="#OS_Interfaces">OS Interfaces</a></li> + <li><a href="#pipe">pipe</a></li> <li><a href="#Pthread">Pthread Interfaces</a> <li><a href="#pthreadattrdestroy">pthread_attr_destroy</a></li> <li><a href="#pthreadattrgetinheritsched">pthread_attr_getinheritsched</a></li> @@ -6874,9 +7006,9 @@ notify a task when a message is available on a queue. <li><a href="#pthreadmutexattrgettype">pthread_mutexattr_gettype</a></li> <li><a href="#pthreadmutexattrinit">pthread_mutexattr_init</a></li> <li><a href="#pthreadmutexattrsetpshared">pthread_mutexattr_setpshared</a></li> - <li><a href="#pthreadmutexattrsettype">pthread_mutexattr_settype</a></li> </td> <td> + <li><a href="#pthreadmutexattrsettype">pthread_mutexattr_settype</a></li> <li><a href="#pthreadmutexdestrory">pthread_mutex_destroy</a></li> <li><a href="#pthreadmutexinit">pthread_mutex_init</a></li> <li><a href="#pthreadmutexlock">pthread_mutex_lock</a></li> From df2d3d48f14593e1ae53976b13c146ecd85a0fd2 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 26 Jul 2008 15:12:31 +0000 Subject: [PATCH 0224/1518] typo git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@783 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxUserGuide.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index b3b144cf9d..f480187bc3 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -6970,7 +6970,7 @@ notify a task when a message is available on a queue. <li><a href="#pthreadattrgetinheritsched">pthread_attr_getinheritsched</a></li> <li><a href="#pthreadattrgetschedparam">pthread_attr_getschedparam</a></li> <li><a href="#pthreadattrgetschedpolicy">pthread_attr_getschedpolicy</a></li> - <li><a href="#pthreadattrgetstacksize">0 pthread_attr_getstacksize</a></li> + <li><a href="#pthreadattrgetstacksize">pthread_attr_getstacksize</a></li> <li><a href="#pthreadattrinit">pthread_attr_init</a></li> <li><a href="#pthreadattrsetinheritsched">pthread_attr_setinheritsched</a></li> <li><a href="#pthreadattrsetschedparam">pthread_attr_setschedparam</a></li> From c8f31f2330fd85ebc531f4c07aa81248045ea241 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 26 Jul 2008 20:40:49 +0000 Subject: [PATCH 0225/1518] Fix FIFO interlock errors git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@784 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 5d3c130bcd..cc3f86c831 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1026,6 +1026,7 @@ nuttx-0.3.12 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Add mkfifo() * Add pipe() and test for both pipes and fifos * Attempts to open a FIFO will now block until there is at least one writer + * Add test/Fixed errors in FIFO reader/writer interlocks pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From d5ea2b2b944d7220b0fcfd740a1e38c9307c5c98 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 30 Jul 2008 00:28:43 +0000 Subject: [PATCH 0226/1518] task_create now dup's all open descriptors git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@789 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index cc3f86c831..19c70498e8 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: July 26, 2008</p> + <p>Last Updated: July 29, 2008</p> </td> </tr> </table> @@ -1027,6 +1027,9 @@ nuttx-0.3.12 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Add pipe() and test for both pipes and fifos * Attempts to open a FIFO will now block until there is at least one writer * Add test/Fixed errors in FIFO reader/writer interlocks + * Removed limitation: task_create() was only dup'ing 3 file descriptors (now + dups all open file descriptors). + * Added a test for redirection of stdio through pipes pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 00457bca1cce9db1637470758e73a43620e5e027 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 31 Jul 2008 00:28:24 +0000 Subject: [PATCH 0227/1518] Fix bug: Using unsigned to detect errno<0 git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@791 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 19c70498e8..e7a60182c5 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: July 29, 2008</p> + <p>Last Updated: July 30, 2008</p> </td> </tr> </table> @@ -1030,6 +1030,10 @@ nuttx-0.3.12 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Removed limitation: task_create() was only dup'ing 3 file descriptors (now dups all open file descriptors). * Added a test for redirection of stdio through pipes + * Fixed error in dup and dup2: Must call open/close methods in fs/driver so that + driver can correctly maintain open reference counts. + * Fixed in error in stdio flush logic. Needed ssize_t vs size_t for error + check. pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From ce39ccfdc09a4cc4f34640187b03595278a3a8dc Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 1 Aug 2008 00:22:09 +0000 Subject: [PATCH 0228/1518] Need to call driver close() method on exit git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@792 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index e7a60182c5..e75d27e302 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1032,6 +1032,7 @@ nuttx-0.3.12 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Added a test for redirection of stdio through pipes * Fixed error in dup and dup2: Must call open/close methods in fs/driver so that driver can correctly maintain open reference counts. + * Same issue on closing file descriptors in exit() * Fixed in error in stdio flush logic. Needed ssize_t vs size_t for error check. From af970e6b8d25f38837e66b486ef4f762e3bc05fe Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 2 Aug 2008 15:02:10 +0000 Subject: [PATCH 0229/1518] Move FAT-related files to fs/fat git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@798 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index e75d27e302..84a8926aff 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: July 30, 2008</p> + <p>Last Updated: August 2, 2008</p> </td> </tr> </table> @@ -1035,6 +1035,7 @@ nuttx-0.3.12 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Same issue on closing file descriptors in exit() * Fixed in error in stdio flush logic. Needed ssize_t vs size_t for error check. + * Moved all FAT related files from fs to fs/fat pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 075d96828110aa3f7251becdefdc0b5f74bf2c15 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 9 Aug 2008 21:48:06 +0000 Subject: [PATCH 0230/1518] Implemented mkfatfs() git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@805 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 84a8926aff..0de2ec94d3 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: August 2, 2008</p> + <p>Last Updated: August 9, 2008</p> </td> </tr> </table> @@ -1036,6 +1036,8 @@ nuttx-0.3.12 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Fixed in error in stdio flush logic. Needed ssize_t vs size_t for error check. * Moved all FAT related files from fs to fs/fat + * Implemented mkfatfs(), a non-standard API to create a FAT filesystem on a + block device (not yet tested). pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From a2fec615eb76a8e2a97989ed89f990c8969210da Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 10 Aug 2008 14:50:27 +0000 Subject: [PATCH 0231/1518] Added mkfatfs() test git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@806 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 0de2ec94d3..fc53f66efb 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: August 9, 2008</p> + <p>Last Updated: August 10, 2008</p> </td> </tr> </table> @@ -1038,6 +1038,7 @@ nuttx-0.3.12 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Moved all FAT related files from fs to fs/fat * Implemented mkfatfs(), a non-standard API to create a FAT filesystem on a block device (not yet tested). + * Added a test for mkfatfs() on a RAM disk in examples/mount pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From fb6bdf408d66bfc213293a418a6388cfd1b9180d Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 10 Aug 2008 16:36:33 +0000 Subject: [PATCH 0232/1518] Added test for mkfatfs git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@807 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 +- Documentation/NuttxUserGuide.html | 96 ++++++++++++++++++++++--------- 2 files changed, 72 insertions(+), 27 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index fc53f66efb..bd914f23b8 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1038,7 +1038,8 @@ nuttx-0.3.12 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Moved all FAT related files from fs to fs/fat * Implemented mkfatfs(), a non-standard API to create a FAT filesystem on a block device (not yet tested). - * Added a test for mkfatfs() on a RAM disk in examples/mount + * Added a test for mkfatfs() on a RAM disk in examples/mount and verified + basic mkfatfs functionality for FAT12. pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index f480187bc3..a6e6ea90d0 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -21,7 +21,7 @@ User's Manual <p> Gregory Nutt <p> -<small>Last Update: July 20, 2008</small> +<small>Last Update: August 10, 2008</small> </center> <h1>1.0 <A NAME="Introduction">Introduction</a></h1> @@ -5843,7 +5843,16 @@ interface of the same name. <h1><a name="FileSystem">2.11 File System Interfaces</a></h1> -<h2><a name="FileSystemOverview"2.11.1 >Overview</a></h2> +<ul> + <li><a href="#FileSystemOverview">2.11.1 NuttX File System Overview</a></li> + <li><a href="#driveroperations">2.11.2 Driver Operations</a></li> + <li><a href="#directoryoperations">2.11.3 Directory Operations</a></li> + <li><a href="#standardio">2.11.4 Standard I/O</a></li> + <li><a href="#PipesNFifos">2.11.5 Pipes and FIFOs</a></li> + <li><a href="#fatsupport">2.11.6 FAT File System Support</a></li> +</ul> + +<h2><a name="FileSystemOverview">2.11.1 NuttX File System Overview</a></h2> <p><b>Overview</b>. NuttX includes an optional, scalable file system. @@ -5971,9 +5980,9 @@ interface of the same name. int statfs(const char *path, FAR struct statfs *buf); /* Prototyped but not implemented */ </pre></ul> -<h2><a name="PipesNFifos">2.11.4 Pipes and FIFOs</a></h2> +<h2><a name="PipesNFifos">2.11.5 Pipes and FIFOs</a></h2> -<h3>2.11.4.1 <a name="pipe"><code>pipe</code></a></h3> +<h3>2.11.5.1 <a name="pipe"><code>pipe</code></a></h3> <p> <b>Function Prototype:</b> </p> @@ -6007,7 +6016,7 @@ interface of the same name. </ul> </p> -<h3>2.11.4.2 <a name="mkfifo"><code>mkfifo</code></a></h3> +<h3>2.11.5.2 <a name="mkfifo"><code>mkfifo</code></a></h3> <p> <b>Function Prototype:</b> </p> @@ -6054,22 +6063,25 @@ interface of the same name. </ul> </p> -<h2><a name="setenv">2.10.4 <code>setenv</code></a></h2> +<h2><a name="fatsupport">2.11.6 FAT File System Support</a></h2> +<h3>2.11.5.1 <a name="mkfatfs"><code>mkfatfs</code></a></h3> <p> <b>Function Prototype:</b> </p> -<pre> - #include <stdlib.h> - int setenv(const char *name, const char *value, int overwrite); -</pre> +<ul><pre> +#include <nutts/mkfatfs.h> +int mkfatfs(FAR const char *pathname, FAR struct fat_format_s *fmt); +</pre></ul> <p> <b>Description:</b> <ul> <p> - The <code>setenv()</code> function adds the variable <code>name</code> to the environment with the - specified <code>value</code> if the variable <code>name</code> does not exist. If the <code>name</code> - does exist in the environment, then its value is changed to <code>value</code> if <code>overwrite</code> - is non-zero; if <code>overwrite</code> is zero, then the value of <code>name</code> is unaltered. + The <code>mkfafs()</code> formats a FAT file system image on the block + device specified by <code>pathname</code> + </p> + <p>Assumptions: The caller must assure that the block driver is not mounted and not in + use when this function is called. + The result of formatting a mounted device is indeterminate (but likely not good). </p> </ul> </p> @@ -6077,16 +6089,30 @@ interface of the same name. <b>Input Parameters:</b> <ul> <li> - <code>name</code> - The name of the variable to change. + <code>pathname</code> + The full path to the registered block driver in the file system. </li> <li> - <code>value</code> - The new value of the variable. - </li> - <li> - <code>value</code> - Replace any existing value if non-zero. + <code>fmt</code> + A reference to an instance of a structure that provides caller-selectable + attributes of the created FAT file system. + <ul> +<pre> +struct fat_format_s +{ + ubyte ff_nfats; /* Number of FATs */ + ubyte ff_fattype; /* FAT size: 0 (autoselect), 12, 16, or 32 */ + ubyte ff_clustshift; /* Log2 of sectors per cluster: 0-5, 0xff (autoselect) */ + ubyte ff_volumelabel[11]; /* Volume label */ + uint16 ff_backupboot; /* Sector number of the backup boot sector (0=use default)*/ + uint16 ff_rootdirentries; /* Number of root directory entries */ + uint16 ff_rsvdseccount; /* Reserved sectors */ + uint32 ff_hidsec; /* Count of hidden sectors preceding fat */ + uint32 ff_volumeid; /* FAT volume id */ + uint32 ff_nsectors; /* Number of sectors from device to use: 0: Use all */ +}; +</pre> + </ul></li> </li> </ul> </p> @@ -6094,7 +6120,23 @@ interface of the same name. <b>Returned Values:</b> <ul> <p> - Zero on success. + Zero (<code>OK</code>) on success; + -1 (<code>ERROR</code>) on failure with <code>errno</code> set appropriately: + <ul> + <li><code>EINVAL</code> - + NULL block driver string, bad number of FATS in <code>fmt</code>, + bad FAT size in <code>fmt</code>, bad cluster size in <code>fmt</code> + </li> + <li><code>ENOENT</code> - + <code>pathname</code> does not refer to anything in the filesystem. + </li> + <li><code>ENOTBLK</code> - + <code>pathname</code> does not refer to a block driver + </li> + <li><code>EACCESS</code> - + block driver does not support write or geometry methods + </li> + </ul> </p> </ul> </p> @@ -6928,7 +6970,7 @@ notify a task when a message is available on a queue. <h1><a name="index">Index</a></h1> <table width="100%"> <tr> -<td> +<td valign="top"> <li><a href="#accept">accept</a></li> <li><a href="#bind">bind</a></li> <li><a href="#clockgetres">clock_getres</a></li> @@ -6940,6 +6982,7 @@ notify a task when a message is available on a queue. <li><a href="#directoryoperations">Directory operations</a></li> <li><a href="#driveroperations">Driver operations</a></li> <li><a href="#exit">exit</a></li> + <li><a href="#fatsupport">FAT File System Support</a></li> <li><a href="#FileSystem">File system, interfaces</a></li> <li><a href="#FileSystemOverview">File system, overview</a></li> <li><a href="#getpid">getpid</a></li> @@ -6950,6 +6993,7 @@ notify a task when a message is available on a queue. <li><a href="#listen">listen</a></li> <li><a href="#localtimer">localtime_r</a></li> <li><a href="#Message_Queue">Named Message Queue Interfaces</a> + <li><a href="#mkfatfs">mkfatfs</a></li> <li><a href="#mkfifo">mkfifo</a></li> <li><a href="#mktime">mktime</a></li> <li><a href="#mqclose">mq_close</a></li> @@ -7005,9 +7049,9 @@ notify a task when a message is available on a queue. <li><a href="#pthreadmutexattrgetpshared">pthread_mutexattr_getpshared</a></li> <li><a href="#pthreadmutexattrgettype">pthread_mutexattr_gettype</a></li> <li><a href="#pthreadmutexattrinit">pthread_mutexattr_init</a></li> - <li><a href="#pthreadmutexattrsetpshared">pthread_mutexattr_setpshared</a></li> </td> -<td> +<td valign="top"> + <li><a href="#pthreadmutexattrsetpshared">pthread_mutexattr_setpshared</a></li> <li><a href="#pthreadmutexattrsettype">pthread_mutexattr_settype</a></li> <li><a href="#pthreadmutexdestrory">pthread_mutex_destroy</a></li> <li><a href="#pthreadmutexinit">pthread_mutex_init</a></li> From b03f8bd0c627f8aa37d257f739b6acd2130bf6ad Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 10 Aug 2008 17:44:27 +0000 Subject: [PATCH 0233/1518] Prep for 0.3.12 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@809 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 87 +++++++++++++++++----------------------- 1 file changed, 37 insertions(+), 50 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index bd914f23b8..3ad82701fc 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -456,32 +456,30 @@ </table> <p> - The 23rd release of NuttX (nuttx-0.3.11) is available for download + The 24th release of NuttX (nuttx-0.3.12) is available for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. The change log associated with the release is available <a href="#currentrelease">here</a>. Unreleased changes after this release are available in CVS. These unreleased changes are listed <a href="#pendingchanges">here</a>. </p> -<p> - nuttx-0.3.11 is another important bugfix release. - This release fixes several bugs: + The nuttx-0.3.12 release includes some minor bugfixes as well as a few new features. + Bugs fixed include: + <ul> + <li>Corrected an error in recursive mutex implementation.</li> + <li>task_create() was only dup'in the first three file descriptors.</li> + <li>Fixed driver open reference counting errors in dup(), dup2(), and exit().</li> + <li>Fixed error handling logic in fflush().</li> + </ul> </p> -<ul> - <li>Two POSIX timer bugs: a memory leak as well a fatal sequencing error.</li> - <li>Several FAT filesystem errors.</li> - <li>A deadlock that can occur in <code>opendir()</code></li> -</ul> <p> - A few new features were also added: + New features were also added: + <ul> + <li>Pipes and pipe() API</li> + <li>FIFOs and mkfifo() API</li> + <li>mkfatfs() API can be used to format FAT file systems.</li> + </ul> </p> -<ul> - <li>Support for recursive mutexes</li> - <li>Added a RAM disk block driver</li> - <li>The host simulator no longer uses direct Linux system calls and now also works on Cygwin.</li> - <li>The OS test was strengthen and now runs as an endurance test</li> -</ul> - <p> As usual, any feedback about bugs or suggestions for improvement would be greatly appreciated. </p> @@ -981,18 +979,28 @@ Other memory: </table> <pre><ul> -nuttx-0.3.11 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; +0.3.12 2008-08-10 Gregory Nutt <spudmonkey@racsa.co.cr> - * Add support for recursive mutexes. - * Eliminate a memory leak -- contained watchdog instance was not being - deleted with a POSIX timer was deleted reported by kwonsk. - * Eliminate a deadlock condition in opendir() reported by kwonsk. - * Fix several FAT filesystem problems reported by kwonsk (Changes not yet - verified). - * Host simulator no longer uses Linux system calls directly; Now works with Cygwin. - * Fix an error that occurs when a POSIX timer is deleted by the timer signal handler. - * Add logic to allow the examples/ostest to be run repetitively as an endurance test. - * Add a ramdisk block driver + * Improved solution to POSIX timer lifetime controls bug fixed in 0.3.11. + * Add test for recursive mutexes + * Correct bug in recursive mutex logic + * Add mkfifo() + * Add pipe() and test for both pipes and fifos + * Attempts to open a FIFO will now block until there is at least one writer + * Add test/Fixed errors in FIFO reader/writer interlocks + * Removed limitation: task_create() was only dup'ing 3 file descriptors (now + dups all open file descriptors). + * Added a test for redirection of stdio through pipes + * Fixed error in dup and dup2: Must call open/close methods in fs/driver so that + driver can correctly maintain open reference counts. + * Same issue on closing file descriptors in exit() + * Fixed in error in stdio flush logic. Needed ssize_t vs size_t for error + check. + * Moved all FAT related files from fs to fs/fat + * Implemented mkfatfs(), a non-standard API to create a FAT filesystem on a + block device (not yet tested). + * Added a test for mkfatfs() on a RAM disk in examples/mount and verified + basic mkfatfs functionality for FAT12. pascal-0.1.2 2008-02-10 Gregory Nutt <spudmonkey@racsa.co.cr> @@ -1018,28 +1026,7 @@ buildroot-0.1.0 2007-03-09 &lt;spudmonkey@racsa.co.cr&gt </table> <pre><ul> -nuttx-0.3.12 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - - * Improved solution to POSIX timer lifetime controls bug fixed in 0.3.11. - * Add test for recursive mutexes - * Correct bug in recursive mutex logic - * Add mkfifo() - * Add pipe() and test for both pipes and fifos - * Attempts to open a FIFO will now block until there is at least one writer - * Add test/Fixed errors in FIFO reader/writer interlocks - * Removed limitation: task_create() was only dup'ing 3 file descriptors (now - dups all open file descriptors). - * Added a test for redirection of stdio through pipes - * Fixed error in dup and dup2: Must call open/close methods in fs/driver so that - driver can correctly maintain open reference counts. - * Same issue on closing file descriptors in exit() - * Fixed in error in stdio flush logic. Needed ssize_t vs size_t for error - check. - * Moved all FAT related files from fs to fs/fat - * Implemented mkfatfs(), a non-standard API to create a FAT filesystem on a - block device (not yet tested). - * Added a test for mkfatfs() on a RAM disk in examples/mount and verified - basic mkfatfs functionality for FAT12. +nuttx-0.3.13 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From f0045d61f07a1c78335e6339eca6396bc3605e3e Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 10 Aug 2008 18:42:55 +0000 Subject: [PATCH 0234/1518] Added mkfatfs command to NSH git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@811 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 3ad82701fc..1f6993e4d8 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1028,6 +1028,8 @@ buildroot-0.1.0 2007-03-09 &lt;spudmonkey@racsa.co.cr&gt <pre><ul> nuttx-0.3.13 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + * Added mkfatfs command to NSH + pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; buildroot-0.1.1 2008-xx-xx &lt;spudmonkey@racsa.co.cr&gt From d48fd37e3ad22da7ae55f689818f13675afbbc16 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 10 Aug 2008 19:16:39 +0000 Subject: [PATCH 0235/1518] Added mkfifo command to NSH git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@812 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 1f6993e4d8..a00736b20b 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1029,6 +1029,7 @@ buildroot-0.1.0 2007-03-09 &lt;spudmonkey@racsa.co.cr&gt nuttx-0.3.13 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Added mkfatfs command to NSH + * Added mkfifo command to NSH pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 773e83821aa772b781ba9f2b74d533894812b860 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 10 Aug 2008 22:02:19 +0000 Subject: [PATCH 0236/1518] Misc NSH enhancements git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@813 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index a00736b20b..0daaf1afbb 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1028,8 +1028,9 @@ buildroot-0.1.0 2007-03-09 &lt;spudmonkey@racsa.co.cr&gt <pre><ul> nuttx-0.3.13 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - * Added mkfatfs command to NSH - * Added mkfifo command to NSH + * Added mkfatfs, mkfifo, sleep, usleep and nice commands to NSH + * NSH will not execute commands in background + * sched_get_priority_max/min returned error on SCHED_RR pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 76ed9b4a3ab16ec2940e4464e3edffe49a64d207 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 10 Aug 2008 22:03:58 +0000 Subject: [PATCH 0237/1518] typos git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@814 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 0daaf1afbb..0de5214559 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1029,7 +1029,7 @@ buildroot-0.1.0 2007-03-09 &lt;spudmonkey@racsa.co.cr&gt nuttx-0.3.13 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Added mkfatfs, mkfifo, sleep, usleep and nice commands to NSH - * NSH will not execute commands in background + * NSH will now execute commands in background * sched_get_priority_max/min returned error on SCHED_RR pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 2a0275bf12a2480f7a8c7d556565abcb64a97372 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 10 Aug 2008 22:16:04 +0000 Subject: [PATCH 0238/1518] Removed duplicate getenv() implementation git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@815 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 0de5214559..93cf94966a 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1031,6 +1031,7 @@ nuttx-0.3.13 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Added mkfatfs, mkfifo, sleep, usleep and nice commands to NSH * NSH will now execute commands in background * sched_get_priority_max/min returned error on SCHED_RR + * Removed duplicate getenv() implementation in /lib pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 528d51c825c5fc739162d93ffe020332e933c5f0 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 12 Aug 2008 23:59:32 +0000 Subject: [PATCH 0239/1518] Add 'sh' to NSH git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@819 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 93cf94966a..6356422c5c 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: August 10, 2008</p> + <p>Last Updated: August 12, 2008</p> </td> </tr> </table> @@ -1029,9 +1029,13 @@ buildroot-0.1.0 2007-03-09 &lt;spudmonkey@racsa.co.cr&gt nuttx-0.3.13 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Added mkfatfs, mkfifo, sleep, usleep and nice commands to NSH + * Fixed problem with console input in Cygwin-based simulator; NSH now works + with simulator. * NSH will now execute commands in background * sched_get_priority_max/min returned error on SCHED_RR * Removed duplicate getenv() implementation in /lib + * Correct detection of End-of-File in fgets + * Implement sh and crude script handler in NSH pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From d11167e8dd24ac7d4daac42dad5049b96c8d832d Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 13 Aug 2008 00:32:32 +0000 Subject: [PATCH 0240/1518] Fix read()/write() prototype git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@820 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 ++ Documentation/NuttxUserGuide.html | 16 ++++++++-------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 6356422c5c..72b61cb91a 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1036,6 +1036,8 @@ nuttx-0.3.13 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Removed duplicate getenv() implementation in /lib * Correct detection of End-of-File in fgets * Implement sh and crude script handler in NSH + * Fix prototype of read() and write(). Need to use ssize_t and size_t, not + int and unsigned int. pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index a6e6ea90d0..e5cb13eb3b 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -5917,18 +5917,18 @@ interface of the same name. <ul><pre> #include &lt;unistd.h&gt; - int close(int fd); - int dup(int fildes); - int dup2(int fildes1, int fildes2); - off_t lseek(int fd, off_t offset, int whence); - int read(int fd, void *buf, unsigned int nbytes); - int unlink(const char *path); - int write(int fd, const void *buf, unsigned int nbytes); + int close(int fd); + int dup(int fildes); + int dup2(int fildes1, int fildes2); + off_t lseek(int fd, off_t offset, int whence); + ssize_t read(int fd, void *buf, size_t nbytes); + int unlink(const char *path); + ssize_t write(int fd, const void *buf, size_t nbytes); </pre></ul> <ul><pre> #include &lt;sys/ioctl.h&gt; - int ioctl(int fd, int req, unsigned long arg); + int ioctl(int fd, int req, unsigned long arg); </pre></ul> <h2><a name="directoryoperations">2.11.3 Directory Operations</a></h2> From a13e826ec0207ee5b3354a56159dcf1db50cd089 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 16 Aug 2008 18:39:46 +0000 Subject: [PATCH 0241/1518] NSH redirected output git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@823 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 72b61cb91a..fdf88f3af6 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: August 12, 2008</p> + <p>Last Updated: August 16, 2008</p> </td> </tr> </table> @@ -1038,6 +1038,8 @@ nuttx-0.3.13 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Implement sh and crude script handler in NSH * Fix prototype of read() and write(). Need to use ssize_t and size_t, not int and unsigned int. + * Add support for redirection of command output in NSH + * NSH can now use both telnet and serial front ends together pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From e72ddd2f366c2111ad6dab87200a76d59239d2a1 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 17 Aug 2008 16:19:13 +0000 Subject: [PATCH 0242/1518] Fix error in FAT FS when file opened for O_APPEND git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@827 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index fdf88f3af6..c4bbf8b420 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: August 16, 2008</p> + <p>Last Updated: August 17, 2008</p> </td> </tr> </table> @@ -1040,6 +1040,12 @@ nuttx-0.3.13 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; int and unsigned int. * Add support for redirection of command output in NSH * NSH can now use both telnet and serial front ends together + * $variable can be used for any command value in NSH. + * Fixed an error in opendir() that could cause an assertion to fail + inappropriately. + * Correct an error in the FAT that caused files opened for writing with + O_APPEND to fail. The file was not being properly positioned to the + end of the file in that case. pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 8776d019b31ad4b83881a8bb88c3ac2fc436f42e Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 17 Aug 2008 18:59:50 +0000 Subject: [PATCH 0243/1518] Added 130 and if-then-else-fi to NSH git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@828 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index c4bbf8b420..f84038533c 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1046,6 +1046,8 @@ nuttx-0.3.13 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Correct an error in the FAT that caused files opened for writing with O_APPEND to fail. The file was not being properly positioned to the end of the file in that case. + * NSH now supports last exit status $? + * NSH now supports if-then[-else]-fi construct pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 88648593512fbbb622aca5487d8e90c91dcd60a1 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 17 Aug 2008 19:57:40 +0000 Subject: [PATCH 0244/1518] NSH now supports comments git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@830 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index f84038533c..fcf807ef79 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1028,19 +1028,19 @@ buildroot-0.1.0 2007-03-09 &lt;spudmonkey@racsa.co.cr&gt <pre><ul> nuttx-0.3.13 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - * Added mkfatfs, mkfifo, sleep, usleep and nice commands to NSH + * NSH: Added mkfatfs, mkfifo, sleep, usleep and nice commands * Fixed problem with console input in Cygwin-based simulator; NSH now works with simulator. * NSH will now execute commands in background * sched_get_priority_max/min returned error on SCHED_RR * Removed duplicate getenv() implementation in /lib * Correct detection of End-of-File in fgets - * Implement sh and crude script handler in NSH + * NSH: Implemented sh and crude script handler * Fix prototype of read() and write(). Need to use ssize_t and size_t, not int and unsigned int. - * Add support for redirection of command output in NSH + * NSH now supports redirection of command output * NSH can now use both telnet and serial front ends together - * $variable can be used for any command value in NSH. + * NSH: $variable can be used for any command value * Fixed an error in opendir() that could cause an assertion to fail inappropriately. * Correct an error in the FAT that caused files opened for writing with @@ -1048,6 +1048,7 @@ nuttx-0.3.13 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; end of the file in that case. * NSH now supports last exit status $? * NSH now supports if-then[-else]-fi construct + * NSH now supports comments beginning with '#' pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 4b2817cc0c91ab7f96ccaefa2293e0c08ba0cb99 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 20 Aug 2008 01:35:50 +0000 Subject: [PATCH 0245/1518] Add memory inspect modify commands to NSH git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@834 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index fcf807ef79..3c4bfe8ac2 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: August 17, 2008</p> + <p>Last Updated: August 19, 2008</p> </td> </tr> </table> @@ -1049,6 +1049,7 @@ nuttx-0.3.13 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * NSH now supports last exit status $? * NSH now supports if-then[-else]-fi construct * NSH now supports comments beginning with '#' + * NSH now supports commands to inspect and modify memory pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 9c03a4375795e1fdc22f48629b901532ddd429ad Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 22 Aug 2008 00:07:57 +0000 Subject: [PATCH 0246/1518] cat accepts multiple files git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@836 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 3c4bfe8ac2..1c48e5d583 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: August 19, 2008</p> + <p>Last Updated: August 21, 2008</p> </td> </tr> </table> @@ -1050,6 +1050,7 @@ nuttx-0.3.13 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * NSH now supports if-then[-else]-fi construct * NSH now supports comments beginning with '#' * NSH now supports commands to inspect and modify memory + * NSH cat command now supports multiple files on command line pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From f3ca416b4141facc5c880faf68c6e6dfab688c48 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 22 Aug 2008 23:38:33 +0000 Subject: [PATCH 0247/1518] Add chdir() and getcwd() git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@837 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 ++- Documentation/NuttxUserGuide.html | 9 ++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 1c48e5d583..05c44e37e7 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: August 21, 2008</p> + <p>Last Updated: August 22, 2008</p> </td> </tr> </table> @@ -1051,6 +1051,7 @@ nuttx-0.3.13 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * NSH now supports comments beginning with '#' * NSH now supports commands to inspect and modify memory * NSH cat command now supports multiple files on command line + * Add chdir() and getcwd() pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index e5cb13eb3b..0feb1ef0e1 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -21,7 +21,7 @@ User's Manual <p> Gregory Nutt <p> -<small>Last Update: August 10, 2008</small> +<small>Last Update: August 22, 2008</small> </center> <h1>1.0 <A NAME="Introduction">Introduction</a></h1> @@ -5942,6 +5942,11 @@ interface of the same name. void seekdir(FAR DIR *dirp, int loc); int telldir(FAR DIR *dirp); </pre></ul> +<ul><pre> + #include &lt;unistd.h&gt; + int chdir(FAR const char *path); + FAR char *getcwd(FAR char *buf, size_t size); +</pre></ul> <h2><a name="standardio">2.11.4 Standard I/O</a></h2> <ul><pre> @@ -5970,10 +5975,8 @@ interface of the same name. int vfprintf(FILE *stream, const char *s, va_list ap); int vsprintf(char *buf, const char *s, va_list ap); - int chdir(const char *path); /* Prototyped but not implemented */ FILE *fdopen(int fd, const char *type); int fstat(int fd, FAR struct stat *buf); /* Prototyped but not implemented */ - char *getcwd(FAR char *buf, size_t size); /* Prototyped but not implemented */ int mkdir(const char *path, mode_t mode); int rmdir(const char *path); int stat(const char *path, FAR struct stat *buf); From 5160d4b9f5196f25143910b6a35f5a8bd384693e Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 23 Aug 2008 15:16:10 +0000 Subject: [PATCH 0248/1518] Added ch and pwd to NSH git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@841 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 05c44e37e7..c67009fd0a 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: August 22, 2008</p> + <p>Last Updated: August 23, 2008</p> </td> </tr> </table> @@ -1052,6 +1052,10 @@ nuttx-0.3.13 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * NSH now supports commands to inspect and modify memory * NSH cat command now supports multiple files on command line * Add chdir() and getcwd() + * Fix error in getopt() when called with argc==1 + * Fix error in stat() when used on the root directory + * NSH: Add cd and pwd commands and current working directory to all NSH + commands that refer to paths. pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 83a5d5adb06dcf788361fceef320205eb6e4024c Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 29 Aug 2008 15:36:02 +0000 Subject: [PATCH 0249/1518] Fix Linux sim errors/warning git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@842 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index c67009fd0a..f01dbd6e20 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: August 23, 2008</p> + <p>Last Updated: August 29, 2008</p> </td> </tr> </table> @@ -1056,6 +1056,8 @@ nuttx-0.3.13 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Fix error in stat() when used on the root directory * NSH: Add cd and pwd commands and current working directory to all NSH commands that refer to paths. + * Fix errors and warnings introduced into Linux sim build because of recent + Cygwin-related changes pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From cc696ae083dfc843308715135b14d7a8014b5bf7 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 29 Aug 2008 16:15:00 +0000 Subject: [PATCH 0250/1518] Add mem command to NSH git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@843 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index f01dbd6e20..ade9169574 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1057,7 +1057,8 @@ nuttx-0.3.13 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * NSH: Add cd and pwd commands and current working directory to all NSH commands that refer to paths. * Fix errors and warnings introduced into Linux sim build because of recent - Cygwin-related changes + Cygwin-based sim changes + * NSH: Add mem command to display heap usage pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 1d16e201b098b6cf352afa31d6a7ec1e557478a7 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 29 Aug 2008 21:14:45 +0000 Subject: [PATCH 0251/1518] Basic telnet NSH on ARM9 git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@852 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index ade9169574..05e587ae32 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1059,6 +1059,9 @@ nuttx-0.3.13 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Fix errors and warnings introduced into Linux sim build because of recent Cygwin-based sim changes * NSH: Add mem command to display heap usage + * Added telnet NSH configuration for Neuros OSD. + * Basic integration of concurrent telnet/serial NSH functional on Neuros + OSD (some bugs on background commands). pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From cdae26dba5e5743170161ca8d65fe0ed04397974 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 30 Aug 2008 14:37:49 +0000 Subject: [PATCH 0252/1518] Fix environment sharing bug git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@854 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 05e587ae32..e81c390864 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: August 29, 2008</p> + <p>Last Updated: August 30, 2008</p> </td> </tr> </table> @@ -1061,7 +1061,9 @@ nuttx-0.3.13 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * NSH: Add mem command to display heap usage * Added telnet NSH configuration for Neuros OSD. * Basic integration of concurrent telnet/serial NSH functional on Neuros - OSD (some bugs on background commands). + OSD. + * Fixed a critical bug that effects the way that environement variables are + shared amongst pthreads. pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From e327208d3c7aab50cf1f07e3e4f13d94483bcb07 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 1 Sep 2008 13:59:54 +0000 Subject: [PATCH 0253/1518] Add uIP support more multi-threaded socket access git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@858 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 7 +++++-- Documentation/NuttxPortingGuide.html | 6 +++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index e81c390864..c11317ecca 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: August 30, 2008</p> + <p>Last Updated: September 1, 2008</p> </td> </tr> </table> @@ -1062,8 +1062,11 @@ nuttx-0.3.13 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Added telnet NSH configuration for Neuros OSD. * Basic integration of concurrent telnet/serial NSH functional on Neuros OSD. - * Fixed a critical bug that effects the way that environement variables are + * Fixed a critical bug that effects the way that environment variables are shared amongst pthreads. + * uIP port enhance to support multi-threaded, concurrent socket access. So, + for example, one thread can be reading from a socket while another is + writing to the socket. pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 4c07bbba76..939ba8bdcb 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -16,7 +16,7 @@ </b></big></h1> <p><small>by</small></p> <p>Gregory Nutt</p> - <p><small>Last Update: July 21, 2008</small></p> + <p><small>Last Update: September 1, 2008</small></p> </center> <center><h1>Table of Contents</h1></center> @@ -1527,6 +1527,10 @@ The system can be re-made subsequently by just typing <code>make</code>. <li> <code>CONFIG_NSOCKET_DESCRIPTORS</code>: Maximum number of socket descriptors per task/thread. </li> + <li> + <code>CONFIG_NET_NACTIVESOCKETS</code>: Maximum number of concurrent socket operations (recv, send, etc.). + Default: <code>CONFIG_NET_TCP_CONNS</code>+<code>CONFIG_NET_UDP_CONNS</code>. + </li> <li> <code>CONFIG_NET_SOCKOPTS</code>: Enable or disable support for socket options. </li> From b0273b71ab273154c7bf1afaea0891f0bcacca75 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 1 Sep 2008 17:11:34 +0000 Subject: [PATCH 0254/1518] Prep for 0.3.13 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@861 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 109 +++++++++++++++++++-------------------- 1 file changed, 52 insertions(+), 57 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index c11317ecca..90d8f112f6 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -456,28 +456,44 @@ </table> <p> - The 24th release of NuttX (nuttx-0.3.12) is available for download + The 2tth release of NuttX (nuttx-0.3.13) is available for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. The change log associated with the release is available <a href="#currentrelease">here</a>. Unreleased changes after this release are available in CVS. These unreleased changes are listed <a href="#pendingchanges">here</a>. </p> - The nuttx-0.3.12 release includes some minor bugfixes as well as a few new features. +<p> + The nuttx-0.3.13 release includes some important bug fixes as well as a few new features. Bugs fixed include: <ul> - <li>Corrected an error in recursive mutex implementation.</li> - <li>task_create() was only dup'in the first three file descriptors.</li> - <li>Fixed driver open reference counting errors in dup(), dup2(), and exit().</li> - <li>Fixed error handling logic in fflush().</li> + <li>Fixed problems with Cygwin-based console input. NSH now works with the Cygwin simulator.</li> + <li>sched_get_priority_max/min returned error on SCHED_RR.</li> + <li>Corrected detection of End-of-File in fgets().</li> + <li>Fixed an error in opendir() that could cause an assertion to fail inappropriately.</li> + <li>Corrected an error in the FAT that caused files opened for writing with O_APPEND to fail.</li> + <li>Fix error in getopt() when called with argc==1.</li> + <li>Fix error in stat() when used on the root directory.</li> + <li>Fixed a critical bug that effects the way that environment variables are shared amongst + pthreads.</li> + <li>uIP port now supports multi-threaded, concurrent socket access. So, for example, one + thread can be reading from a socket while another is writing to the socket.</li> </ul> </p> <p> New features were also added: <ul> - <li>Pipes and pipe() API</li> - <li>FIFOs and mkfifo() API</li> - <li>mkfatfs() API can be used to format FAT file systems.</li> + + <li>New OS APIs: chdir() and getcwd().</li> + <li>The Nuttx shell (NSH) has been extended in many ways: + <ul> + <li>New commands: mkfatfs, mkfifo, sleep, usleep, nice, sh, cd, and pwd commands + <li>New memory inspection commands and heap usage commands + <li>New capabilities: Execution of commands in background, execution of simple scripts, + redirection of command output, last command status ($?) + <li>Now supports if-then[-else]-fi construct + <li>and other features as noted in the ChangeLog. + </ul></li> </ul> </p> <p> @@ -979,54 +995,7 @@ Other memory: </table> <pre><ul> -0.3.12 2008-08-10 Gregory Nutt <spudmonkey@racsa.co.cr> - - * Improved solution to POSIX timer lifetime controls bug fixed in 0.3.11. - * Add test for recursive mutexes - * Correct bug in recursive mutex logic - * Add mkfifo() - * Add pipe() and test for both pipes and fifos - * Attempts to open a FIFO will now block until there is at least one writer - * Add test/Fixed errors in FIFO reader/writer interlocks - * Removed limitation: task_create() was only dup'ing 3 file descriptors (now - dups all open file descriptors). - * Added a test for redirection of stdio through pipes - * Fixed error in dup and dup2: Must call open/close methods in fs/driver so that - driver can correctly maintain open reference counts. - * Same issue on closing file descriptors in exit() - * Fixed in error in stdio flush logic. Needed ssize_t vs size_t for error - check. - * Moved all FAT related files from fs to fs/fat - * Implemented mkfatfs(), a non-standard API to create a FAT filesystem on a - block device (not yet tested). - * Added a test for mkfatfs() on a RAM disk in examples/mount and verified - basic mkfatfs functionality for FAT12. - -pascal-0.1.2 2008-02-10 Gregory Nutt <spudmonkey@racsa.co.cr> - - * Add logic to build and link with the ZDS-II toolchain - use with the z16f. - * Make sure that POFF header structures are aligned - * Standardized POFF file format to big-endian - * Break up large switch statements to lower complexity - and eliminate a compiler bug - * Changes so that runtime compiles with SDCC. - -buildroot-0.1.0 2007-03-09 &lt;spudmonkey@racsa.co.cr&gt - - * Support for arm-elf toolchain -</pre></ul> - -<table width ="100%"> - <tr bgcolor="#e4e4e4"> - <td> - <a name="pendingchanges">Unreleased Changes</a> - </td> - </tr> -</table> - -<pre><ul> -nuttx-0.3.13 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; +nuttx-0.3.13 2008-09-01 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * NSH: Added mkfatfs, mkfifo, sleep, usleep and nice commands * Fixed problem with console input in Cygwin-based simulator; NSH now works @@ -1068,6 +1037,32 @@ nuttx-0.3.13 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; for example, one thread can be reading from a socket while another is writing to the socket. +pascal-0.1.2 2008-02-10 Gregory Nutt <spudmonkey@racsa.co.cr> + + * Add logic to build and link with the ZDS-II toolchain + use with the z16f. + * Make sure that POFF header structures are aligned + * Standardized POFF file format to big-endian + * Break up large switch statements to lower complexity + and eliminate a compiler bug + * Changes so that runtime compiles with SDCC. + +buildroot-0.1.0 2007-03-09 &lt;spudmonkey@racsa.co.cr&gt + + * Support for arm-elf toolchain +</pre></ul> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="pendingchanges">Unreleased Changes</a> + </td> + </tr> +</table> + +<pre><ul> +nuttx-0.3.14 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; buildroot-0.1.1 2008-xx-xx &lt;spudmonkey@racsa.co.cr&gt From d3cf0f902f0a4fe54605d4b80c155e545525ccbb Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 1 Sep 2008 20:35:41 +0000 Subject: [PATCH 0255/1518] Fix fseek/ftell; add fsetpos/fgetpos git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@862 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 5 +++ Documentation/NuttxUserGuide.html | 75 ++++++++++++++++++++++++++++--- 2 files changed, 75 insertions(+), 5 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 90d8f112f6..0b33ac548b 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1062,6 +1062,11 @@ buildroot-0.1.0 2007-03-09 &lt;spudmonkey@racsa.co.cr&gt <pre><ul> nuttx-0.3.14 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + * FAT FS now uses position variable in struct file. This simplifies operations + like ftell(). + * fseek() needs to discard bytes buffered by ungetc(). + * Corrected ftell() return value. + * Added fsetpos() and fgetpos(). pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 0feb1ef0e1..d97281e787 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -21,7 +21,7 @@ User's Manual <p> Gregory Nutt <p> -<small>Last Update: August 22, 2008</small> +<small>Last Update: September 1, 2008</small> </center> <h1>1.0 <A NAME="Introduction">Introduction</a></h1> @@ -5910,11 +5910,14 @@ interface of the same name. </p> <h2><a name="driveroperations">2.11.2 Driver Operations</a></h2> +<a name="drvrfcntlops"> <ul><pre> #include &lt;fcntl.h&gt; int open(const char *path, int oflag, ...); </pre></ul> +</a> +<a name="drvrunistdops"> <ul><pre> #include &lt;unistd.h&gt; int close(int fd); @@ -5925,13 +5928,17 @@ interface of the same name. int unlink(const char *path); ssize_t write(int fd, const void *buf, size_t nbytes); </pre></ul> +</a> +<a name="drvrioctlops"> <ul><pre> #include &lt;sys/ioctl.h&gt; int ioctl(int fd, int req, unsigned long arg); </pre></ul> +</a> <h2><a name="directoryoperations">2.11.3 Directory Operations</a></h2> +<a name="dirdirentops"> <ul><pre> #include &lt;dirent.h&gt; int closedir(DIR *dirp); @@ -5942,11 +5949,15 @@ interface of the same name. void seekdir(FAR DIR *dirp, int loc); int telldir(FAR DIR *dirp); </pre></ul> +</a> + +<a name="dirunistdops"> <ul><pre> #include &lt;unistd.h&gt; int chdir(FAR const char *path); FAR char *getcwd(FAR char *buf, size_t size); </pre></ul> +</a> <h2><a name="standardio">2.11.4 Standard I/O</a></h2> <ul><pre> @@ -5956,13 +5967,16 @@ interface of the same name. int feof(FILE *stream); /* Prototyped but not implemented */ int ferror(FILE *stream); /* Prototyped but not implemented */ int fgetc(FILE *stream); + int fgetpos(FILE *stream, fpos_t *pos); char *fgets(char *s, int n, FILE *stream); FILE *fopen(const char *path, const char *type); int fprintf(FILE *stream, const char *format, ...); int fputc(int c, FILE *stream); int fputs(const char *s, FILE *stream); size_t fread(void *ptr, size_t size, size_t n_items, FILE *stream); - int fseek(FILE *stream, long int offset, int whence); /* Prototyped but not implemented */ + int fseek(FILE *stream, long int offset, int whence); + int fsetpos(FILE *stream, fpos_t *pos); + long ftell(FILE *stream); size_t fwrite(const void *ptr, size_t size, size_t n_items, FILE *stream); char *gets(char *s); @@ -6973,29 +6987,57 @@ notify a task when a message is available on a queue. <h1><a name="index">Index</a></h1> <table width="100%"> <tr> -<td valign="top"> +<td valign="top" width="34%"> <li><a href="#accept">accept</a></li> <li><a href="#bind">bind</a></li> + <li><a href="#dirunistdops">chdir</a></li> <li><a href="#clockgetres">clock_getres</a></li> <li><a href="#clockgettime">clock_gettime</a></li> <li><a href="#ClocksNTimers">Clocks</a></li> <li><a href="#clocksettime">clock_settime</a></li> + <li><a href="#drvrunistdops">close</a></li> + <li><a href="#dirdirentops">closedir</a></li> <li><a href="#connect">connect</a></li> <li><a href="#Data_Structures">Data structures</a></li> <li><a href="#directoryoperations">Directory operations</a></li> <li><a href="#driveroperations">Driver operations</a></li> + <li><a href="#drvrunistdops">dup</a></li> + <li><a href="#drvrunistdops">dup2</a></li> <li><a href="#exit">exit</a></li> <li><a href="#fatsupport">FAT File System Support</a></li> + <li><a href="#standardio">fclose</a></li> + <li><a href="#standardio">fdopen</a></li> + <li><a href="#standardio">feof</a></li> + <li><a href="#standardio">ferror</a></li> <li><a href="#FileSystem">File system, interfaces</a></li> <li><a href="#FileSystemOverview">File system, overview</a></li> + <li><a href="#standardio">fflush</a></li> + <li><a href="#standardio">fgetc</a></li> + <li><a href="#standardio">fgetpos</a></li> + <li><a href="#standardio">fgets</a></li> + <li><a href="#standardio">fopen</a></li> + <li><a href="#standardio">fprintf</a></li> + <li><a href="#standardio">fputc</a></li> + <li><a href="#standardio">fputs</a></li> + <li><a href="#standardio">fread</a></li> + <li><a href="#standardio">fseek</a></li> + <li><a href="#standardio">fsetpos</a></li> + <li><a href="#standardio">fstat(</a></li> + <li><a href="#standardio">ftell</a></li> + <li><a href="#standardio">fwrite</a></li> + <li><a href="#dirunistdops">getcwd</a></li> <li><a href="#getpid">getpid</a></li> + <li><a href="#standardio">gets</a></li> <li><a href="#getsockopt">getsockopt</a></li> <li><a href="#gmtimer">gmtime_r</a></li> <li><a href="#Introduction">Introduction</a> + <li><a href="#drvrioctlops">ioctl</a></li> <li><a href="#kill">kill</a></li> <li><a href="#listen">listen</a></li> <li><a href="#localtimer">localtime_r</a></li> + <li><a href="#drvrunistdops">lseek</a></li> <li><a href="#Message_Queue">Named Message Queue Interfaces</a> + <li><a href="#standardio">mkdir</a></li> <li><a href="#mkfatfs">mkfatfs</a></li> <li><a href="#mkfifo">mkfifo</a></li> <li><a href="#mktime">mktime</a></li> @@ -7010,8 +7052,13 @@ notify a task when a message is available on a queue. <li><a href="#mqtimedsend">mq_timedsend</a></li> <li><a href="#mqunlink">mq_unlink</a></li> <li><a href="#Network">Network Interfaces</a></li> + <li><a href="#drvrfcntlops">open</a></li> + <li><a href="#dirdirentops">opendir</a></li> <li><a href="#OS_Interfaces">OS Interfaces</a></li> <li><a href="#pipe">pipe</a></li> +</td> +<td valign="top" width="33%"> + <li><a href="#standardio">printf</a></li> <li><a href="#Pthread">Pthread Interfaces</a> <li><a href="#pthreadattrdestroy">pthread_attr_destroy</a></li> <li><a href="#pthreadattrgetinheritsched">pthread_attr_getinheritsched</a></li> @@ -7052,8 +7099,6 @@ notify a task when a message is available on a queue. <li><a href="#pthreadmutexattrgetpshared">pthread_mutexattr_getpshared</a></li> <li><a href="#pthreadmutexattrgettype">pthread_mutexattr_gettype</a></li> <li><a href="#pthreadmutexattrinit">pthread_mutexattr_init</a></li> -</td> -<td valign="top"> <li><a href="#pthreadmutexattrsetpshared">pthread_mutexattr_setpshared</a></li> <li><a href="#pthreadmutexattrsettype">pthread_mutexattr_settype</a></li> <li><a href="#pthreadmutexdestrory">pthread_mutex_destroy</a></li> @@ -7070,10 +7115,19 @@ notify a task when a message is available on a queue. <li><a href="#pthreadsigmask">pthread_sigmask</a></li> <li><a href="#pthreadtestcancelstate">pthread_testcancelstate</a></li> <li><a href="#pthreadyield">pthread_yield</a></li> + <li><a href="#standardio">puts</a></li> + <li><a href="#drvrunistdops">read</a></li> + <li><a href="#dirdirentops">readdir</a></li> + <li><a href="#dirdirentops">readdir_r</a></li> <li><a href="#recv">recv</a></li> <li><a href="#recvfrom">recvfrom</a></li> + <li><a href="#standardio">rename</a></li> + <li><a href="#standardio">rmdir</a></li> + <li><a href="#dirdirentops">rewinddir</a></li> <li><a href="#schedgetparam">sched_getparam</a></li> <li><a href="#schedgetprioritymax">sched_get_priority_max</a></li> +</td> +<td valign="top"> <li><a href="#schedgetprioritymin">sched_get_priority_min</a></li> <li><a href="#schedgetrrinterval">sched_get_rr_interval</a></li> <li><a href="#schedlockcount">sched_lockcount</a></li> @@ -7093,6 +7147,7 @@ notify a task when a message is available on a queue. <li><a href="#semunlink">sem_unlink</a></li> <li><a href="#semwait">sem_wait</a></li> <li><a href="#setgetscheduler">sched_getscheduler</a></li> + <li><a href="#dirdirentops">seekdir</a></li> <li><a href="#send">send</a></li> <li><a href="#sendto">sendto</a></li> <li><a href="#setsockopt">setsockopt</a></li> @@ -7110,7 +7165,10 @@ notify a task when a message is available on a queue. <li><a href="#sigtimedwait">sigtimedwait</a></li> <li><a href="#sigwaitinfo">sigwaitinfo</a></li> <li><a href="#socket">socket</a></li> + <li><a href="#standardio">sprintf</a></li> <li><a href="#standardio">Standard I/O</a></li> + <li><a href="#standardio">stat</a></li> + <li><a href="#standardio">statfs</a></li> <li><a href="#taskactivate">task_activate</a></li> <li><a href="#Task_Control">Task Control Interfaces</a> <li><a href="#taskcreate">task_create</a></li> @@ -7119,18 +7177,25 @@ notify a task when a message is available on a queue. <li><a href="#taskrestart">task_restart</a></li> <li><a href="#Task_Schedule">Task Scheduling Interfaces</a> <li><a href="#Task_Switch">Task Switching Interfaces</a> + <li><a href="#dirdirentops">telldir</a></li> <li><a href="#timercreate">timer_create</a></li> <li><a href="#timerdelete">timer_delete</a></li> <li><a href="#timergetoverrun">timer_getoverrun</a></li> <li><a href="#timergettime">timer_gettime</a></li> <li><a href="#ClocksNTimers">Timers</a></li> <li><a href="#timersettime">timer_settime</a></li> + <li><a href="#standardio">ungetc</a></li> + <li><a href="#drvrunistdops">unlink</a></li> + <li><a href="#standardio">vfprintf</a></li> + <li><a href="#standardio">vprintf</a></li> + <li><a href="#standardio">vsprintf</a></li> <li><a href="#Watchdogs">Watchdog Timer Interfaces</a> <li><a href="#wdcancel">wd_cancel</a></li> <li><a href="#wdcreate">wd_create</a></li> <li><a href="#wddelete">wd_delete</a></li> <li><a href="#wdgettime">wd_gettime</a></li> <li><a href="#wdstart">wd_start</a></li> + <li><a href="#drvrunistdops">write</a></li> </td> </tr> </table> From ce39019fb1fde0aea691dcf9931f33b3de788ce6 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 2 Sep 2008 00:37:18 +0000 Subject: [PATCH 0256/1518] Add test and [ commands git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@864 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 0b33ac548b..c96db7b607 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -456,7 +456,7 @@ </table> <p> - The 2tth release of NuttX (nuttx-0.3.13) is available for download + The 25th release of NuttX (nuttx-0.3.13) is available for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. The change log associated with the release is available <a href="#currentrelease">here</a>. @@ -1067,6 +1067,7 @@ nuttx-0.3.14 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * fseek() needs to discard bytes buffered by ungetc(). * Corrected ftell() return value. * Added fsetpos() and fgetpos(). + * NSH now supports 'test' and '[' commands pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From aa10299aa06df4e25171ee037f7aac48e87de1ae Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 2 Sep 2008 20:42:01 +0000 Subject: [PATCH 0257/1518] Add uIP access to ICMP protocol git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@869 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 10 ++++++++-- Documentation/NuttxPortingGuide.html | 7 ++++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index c96db7b607..f05fdc6ce9 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: September 1, 2008</p> + <p>Last Updated: September 2, 2008</p> </td> </tr> </table> @@ -1067,7 +1067,13 @@ nuttx-0.3.14 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * fseek() needs to discard bytes buffered by ungetc(). * Corrected ftell() return value. * Added fsetpos() and fgetpos(). - * NSH now supports 'test' and '[' commands + * NSH: Now supports 'test' and '[' commands + * Correct error in send() timeout logic. + * Correct error in multi-threaded socket handling in send() and sendto(). + Outgoing data could overwrite incoming data. + * Add support to uIP for application access to ICMP protocol stacks; Add + ping request logic. + * NSH: Add ping command pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 939ba8bdcb..2f29e0b013 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -1567,7 +1567,12 @@ The system can be re-made subsequently by just typing <code>make</code>. <code>CONFIG_NET_UDP_CONNS</code>: The maximum amount of concurrent UDP connections </li> <li> - <code>CONFIG_NET_ICMP</code>: ICMP ping support on or off + <code>CONFIG_NET_ICMP</code>: Enable minimal ICMP support. Includes built-in support + for sending replies to received ECHO (ping) requests. + </li> + <li> + <code>CONFIG_NET_ICMP_PING</code>: Provide interfaces to support application level + support for sending ECHO (ping) requests and associating ECHO replies. </li> <li> <code>CONFIG_NET_PINGADDRCONF</code>: Use "ping" packet for setting IP address From e27dcc2a2097a6400d535733744fa2dc3459bcbc Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 3 Sep 2008 14:57:36 +0000 Subject: [PATCH 0258/1518] Fix ICMP and UDP IP checksums git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@871 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index f05fdc6ce9..06169e4ea0 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: September 2, 2008</p> + <p>Last Updated: September 3, 2008</p> </td> </tr> </table> @@ -1074,6 +1074,7 @@ nuttx-0.3.14 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Add support to uIP for application access to ICMP protocol stacks; Add ping request logic. * NSH: Add ping command + * Correct IP checksum calculation in ICMP and UDP message send logic. pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 634e43b8e00497019a643c80e873cfa194b2060c Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 3 Sep 2008 17:29:17 +0000 Subject: [PATCH 0259/1518] Add NSH README file git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@873 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 06169e4ea0..560107afda 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1075,6 +1075,7 @@ nuttx-0.3.14 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; ping request logic. * NSH: Add ping command * Correct IP checksum calculation in ICMP and UDP message send logic. + * NSH: Created a more detailed README file for NSH. pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 41a656fb606481487779d75591bf9d610f3dc947 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 4 Sep 2008 00:04:52 +0000 Subject: [PATCH 0260/1518] NSH Documentation git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@874 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttShell.html | 1355 ++++++++++++++++++++++++++++++++++ Documentation/NuttX.html | 6 +- 2 files changed, 1360 insertions(+), 1 deletion(-) create mode 100644 Documentation/NuttShell.html diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html new file mode 100644 index 0000000000..6989688fc4 --- /dev/null +++ b/Documentation/NuttShell.html @@ -0,0 +1,1355 @@ +<html> +<head> +<title>NuttX</title> +</head> +<body background="backgd.gif"> +<hr><hr> +<table width ="100%"> + <tr align="center" bgcolor="#e4e4e4"> + <td> + <h1><big><font color="#3c34ec"><i>NuttShell (NSH)</i></font></big></h1> + <p>Last Updated: September 3, 2008</p> + </td> + </tr> +</table> +<hr><hr> +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <h1>Table of Contents</h1> + </td> + </tr> +</table> + +<center><table width ="80%"> +<tr> +<td> +<table> +<tr> + <td><img src="favicon.ico"></td> + <td> + <a href="#overview">1.0 Overview</a> + </td> +</tr> +<tr> + <td><br></td> + <td> + <a href="#frontend">1.1 Console/NSH Front End</a> + </td> +</tr> +<tr> + <td><br></td> + <td> + <a href="#cmdoverview">1.2 Command Overview</a> + </td> +</tr> +<tr> + <td><br></td> + <td> + <a href="#conditional">1.3 Conditional Command Execution</a> + </td> +</tr> +<tr> + <td><br></td> + <td> + <a href="#builtinvars">1.4 Built-In Variables</a> + </td> +</tr> +<tr> + <td><br></td> + <td> + <a href="#currentwd">1.5 Current Working Directory</a> + </td> +</tr> +<tr> + <td><br></td> + <td> + <a href="#environvars">1.6 Environment Variables</a> + </td> +</tr> + +<tr> + <td><img src="favicon.ico"></td> + <td> + <a href="#commands">2.0 Commands</a>. + </td> +</tr> +<tr> + <td><br></td> + <td> + <a href="#cmdtest">2.1 Evaluate Expression (test)</a> + </td> +</tr> +<tr> + <td><br></td> + <td> + <a href="#cmdcat">2.2 Concatenate Files (cat)</a> + </td> +</tr> +<tr> + <td><br></td> + <td> + <a href="#cmdcd">2.3 Change Current Working Directory (cd)</a> + </td> +</tr> +<tr> + <td><br></td> + <td> + <a href="#cmdcp">2.4 Copy Files (cp)</a> + </td> +</tr> +<tr> + <td><br></td> + <td> + <a href="#cmdecho">2.5 Echo Strings and Variables (echo)</a> + </td> +</tr> +<tr> + <td><br></td> + <td> + <a href="#cmdexec">2.6 Execute User Code (exec)</a> + </td> +</tr> +<tr> + <td><br></td> + <td> + <a href="#cmdexit">2.7 Exit NSH (exit)</a> + </td> +</tr> +<tr> + <td><br></td> + <td> + <a href="#cmdhelp">2.8 Show Usage Command Usage (help)</a> + </td> +</tr> +<tr> + <td><br></td> + <td> + <a href="#cmdifconfig">2.9 Show Network Configuration (ifconfig)</a> + </td> +</tr> +<tr> + <td><br></td> + <td> + <a href="#cmdls">2.10 List Directory Contents (ls)</a> + </td> +</tr> +<tr> + <td><br></td> + <td> + <a href="#cmdmbhw">2.11 Access Memory (mb, mh, and mw)</a> + </td> +</tr> +<tr> + <td><br></td> + <td> + <a href="#cmdmem">2.12 Show Memory Manager Status (mem)</a> + </td> +</tr> +<tr> + <td><br></td> + <td> + <a href="#cmdps">2.13 Show Current Tasks and Threads (ps)</a> + </td> +</tr> +<tr> + <td><br></td> + <td> + <a href="#cmdmkdir">2.14 Create a Directory (mkdir)</a> + </td> +</tr> +<tr> + <td><br></td> + <td> + <a href="#cmdmkfatfs">2.15 Create a FAT Filesystem (mkfatfs)</a> + </td> +</tr> +<tr> + <td><br></td> + <td> + <a href="#cmdmkfifo">2.16 Create a FIFO (mkfifo)</a> + </td> +</tr> +<tr> + <td><br></td> + <td> + <a href="#cmdmount">2.17 Mount a File System (mount)</a> + </td> +</tr> +<tr> + <td><br></td> + <td> + <a href="#cmdping">2.18 Check Network Peer (ping)</a> + </td> +</tr> +<tr> + <td><br></td> + <td> + <a href="#cmdpwd">2.19 Show Current Working Directory (pwd)</a> + </td> +</tr> +<tr> + <td><br></td> + <td> + <a href="#cmdrm">2.20 Remove a File (rm)</a> + </td> +</tr> +<tr> + <td><br></td> + <td> + <a href="#cmdrmdir">2.21 Remove a Directory (rmdir)</a> + </td> +</tr> +<tr> + <td><br></td> + <td> + <a href="#cmdset">2.22 Set an Environment Variable (set)</a> + </td> +</tr> +<tr> + <td><br></td> + <td> + <a href="#cmdsh">2.23 Execute an NSH Script (sh)</a> + </td> +</tr> +<tr> + <td><br></td> + <td> + <a href="#cmdsleep">2.24 Wait for Seconds (sleep)</a> + </td> +</tr> +<tr> + <td><br></td> + <td> + <a href="#cmdunmount">2.25 Unmount a File System (umount)</a> + </td> +</tr> +<tr> + <td><br></td> + <td> + <a href="#cmdunset">2.26 Unset an Environment Variable (unset)</a> + </td> +</tr> +<tr> + <td><br></td> + <td> + <a href="#cmdusleep">2.27 Wait for Microseconds (usleep)</a> + </td> +</tr> +<tr> + <td><img src="favicon.ico"></td> + <td> + <a href="#configuration">3.0 Configuration Settings</a> +</td> +</tr> +<tr> + <td><br></td> + <td> + <a href="#cmddependencies">3.1 Command Dependencies on Configuration Settings</a> + </td> +</tr> +<tr> + <td><br></td> + <td> + <a href="#nshconfiguration">3.2 NSH-Specific Configuration Settings</a> + </td> +</tr> +</table> +</td> +</tr> +</table></center> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="overview"><h1>1.0 Overview</h1></a> + </td> + </tr> +</table> + +<p> + The <code>examples/nsh</code> sub-directory contains the NuttShell (NSH). + NSH is a simple shell application for NuttX. +</p> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="frontend"><h2>1.1 Console/NSH Front End</h2></a> + </td> + </tr> +</table> + +<p> + Using settings in the configuration file, NSH may be configured to + use either the serial stdin/out or a telnet connection as the console + or BOTH. When NSH is started, you will see the following welcome on + either console: + <ul><pre> +NuttShell (NSH) +nsh&gt; +</pre></ul> + <code>nsh&gt;</code> is the NSH prompt and indicates that you may enter a command + from the console. +</p> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="cmdoverview"><h2>1.2 Command Overview</h2></a> + </td> + </tr> +</table> + +<p> + <b>Simple, Re-directed, and Background Commands</b>. + The NuttShell (NSH) is a simple shell application. + NSH supports the following commands forms: +</p> +<ul><table> + <tr> + <td>Simple command:</td> + <td><code>&lt;cmd&gt;</code></td> + </tr> + <tr> + <td>Command with re-directed output:</td> + <td><code> + &lt;cmd&gt; &gt; &lt;file&gt;<br> + &lt;cmd&gt; &gt;&gt; &lt;file&gt; + </code></td> + </tr> + <tr> + <td>Background command:</td> + <td><code>&lt;cmd&gt; &amp;</code></td> + </tr> + <tr> + <td>Re-directed background command:</td> + <td><code> + &lt;cmd&gt; &gt; &lt;file&gt; &amp;<br> + &lt;cmd&gt; &gt;&gt; &lt;file&gt; &amp; + </code></td> + </tr> +</table></ul> +<p>Where:</p> +<ul><table> + <tr> + <td><code>&lt;cmd&gt;</code></td> + <td> + is any one of the simple commands listed later. + </td> + </tr> + <tr> + <td><code>&lt;file&gt;</code></td> + <td> + is the full or relative path to any writable object + in the filesystem name space (file or character driver). + Such objects will be referred to simply as files throughout + this document. + </td> + </tr> +</table></ul> +<p> + <b><big><code>nice</code></big>'d Background Commands</b> + NSH executes at the mid-priority (128). Backgrounded commands can + be made to execute at higher or lower priorities using <code>nice</code>: +</p> +<ul><code> + [nice [-d &lt;niceness&gt;&gt;]] &lt;cmd&gt; [&gt; &lt;file&gt;|&gt;&gt; &lt;file&gt;] [&amp;] +</code></ul> +<p> + Where <code>&lt;niceness&gt;</code> is any value between -20 and 19 where lower + (more negative values) correspond to higher priorities. + The default niceness is 10. +</p> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="conditional"><h2>1.3 Conditional Command Execution</h2></a> + </td> + </tr> +</table> + +<p> + An <code>if-then[-else]-fi</code> construct is also supported in order to + support conditional execution of commands. This works from the + command line but is primarily intended for use within NSH scripts + (see the <a href="#cmdsh"><code>sh</code></a> commnd). The syntax is as follows: +</p> +<ul><pre> +if &lt;cmd&gt; +then + [sequence of &lt;cmd&gt;] +else + [sequence of &lt;cmd&gt;] +fi +</pre></ul> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="builtinvars"><h2>1.4 Built-In Variables</h2></a> + </td> + </tr> +</table> + +<ul><table> + <tr> + <td valign="top"><b><code>$?</code></b></td> + <td> + The result of the last simple command execution. + On backgrounded commands, this variable holds only the result of spawning the background command. + </td> + </tr> +</table></ul> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="currentwd"><h2>1.5 Current Working Directory</h2></a> + </td> + </tr> +</table> + +<p> + <b><code>cd</code> and <code>pwd</code></b>. + All path arguments to commands may be either an absolute path or a + path relative to the current working directory. The current working + directory is set using the 'cd' command and can be queried either + by using the <a href="#cmdpwd"><code>pwd</code></a> command or by + using the <a href="#cmdecho"><code>echo</code></a> <a href="#environvars"><code>$PWD</code></a> + command. +</p> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="environvars"><h2>1.6 Environment Variables</h2></a> + </td> + </tr> +</table> + +<p> + <b>Environment Variables:</b> +</p> +<ul><table> + <tr> + <td><b><code>PWD</code></b></td><td>The current working directory</td> + </tr> + <tr> + <td><b><code>OLDPWD</code></b></td><td>The previous working directory</td> + </tr> +</table></ul> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="commands"><h1>2.0 Commands</h1></a> + </td> + </tr> +</table> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="cmdtest"><h2>2.1 Evaluate Expression (test)</h2></a> + </td> + </tr> +</table> + +<p><b>Command Syntax:</b></p> +<ul><pre> +[ &lt;expression&gt; ] +test &lt;expression&gt; +</pre></ul> +<p> + <b>Synopsis</b>. + These are two alternative forms of the same command. They support + evaluation of a boolean expression which sets <a href="#builtinvars"><code>$?</code></a>. + This command is used most frequently as the conditional command following the + <code>if</code> in the <a href="#conditional"><code>if-then[-else]-fi</code></a> construct. +</p> +<p><b>Expression Syntax:</b></p> +<ul> + <p> + expression = simple-expression | !expression | expression -o expression | expression -a expression + </p> + <p> + simple-expression = unary-expression | binary-expression + </p> + <p> + unary-expression = string-unary | file-unary + </p> + <p> + string-unary = -n string | -z string + </p> + <p> + file-unary = -b file | -c file | -d file | -e file | -f file | -r file | -s file | -w file + </p> + <p> + binary-expression = string-binary | numeric-binary + </p> + <p> + string-binary = string = string | string == string | string != string + </p> + <p> + numeric-binary = integer -eq integer | integer -ge integer | integer -gt integer | integer -le integer | + integer -lt integer | integer -ne integer + </p> +</ul> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="cmdcat"><h2>2.2 Concatenate Files (cat)</h2></a> + </td> + </tr> +</table> + +<a <p><b>Command Syntax:</b></p> +<ul><pre> +cat <code>&lt;path&gt;</code> [<code>&lt;path&gt;</code> [<code>&lt;path&gt;</code> ...]] +</pre></ul> +<p> + <b>Synopsis</b>. + This command copies and concatentates all of the files at <code>&lt;path&gt;</code> + to the console (or to another file if the output is redirected). +</p> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="cmdcd"><h2>2.3 Change Current Working Directory (cd)</h2></a> + </td> + </tr> +</table> + +<a <p><b>Command Syntax:</b></p> +<ul><pre> +cd [&lt;dir-path&gt;|-|~|..] +</pre></ul> +<p> + <b>Synopsis</b>. + Changes the current working directory (<code>PWD</code>). Also sets the + previous working directory environment variable (<code>OLDPWD</code>). +<p> +<p><b>Forms:</b></p> +<ul><table> + <tr> + <td><b><code>cd &lt;dir-path&gt;</code></b></td> + <td>sets the current working directory to <code>&lt;dir-path&gt;</code>.</td> + </tr> + <tr> + <td><b><code>cd -</code></b></td> + <td>sets the current working directory to the previous + working directory ($<a href="#environvars"><code>OLDPWD</code></a>). + Equivalent to <code><a href="#cmdcd">cd</a> $<a href="#environvars">OLDPWD</a></code>.</td> + </tr> + <tr> + <td><b><code>cd</code> or <b><code>cd ~</code></b></td> + <td>set the current working directory to the 'home' + directory. The <i>home</i> directory can be configured by setting + <code>CONFIG_LIB_HOMEDIR</code> in the configuration file. The default + <i>home</i> directory is <code>/</code>.</td> + </tr> + <tr> + <td><b><code>cd ..</code></td> + <td>sets the current working directory to the parent directory.</td> + </tr> +</table></ul> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="cmdcp"><h2>2.4 Copy Files (cp)</h2></a> + </td> + </tr> +</table> + +<a <p><b>Command Syntax:</b></p> +<ul><pre> +cp &lt;source-path&gt; &lt;dest-path&gt; +</pre></ul> +<p> + <b>Synopsis</b>. + Copy of the contents of the file at <code>&lt;source-path&lt;</code> to the location + in the filesystem indicated by <code>&lt;path-path&gt;</code>. +</p> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="cmdecho"><h2>2.5 Echo Strings and Variables (echo)</h2></a> + </td> + </tr> +</table> + +<a <p><b>Command Syntax:</b></p> +<ul><pre> +echo [&lt;string|$name&gt; [&lt;string|$name&gt;...]] +</pre></ul> +<p> + <b>Synopsis</b>. + Copy the sequence of strings and expanded environment variables to + console output (or to a file if the output is re-directed). +</p> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="cmdexec"><h2>2.6 Execute User Code (exec)</h2></a> + </td> + </tr> +</table> + +<p><b>Command Syntax:</b></p> +<ul><pre> +exec &lt;hex-address&gt; +</pre></ul> +<p> + <b>Synopsis</b>. + Execute the user logic at address <code>&lt;hex-address&gt;</code>. NSH will pause + until the execution unless the user logic is executed in background + via <code><a href="#cmdexec">exec</a> &lt;hex-address&gt; &amp;</code>. +</p> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="cmdexit"><h2>2.7 Exit NSH (exit)</h2></a> + </td> + </tr> +</table> + +<a <p><b>Command Syntax:</b></p> +<ul><pre> +exit +</pre></ul> +<p> + <b>Synopsis</b>. + Exit NSH. Only useful for the serial front end if you have started some other tasks (perhaps + using the <code><a href="#cmdexec">exec</a></code> command) and you would like to have NSH out of the + way. For the telnet front-end, <code>exit</code> terminates the telenet session. +</p> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="cmdhelp"><h2>2.8 Show Usage Command Usage (help)</h2></a> + </td> + </tr> +</table> + +<a <p><b>Command Syntax:</b></p> +<ul><pre> +help +</pre></ul> +<p> + <b>Synopsis</b>. + Presents summary information about each command to console. +</p> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="cmdifconfig"><h2>2.9 Show Network Configuration (ifconfig)</h2></a> + </td> + </tr> +</table> + +<a <p><b>Command Syntax:</b></p> +<ul><pre> +ifconfig +</pre></ul> +<p> + <b>Synopsis</b>. + Show the current configuration of the network, for example: +</p> +<ul><pre> +nsh&gt; ifconfig +eth0 HWaddr 00:18:11:80:10:06 + IPaddr:10.0.0.2 DRaddr:10.0.0.1 Mask:255.255.255.0 +</pre></ul> +<p> + if uIP statistics are enabled (<code>CONFIG_NET_STATISTICS</code>), then + this command will also show the detailed state of uIP. +</p> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="cmdls"><h2>2.10 List Directory Contents (ls)</h2></a> + </td> + </tr> +</table> + +<a <p><b>Command Syntax:</b></p> +<ul><pre> +ls [-lRs] &lt;dir-path&gt; +</pre></ul> +<p> + <b>Synopsis</b>. + Show the contents of the directory at <code>&lt;dir-path&gt;</code>. NOTE: + <code>&lt;dir-path&gt;</code> must refer to a directory and no other filesystem + object. +</p> +<p><b>Options:</b></p> +<ul><table> + <tr> + <td><b><code>-R</code></b></td> + <td>Show the constents of specified directory and all of its + sub-directories.</td> + </tr> + <tr> + <td><b><code>-s</code></b></td> + <td>Show the size of the files along with the filenames in the + listing</td> + </tr> + <tr> + <td><b><code>-l</code></b></td> + <td>Show size and mode information along with the filenames + in the listing.</td> + </tr> +</table></ul> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="cmdmbhw"><h2>2.11 Access Memory (mb, mh, and mw)</h2></a> + </td> + </tr> +</table> + +<p><b>Command Syntax:</b></p> +<ul><pre> +mb &lt;hex-address&gt;[=&lt;hex-value&gt;][ &lt;hex-byte-count&gt;] +mh &lt;hex-address&gt;[=&lt;hex-value&gt;][ &lt;hex-byte-count&gt;] +mw &lt;hex-address&gt;[=&lt;hex-value&gt;][ &lt;hex-byte-count&gt;] +</pre></ul> +<p> + <b>Synopsis</b>. + Access memory using byte size access (mb), 16-bit accesses (mh), + or 32-bit access (mw). In each case, +</p> +<ul><table> + <tr> + <td><code>&lt;hex-address&gt;</code>.</td> + <td>Specifies the address to be accessed. The current + value at that address will always be read and displayed. + </tr> + <tr> + <td><code>&lt;hex-address&gt;=&lt;hex-value&gt;</code>.</td> + <td>Read the value, then write <code>&lt;hex-value&gt;</code> + to the location. + </tr> + <tr> + <td><code>&lt;hex-byte-count&gt;</code>.</td> + <td>Perform the mb, mh, or mw operation on a total + of <code>&lt;hex-byte-count&gt;</code> bytes, increment the <code>&lt;hex-address&gt;</code> appropriately + after each access + </tr> +</table></ul> +<p><b>Example:</b><p> +<ul><pre> +nsh&gt; mh 0 16 + 0 = 0x0c1e + 2 = 0x0100 + 4 = 0x0c1e + 6 = 0x0110 + 8 = 0x0c1e + a = 0x0120 + c = 0x0c1e + e = 0x0130 + 10 = 0x0c1e + 12 = 0x0140 + 14 = 0x0c1e +nsh&gt; +</pre></ul> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="cmdmem"><h2>2.12 Show Memory Manager Status (mem)</h2></a> + </td> + </tr> +</table> + +<a <p><b>Command Syntax:</b></p> +<ul><pre> +mem +</pre></ul> +<p> + <b>Synopsis</b>. + Show the current state of the memory allocator. For example, +</p> +<ul><pre> +nsh&gt; mem + arena: fe2560 + ordblks: 1 + mxordblk: fdc3e0 + uordblks: 6180 + fordblks: fdc3e0 +nsh&gt; +</pre></ul> +<p><b>Where:</b></p> +<ul><table> + <tr> + <td><b><code>arena</code></b></td> + <td>This is the total size of memory allocated for use by malloc in bytes.</td> + </tr> + <tr> + <td><b><code>ordblks</code></b></td> + <td>This is the number of free (not in use) chunks.</td> + </tr> + <tr> + <td><b><code>mxordblk</code></b></td> + <td>Size of the largest free (not in use) chunk.</td> + </tr> + <tr> + <td><b><code>uordblks</code></b></td> + <td>This is the total size of memory occupied by chunks handed out by malloc.</td> + </tr> + <tr> + <td><b><code>fordblks</code></b></td> + <td>This is the total size of memory occupied by free (not in use) chunks.</td> + </tr> +</table></ul> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="cmdps"><h2>2.13 Show Current Tasks and Threads (ps)</h2></a> + </td> + </tr> +</table> + +<a <p><b>Command Syntax:</b></p> +<ul><pre> +ps +</pre></ul> +<p> + <b>Synopsis</b>. + Show the currently active threads and tasks. For example, +</p> +<ul><pre> +nsh&gt; ps +PID PRI SCHD TYPE NP STATE NAME + 0 0 FIFO TASK READY Idle Task() + 1 128 RR TASK RUNNING init() + 2 128 FIFO TASK WAITSEM nsh_telnetmain() + 3 100 RR PTHREAD WAITSEM &lt;pthread&gt;(21) +nsh&gt; +</pre></ul> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="cmdmkdir"><h2>2.14 Create a Directory (mkdir)</h2></a> + </td> +</tr> +</table> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="cmdmkfatfs"><h2>2.15 Create a FAT Filesystem (mkfatfs)</h2></a> + </td> +</tr> +</table> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="cmdmkfifo"><h2>2.16 Create a FIFO (mkfifo)</h2></a> + </td> +</tr> +</table> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="cmdmount"><h2>2.17 Mount a File System (mount)</h2></a> + </td> +</tr> +</table> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="cmdping"><h2>2.18 Check Network Peer (ping)</h2></a> + </td> + </tr> +</table> + +<a <p><b>Command Syntax:</b></p> +<ul><pre> +ping [-c &lt;count&gt;] [-i &lt;interval&gt;] &lt;ip-address&gt; +</pre></ul> +<p> + <b>Synopsis</b>. + Test the network communication with a remote peer. Example, +</p> +<ul><pre> +nsh&gt; 10.0.0.1 +PING 10.0.0.1 56 bytes of data +56 bytes from 10.0.0.1: icmp_seq=1 time=0 ms +56 bytes from 10.0.0.1: icmp_seq=2 time=0 ms +56 bytes from 10.0.0.1: icmp_seq=3 time=0 ms +56 bytes from 10.0.0.1: icmp_seq=4 time=0 ms +56 bytes from 10.0.0.1: icmp_seq=5 time=0 ms +56 bytes from 10.0.0.1: icmp_seq=6 time=0 ms +56 bytes from 10.0.0.1: icmp_seq=7 time=0 ms +56 bytes from 10.0.0.1: icmp_seq=8 time=0 ms +56 bytes from 10.0.0.1: icmp_seq=9 time=0 ms +56 bytes from 10.0.0.1: icmp_seq=10 time=0 ms +10 packets transmitted, 10 received, 0% packet loss, time 10190 ms +nsh&gt; +</pre></ul> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="cmdpwd"><h2>2.19 Show Current Working Directory (pwd)</h2></a> + </td> + </tr> +</table> + +<a <p><b>Command Syntax:</b></p> +<ul><pre> +pwd +</pre></ul> +<p> + <b>Synopsis</b>. + Show the current working directory. +</p> +<ul><pre> +nsh&gt; cd /dev +nsh&gt; pwd +/dev +nsh&gt; +</pre></ul> + +<p>Same as <code><a href="#cmdecho">echo</a> <a href="#environvars">$PWD</a></code>.</p> +<ul><pre> +nsh&gt; echo $PWD +/dev +nsh&gt; +</pre></ul> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="cmdrm"><h2>2.20 Remove a File (rm)</h2></a> + </td> +</tr> +</table> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="cmdrmdir"><h2>2.21 Remove a Directory (rmdir)</h2></a> + </td> +</tr> +</table> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="cmdset"><h2>2.22 Set an Environment Variable (set)</h2></a> + </td> + </tr> +</table> + +<a <p><b>Command Syntax:</b></p> +<ul><pre> +set &lt;name&gt; &lt;value&gt; +</pre></ul> +<p> + <b>Synopsis</b>. + Set the environment variable <code>&lt;name&gt;</code> to the string <code>&lt;value&gt;</code>. + For example, +</p> +<ul><pre> +nsh&gt; echo $foobar + +nsh&gt; set foobar foovalue +nsh&gt; echo $foobar +foovalue +nsh&gt; +</pre></ul> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="cmdsh"><h2>2.23 Execute an NSH Script (sh)</h2></a> + </td> + </tr> +</table> + +<a <p><b>Command Syntax:</b></p> +<ul><pre> +sh &lt;script-path&gt; +</pre></ul> +<p> + <b>Synopsis</b>. + Execute the sequence of NSH commands in the file referred + to by <code>&lt;script-path&gt;. +</p> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="cmdsleep"><h2>2.24 Wait for Seconds (sleep)</h2></a> + </td> + </tr> +</table> + +<a <p><b>Command Syntax:</b></p> +<ul><pre> +sleep &lt;sec&gt; +</pre></ul> +<p> + <b>Synopsis</b>. + Pause execution (sleep) for <code>&lt;sec&gt;</code> seconds. +</p> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="cmdunmount"><h2>2.25 Unmount a File System (umount)</h2></a> + </td> +</tr> +</table> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="cmdunset"><h2>2.26 Unset an Environment Variable (unset)</h2></a> + </td> + </tr> +</table> + +<a <p><b>Command Syntax:</b></p> +<ul><pre> +unset &lt;name&gt; +</pre></ul> +<p> + <b>Synopsis</b>. + Remove the value associated with the environment variable + <code>&lt;name&gt;. Example: +</p> +<ul><pre> +nsh&gt; echo $foobar +foovalue +nsh&gt; unset foobar +nsh&gt; echo $foobar + +nsh&gt; +</pre></ul> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="cmdusleep"><h2>2.27 Wait for Microseconds (usleep)</h2></a> + </td> + </tr> +</table> + +<a <p><b>Command Syntax:</b></p> +<ul><pre> +usleep &lt;usec&gt; +</pre></ul> +<p> + <b>Synopsis</b>. + Pause execution (sleep) of <code>&lt;usec&gt;</code> microseconds. +</p> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="configuration"><h1>3.0 Configuration Settings</h1></a> + </td> + </tr> +</table> + +<p> + The availability of the above commands depends upon features that + may or may not be enabled in the NuttX configuration file. The + following <a href="#cmddependencies">table</a> indicates the dependency of each command on NuttX + configuration settings. General configuration settings are discussed + in the <a href="NuttxPortingGuide.html">NuttX Porting Guide.</a> + Configuration settings specific to NSH as discussed at the <a href="#nshconfiguration">bottom</a> of this document. +</p> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="cmddependencies"><h2>3.1 Command Dependencies on Configuration Settings</h2></a> + </td> + </tr> +</table> + +<center><p>Table. Command Dependencies on Configuration Settings</p> +<table width="100%"> + <tr bgcolor="#e4e4e4"> + <th align="left" width="25%">Command</th> + <th align="left">Depends on Configuration</th> + </tr> + <tr> + <td><b><code>[</code></b></td> + <td>!<code>CONFIG_EXAMPLES_NSH_DISABLESCRIPT</code></td> + </tr> + <tr> + <td><b><code>cat</code></b></td> + <td><code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0</td> + </tr> + <tr> + <td><b><code>cd</code></b></td> + <td>!<code>CONFIG_DISABLE_ENVIRON</code> && <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0</td> + </tr> + <tr> + <td><b><code>cp</code></b></td> + <td><code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0</td> + </tr> + <tr> + <td><b><code>echo</code></b></td> + <td><br></td> + </tr> + <tr> + <td><b><code>exec</code></b></td> + <td><br></td> + </tr> + <tr> + <td><b><code>exit</code></b></td> + <td><br></td> + </tr> + <tr> + <td><b><code>help</code></b></td> + <td><br></td> + </tr> + <tr> + <td><b><code>ifconfig</code></b></td> + <td><code>CONFIG_NET</code></td> + </tr> + <tr> + <td><b><code>ls</code></b></td> + <td><code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0</td> + </tr> + <tr> + <td><b><code>mb,mh,mw</code></b></td> + <td><br></td> + </tr> + <tr> + <td><b><code>mem</code></b></td> + <td><br></td> + </tr> + <tr> + <td><b><code>mkdir</code></b></td> + <td>!<code>CONFIG_DISABLE_MOUNTPOINT</code> && <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0</td> + </tr> + <tr> + <td><b><code>mkfatfs</code></b></td> + <td>!<code>CONFIG_DISABLE_MOUNTPOINT</code> && <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0 && <code>CONFIG_FS_FAT</code></td> + </tr> + <tr> + <td><b><code>mkfifo</code></b></td> + <td>!<code>CONFIG_DISABLE_MOUNTPOINT</code> && <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0</td> + </tr> + <tr> + <td><b><code>mount</code></b></td> + <td>!<code>CONFIG_DISABLE_MOUNTPOINT</code> && <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0 && <code>CONFIG_FS_FAT</code></td> + </tr> + <tr> + <td><b><code>ping</code></b></td> + <td><code>CONFIG_NET</code> &amp;&amp; <code>CONFIG_NET_ICMP &amp;&amp;</code> <code>CONFIG_NET_ICMP_PING</code> &amp;&amp; !<code>CONFIG_DISABLE_CLOCK</code> &amp;&amp; !<code>CONFIG_DISABLE_SIGNALS</code></td> + </tr> + <tr> + <td><b><code>ps</code></b></td> + <td><br></td> + </tr> + <tr> + <td><b><code>pwd</code></b></td> + <td>!<code>CONFIG_DISABLE_ENVIRON</code> &amp;&amp; <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0</td> + </tr> + <tr> + <td><b><code>rm</code></b></td> + <td>!<code>CONFIG_DISABLE_MOUNTPOINT</code> &amp;&amp; <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0</td> + </tr> + <tr> + <td><b><code>rmdir</code></b></td> + <td>!<code>CONFIG_DISABLE_MOUNTPOINT</code> &amp;&amp; <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0</td> + </tr> + <tr> + <td><b><code>set</code></b></td> + <td>!<code>CONFIG_DISABLE_ENVIRON</code></td> + </tr> + <tr> + <td><b><code>sh</code></b></td> + <td><code>CONFIG_NFILE_DESCRIPTORS &gt; 0 &amp;&amp; <code>CONFIG_NFILE_STREAMS &gt; 0 &amp;&amp; !<code>CONFIG_EXAMPLES_NSH_DISABLESCRIPT</code></td> + </tr> + <tr> + <td><b><code>sleep</code></b></td> + <td>!<code>CONFIG_DISABLE_SIGNALS</code></td> + </tr> + <tr> + <td><b><code>test</code></b></td> + <td>!<code>CONFIG_EXAMPLES_NSH_DISABLESCRIPT</code></td> + </tr> + <tr> + <td><b><code>umount</code></b></td> + <td>!<code>CONFIG_DISABLE_MOUNTPOINT</code> &amp;&amp; <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0 &amp;&amp; <code>CONFIG_FS_FAT</code></td> + </tr> + <tr> + <td><b><code>unset</code></b></td> + <td>!<code>CONFIG_DISABLE_ENVIRON</code></td> + </tr> + <tr> + <td><b><code>usleep</code></b></td> + <td>!<code>CONFIG_DISABLE_SIGNALS</code></td> + </tr> +</table></center> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="nshconfiguration"><h2>3.2 NSH-Specific Configuration Settings</h2></a> + </td> + </tr> +</table> + +<p> + The behavior of NSH can be modified with the following settings in + the <code>configs/&lt;board-name&gt;/defconfig</code> file: +</p> + +<center><table width="100%"> + <tr bgcolor="#e4e4e4"> + <th align="left" width="25%">Configuration</th> + <th align="left">Description</th> + </tr> + <tr> + <td><br><code>CONFIG_EXAMPLES_NSH_FILEIOSIZE</code></b></td> + <td> + Size of a static I/O buffer used for file access (ignored if + there is no filesystem). + </td> + </tr> + <tr> + <td><br><code>CONFIG_EXAMPLES_NSH_STRERROR</code></b></td> + <td> + strerror(errno) makes more readable output but strerror() is + very large and will not be used unless this setting is <i>y</i> + </td> + </tr> + <tr> + <td><br><code>CONFIG_EXAMPLES_NSH_LINELEN</code></b></td> + <td> + The maximum length of one command line and of one output line. + Default: 80 + </td> + </tr> + <tr> + <td><br><code>CONFIG_EXAMPLES_NSH_STACKSIZE</code></b></td> + <td> + The stack size to use when spawning new threads or tasks. Such + new threads are generated when a command is executed in background + or as new TELNET connections are established. + </td> + </tr> + <tr> + <td><br><code>CONFIG_EXAMPLES_NSH_NESTDEPTH</code></b></td> + <td> + The maximum number of nested <a href="#conditional"><code>if-then[-else]-fi</code></a> sequences that + are permissable. Default: 3 + </td> + </tr> + <tr> + <td><br><code>CONFIG_EXAMPLES_NSH_DISABLESCRIPT</code></b></td> + <td> + This can be set to <i>y</i> to suppress support for scripting. This + setting disables the <a href="#cmdsh"><code>sh</code></a>, <a href="#cmdtest"><code>test</code></a>, and <a href="#cmtest"><code>[</code></a> commands and the + <a href="#conditional"><code>if-then[-else]-fi</code></a> construct. This would only be set on systems + where a minimal footprint is a necessity and scripting is not. + </td> + </tr> + <tr> + <td><br><code>CONFIG_EXAMPLES_NSH_DISABLEBG</code></b></td> + <td> + This can be set to <i>y</i> to suppress support for background + commands. This setting disables the <a href="#cmdoverview"><code>nice</code></a> command prefix and + the <a href="#cmdoverview"><code>&amp;</code></a> command suffix. This would only be set on systems + where a minimal footprint is a necessity and background command execution is not. + </td> + </tr> + <tr> + <td><br><code>CONFIG_EXAMPLES_NSH_CONSOLE</code></b></td> + <td> + If <code>CONFIG_EXAMPLES_NSH_CONSOLE</code>is set to <i>y</i>, then a serial + console front-end is selected. + </td> + </tr> + <tr> + <td><br><code>CONFIG_EXAMPLES_NSH_TELNET</code></b></td> + <td> + If <code>CONFIG_EXAMPLES_NSH_TELNET</code> is set to <i>y</i>, then a TELENET + server front-end is selected. When this option is provided, + you may log into NuttX remotely using telnet in order to + access NSH. + </td> + </tr> +</table> + +<p> + One or both of <code>CONFIG_EXAMPLES_NSH_CONSOLE</code> and <code>CONFIG_EXAMPLES_NSH_TELNET</code> + must be defined. If <code>CONFIG_EXAMPLES_NSH_TELNET</code> is selected, then there some + other configuration settings that apply: +</p> + +<center><table width="100%"> + <tr bgcolor="#e4e4e4"> + <th align="left" width="25%">Configuration</th> + <th align="left">Description</th> + </tr> + <td><br><code>CONFIG_EXAMPLES_NSH_IOBUFFER_SIZE</code></b></td> + <td> + Determines the size of the I/O buffer to use for sending/ + receiving TELNET commands/reponses + </td> + </tr> + <tr> + <td><br><code>CONFIG_EXAMPLES_NSH_DHCPC</code></b></td> + <td> + Obtain the the IP address via DHCP. + </td> + </tr> + <tr> + <td><br><code>CONFIG_EXAMPLES_NSH_IPADDR</code></b></td> + <td> + If <code>CONFIG_EXAMPLES_NSH_DHCPC</code> is NOT set, then the static IP + address must be provided. + </td> + </tr> + <tr> + <td><br><code>CONFIG_EXAMPLES_NSH_DRIPADDR</code></b></td> + <td> + Default router IP address + </td> + </tr> + <tr> + <td><br><code>CONFIG_EXAMPLES_NSH_NETMASK</code></b></td> + <td> + Network mask + </td> + </tr> + <tr> + <td><br><code>CONFIG_EXAMPLES_NSH_NOMAC</code></b></td> + <td> + Set if your ethernet hardware has no built-in MAC address. + If set, a bogus MAC will be assigned. + </td> + </tr> +</table> + +</body> +</html> + \ No newline at end of file diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 560107afda..c49c488834 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -100,7 +100,7 @@ </tr> </table> </td> -</td> +</tr> </table></center> <table width ="100%"> @@ -1115,6 +1115,10 @@ buildroot-0.1.1 2008-xx-xx &lt;spudmonkey@racsa.co.cr&gt <td><img src="favicon.ico"></td> <td><a href="NuttxPortingGuide.html">Porting Guide</a></td> </tr> +<tr> + <td><img src="favicon.ico"></td> + <td><a href="NuttShell.html">NuttShell (NSH)</a></td> +</tr> <tr> <td><img src="favicon.ico"></td> <td><a href="ChangeLog.txt">Change Log</a></td> From 54b325c79c37bc3a96e3f27a3a799651cf648fc0 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 4 Sep 2008 14:55:48 +0000 Subject: [PATCH 0261/1518] update NSH docs git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@875 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttShell.html | 324 ++++++++++++++++++++++++++++-- Documentation/NuttX.html | 2 +- Documentation/NuttxUserGuide.html | 2 +- 3 files changed, 308 insertions(+), 20 deletions(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index 6989688fc4..b79f535590 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -254,6 +254,11 @@ <a href="#nshconfiguration">3.2 NSH-Specific Configuration Settings</a> </td> </tr> +<tr> + <td><img src="favicon.ico"></td> + <td> + <a href="#index">Index</a> +</td> </table> </td> </tr> @@ -415,7 +420,7 @@ fi <b><code>cd</code> and <code>pwd</code></b>. All path arguments to commands may be either an absolute path or a path relative to the current working directory. The current working - directory is set using the 'cd' command and can be queried either + directory is set using the <a href="#cmdcd"><code>cd</code></a> command and can be queried either by using the <a href="#cmdpwd"><code>pwd</code></a> command or by using the <a href="#cmdecho"><code>echo</code></a> <a href="#environvars"><code>$PWD</code></a> command. @@ -849,6 +854,33 @@ nsh&gt; </tr> </table> +<p><b>Command Syntax:</b></p> +<ul><pre> +mkdir &lt;path&gt; +</pre></ul> +<p> + <b>Synopsis</b>. + Create the directory at <code>&lt;path&gt;</code>. + All components of of <code>&lt;path&gt;</code> except the final directory name must exist on a mounted file + system; the final directory must not. +</p> +<p> + <b>Limited to Mounted File Systems</b>. + Recall that NuttX uses a <a href="NuttxUserGuide.html#FileSystemOverview"><i>pseudo</i> filesystem</a> for its root file + system. + The <code>mkdir</code> command can only be used to create directories in volumes set up with the + <a href="#cmdmount"><code>mount</code></a> command; it cannot be used to create directories in the <i>pseudo</i> filesystem. +</p> +<p><b>Example:</b></p> +<ul><pre> +nsh> mkdir /mnt/fs/tmp +nsh> ls -l /mnt/fs +/mnt/fs: + drw-rw-rw- 0 TESTDIR/ + drw-rw-rw- 0 TMP/ +nsh> +</pre></ul> + <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> @@ -857,6 +889,18 @@ nsh&gt; </tr> </table> +<p><b>Command Syntax:</b></p> +<ul><pre> +mkfatfs &lt;path&gt; +</pre></ul> +<p> + <b>Synopsis</b>. + Format a fat file system on the block device specified by <code>&lt;path&gt;</code>. + NSH provides this command to access the <a href="mkfatfs"><code>mkfatfs()</code></a> NuttX API. + This block device must reside in the NuttX <a href="NuttxUserGuide.html#FileSystemOverview"><i>pseudo</i> filesystem</a> and + must have been created by some call to <code>register_blockdriver()</code> (see <code>include/nuttx/fs.h</code>). +</p> + <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> @@ -865,6 +909,36 @@ nsh&gt; </tr> </table> +<p><b>Command Syntax:</b></p> +<ul><pre> +mkfifo &lt;path&gt; +</pre></ul> +<p> + <b>Synopsis</b>. + Creates a FIFO character device anywhere in the pseudo file system, creating + whatever psuedo directories that may be needed to complete the <code>&lt;path&gt;</code>. + By convention, however, device drivers are place in the standard <code>/dev</code> directory. + After it is created, the FIFO device may be used as any other device driver. + NSH provides this command to access the <a href="NuttxUserGuide.html#mkfifo"><code>mkfifo()</code></a> NuttX API. +</p> +<p><b>Example</b></p> +<ul><pre> +nsh> ls -l /dev +/dev: + crw-rw-rw- 0 console + crw-rw-rw- 0 null + brw-rw-rw- 0 ram0 +nsh> mkfifo /dev/fifo +nsh> ls -l /dev +ls -l /dev +/dev: + crw-rw-rw- 0 console + crw-rw-rw- 0 fifo + crw-rw-rw- 0 null + brw-rw-rw- 0 ram0 +nsh> +</pre></ul> + <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> @@ -873,6 +947,65 @@ nsh&gt; </tr> </table> +<p><b>Command Syntax:</b></p> +<ul><pre> +mount -t &lt;fstype&gt; &lt;block-device&gt; <code>&lt;dir-path&gt;</code> +</pre></ul> +<p> + <b>Synopsis</b>. + The 'm ount' command mounts a file system in the NuttX psuedo + filesystem. 'mount' performs a three way associating, binding: +</p> +<ol> + <li><b>File system.</b> + The '-t <code>&lt;fstype&gt;</code>' option identifies the type of + file system that has been formatted on the <code>&lt;block-device&gt;</code>. + As of this writing, <code>vfat</code> is the only supported value for <code>&lt;fstype&gt;</code> + </li> + <li><b>Block Device.</b> + The <code>&lt;block-device&gt;</code> argument is the full or relative + path to a block driver inode in the <a href="NuttxUserGuide.html#FileSystemOverview"><i>pseudo</i> filesystem</a>. + By convention, this is a name under the <code>/dev</code> sub-directory. + This <code>&lt;block-device&gt;</code> must have been previously formatted with the same file system + type as specified by <code>&lt;fstype&gt;</code> + </li> + <li><b>Mount Point.</b> + The mount point, <code>&lt;dir-path&gt;</code>, is the location in the + <a href="NuttxUserGuide.html#FileSystemOverview"><i>pseudo</i> filesystem</a> where the mounted volume will appear. + This mount point can only reside in the NuttX <a href="NuttxUserGuide.html#FileSystemOverview"><i>pseudo</i> filesystem</a>. + By convention, this mount point is a subdirectory under <code>/mnt</code>. + The mount command will create whatever psuedo directories that may be needed to complete the + full path but the full path must not already exist. + </li> +</ol> +<p> + After the 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> +<p><b>Example</b></p> +<ul><pre> +nsh> ls -l /dev +/dev: + crw-rw-rw- 0 console + crw-rw-rw- 0 null + brw-rw-rw- 0 ram0 +nsh> ls /mnt +nsh: ls: no such directory: /mnt +nsh> mount -t vfat /dev/ram0 /mnt/fs +nsh> ls -l /mnt/fs/testdir +/mnt/fs/testdir: + -rw-rw-rw- 15 TESTFILE.TXT +nsh> echo "This is a test" >/mnt/fs/testdir/example.txt +nsh> ls -l /mnt/fs/testdir +/mnt/fs/testdir: +-rw-rw-rw- 15 TESTFILE.TXT + -rw-rw-rw- 16 EXAMPLE.TXT +nsh> cat /mnt/fs/testdir/example.txt +This is a test +nsh> +</pre></ul> + <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> @@ -944,6 +1077,32 @@ nsh&gt; </tr> </table> +<a <p><b>Command Syntax:</b></p> +<ul><pre> +rm &lt;file-path&gt; +</pre></ul> +<p> + <b>Synopsis</b>. + Remove the specified <code>&lt;file-path&gt;</code> name from the mounted file system. + Recall that NuttX uses a <a href="NuttxUserGuide.html#FileSystemOverview"><i>pseudo</i> filesystem</a> for its root file + system. + The <code>rm</code> command can only be used to remove (unlink) files in volumes set up with the + <a href="#cmdmount"><code>mount</code></a> command; + it cannot be used to remove names in the <i>pseudo</i> filesystem. +</p> +<p><b>Example:</b></p> +<ul><pre> +nsh> ls /mnt/fs/testdir +/mnt/fs/testdir: + TESTFILE.TXT + EXAMPLE.TXT +nsh> rm /mnt/fs/testdir/example.txt +nsh> ls /mnt/fs/testdir +/mnt/fs/testdir: + TESTFILE.TXT +nsh> +</pre></ul> + <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> @@ -952,6 +1111,33 @@ nsh&gt; </tr> </table> +<a <p><b>Command Syntax:</b></p> +<ul><pre> +rmdir &lt;dir-path&gt; +</pre></ul> +<p> + <b>Synopsis</b>. + Remove the specified <code>&lt;dir-path&gt;</code> directory from the mounted file system. + Recall that NuttX uses a <a href="NuttxUserGuide.html#FileSystemOverview"><i>pseudo</i> filesystem</a> for its root file + system. + The <code>rmdir</code> command can only be used to remove directories from volumes set up with the + <a href="#cmdmount"><code>mount</code></a> command; + it cannot be used to remove directories from the <i>pseudo</i> filesystem. +</p> +<p><b>Example:</b></p> +<ul><pre> +nsh> mkdir /mnt/fs/tmp +nsh> ls -l /mnt/fs +/mnt/fs: + drw-rw-rw- 0 TESTDIR/ + drw-rw-rw- 0 TMP/ +nsh> rmdir /mnt/fs/tmp +nsh> ls -l /mnt/fs +/mnt/fs: + drw-rw-rw- 0 TESTDIR/ +nsh> +</pre></ul> + <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> @@ -1021,6 +1207,28 @@ sleep &lt;sec&gt; </tr> </table> +<a <p><b>Command Syntax:</b></p> +<ul><pre> +umount &lt;dir-path&gt; +</pre></ul> +<p> + <b>Synopsis</b>. + Un-mount the file system at mount point <code>&lt;dir-path&gt;</code>. + The <code>umount</code> command can only be used to un-mount volumes previously mounted using + <a href="#cmdmount"><code>mount</code></a> command. +</p> +<p><b>Example:</b></p> +<ul><pre> +nsh> ls /mnt/fs +/mnt/fs: + TESTDIR/ +nsh> umount /mnt/fs +nsh> ls /mnt/fs +/mnt/fs: +nsh: ls: no such directory: /mnt/fs +nsh> +</pre></ul> + <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> @@ -1228,28 +1436,28 @@ usleep &lt;usec&gt; <th align="left">Description</th> </tr> <tr> - <td><br><code>CONFIG_EXAMPLES_NSH_FILEIOSIZE</code></b></td> + <td valign="top"><b><code>CONFIG_EXAMPLES_NSH_FILEIOSIZE</code></b></td> <td> Size of a static I/O buffer used for file access (ignored if there is no filesystem). </td> </tr> <tr> - <td><br><code>CONFIG_EXAMPLES_NSH_STRERROR</code></b></td> + <td valign="top"><b><code>CONFIG_EXAMPLES_NSH_STRERROR</code></b></td> <td> strerror(errno) makes more readable output but strerror() is very large and will not be used unless this setting is <i>y</i> </td> </tr> <tr> - <td><br><code>CONFIG_EXAMPLES_NSH_LINELEN</code></b></td> + <td valign="top"><b><code>CONFIG_EXAMPLES_NSH_LINELEN</code></b></td> <td> The maximum length of one command line and of one output line. Default: 80 </td> </tr> <tr> - <td><br><code>CONFIG_EXAMPLES_NSH_STACKSIZE</code></b></td> + <td valign="top"><b><code>CONFIG_EXAMPLES_NSH_STACKSIZE</code></b></td> <td> The stack size to use when spawning new threads or tasks. Such new threads are generated when a command is executed in background @@ -1257,14 +1465,14 @@ usleep &lt;usec&gt; </td> </tr> <tr> - <td><br><code>CONFIG_EXAMPLES_NSH_NESTDEPTH</code></b></td> + <td valign="top"><b><code>CONFIG_EXAMPLES_NSH_NESTDEPTH</code></b></td> <td> The maximum number of nested <a href="#conditional"><code>if-then[-else]-fi</code></a> sequences that are permissable. Default: 3 </td> </tr> <tr> - <td><br><code>CONFIG_EXAMPLES_NSH_DISABLESCRIPT</code></b></td> + <td valign="top"><b><code>CONFIG_EXAMPLES_NSH_DISABLESCRIPT</code></b></td> <td> This can be set to <i>y</i> to suppress support for scripting. This setting disables the <a href="#cmdsh"><code>sh</code></a>, <a href="#cmdtest"><code>test</code></a>, and <a href="#cmtest"><code>[</code></a> commands and the @@ -1273,7 +1481,7 @@ usleep &lt;usec&gt; </td> </tr> <tr> - <td><br><code>CONFIG_EXAMPLES_NSH_DISABLEBG</code></b></td> + <td valign="top"><b><code>CONFIG_EXAMPLES_NSH_DISABLEBG</code></b></td> <td> This can be set to <i>y</i> to suppress support for background commands. This setting disables the <a href="#cmdoverview"><code>nice</code></a> command prefix and @@ -1282,14 +1490,14 @@ usleep &lt;usec&gt; </td> </tr> <tr> - <td><br><code>CONFIG_EXAMPLES_NSH_CONSOLE</code></b></td> + <td valign="top"><b><code>CONFIG_EXAMPLES_NSH_CONSOLE</code></b></td> <td> If <code>CONFIG_EXAMPLES_NSH_CONSOLE</code>is set to <i>y</i>, then a serial console front-end is selected. </td> </tr> <tr> - <td><br><code>CONFIG_EXAMPLES_NSH_TELNET</code></b></td> + <td valign="top"><b><code>CONFIG_EXAMPLES_NSH_TELNET</code></b></td> <td> If <code>CONFIG_EXAMPLES_NSH_TELNET</code> is set to <i>y</i>, then a TELENET server front-end is selected. When this option is provided, @@ -1297,7 +1505,7 @@ usleep &lt;usec&gt; access NSH. </td> </tr> -</table> +</table></center> <p> One or both of <code>CONFIG_EXAMPLES_NSH_CONSOLE</code> and <code>CONFIG_EXAMPLES_NSH_TELNET</code> @@ -1310,46 +1518,126 @@ usleep &lt;usec&gt; <th align="left" width="25%">Configuration</th> <th align="left">Description</th> </tr> - <td><br><code>CONFIG_EXAMPLES_NSH_IOBUFFER_SIZE</code></b></td> + <td valign="top"><b><code>CONFIG_EXAMPLES_NSH_IOBUFFER_SIZE</code></b></td> <td> Determines the size of the I/O buffer to use for sending/ receiving TELNET commands/reponses </td> </tr> <tr> - <td><br><code>CONFIG_EXAMPLES_NSH_DHCPC</code></b></td> + <td valign="top"><b><code>CONFIG_EXAMPLES_NSH_DHCPC</code></b></td> <td> Obtain the the IP address via DHCP. </td> </tr> <tr> - <td><br><code>CONFIG_EXAMPLES_NSH_IPADDR</code></b></td> + <td valign="top"><b><code>CONFIG_EXAMPLES_NSH_IPADDR</code></b></td> <td> If <code>CONFIG_EXAMPLES_NSH_DHCPC</code> is NOT set, then the static IP address must be provided. </td> </tr> <tr> - <td><br><code>CONFIG_EXAMPLES_NSH_DRIPADDR</code></b></td> + <td valign="top"><b><code>CONFIG_EXAMPLES_NSH_DRIPADDR</code></b></td> <td> Default router IP address </td> </tr> <tr> - <td><br><code>CONFIG_EXAMPLES_NSH_NETMASK</code></b></td> + <td valign="top"><b><code>CONFIG_EXAMPLES_NSH_NETMASK</code></b></td> <td> Network mask </td> </tr> <tr> - <td><br><code>CONFIG_EXAMPLES_NSH_NOMAC</code></b></td> + <td valign="top"><b><code>CONFIG_EXAMPLES_NSH_NOMAC</code></b></td> <td> Set if your ethernet hardware has no built-in MAC address. If set, a bogus MAC will be assigned. </td> </tr> +</table></center> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="index"><h1>Index</h1></a> + </td> + </tr> </table> +<table width="100%"> +<tr><td width="50%"> +<ul> + <li><a href="#builtinvars"><code>$?</code></a></li> + <li><a href="#cmdtest"><code>[</code></a></li> + <li><a href="#cmdoverview">Background commands</a></li> + <li><a href="#cmdoverview">Background command priority</a></li> + <li><a href="#builtinvars">Built-in variables</a></li> + <li><a href="#cmdcat"><code>cat</code></a></li> + <li><a href="#cmdcd"><code>cd</code></a></li> + <li><a href="#commands">Command summaries</a></li> + <li><a href="#conditional">Conditional command execution</a></li> + <li><a href="#nshconfiguration"><code>CONFIG_EXAMPLES_NSH_CONSOLE</code></a></li> + <li><a href="#nshconfiguration"><code>CONFIG_EXAMPLES_NSH_DHCPC</code></a></li> + <li><a href="#nshconfiguration"><code>CONFIG_EXAMPLES_NSH_DISABLEBG</code></a></li> + <li><a href="#nshconfiguration"><code>CONFIG_EXAMPLES_NSH_DISABLESCRIPT</code></a></li> + <li><a href="#nshconfiguration"><code>CONFIG_EXAMPLES_NSH_DRIPADDR</code></a></li> + <li><a href="#nshconfiguration"><code>CONFIG_EXAMPLES_NSH_FILEIOSIZE</code></a></li> + <li><a href="#nshconfiguration"><code>CONFIG_EXAMPLES_NSH_IOBUFFER_SIZE</code></a></li> + <li><a href="#nshconfiguration"><code>CONFIG_EXAMPLES_NSH_IPADDR</code></a></li> + <li><a href="#nshconfiguration"><code>CONFIG_EXAMPLES_NSH_LINELEN</code></a></li> + <li><a href="#nshconfiguration"><code>CONFIG_EXAMPLES_NSH_NESTDEPTH</code></a></li> + <li><a href="#nshconfiguration"><code>CONFIG_EXAMPLES_NSH_NETMASK</code></a></li> + <li><a href="#nshconfiguration"><code>CONFIG_EXAMPLES_NSH_NOMAC</code></a></li> + <li><a href="#nshconfiguration"><code>CONFIG_EXAMPLES_NSH_STACKSIZE</code></a></li> + <li><a href="#nshconfiguration"><code>CONFIG_EXAMPLES_NSH_STRERROR</code></a></li> + <li><a href="#nshconfiguration"><code>CONFIG_EXAMPLES_NSH_TELNET</code></a></li> + <li><a href="#configuration">Configuration settings</a></li> + <li><a href="#cmddependencies">Configuration settings, command dependencies</a></li> + <li><a href="#nshconfiguration">Configuration settings, NSH-specific</a></li> + <li><a href="#cmdcp"><code>cp</code></a></li> + <li><a href="#currentwd">Current working directory</a></li> + <li><a href="#cmdecho"><code>echo</code></a></li> + <li><a href="#environvars">Environment Variables</a></li> + <li><a href="#cmdexec"><code>exec</code></a></li> + <li><a href="#cmdexit"><code>exit</code></a></li> +</ul></td> +<td></ul> + <li><a href="#frontend">Greeting</a></li> + <li><a href="#cmdhelp"><code>help</code></a></li> + <li><a href="#conditional"><code>if-then[-else]-fi</code></a></li> + <li><a href="#cmdifconfig"><code>ifconfig</code></a></li> + <li><a href="#cmdls">ls</code></a></li> + <li><a href="#cmdmbhw"><code>mb</code></a></li> + <li><a href="#cmdmbhw"><code>mh</code></a></li> + <li><a href="#cmdmbhw"><code>mw</code></a></li> + <li><a href="#cmdmem"><code>mem</code></a></li> + <li><a href="#cmdmkdir"><code>mkdir</code></a></li> + <li><a href="#cmdmkfatfs"><code>mkfatfs</code></a></li> + <li><a href="#cmdmkfifo"><code>mkfifo</code></a></li> + <li><a href="#cmdmount"><code>mount</code></a></li> + <li><a href="#cmdoverview"><code>nice</code></a></li> + <li><a href="#environvars"><code>OLDPWD</code></a></li> + <li><a href="#overview">Overview</a></li> + <li><a href="#cmdping"><code>ping</code></a></li> + <li><a href="#frontend">Prompt</a></li> + <li><a href="#cmdps"><code>ps</code></a></li> + <li><a href="#cmdpwd"><code>pwd</code></a></li> + <li><a href="#environvars"><code>PWD</code></a></li> + <li><a href="#cmdoverview">Re-directed commands</a></li> + <li><a href="#cmdrm"><code>rm</code></a></li> + <li><a href="#cmdrmdir"><code>rmdir</code></a></li> + <li><a href="#cmdset"><code>set</code></a></li> + <li><a href="#cmdsh"><code>sh</code></a></li> + <li><a href="#cmdoverview">Simple commands</a></li> + <li><a href="#cmdsleep"><code>sleep</code></a></li> + <li><a href="#cmdtest"><code>test</code></a></li> + <li><a href="#cmdunmount"><code>umount</code></a></li> + <li><a href="#cmdunset"><code>unset</code></a></li> + <li><a href="#cmdusleep"><code>usleep</code></a></li> +</ul></td> +</tr></table> + </body> </html> - \ No newline at end of file diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index c49c488834..5481f1b1c0 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1075,7 +1075,7 @@ nuttx-0.3.14 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; ping request logic. * NSH: Add ping command * Correct IP checksum calculation in ICMP and UDP message send logic. - * NSH: Created a more detailed README file for NSH. + * NSH: Created an HTML document and a more detailed README file describing NSH. pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index d97281e787..55eb1ce68b 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -6093,7 +6093,7 @@ int mkfatfs(FAR const char *pathname, FAR struct fat_format_s *fmt); <b>Description:</b> <ul> <p> - The <code>mkfafs()</code> formats a FAT file system image on the block + The <code>mkfats()</code> formats a FAT file system image on the block device specified by <code>pathname</code> </p> <p>Assumptions: The caller must assure that the block driver is not mounted and not in From 7b4b7a900bf227fa9a957f3c1b1c6cfde2a77f3d Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 4 Sep 2008 15:50:30 +0000 Subject: [PATCH 0262/1518] Bigger favicon git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@876 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttShell.html | 8 ++-- Documentation/NuttX.html | 88 +++++++++++++++++------------------ Documentation/favicon.ico | Bin 318 -> 766 bytes 3 files changed, 48 insertions(+), 48 deletions(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index b79f535590..c689cbb468 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -26,7 +26,7 @@ <td> <table> <tr> - <td><img src="favicon.ico"></td> + <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> <td> <a href="#overview">1.0 Overview</a> </td> @@ -69,7 +69,7 @@ </tr> <tr> - <td><img src="favicon.ico"></td> + <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> <td> <a href="#commands">2.0 Commands</a>. </td> @@ -237,7 +237,7 @@ </td> </tr> <tr> - <td><img src="favicon.ico"></td> + <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> <td> <a href="#configuration">3.0 Configuration Settings</a> </td> @@ -255,7 +255,7 @@ </td> </tr> <tr> - <td><img src="favicon.ico"></td> + <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> <td> <a href="#index">Index</a> </td> diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 5481f1b1c0..6f4da9a895 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -26,42 +26,42 @@ <td> <table> <tr> - <td><img src="favicon.ico"></td> + <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> <td> <a href="#overview">Overview</a>.<br> What is NuttX? </td> </tr> <tr> - <td><img src="favicon.ico"></td> + <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> <td> <a href="#downloads">Downloads</a>.<br> Where can I get NuttX? What is the current development status? </td> </tr> <tr> - <td><img src="favicon.ico"></td> + <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> <td> <a href="#platforms">Supported Platforms</a>.<br> What target platforms has NuttX been ported to? </td> </tr> <tr> - <td><img src="favicon.ico"></td> + <td valign="top" width="22"> width="20"<img height="20" width="20" src="favicon.ico"></td> <td> <a href="#environments">Development Environments</a>.<br> What kinds of host cross-development platforms can be used with NuttX? </td> </tr> <tr> - <td><img src="favicon.ico"></td> + <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> <td> <a href="#footprint">Memory Footprint</a>.<br> Just how big is it? Do I have enough memory to use NuttX? </td> </tr> <tr> - <td><img src="favicon.ico"></td> + <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> <td> <a href="#licensing">Licensing</a>.<br> Are there any licensing restrictions for the use of NuttX? (Almost none) @@ -69,7 +69,7 @@ </td> </tr> <tr> - <td><img src="favicon.ico"></td> + <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> <td> <a href="#history">Release History</a><br> What has changed in the last release of NuttX? @@ -77,7 +77,7 @@ </td> </tr> <tr> - <td><img src="favicon.ico"></td> + <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> <td> <a href="#TODO">Bugs, Issues, <i>Things-To-Do</i></a>.<br> Software is never finished nor ever tested well enough. @@ -85,14 +85,14 @@ </td> </tr> <tr> - <td><img src="favicon.ico"></td> + <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> <td> <a href="#documentation">Other Documentation</a>.<br> What other NuttX documentation is available? </td> </tr> <tr> - <td><img src="favicon.ico"></td> + <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> <td> <a href="#trademarks">Trademarks</a>.<br> Some of the words used in this document belong to other people. @@ -118,7 +118,7 @@ <p> <center><table width="90%"> <tr> - <td valign="top" width="18"><img src="favicon.ico"></td> + <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> <td bgcolor="#5eaee1"> <b>Small Footprint</b> </td> @@ -132,7 +132,7 @@ </p> </tr> <tr> - <td valign="top" width="18"><img src="favicon.ico"></td> + <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> <td bgcolor="#5eaee1"> <b>Rich Feature OS Set</b> </td> @@ -154,7 +154,7 @@ </p> </tr> <tr> - <td valign="top" width="18"><img src="favicon.ico"></td> + <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> <td bgcolor="#5eaee1"> <b>Highly Scalable</b> </td> @@ -170,7 +170,7 @@ </p> </tr> <tr> - <td valign="top" width="18"><img src="favicon.ico"></td> + <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> <td bgcolor="#5eaee1"> <b>Standards Compliance</b> </td> @@ -192,7 +192,7 @@ </p> </tr> <tr> - <td valign="top" width="18"><img src="favicon.ico"></td> + <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> <td bgcolor="#5eaee1"> <b>Real-Time</b> </td> @@ -205,7 +205,7 @@ </p> </tr> <tr> - <td valign="top" width="18"><img src="favicon.ico"></td> + <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> <td bgcolor="#5eaee1"> <b>Totally Open</b> </td> @@ -226,7 +226,7 @@ <center><table width="90%"> <tr> - <td valign="top" width="18"><img src="favicon.ico"></td> + <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> <td bgcolor="#5eaee1"> <b>Standards Compliant Core Task Management</b> </td> @@ -322,7 +322,7 @@ </tr> <tr> - <td valign="top" width="18"><img src="favicon.ico"></td> + <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> <td bgcolor="#5eaee1"> <b>File system</b> </td> @@ -369,7 +369,7 @@ </tr> <tr> - <td valign="top" width="18"><img src="favicon.ico"></td> + <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> <td bgcolor="#5eaee1"> <b>C Library</b> </td> @@ -384,7 +384,7 @@ </tr> <tr> - <td valign="top" width="18"><img src="favicon.ico"></td> + <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> <td bgcolor="#5eaee1"> <b>Networking</b> </td> @@ -430,7 +430,7 @@ <center><table width="90%"> <tr> - <td valign="top" width="18"><img src="favicon.ico"></td> + <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> <td bgcolor="#5eaee1"> <b>Pascal Compiler with NuttX runtime P-Code interpreter add-on</b> </td> @@ -510,7 +510,7 @@ <center><table width="90%"> <tr> - <td valign="top"><img src="favicon.ico"></td> + <td valign="top"><img height="20" width="20" src="favicon.ico"></td> <td bgcolor="#5eaee1"> <b>Linux User Mode</b> </td> @@ -529,7 +529,7 @@ </td> </tr> <tr> - <td valign="top"><img src="favicon.ico"></td> + <td valign="top"><img height="20" width="20" src="favicon.ico"></td> <td bgcolor="#5eaee1"> <b>ARM7TDMI</b>. </td> @@ -565,7 +565,7 @@ </td> </tr> <tr> - <td valign="top"><img src="favicon.ico"></td> + <td valign="top"><img height="20" width="20" src="favicon.ico"></td> <td bgcolor="#5eaee1"> <b>ARM926EJS</b>. </td> @@ -587,7 +587,7 @@ </td> </tr> <tr> - <td valign="top"><img src="favicon.ico"></td> + <td valign="top"><img height="20" width="20" src="favicon.ico"></td> <td bgcolor="#5eaee1"> <b>8052 Microcontroller</b> </td> @@ -611,7 +611,7 @@ </td> </tr> <tr> - <td valign="top"><img src="favicon.ico"></td> + <td valign="top"><img height="20" width="20" src="favicon.ico"></td> <td bgcolor="#5eaee1"> <b>Zilog Z16F</b> </td> @@ -632,7 +632,7 @@ </td> </tr> <tr> - <td valign="top"><img src="favicon.ico"></td> + <td valign="top"><img height="20" width="20" src="favicon.ico"></td> <td bgcolor="#5eaee1"> <b>Zilog eZ80Acclaim!</b> </td> @@ -653,7 +653,7 @@ </td> </tr> <tr> - <td valign="top"><img src="favicon.ico"></td> + <td valign="top"><img height="20" width="20" src="favicon.ico"></td> <td bgcolor="#5eaee1"> <b>Zilog Z8Encore!</b> </td> @@ -681,7 +681,7 @@ </td> </tr> <tr> - <td valign="top"><img src="favicon.ico"></td> + <td valign="top"><img height="20" width="20" src="favicon.ico"></td> <td bgcolor="#5eaee1"> <b>Zilog Z80</b> </td> @@ -705,7 +705,7 @@ </td> </tr> <tr> - <td valign="top"><img src="favicon.ico"></td> + <td valign="top"><img height="20" width="20" src="favicon.ico"></td> <td bgcolor="#5eaee1"> <b>Other ports</b> </td> @@ -734,7 +734,7 @@ Linux or Cygwin.</blockquote> <center><table width="90%"> <tr> - <td valign="top"><img src="favicon.ico"></td> + <td valign="top"><img height="20" width="20" src="favicon.ico"></td> <td bgcolor="#5eaee1"> <b>Linux + GNU make + GCC/binutils</b> </td> @@ -757,7 +757,7 @@ Linux or Cygwin.</blockquote> </tr> <tr> - <td valign="top"><img src="favicon.ico"></td> + <td valign="top"><img height="20" width="20" src="favicon.ico"></td> <td bgcolor="#5eaee1"> <b>Linux + GNU make + SDCC</b> </td> @@ -776,7 +776,7 @@ Linux or Cygwin.</blockquote> </tr> <tr> - <td valign="top"><img src="favicon.ico"></td> + <td valign="top"><img height="20" width="20" src="favicon.ico"></td> <td bgcolor="#5eaee1"> <b>Cygwin + GNU make + GCC/binutils</b> </td> @@ -795,7 +795,7 @@ Linux or Cygwin.</blockquote> </tr> <tr> - <td valign="top"><img src="favicon.ico"></td> + <td valign="top"><img height="20" width="20" src="favicon.ico"></td> <td bgcolor="#5eaee1"> <b>Cygwin + GNU make + SDCC</b> </td> @@ -810,7 +810,7 @@ Linux or Cygwin.</blockquote> </tr> <tr> - <td valign="top"><img src="favicon.ico"></td> + <td valign="top"><img height="20" width="20" src="favicon.ico"></td> <td bgcolor="#5eaee1"> <b>Cygwin + GNU make + Windows Native Toolchain</b> </td> @@ -857,7 +857,7 @@ Linux or Cygwin.</blockquote> </tr> <tr> - <td valign="top"><img src="favicon.ico"></td> + <td valign="top"><img height="20" width="20" src="favicon.ico"></td> <td bgcolor="#5eaee1"> <b>Others Environments?</b> </td> @@ -967,19 +967,19 @@ Other memory: <center><table width ="80%"> <tr> - <td><img src="favicon.ico"></td> + <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> <td> <a href="ChangeLog.txt">Change Logs for All NuttX Releases</a><br> </td> </tr> <tr> - <td><img src="favicon.ico"></td> + <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> <td> <a href="#currentrelease">ChangeLog for Current Releases</a><br> </td> </tr> <tr> - <td><img src="favicon.ico"></td> + <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> <td> <a href="#pendingchanges">Unreleased Changes</a> </td> @@ -1108,23 +1108,23 @@ buildroot-0.1.1 2008-xx-xx &lt;spudmonkey@racsa.co.cr&gt <ul><table> <tr> - <td><img src="favicon.ico"></td> + <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> <td><a href="NuttxUserGuide.html">User Guide</a></td> </tr> <tr> - <td><img src="favicon.ico"></td> + <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> <td><a href="NuttxPortingGuide.html">Porting Guide</a></td> </tr> <tr> - <td><img src="favicon.ico"></td> + <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> <td><a href="NuttShell.html">NuttShell (NSH)</a></td> </tr> <tr> - <td><img src="favicon.ico"></td> + <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> <td><a href="ChangeLog.txt">Change Log</a></td> </tr> <tr> - <td><img src="favicon.ico"></td> + <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> <td><a href="TODO.txt">To-Do List</a></td> </tr> </center></ul> diff --git a/Documentation/favicon.ico b/Documentation/favicon.ico index f76eec2f9432db5ae57e7c23f5b455e8f5d97c8e..f8740b6c9acaa89a3836e7ca3e42915ba7706828 100644 GIT binary patch literal 766 zcmchVF-}7<42B)r1JueBa|R@k*b=-kG*V8`$SarOJ{*NRpuV9iCwTmJUJ+H*l~i%_ zIlrAhX^8?pDeVxqbh;zDC!#0Jgt^DG{H^i+_)N!_SNi&RqwnJ<&GSslvfPqi<=Yr_ zS{LgV^93`;Ik6{V-XS!swyjAfjs;;Vn$E0XmYz`L`+A@dHDi0_o+x&cJBva!<b%aH z2W(fYqKfpQIl!fJm!gm}n7vZ6RhUWV0)`x1!5htzOHbeluJWcQ4`2*Poi(AJP48z* zw|<lL8*En?{h=J^8&_CMK}2zTvR5=C;0_N2Y%oHMWGDxFuI7!+9UKkD!FHJ_$qKC9 q%3fgYA_DU$D7o5u!&}h@=rO8aWUM_J|3SRUCAQz+`|1zz&xs$AGitH` literal 318 zcmb7;K?(vf3`JAy0UBm--9^CxS0yf8l#p|H8Smqr#NMO+jJlgy*z)trC;2H+z)dNk zMp^>Vk%$&3K^by?@7zykdR?yceB7w_PGgL{)=ghT>VyI?`$NOr*bX16(=0ZrV2OFE p8m*KtvBr`$FsnspRT%KAw%Pjx^f@ulL(WR%{`P$LZhq<y^9}F(9l`(r From 77e0eea20e5e7b16ad730156194e445005491866 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 4 Sep 2008 15:53:22 +0000 Subject: [PATCH 0263/1518] typo git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@877 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 6f4da9a895..28fd69ce56 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -47,7 +47,7 @@ </td> </tr> <tr> - <td valign="top" width="22"> width="20"<img height="20" width="20" src="favicon.ico"></td> + <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> <td> <a href="#environments">Development Environments</a>.<br> What kinds of host cross-development platforms can be used with NuttX? From 22a680f2cfbdf3427b3448be10a8c62721d753a2 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 5 Sep 2008 22:47:42 +0000 Subject: [PATCH 0264/1518] Added basic TFTP client support git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@879 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 28fd69ce56..d8edf1eb2c 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: September 3, 2008</p> + <p>Last Updated: September 5, 2008</p> </td> </tr> </table> @@ -1076,6 +1076,7 @@ nuttx-0.3.14 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * NSH: Add ping command * Correct IP checksum calculation in ICMP and UDP message send logic. * NSH: Created an HTML document and a more detailed README file describing NSH. + * Added basic TFTP client logic (netutils/tftpc). Untested as of initial check-in. pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 399e1a3981f3f5e8ed05fe4e89ea89f6bff38255 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 6 Sep 2008 00:16:09 +0000 Subject: [PATCH 0265/1518] Add get and put commands to NSH git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@880 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttShell.html | 178 ++++++++++++++++++++++++++--------- Documentation/NuttX.html | 1 + 2 files changed, 136 insertions(+), 43 deletions(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index c689cbb468..e9d363dc97 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttShell (NSH)</i></font></big></h1> - <p>Last Updated: September 3, 2008</p> + <p>Last Updated: September 5, 2008</p> </td> </tr> </table> @@ -113,127 +113,139 @@ <tr> <td><br></td> <td> - <a href="#cmdexit">2.7 Exit NSH (exit)</a> + <a href="#cmdget">2.7 Get File Via TFTP (get)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdhelp">2.8 Show Usage Command Usage (help)</a> + <a href="#cmdexit">2.8 Exit NSH (exit)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdifconfig">2.9 Show Network Configuration (ifconfig)</a> + <a href="#cmdhelp">2.9 Show Usage Command Usage (help)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdls">2.10 List Directory Contents (ls)</a> + <a href="#cmdifconfig">2.10 Show Network Configuration (ifconfig)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdmbhw">2.11 Access Memory (mb, mh, and mw)</a> + <a href="#cmdls">2.11 List Directory Contents (ls)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdmem">2.12 Show Memory Manager Status (mem)</a> + <a href="#cmdmbhw">2.12 Access Memory (mb, mh, and mw)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdps">2.13 Show Current Tasks and Threads (ps)</a> + <a href="#cmdmem">2.13 Show Memory Manager Status (mem)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdmkdir">2.14 Create a Directory (mkdir)</a> + <a href="#cmdps">2.14 Show Current Tasks and Threads (ps)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdmkfatfs">2.15 Create a FAT Filesystem (mkfatfs)</a> + <a href="#cmdmkdir">2.15 Create a Directory (mkdir)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdmkfifo">2.16 Create a FIFO (mkfifo)</a> + <a href="#cmdmkfatfs">2.16 Create a FAT Filesystem (mkfatfs)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdmount">2.17 Mount a File System (mount)</a> + <a href="#cmdmkfifo">2.17 Create a FIFO (mkfifo)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdping">2.18 Check Network Peer (ping)</a> + <a href="#cmdmount">2.18 Mount a File System (mount)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdpwd">2.19 Show Current Working Directory (pwd)</a> + <a href="#cmdping">2.19 Check Network Peer (ping)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdrm">2.20 Remove a File (rm)</a> + <a href="#cmdput">2.20 Send File Via TFTP (put)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdrmdir">2.21 Remove a Directory (rmdir)</a> + <a href="#cmdpwd">2.21 Show Current Working Directory (pwd)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdset">2.22 Set an Environment Variable (set)</a> + <a href="#cmdrm">2.22 Remove a File (rm)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdsh">2.23 Execute an NSH Script (sh)</a> + <a href="#cmdrmdir">2.23 Remove a Directory (rmdir)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdsleep">2.24 Wait for Seconds (sleep)</a> + <a href="#cmdset">2.24 Set an Environment Variable (set)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdunmount">2.25 Unmount a File System (umount)</a> + <a href="#cmdsh">2.25 Execute an NSH Script (sh)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdunset">2.26 Unset an Environment Variable (unset)</a> + <a href="#cmdsleep">2.26 Wait for Seconds (sleep)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdusleep">2.27 Wait for Microseconds (usleep)</a> + <a href="#cmdunmount">2.27 Unmount a File System (umount)</a> + </td> +</tr> +<tr> + <td><br></td> + <td> + <a href="#cmdunset">2.28 Unset an Environment Variable (unset)</a> + </td> +</tr> +<tr> + <td><br></td> + <td> + <a href="#cmdusleep">2.29 Wait for Microseconds (usleep)</a> </td> </tr> <tr> @@ -621,7 +633,42 @@ exec &lt;hex-address&gt; <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdexit"><h2>2.7 Exit NSH (exit)</h2></a> + <a name="cmdget"><h2>2.7 Get File Via TFTP (get)</h2></a> + </td> + </tr> +</table> + +<a <p><b>Command Syntax:</b></p> +<ul><pre> +get [-b|-n] [-f &lt;local-path&gt;] -h &lt;ip-address&gt; &lt;remote-path&gt; +</pre></ul> +<p> + <b>Synopsis</b>. + Copy the file at <code>&lt;remote-address&gt;</code> from the host whose IP address is + identified by <code>&lt;ip-address&gt;</code>. +</p> +<p><b>Other options:</b></p> +<ul><table> + <tr> + <td><b><code>-f &lt;local-path&gt;</code></b></td> + <td> + The file will be saved relative to the current working directory + unless <code>&lt;local-path&gt;</code> is provided. + </td> + </tr> + <tr> + <td><b><code>-b|-n</code></b></td> + <td> + Selects either binary (&quot;octect&quot;) or test (&quot;netascii&quot;) transfer + mode. Default: text. + </td> + </tr> +</table></ul> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="cmdexit"><h2>2.8 Exit NSH (exit)</h2></a> </td> </tr> </table> @@ -640,7 +687,7 @@ exit <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdhelp"><h2>2.8 Show Usage Command Usage (help)</h2></a> + <a name="cmdhelp"><h2>2.9 Show Usage Command Usage (help)</h2></a> </td> </tr> </table> @@ -657,7 +704,7 @@ help <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdifconfig"><h2>2.9 Show Network Configuration (ifconfig)</h2></a> + <a name="cmdifconfig"><h2>2.10 Show Network Configuration (ifconfig)</h2></a> </td> </tr> </table> @@ -683,7 +730,7 @@ eth0 HWaddr 00:18:11:80:10:06 <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdls"><h2>2.10 List Directory Contents (ls)</h2></a> + <a name="cmdls"><h2>2.11 List Directory Contents (ls)</h2></a> </td> </tr> </table> @@ -720,7 +767,7 @@ ls [-lRs] &lt;dir-path&gt; <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdmbhw"><h2>2.11 Access Memory (mb, mh, and mw)</h2></a> + <a name="cmdmbhw"><h2>2.12 Access Memory (mb, mh, and mw)</h2></a> </td> </tr> </table> @@ -774,7 +821,7 @@ nsh&gt; <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdmem"><h2>2.12 Show Memory Manager Status (mem)</h2></a> + <a name="cmdmem"><h2>2.13 Show Memory Manager Status (mem)</h2></a> </td> </tr> </table> @@ -823,7 +870,7 @@ nsh&gt; <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdps"><h2>2.13 Show Current Tasks and Threads (ps)</h2></a> + <a name="cmdps"><h2>2.14 Show Current Tasks and Threads (ps)</h2></a> </td> </tr> </table> @@ -849,7 +896,7 @@ nsh&gt; <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdmkdir"><h2>2.14 Create a Directory (mkdir)</h2></a> + <a name="cmdmkdir"><h2>2.15 Create a Directory (mkdir)</h2></a> </td> </tr> </table> @@ -884,7 +931,7 @@ nsh> <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdmkfatfs"><h2>2.15 Create a FAT Filesystem (mkfatfs)</h2></a> + <a name="cmdmkfatfs"><h2>2.16 Create a FAT Filesystem (mkfatfs)</h2></a> </td> </tr> </table> @@ -904,7 +951,7 @@ mkfatfs &lt;path&gt; <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdmkfifo"><h2>2.16 Create a FIFO (mkfifo)</h2></a> + <a name="cmdmkfifo"><h2>2.17 Create a FIFO (mkfifo)</h2></a> </td> </tr> </table> @@ -942,7 +989,7 @@ nsh> <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdmount"><h2>2.17 Mount a File System (mount)</h2></a> + <a name="cmdmount"><h2>2.18 Mount a File System (mount)</h2></a> </td> </tr> </table> @@ -1009,7 +1056,7 @@ nsh> <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdping"><h2>2.18 Check Network Peer (ping)</h2></a> + <a name="cmdping"><h2>2.19 Check Network Peer (ping)</h2></a> </td> </tr> </table> @@ -1042,7 +1089,42 @@ nsh&gt; <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdpwd"><h2>2.19 Show Current Working Directory (pwd)</h2></a> + <a name="cmdput"><h2>2.20 Send File Via TFTP (put)</h2></a> + </td> + </tr> +</table> + +<a <p><b>Command Syntax:</b></p> +<ul><pre> +put [-b|-n] [-f &lt;remote-path&gt;] -h &lt;ip-address&gt; &lt;local-path&gt; +</pre></ul> +<p> + <b>Synopsis</b>. + Copy the file at <code>&lt;local-address&gt;</code> to the host whose IP address is + identified by <code>&lt;ip-address&gt;</code>. +</p> +<p><b>Other options:</b></p> +<ul><table> + <tr> + <td><b><code>-f &lt;remote-path&gt;</code></b></td> + <td> + The file will be saved relative with the same name on the host + unless <code>&lt;remote-path&gt;</code> is provided. + </td> + </tr> + <tr> + <td><b><code>-b|-n</code></b></td> + <td> + Selects either binary (&quot;octect&quot;) or test (&quot;netascii&quot;) transfer + mode. Default: text. + </td> + </tr> +</table></ul> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="cmdpwd"><h2>2.21 Show Current Working Directory (pwd)</h2></a> </td> </tr> </table> @@ -1072,7 +1154,7 @@ nsh&gt; <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdrm"><h2>2.20 Remove a File (rm)</h2></a> + <a name="cmdrm"><h2>2.22 Remove a File (rm)</h2></a> </td> </tr> </table> @@ -1106,7 +1188,7 @@ nsh> <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdrmdir"><h2>2.21 Remove a Directory (rmdir)</h2></a> + <a name="cmdrmdir"><h2>2.23 Remove a Directory (rmdir)</h2></a> </td> </tr> </table> @@ -1141,7 +1223,7 @@ nsh> <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdset"><h2>2.22 Set an Environment Variable (set)</h2></a> + <a name="cmdset"><h2>2.24 Set an Environment Variable (set)</h2></a> </td> </tr> </table> @@ -1167,7 +1249,7 @@ nsh&gt; <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdsh"><h2>2.23 Execute an NSH Script (sh)</h2></a> + <a name="cmdsh"><h2>2.25 Execute an NSH Script (sh)</h2></a> </td> </tr> </table> @@ -1185,7 +1267,7 @@ sh &lt;script-path&gt; <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdsleep"><h2>2.24 Wait for Seconds (sleep)</h2></a> + <a name="cmdsleep"><h2>2.26 Wait for Seconds (sleep)</h2></a> </td> </tr> </table> @@ -1202,7 +1284,7 @@ sleep &lt;sec&gt; <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdunmount"><h2>2.25 Unmount a File System (umount)</h2></a> + <a name="cmdunmount"><h2>2.27 Unmount a File System (umount)</h2></a> </td> </tr> </table> @@ -1232,7 +1314,7 @@ nsh> <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdunset"><h2>2.26 Unset an Environment Variable (unset)</h2></a> + <a name="cmdunset"><h2>2.28 Unset an Environment Variable (unset)</h2></a> </td> </tr> </table> @@ -1258,7 +1340,7 @@ nsh&gt; <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdusleep"><h2>2.27 Wait for Microseconds (usleep)</h2></a> + <a name="cmdusleep"><h2>2.29 Wait for Microseconds (usleep)</h2></a> </td> </tr> </table> @@ -1331,6 +1413,10 @@ usleep &lt;usec&gt; <td><b><code>exit</code></b></td> <td><br></td> </tr> + <tr> + <td><b><code>get</code></b></td> + <td><code>CONFIG_NET</code> &amp;&amp; <code>CONFIG_NET_UDP</code> &amp;&amp; <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0</td> + </tr> <tr> <td><b><code>help</code></b></td> <td><br></td> @@ -1375,6 +1461,10 @@ usleep &lt;usec&gt; <td><b><code>ps</code></b></td> <td><br></td> </tr> + <tr> + <td><b><code>put</code></b></td> + <td><code>CONFIG_NET</code> &amp;&amp; <code>CONFIG_NET_UDP</code> &amp;&amp; <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0</td> + </tr> <tr> <td><b><code>pwd</code></b></td> <td>!<code>CONFIG_DISABLE_ENVIRON</code> &amp;&amp; <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0</td> @@ -1602,6 +1692,7 @@ usleep &lt;usec&gt; <li><a href="#environvars">Environment Variables</a></li> <li><a href="#cmdexec"><code>exec</code></a></li> <li><a href="#cmdexit"><code>exit</code></a></li> + <li><a href="#cmdget"><code>get</code></a></li> </ul></td> <td></ul> <li><a href="#frontend">Greeting</a></li> @@ -1623,6 +1714,7 @@ usleep &lt;usec&gt; <li><a href="#cmdping"><code>ping</code></a></li> <li><a href="#frontend">Prompt</a></li> <li><a href="#cmdps"><code>ps</code></a></li> + <li><a href="#cmdput"><code>put</code></a></li> <li><a href="#cmdpwd"><code>pwd</code></a></li> <li><a href="#environvars"><code>PWD</code></a></li> <li><a href="#cmdoverview">Re-directed commands</a></li> diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index d8edf1eb2c..2e936dee9e 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1077,6 +1077,7 @@ nuttx-0.3.14 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Correct IP checksum calculation in ICMP and UDP message send logic. * NSH: Created an HTML document and a more detailed README file describing NSH. * Added basic TFTP client logic (netutils/tftpc). Untested as of initial check-in. + * NSH: Add get and put commands to support TFTP get and put operations. pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 5112281795b6779bd23f5294bef810ad49fcf57f Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 6 Sep 2008 02:19:13 +0000 Subject: [PATCH 0266/1518] TFTP needs larger MSS git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@882 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttShell.html | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index e9d363dc97..2c8d8e2fb1 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -1415,7 +1415,8 @@ usleep &lt;usec&gt; </tr> <tr> <td><b><code>get</code></b></td> - <td><code>CONFIG_NET</code> &amp;&amp; <code>CONFIG_NET_UDP</code> &amp;&amp; <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0</td> + <td><code>CONFIG_NET</code> &amp;&amp; <code>CONFIG_NET_UDP</code> &amp;&amp; + <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0 &amp;&amp; <code>CONFIG_NET_BUFSIZE</code> &gt;= 558</td> </tr> <tr> <td><b><code>help</code></b></td> @@ -1455,7 +1456,9 @@ usleep &lt;usec&gt; </tr> <tr> <td><b><code>ping</code></b></td> - <td><code>CONFIG_NET</code> &amp;&amp; <code>CONFIG_NET_ICMP &amp;&amp;</code> <code>CONFIG_NET_ICMP_PING</code> &amp;&amp; !<code>CONFIG_DISABLE_CLOCK</code> &amp;&amp; !<code>CONFIG_DISABLE_SIGNALS</code></td> + <td><code>CONFIG_NET</code> &amp;&amp; <code>CONFIG_NET_ICMP</code> &amp;&amp; + <code>CONFIG_NET_ICMP_PING</code> &amp;&amp; !<code>CONFIG_DISABLE_CLOCK</code> &amp;&amp; + !<code>CONFIG_DISABLE_SIGNALS</code></td> </tr> <tr> <td><b><code>ps</code></b></td> @@ -1463,7 +1466,8 @@ usleep &lt;usec&gt; </tr> <tr> <td><b><code>put</code></b></td> - <td><code>CONFIG_NET</code> &amp;&amp; <code>CONFIG_NET_UDP</code> &amp;&amp; <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0</td> + <td><code>CONFIG_NET</code> &amp;&amp; <code>CONFIG_NET_UDP</code> &amp;&amp; + <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0 &amp;&amp; <code>CONFIG_NET_BUFSIZE</code> &gt;= 558</td> </tr> <tr> <td><b><code>pwd</code></b></td> From 91a21282b018ac9edb233241c789880d79d58a17 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 6 Sep 2008 13:29:14 +0000 Subject: [PATCH 0267/1518] Add NSH command to create RAMDISK git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@884 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttShell.html | 112 +++++++++++++++++++++++++++-------- Documentation/NuttX.html | 4 +- 2 files changed, 90 insertions(+), 26 deletions(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index 2c8d8e2fb1..fa8003a17c 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -179,73 +179,79 @@ <tr> <td><br></td> <td> - <a href="#cmdmount">2.18 Mount a File System (mount)</a> + <a href="#cmdmkrd">2.18 Create a RAMDISK (mkrd)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdping">2.19 Check Network Peer (ping)</a> + <a href="#cmdmount">2.19 Mount a File System (mount)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdput">2.20 Send File Via TFTP (put)</a> + <a href="#cmdping">2.20 Check Network Peer (ping)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdpwd">2.21 Show Current Working Directory (pwd)</a> + <a href="#cmdput">2.21 Send File Via TFTP (put)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdrm">2.22 Remove a File (rm)</a> + <a href="#cmdpwd">2.22 Show Current Working Directory (pwd)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdrmdir">2.23 Remove a Directory (rmdir)</a> + <a href="#cmdrm">2.23 Remove a File (rm)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdset">2.24 Set an Environment Variable (set)</a> + <a href="#cmdrmdir">2.24 Remove a Directory (rmdir)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdsh">2.25 Execute an NSH Script (sh)</a> + <a href="#cmdset">2.25 Set an Environment Variable (set)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdsleep">2.26 Wait for Seconds (sleep)</a> + <a href="#cmdsh">2.26 Execute an NSH Script (sh)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdunmount">2.27 Unmount a File System (umount)</a> + <a href="#cmdsleep">2.27 Wait for Seconds (sleep)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdunset">2.28 Unset an Environment Variable (unset)</a> + <a href="#cmdunmount">2.28 Unmount a File System (umount)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdusleep">2.29 Wait for Microseconds (usleep)</a> + <a href="#cmdunset">2.29 Unset an Environment Variable (unset)</a> + </td> +</tr> +<tr> + <td><br></td> + <td> + <a href="#cmdusleep">2.30 Wait for Microseconds (usleep)</a> </td> </tr> <tr> @@ -989,7 +995,58 @@ nsh> <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdmount"><h2>2.18 Mount a File System (mount)</h2></a> + <a name="cmdmkrd"><h2>2.18 Create a RAMDISK (mkrd)</h2></a> + </td> +</tr> +</table> + +<p><b>Command Syntax:</b></p> +<ul><pre> +mkrd [-m &lt;minor&gt;] [-s &lt;sector-size&gt;] &lt;nsectors&gt; +</pre></ul> +<p> + <b>Synopsis</b>. + Create a ramdisk consisting of <code>&lt;nsectors&gt;</code>, each of size + <code>&lt;sector-size&gt;</code> (or 512 bytes if <code>&lt;sector-size&gt;</code> is not specified. + The ramdisk will be registered as <code>/dev/ram&lt;n&gt;</code> (if <code>&lt;n&gt;</code> is not + specified, mkrd will attempt to register the ramdisk as <code>/dev/ram0</code>. +</p> +<p><b>Example</b></p> +<ul><pre> +nsh&gt; ls /dev +/dev: + console + null + ttyS0 + ttyS1 +nsh&gt; mkrd 1024 +nsh&gt; ls /dev +/dev: + console + null + ram0 + ttyS0 + ttyS1 +nsh&gt; +</pre></ul> +<p> + Once the ramdisk has been created, it may be formatted using + the <code>mkfatfs</code> command and mounted using the <code>mount</code> command. +</p> +<p><b>Example</b></p> +<ul><pre> +nsh&gt; mkrd 1024 +nsh&gt; mkfatfs /dev/ram0 +nsh&gt; mount -t vfat /dev/ram0 /tmp +nsh&gt; ls /tmp +/tmp: +nsh&gt; +</pre></ul> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="cmdmount"><h2>2.19 Mount a File System (mount)</h2></a> </td> </tr> </table> @@ -1056,7 +1113,7 @@ nsh> <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdping"><h2>2.19 Check Network Peer (ping)</h2></a> + <a name="cmdping"><h2>2.20 Check Network Peer (ping)</h2></a> </td> </tr> </table> @@ -1089,7 +1146,7 @@ nsh&gt; <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdput"><h2>2.20 Send File Via TFTP (put)</h2></a> + <a name="cmdput"><h2>2.21 Send File Via TFTP (put)</h2></a> </td> </tr> </table> @@ -1124,7 +1181,7 @@ put [-b|-n] [-f &lt;remote-path&gt;] -h &lt;ip-address&gt; &lt;local-path&gt; <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdpwd"><h2>2.21 Show Current Working Directory (pwd)</h2></a> + <a name="cmdpwd"><h2>2.22 Show Current Working Directory (pwd)</h2></a> </td> </tr> </table> @@ -1154,7 +1211,7 @@ nsh&gt; <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdrm"><h2>2.22 Remove a File (rm)</h2></a> + <a name="cmdrm"><h2>2.23 Remove a File (rm)</h2></a> </td> </tr> </table> @@ -1188,7 +1245,7 @@ nsh> <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdrmdir"><h2>2.23 Remove a Directory (rmdir)</h2></a> + <a name="cmdrmdir"><h2>2.24 Remove a Directory (rmdir)</h2></a> </td> </tr> </table> @@ -1223,7 +1280,7 @@ nsh> <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdset"><h2>2.24 Set an Environment Variable (set)</h2></a> + <a name="cmdset"><h2>2.25 Set an Environment Variable (set)</h2></a> </td> </tr> </table> @@ -1249,7 +1306,7 @@ nsh&gt; <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdsh"><h2>2.25 Execute an NSH Script (sh)</h2></a> + <a name="cmdsh"><h2>2.26 Execute an NSH Script (sh)</h2></a> </td> </tr> </table> @@ -1267,7 +1324,7 @@ sh &lt;script-path&gt; <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdsleep"><h2>2.26 Wait for Seconds (sleep)</h2></a> + <a name="cmdsleep"><h2>2.27 Wait for Seconds (sleep)</h2></a> </td> </tr> </table> @@ -1284,7 +1341,7 @@ sleep &lt;sec&gt; <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdunmount"><h2>2.27 Unmount a File System (umount)</h2></a> + <a name="cmdunmount"><h2>2.28 Unmount a File System (umount)</h2></a> </td> </tr> </table> @@ -1314,7 +1371,7 @@ nsh> <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdunset"><h2>2.28 Unset an Environment Variable (unset)</h2></a> + <a name="cmdunset"><h2>2.29 Unset an Environment Variable (unset)</h2></a> </td> </tr> </table> @@ -1340,7 +1397,7 @@ nsh&gt; <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdusleep"><h2>2.29 Wait for Microseconds (usleep)</h2></a> + <a name="cmdusleep"><h2>2.30 Wait for Microseconds (usleep)</h2></a> </td> </tr> </table> @@ -1448,7 +1505,11 @@ usleep &lt;usec&gt; </tr> <tr> <td><b><code>mkfifo</code></b></td> - <td>!<code>CONFIG_DISABLE_MOUNTPOINT</code> && <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0</td> + <td><code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0</td> + </tr> + <tr> + <td><b><code>mkrd</code></b></td> + <td>!<code>CONFIG_DISABLE_MOUNTPOINT</code> && <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0 && <code>CONFIG_FS_FAT</code></td> </tr> <tr> <td><b><code>mount</code></b></td> @@ -1711,6 +1772,7 @@ usleep &lt;usec&gt; <li><a href="#cmdmkdir"><code>mkdir</code></a></li> <li><a href="#cmdmkfatfs"><code>mkfatfs</code></a></li> <li><a href="#cmdmkfifo"><code>mkfifo</code></a></li> + <li><a href="#cmdmkrd"><code>mkrd</code></a></li> <li><a href="#cmdmount"><code>mount</code></a></li> <li><a href="#cmdoverview"><code>nice</code></a></li> <li><a href="#environvars"><code>OLDPWD</code></a></li> diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 2e936dee9e..59f2afdf97 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: September 5, 2008</p> + <p>Last Updated: September 6, 2008</p> </td> </tr> </table> @@ -1078,6 +1078,8 @@ nuttx-0.3.14 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * NSH: Created an HTML document and a more detailed README file describing NSH. * Added basic TFTP client logic (netutils/tftpc). Untested as of initial check-in. * NSH: Add get and put commands to support TFTP get and put operations. + * NSH: Added a mkrd command that will create a RAMDISK that can be formatted + and mounted. pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 38e57eb21dc6c84c1144dc73bf4416a7e2b55ba6 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 6 Sep 2008 15:44:41 +0000 Subject: [PATCH 0268/1518] TFTP Get integration git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@885 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttShell.html | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index fa8003a17c..2719e549b6 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -1473,7 +1473,7 @@ usleep &lt;usec&gt; <tr> <td><b><code>get</code></b></td> <td><code>CONFIG_NET</code> &amp;&amp; <code>CONFIG_NET_UDP</code> &amp;&amp; - <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0 &amp;&amp; <code>CONFIG_NET_BUFSIZE</code> &gt;= 558</td> + <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0 &amp;&amp; <code>CONFIG_NET_BUFSIZE</code> &gt;= 558<sup>1</sup></td> </tr> <tr> <td><b><code>help</code></b></td> @@ -1528,7 +1528,7 @@ usleep &lt;usec&gt; <tr> <td><b><code>put</code></b></td> <td><code>CONFIG_NET</code> &amp;&amp; <code>CONFIG_NET_UDP</code> &amp;&amp; - <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0 &amp;&amp; <code>CONFIG_NET_BUFSIZE</code> &gt;= 558</td> + <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0 &amp;&amp; <code>CONFIG_NET_BUFSIZE</code> &gt;= 558<sup>1</sup></td> </tr> <tr> <td><b><code>pwd</code></b></td> @@ -1572,6 +1572,8 @@ usleep &lt;usec&gt; </tr> </table></center> +<p><sup>1</sup><small>Because of hardware padding, the actual required packet size may be larger</small></p> + <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> From 174e47fbb4beae29968ada954cb6813f24519164 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 6 Sep 2008 16:45:28 +0000 Subject: [PATCH 0269/1518] Fix recvfrom port bug git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@886 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 59f2afdf97..4674077cc3 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1080,6 +1080,8 @@ nuttx-0.3.14 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * NSH: Add get and put commands to support TFTP get and put operations. * NSH: Added a mkrd command that will create a RAMDISK that can be formatted and mounted. + * Corrected a critical bug that prevent recvfrom from receiving packets from + any remote UDP port. pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From f7498c83e55f96e7bfbd51c0ea8959eceafffa86 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 7 Sep 2008 02:07:18 +0000 Subject: [PATCH 0270/1518] TFTP put notes git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@891 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttShell.html | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index 2719e549b6..1b83454b93 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -1528,7 +1528,7 @@ usleep &lt;usec&gt; <tr> <td><b><code>put</code></b></td> <td><code>CONFIG_NET</code> &amp;&amp; <code>CONFIG_NET_UDP</code> &amp;&amp; - <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0 &amp;&amp; <code>CONFIG_NET_BUFSIZE</code> &gt;= 558<sup>1</sup></td> + <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0 &amp;&amp; <code>CONFIG_NET_BUFSIZE</code> &gt;= 558<sup>1,2</sup></td> </tr> <tr> <td><b><code>pwd</code></b></td> @@ -1572,7 +1572,11 @@ usleep &lt;usec&gt; </tr> </table></center> -<p><sup>1</sup><small>Because of hardware padding, the actual required packet size may be larger</small></p> +<p><sup>1</sup><small> + Because of hardware padding, the actual required packet size may be larger</small></p> +<p><sup>2</sup><small> + Special TFTP server start-up optionss will probably be required to permit + creation of files for the correct operation of the <code>put</code> command.</small></p> <table width ="100%"> <tr bgcolor="#e4e4e4"> From 5e057db68de797c4076bdd9c01aba64e53c08752 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 7 Sep 2008 13:42:55 +0000 Subject: [PATCH 0271/1518] Add NSH xd command git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@892 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttShell.html | 34 ++++++++++++++++++++++++++++++++++ Documentation/NuttX.html | 3 ++- 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index 1b83454b93..bedb624f84 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -254,6 +254,12 @@ <a href="#cmdusleep">2.30 Wait for Microseconds (usleep)</a> </td> </tr> +<tr> + <td><br></td> + <td> + <a href="#cmdxd">2.31 Hexadecimal Dump (xd)</a> + </td> +</tr> <tr> <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> <td> @@ -1411,6 +1417,33 @@ usleep &lt;usec&gt; Pause execution (sleep) of <code>&lt;usec&gt;</code> microseconds. </p> +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="cmdxd"><h2>2.31 Hexadecimal dump (xd)</h2></a> + </td> + </tr> +</table> + +<a <p><b>Command Syntax:</b></p> +<ul><pre> +xd &lt;hex-address&gt; &lt;byte-count&gt; +</pre></ul> +<p> + <b>Synopsis</b>. + Dump <code>&lt;byte-count&gt;</code> bytes of data from address <code>&lt;hex-address&gt;</code>. +</p> +<p><b>Example:</b></p> +<ul><pre> +nsh> xd 410e0 512 +Hex dump: +0000: 00 00 00 00 9c 9d 03 00 00 00 00 01 11 01 10 06 ................ +0010: 12 01 11 01 25 08 13 0b 03 08 1b 08 00 00 02 24 ....%..........$ +... +01f0: 08 3a 0b 3b 0b 49 13 00 00 04 13 01 01 13 03 08 .:.;.I.......... +nsh> +</pre></ul> + <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> @@ -1800,6 +1833,7 @@ usleep &lt;usec&gt; <li><a href="#cmdunmount"><code>umount</code></a></li> <li><a href="#cmdunset"><code>unset</code></a></li> <li><a href="#cmdusleep"><code>usleep</code></a></li> + <li><a href="#cmdxd"><code>xd</code></a></li> </ul></td> </tr></table> diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 4674077cc3..04704af51f 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: September 6, 2008</p> + <p>Last Updated: September 7, 2008</p> </td> </tr> </table> @@ -1082,6 +1082,7 @@ nuttx-0.3.14 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; and mounted. * Corrected a critical bug that prevent recvfrom from receiving packets from any remote UDP port. + * NSH: Add hexadecimal dump command (xd) pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 1681b7822414dfdc5b3dec6165e498a3bf0e6087 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 7 Sep 2008 22:27:17 +0000 Subject: [PATCH 0272/1518] Fixed critical FAT bugs git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@894 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 04704af51f..e70fd88cee 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1083,6 +1083,9 @@ nuttx-0.3.14 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Corrected a critical bug that prevent recvfrom from receiving packets from any remote UDP port. * NSH: Add hexadecimal dump command (xd) + * Fixed several critical bugs with regard to fat reading and writing and FAT12 + accesses. Basically the FAT FS only worked with my tiny test files and test + cases. A lot of stronger FAT tested is needed!! pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 2166bdc507bb8820e8131e94d3178eeb4fe7dff4 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 8 Sep 2008 00:00:25 +0000 Subject: [PATCH 0273/1518] update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@895 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index e70fd88cee..b6693b8d56 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -256,6 +256,14 @@ </p> </tr> +<tr> + <td><br></td> + <td> + <p> + <li>Highly configurable.</li> + </p> +</tr> + <tr> <td><br></td> <td> @@ -348,10 +356,17 @@ <td><br></td> <td> <p> - <li>Network and serial driver architecture.</li> + <li>Network, serial, CAN, driver architecture.</li> </p> </tr> +<tr> + <td><br></td> + <td> + <p> + <li>RAMDISK, pipes, FIFO, <code>/dev/null</code>, <code>/dev/zero</code> drivers.</li> + </p> +</tr> <tr> <td><br></td> <td> @@ -418,7 +433,7 @@ <td><br></td> <td> <p> - <li>Networking utilities.</li> + <li>Networking utilities (DHCP, SMTP, TELNET, TFTP, HTTP)</li> </p> </tr> </table></center> @@ -429,6 +444,22 @@ <p> <center><table width="90%"> +<tr> + <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> + <td bgcolor="#5eaee1"> + <b>NuttShell (NSH)</b> + </td> +</tr> + +<tr> + <td><br></td> + <td> + <p> + <li>A small, scalable, bash-like shell for NuttX with rich feature set and small footprint. + See the <a href="NuttShell.html">NuttShell User Guide</a>.</li> + </p> +</tr> + <tr> <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> <td bgcolor="#5eaee1"> From 8a069b84ebc124cd89d4ac486ed051fbbc607df2 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 8 Sep 2008 17:04:14 +0000 Subject: [PATCH 0274/1518] Fix FAT seek bug git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@896 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index b6693b8d56..ad71c555fe 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: September 7, 2008</p> + <p>Last Updated: September 8, 2008</p> </td> </tr> </table> @@ -1117,6 +1117,8 @@ nuttx-0.3.14 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Fixed several critical bugs with regard to fat reading and writing and FAT12 accesses. Basically the FAT FS only worked with my tiny test files and test cases. A lot of stronger FAT tested is needed!! + * Fixed another FAT bug in implementation of FAT lseek; this prohibit correct + random access to large files. pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 154999e803e34c2b3e56acd86cd7ec3d05ed4518 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 8 Sep 2008 19:14:25 +0000 Subject: [PATCH 0275/1518] Prep for 0.3.14 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@898 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 155 ++++++++++++++++----------------------- 1 file changed, 63 insertions(+), 92 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index ad71c555fe..2e8aa1106f 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -487,7 +487,7 @@ </table> <p> - The 25th release of NuttX (nuttx-0.3.13) is available for download + The 26th release of NuttX (nuttx-0.3.14) is available for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. The change log associated with the release is available <a href="#currentrelease">here</a>. @@ -495,36 +495,47 @@ These unreleased changes are listed <a href="#pendingchanges">here</a>. </p> <p> - The nuttx-0.3.13 release includes some important bug fixes as well as a few new features. - Bugs fixed include: + The nuttx-0.3.14 release includes some important bug fixes as well as a few new features. + Critical bugs fixed include: <ul> - <li>Fixed problems with Cygwin-based console input. NSH now works with the Cygwin simulator.</li> - <li>sched_get_priority_max/min returned error on SCHED_RR.</li> - <li>Corrected detection of End-of-File in fgets().</li> - <li>Fixed an error in opendir() that could cause an assertion to fail inappropriately.</li> - <li>Corrected an error in the FAT that caused files opened for writing with O_APPEND to fail.</li> - <li>Fix error in getopt() when called with argc==1.</li> - <li>Fix error in stat() when used on the root directory.</li> - <li>Fixed a critical bug that effects the way that environment variables are shared amongst - pthreads.</li> - <li>uIP port now supports multi-threaded, concurrent socket access. So, for example, one - thread can be reading from a socket while another is writing to the socket.</li> + <li>FAT FS: + <ul> + <li>Fixed several critical bugs with regard to fat reading and writing and FAT12 + accesses. Basically the FAT FS only worked with my tiny test files and test + cases. A lot of stronger FAT tested is still needed!!</li> + <li>Fixed another FAT bug in implementation of FAT lseek; this prohibit correct + random access to large files.</li> + </ul> + </li> + <li>Network: + <ul> + <li>Corrected a critical bug that may prevent <code>recvfrom()</code> from receiving + packets from most remote UDP port numbers.</li> + <li>Corrected an error in multi-threaded socket handling in <code>send()</code> and + <code>sendto()</code>. Outgoing data could overwrite incoming data.</li> + <li>Corrected IP checksum calculation in ICMP and UDP message send logic. + <li>Corrected an error in <code>send()</code> timeout logic.</li> + </ul> + </li> </ul> </p> <p> New features were also added: <ul> - - <li>New OS APIs: chdir() and getcwd().</li> - <li>The Nuttx shell (NSH) has been extended in many ways: - <ul> - <li>New commands: mkfatfs, mkfifo, sleep, usleep, nice, sh, cd, and pwd commands - <li>New memory inspection commands and heap usage commands - <li>New capabilities: Execution of commands in background, execution of simple scripts, - redirection of command output, last command status ($?) - <li>Now supports if-then[-else]-fi construct - <li>and other features as noted in the ChangeLog. - </ul></li> + <li>Network: + <ul> + <li>Added support for application access to ICMP protocol stacks; Added + ping request logic (<code>net/uip</code>). + <li>Added basic TFTP client logic (<code>netutils/tftpc</code>). + </ul> + </li> + <li>NuttShell (NSH): + <ul> + <li>New commands: <code>test</code>, <code>[</code>, <code>ping</code>, + <code>mkrd,</code> <code>xd</code>, andTFTP <code>get</code> and <code>put</code> commands. + (See the new NuttShell User Guide for additional information). + </ul> + </li> </ul> </p> <p> @@ -1026,73 +1037,7 @@ Other memory: </table> <pre><ul> -nuttx-0.3.13 2008-09-01 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - - * NSH: Added mkfatfs, mkfifo, sleep, usleep and nice commands - * Fixed problem with console input in Cygwin-based simulator; NSH now works - with simulator. - * NSH will now execute commands in background - * sched_get_priority_max/min returned error on SCHED_RR - * Removed duplicate getenv() implementation in /lib - * Correct detection of End-of-File in fgets - * NSH: Implemented sh and crude script handler - * Fix prototype of read() and write(). Need to use ssize_t and size_t, not - int and unsigned int. - * NSH now supports redirection of command output - * NSH can now use both telnet and serial front ends together - * NSH: $variable can be used for any command value - * Fixed an error in opendir() that could cause an assertion to fail - inappropriately. - * Correct an error in the FAT that caused files opened for writing with - O_APPEND to fail. The file was not being properly positioned to the - end of the file in that case. - * NSH now supports last exit status $? - * NSH now supports if-then[-else]-fi construct - * NSH now supports comments beginning with '#' - * NSH now supports commands to inspect and modify memory - * NSH cat command now supports multiple files on command line - * Add chdir() and getcwd() - * Fix error in getopt() when called with argc==1 - * Fix error in stat() when used on the root directory - * NSH: Add cd and pwd commands and current working directory to all NSH - commands that refer to paths. - * Fix errors and warnings introduced into Linux sim build because of recent - Cygwin-based sim changes - * NSH: Add mem command to display heap usage - * Added telnet NSH configuration for Neuros OSD. - * Basic integration of concurrent telnet/serial NSH functional on Neuros - OSD. - * Fixed a critical bug that effects the way that environment variables are - shared amongst pthreads. - * uIP port enhance to support multi-threaded, concurrent socket access. So, - for example, one thread can be reading from a socket while another is - writing to the socket. - -pascal-0.1.2 2008-02-10 Gregory Nutt <spudmonkey@racsa.co.cr> - - * Add logic to build and link with the ZDS-II toolchain - use with the z16f. - * Make sure that POFF header structures are aligned - * Standardized POFF file format to big-endian - * Break up large switch statements to lower complexity - and eliminate a compiler bug - * Changes so that runtime compiles with SDCC. - -buildroot-0.1.0 2007-03-09 &lt;spudmonkey@racsa.co.cr&gt - - * Support for arm-elf toolchain -</pre></ul> - -<table width ="100%"> - <tr bgcolor="#e4e4e4"> - <td> - <a name="pendingchanges">Unreleased Changes</a> - </td> - </tr> -</table> - -<pre><ul> -nuttx-0.3.14 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; +nuttx-0.3.14 2008-09-08 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * FAT FS now uses position variable in struct file. This simplifies operations like ftell(). * fseek() needs to discard bytes buffered by ungetc(). @@ -1120,6 +1065,32 @@ nuttx-0.3.14 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Fixed another FAT bug in implementation of FAT lseek; this prohibit correct random access to large files. +pascal-0.1.2 2008-02-10 Gregory Nutt <spudmonkey@racsa.co.cr> + + * Add logic to build and link with the ZDS-II toolchain + use with the z16f. + * Make sure that POFF header structures are aligned + * Standardized POFF file format to big-endian + * Break up large switch statements to lower complexity + and eliminate a compiler bug + * Changes so that runtime compiles with SDCC. + +buildroot-0.1.0 2007-03-09 &lt;spudmonkey@racsa.co.cr&gt + + * Support for arm-elf toolchain +</pre></ul> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="pendingchanges">Unreleased Changes</a> + </td> + </tr> +</table> + +<pre><ul> +nuttx-0.3.15 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; buildroot-0.1.1 2008-xx-xx &lt;spudmonkey@racsa.co.cr&gt From e8ca626e9db7a454222a62163512f682642b857a Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 10 Sep 2008 19:29:24 +0000 Subject: [PATCH 0276/1518] ROMFS filesystem support git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@903 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttShell.html | 32 +++++++++++++++++----------- Documentation/NuttX.html | 12 +++++++++-- Documentation/NuttxPortingGuide.html | 13 +++++++++++ 3 files changed, 43 insertions(+), 14 deletions(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index bedb624f84..d25d6d8c43 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttShell (NSH)</i></font></big></h1> - <p>Last Updated: September 5, 2008</p> + <p>Last Updated: September 10, 2008</p> </td> </tr> </table> @@ -1485,7 +1485,7 @@ nsh> </tr> <tr> <td><b><code>cd</code></b></td> - <td>!<code>CONFIG_DISABLE_ENVIRON</code> && <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0</td> + <td>!<code>CONFIG_DISABLE_ENVIRON</code> &amp;&amp; <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0</td> </tr> <tr> <td><b><code>cp</code></b></td> @@ -1530,11 +1530,11 @@ nsh> </tr> <tr> <td><b><code>mkdir</code></b></td> - <td>!<code>CONFIG_DISABLE_MOUNTPOINT</code> && <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0</td> + <td>!<code>CONFIG_DISABLE_MOUNTPOINT</code> &amp;&amp; <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0 &amp;&amp; <code>CONFIG_FS_WRITABLE</code><sup>4</sup></td> </tr> <tr> <td><b><code>mkfatfs</code></b></td> - <td>!<code>CONFIG_DISABLE_MOUNTPOINT</code> && <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0 && <code>CONFIG_FS_FAT</code></td> + <td>!<code>CONFIG_DISABLE_MOUNTPOINT</code> &amp;&amp; <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0 &amp;&amp; <code>CONFIG_FS_FAT</code></td> </tr> <tr> <td><b><code>mkfifo</code></b></td> @@ -1542,11 +1542,11 @@ nsh> </tr> <tr> <td><b><code>mkrd</code></b></td> - <td>!<code>CONFIG_DISABLE_MOUNTPOINT</code> && <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0 && <code>CONFIG_FS_FAT</code></td> + <td>!<code>CONFIG_DISABLE_MOUNTPOINT</code> &amp;&amp; <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0 &amp;&amp; <code>CONFIG_FS_WRITABLE</code><sup>4</sup></td> </tr> <tr> <td><b><code>mount</code></b></td> - <td>!<code>CONFIG_DISABLE_MOUNTPOINT</code> && <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0 && <code>CONFIG_FS_FAT</code></td> + <td>!<code>CONFIG_DISABLE_MOUNTPOINT</code> &amp;&amp; <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0 &amp;&amp; <code>CONFIG_FS_READABLE</code><sup>3</sup></td> </tr> <tr> <td><b><code>ping</code></b></td> @@ -1569,11 +1569,11 @@ nsh> </tr> <tr> <td><b><code>rm</code></b></td> - <td>!<code>CONFIG_DISABLE_MOUNTPOINT</code> &amp;&amp; <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0</td> + <td>!<code>CONFIG_DISABLE_MOUNTPOINT</code> &amp;&amp; <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0 &amp;&amp; <code>CONFIG_FS_WRITABLE</code><sup>4</sup></td> </tr> <tr> <td><b><code>rmdir</code></b></td> - <td>!<code>CONFIG_DISABLE_MOUNTPOINT</code> &amp;&amp; <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0</td> + <td>!<code>CONFIG_DISABLE_MOUNTPOINT</code> &amp;&amp; <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0 &amp;&amp; <code>CONFIG_FS_WRITABLE</code><sup>4</sup></td> </tr> <tr> <td><b><code>set</code></b></td> @@ -1593,7 +1593,7 @@ nsh> </tr> <tr> <td><b><code>umount</code></b></td> - <td>!<code>CONFIG_DISABLE_MOUNTPOINT</code> &amp;&amp; <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0 &amp;&amp; <code>CONFIG_FS_FAT</code></td> + <td>!<code>CONFIG_DISABLE_MOUNTPOINT</code> &amp;&amp; <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0 &amp;&amp; <code>CONFIG_FS_READABLE</code><sup>3</sup></td> </tr> <tr> <td><b><code>unset</code></b></td> @@ -1606,10 +1606,18 @@ nsh> </table></center> <p><sup>1</sup><small> - Because of hardware padding, the actual required packet size may be larger</small></p> -<p><sup>2</sup><small> + Because of hardware padding, the actual required packet size may be larger</small><br> + <sup>2</sup><small> Special TFTP server start-up optionss will probably be required to permit - creation of files for the correct operation of the <code>put</code> command.</small></p> + creation of files for the correct operation of the <code>put</code> command.</small><br> + <sup>3</sup><small> + <code>CONFIG_FS_READABLE</code> is not a user configuration but is set automatically + if any readable filesystem is selected. At present, this is either <code>CONFIG_FS_FAT</code> + or <code>CONFIG_FS_ROMFS</code>.</small><br> + <sup>4</sup><small> + <code>CONFIG_FS_WRITABLE</code> is not a user configuration but is set automatically + if any writable filesystem is selected. At present, this is only <code>CONFIG_FS_FAT</code>.</small><br> +</p> <table width ="100%"> <tr bgcolor="#e4e4e4"> diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 2e8aa1106f..9dc58d9092 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: September 8, 2008</p> + <p>Last Updated: September 10, 2008</p> </td> </tr> </table> @@ -379,10 +379,17 @@ <td><br></td> <td> <p> - <li>VFAT filesystem support.</li> + <li>FAT12/16/32 filesystem support.</li> </p> </tr> +<tr> + <td><br></td> + <td> + <p> + <li>ROMFS filesystem support.</li> + </p> +</tr> <tr> <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> <td bgcolor="#5eaee1"> @@ -1090,6 +1097,7 @@ buildroot-0.1.0 2007-03-09 &lt;spudmonkey@racsa.co.cr&gt <pre><ul> nuttx-0.3.15 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + * Add support for ROMFS filesystem (initial checkin untested) pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 2f29e0b013..d9bb8a662d 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -1515,6 +1515,19 @@ The system can be re-made subsequently by just typing <code>make</code>. </li> </ul> +<h2>File Systems</h2> +<ul> + <li> + <code>CONFIG_FS_FAT</code>: Enable FAT filesystem support. + </li> + <li> + <code>CONFIG_FAT_SECTORSIZE</code>: Max supported sector size. + </li> + <li> + <code>CONFIG_FS_ROMFS</code>: Enable ROMFS filesystem support + </li> +</ul> + <h2>Network Support</h2> <h3>TCP/IP and UDP support via uIP</h2> <ul> From bd0463df3a643282faae42098782191f26191955 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 11 Sep 2008 05:21:36 +0000 Subject: [PATCH 0277/1518] Add a test of ROMFS git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@906 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 9dc58d9092..62068e2c2e 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1097,7 +1097,8 @@ buildroot-0.1.0 2007-03-09 &lt;spudmonkey@racsa.co.cr&gt <pre><ul> nuttx-0.3.15 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - * Add support for ROMFS filesystem (initial checkin untested) + * Added support for ROMFS filesystem. + * Added a simple test the ROMFS filesystem (examples/romfs) pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From d122e15a95367b7ccfebdd3ce65c0bf482356765 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 11 Sep 2008 22:59:45 +0000 Subject: [PATCH 0278/1518] Add /etc via ROMFS and /tmp via FAT FS to NSH git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@911 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttShell.html | 226 ++++++++++++++++++++++++++++++++++- Documentation/NuttX.html | 3 +- 2 files changed, 225 insertions(+), 4 deletions(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index d25d6d8c43..c017d6eca8 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -67,6 +67,12 @@ <a href="#environvars">1.6 Environment Variables</a> </td> </tr> +<tr> + <td><br></td> + <td> + <a href="#startupscript">1.7 NSH Start-Up Script</a> + </td> +</tr> <tr> <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> @@ -470,6 +476,129 @@ fi </tr> </table></ul> +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="startupscript"><h2>1.7 NSH Start-Up Scrip</h2></a> + </td> + </tr> +</table> + +<p> + <b>NSH Start-Up Script</b>. + NSH supports options to provide a start up script for NSH. In general + this capability is enabled with <code>CONFIG_EXAMPLES_NSH_ROMFSETC</code>, but has + several other related configuration options as described with the + <a href="#nshconfiguration">NSH-specific configuration settings</a>. + This capability also depends on: + <ul> + <li><code>CONFIG_DISABLE_MOUNTPOINT</code> not set + <li><code>CONFIG_NFILE_DESCRIPTORS</code> &lt; 4 + <li><code>CONFIG_FS_ROMFS</code> enabled + </ul> +</p> + +<p> + <b>Default Start-Up Behavior</b>. + The implementation that is provided is intended to provide great flexibility + for the use of Start-Up files. This paragraph will discuss the general + behavior when all of the configuration options are set to the default + values. +</p> +<p> + In this default case, enabling <code>CONFIG_EXAMPLES_NSH_ROMFSETC</code> will cause + NSH to behave as follows at NSH startup time: + <ul> + <li> + NSH will create a read-only RAM disk (a ROM disk), containing a tiny + ROMFS filesystem containing the following: +<ul><pre> +`--init.d/ + `-- rcS +</pre></ul> + Where rcS is the NSH start-up script. + </li> + <li> + NSH will then mount the ROMFS filesystem at <code>/etc</code>, resulting in: +<ul><pre> +|--dev/ +| `-- ram0 +`--etc/ + `--init.d/ + `-- rcS +</pre></ul> + </li> + <li> + By default, the contents of rcS script are: +<ul><pre> +# Create a RAMDISK and mount it at XXXRDMOUNTPOUNTXXX + +mkrd -m 1 -s 512 1024 +mkfatfs /dev/ram1 +mount -t vfat /dev/ram1 /tmp +</pre></ul> + </li> + <li> + NSH will execute the script at <code>/etc/init.d/rcS</code> at start-up (before the + first NSH prompt. After execution of the script, the root FS will look + like: +<ul><pre> +|--dev/ +| |-- ram0 +| `-- ram1 +|--etc/ +| `--init.d/ +| `-- rcS +`--tmp/ +</pre></ul> + </li> + </ul> +</p> +<p> + <b>Modifying the ROMFS Image</b>. + The contents of the <code>/etc</code> directory are retained in the file + <code>examples/nsh/nsh_romfsimg.h</code>. In order to modify the start-up + behavior, there are three things to study: + <ol> + <li> + <b>Configuration Options.</b> + The additional <code>CONFIG_EXAMPLES_NSH_ROMFSETC</code> configuration options + discussed with the other <a href="#nshconfiguration">NSH-specific configuration settings</a>. + </li> + <li> + <p> + <b><code>mkromfsimg.sh</code> Script</b>. + The script <code>examples/nsh/mkromfsimg.sh</code> creates <code>nsh_romfsimg.h</code>. + It is not automatically executed. If you want to change the + configuration settings associated with creating and mounting + the <code>/tmp</code> directory, then it will be necessary to re-generate + this header file using the <code>mkromfsimg.sh</code> script. + </p> + <p> + The behavior of this script depends upon three things: + <ul> + <li>The configuration settings then installed configuration. + <li>The <code>genromfs<code> tool (available from <a href="http://romfs.sourceforge.net">http://romfs.sourceforge.net</a>). + <li>The file <code>examples/nsh/rcS.template</code>. + </ul> + </p> + </li> + <li> + <b><code>rcS.template</code></b>. + The file <code>examples/nsh/rcS.template</code> contains the general form + of the <code>rcS</code> file; configurated values are plugged into this + template file to produce the final <code>rcS</code> file. + </li> + </ol> +</p> +<p> + All of the startup-behavior is contained in <code>rcS.template</code>. The + role of <code>mkromfsimg.sh</code> is to (1) apply the specific configuration + settings to <code>rcS.template</code> to create the final <code>rcS</code>, and (2) to + generate the header file <code>nsh_romfsimg.h</code> containg the ROMFS + file system image. +</p> + <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> @@ -1641,7 +1770,7 @@ nsh> <td valign="top"><b><code>CONFIG_EXAMPLES_NSH_FILEIOSIZE</code></b></td> <td> Size of a static I/O buffer used for file access (ignored if - there is no filesystem). + there is no filesystem). Default is 1024. </td> </tr> <tr> @@ -1691,6 +1820,15 @@ nsh> where a minimal footprint is a necessity and background command execution is not. </td> </tr> + <tr> + <td valign="top"><b><code>CONFIG_EXAMPLES_NSH_ROMFSETC</code></b></td> + <td> + Mount a ROMFS filesystem at <code>/etc</code> and provide a startup script + at <code>/etc/init.d/rcS</code>. The default startup script will mount + a FAT FS RAMDISK at <code>/tmp</code> but the logic is + <a href="#startupscript">easily extensible</a>. + </td> + </tr> <tr> <td valign="top"><b><code>CONFIG_EXAMPLES_NSH_CONSOLE</code></b></td> <td> @@ -1720,6 +1858,7 @@ nsh> <th align="left" width="25%">Configuration</th> <th align="left">Description</th> </tr> + <tr> <td valign="top"><b><code>CONFIG_EXAMPLES_NSH_IOBUFFER_SIZE</code></b></td> <td> Determines the size of the I/O buffer to use for sending/ @@ -1760,6 +1899,76 @@ nsh> </tr> </table></center> +<p> + If <code>CONFIG_EXAMPLES_NSH_ROMFSETC</code> is selected, then the following additional + configuration setting apply: +</p> + +<center><table width="100%"> + <tr bgcolor="#e4e4e4"> + <th align="left" width="25%">Configuration</th> + <th align="left">Description</th> + </tr> + <tr> + <td valign="top"><b><code>CONFIG_EXAMPLES_NSH_ROMFSMOUNTPT</code></b></td> + <td> + The default mountpoint for the ROMFS volume is <code>&quot;/etc&quot;</code>, but that + can be changed with this setting. This must be a absolute path + beginning with '<code>/</code>' and enclosed in quotes. + </td> + </tr> + <tr> + <td valign="top"><b><code>CONFIG_EXAMPLES_NSH_INITSCRIPT</code></b></td> + <td> + This is the relative path to the startup script within the mountpoint. + The default is <code>&quot;init.d/rcS&quot;</code>. This is a relative path and must not + start with '<code>/</code>' but must be enclosed in quotes. + </td> + </tr> + <tr> + <td valign="top"><b><code>CONFIG_EXAMPLES_NSH_ROMFSDEVNO</code></b></td> + <td> + This is the minor number of the ROMFS block device. The default is + '<code>0</code>' corresponding to <code>/dev/ram0</code>. + </td> + </tr> + <tr> + <td valign="top"><b><code>CONFIG_EXAMPLES_NSH_ROMFSSECTSIZE</code></b></td> + <td> + This is the sector size to use with the ROMFS volume. Since the + default volume is very small, this defaults to 64 but should be + increased if the ROMFS volume were to be become large. Any value + selected must be a power of 2. + </td> + </tr> +</table></center> + +<p> + When the default <code>rcS</code> file used when <code>CONFIG_EXAMPLES_NSH_ROMFSETC</code> is + selected, it will mount a FAT FS under <code>/tmp</code>. The following selections + describe that FAT FS. +</p> + +<center><table width="100%"> + <tr bgcolor="#e4e4e4"> + <th align="left" width="25%">Configuration</th> + <th align="left">Description</th> + </tr> + <tr> + <td valign="top"><b><code>CONFIG_EXAMPLES_NSH_FATDEVNO</code></b></td> + <td> + This is the minor number of the FAT FS block device. The default is + '<code>1</code>' corresponding to <code>/dev/ram1</code>. + </td> + </tr> + <tr> + <td valign="top"><b><code>CONFIG_EXAMPLES_NSH_FATSECTSIZE</code></b></td> + <td> + This is the sector size use with the FAT FS. Default is 512. + </td> + </tr> +</table></center> + <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> @@ -1785,13 +1994,22 @@ nsh> <li><a href="#nshconfiguration"><code>CONFIG_EXAMPLES_NSH_DISABLEBG</code></a></li> <li><a href="#nshconfiguration"><code>CONFIG_EXAMPLES_NSH_DISABLESCRIPT</code></a></li> <li><a href="#nshconfiguration"><code>CONFIG_EXAMPLES_NSH_DRIPADDR</code></a></li> + <li><a href="#nshconfiguration"><code>CONFIG_EXAMPLES_NSH_FATDEVNO</code></a></li> + <li><a href="#nshconfiguration"><code>CONFIG_EXAMPLES_NSH_FATMOUNTPT</code></a></li> + <li><a href="#nshconfiguration"><code>CONFIG_EXAMPLES_NSH_FATNSECTORS</code></a></li> + <li><a href="#nshconfiguration"><code>CONFIG_EXAMPLES_NSH_FATSECTSIZE</code></a></li> <li><a href="#nshconfiguration"><code>CONFIG_EXAMPLES_NSH_FILEIOSIZE</code></a></li> + <li><a href="#nshconfiguration"><code>CONFIG_EXAMPLES_NSH_INITSCRIPT</code></a></li> <li><a href="#nshconfiguration"><code>CONFIG_EXAMPLES_NSH_IOBUFFER_SIZE</code></a></li> <li><a href="#nshconfiguration"><code>CONFIG_EXAMPLES_NSH_IPADDR</code></a></li> <li><a href="#nshconfiguration"><code>CONFIG_EXAMPLES_NSH_LINELEN</code></a></li> <li><a href="#nshconfiguration"><code>CONFIG_EXAMPLES_NSH_NESTDEPTH</code></a></li> <li><a href="#nshconfiguration"><code>CONFIG_EXAMPLES_NSH_NETMASK</code></a></li> <li><a href="#nshconfiguration"><code>CONFIG_EXAMPLES_NSH_NOMAC</code></a></li> + <li><a href="#nshconfiguration"><code>CONFIG_EXAMPLES_NSH_ROMFSDEVNO</code></a></li> + <li><a href="#nshconfiguration"><code>CONFIG_EXAMPLES_NSH_ROMFSETC</code></a></li> + <li><a href="#nshconfiguration"><code>CONFIG_EXAMPLES_NSH_ROMFSMOUNTPT</code></a></li> + <li><a href="#nshconfiguration"><code>CONFIG_EXAMPLES_NSH_ROMFSSECTSIZE</code></a></li> <li><a href="#nshconfiguration"><code>CONFIG_EXAMPLES_NSH_STACKSIZE</code></a></li> <li><a href="#nshconfiguration"><code>CONFIG_EXAMPLES_NSH_STRERROR</code></a></li> <li><a href="#nshconfiguration"><code>CONFIG_EXAMPLES_NSH_TELNET</code></a></li> @@ -1802,11 +2020,12 @@ nsh> <li><a href="#currentwd">Current working directory</a></li> <li><a href="#cmdecho"><code>echo</code></a></li> <li><a href="#environvars">Environment Variables</a></li> + <li><a href="#startupscript"><code>/etc/init.d/rcS</code></a> +</ul></td> +<td></ul> <li><a href="#cmdexec"><code>exec</code></a></li> <li><a href="#cmdexit"><code>exit</code></a></li> <li><a href="#cmdget"><code>get</code></a></li> -</ul></td> -<td></ul> <li><a href="#frontend">Greeting</a></li> <li><a href="#cmdhelp"><code>help</code></a></li> <li><a href="#conditional"><code>if-then[-else]-fi</code></a></li> @@ -1837,6 +2056,7 @@ nsh> <li><a href="#cmdsh"><code>sh</code></a></li> <li><a href="#cmdoverview">Simple commands</a></li> <li><a href="#cmdsleep"><code>sleep</code></a></li> + <li><a href="#startupscript">start-up script</a> <li><a href="#cmdtest"><code>test</code></a></li> <li><a href="#cmdunmount"><code>umount</code></a></li> <li><a href="#cmdunset"><code>unset</code></a></li> diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 62068e2c2e..3ee7c80b71 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: September 10, 2008</p> + <p>Last Updated: September 11, 2008</p> </td> </tr> </table> @@ -1099,6 +1099,7 @@ buildroot-0.1.0 2007-03-09 &lt;spudmonkey@racsa.co.cr&gt nuttx-0.3.15 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Added support for ROMFS filesystem. * Added a simple test the ROMFS filesystem (examples/romfs) + * NSH: Use ROMFS to provide an option for a start-up script at /etc/init.d/rcS pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 0a8bfd1da3cdb5a6a9d16fc1ad412035409ccfc0 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 12 Sep 2008 14:34:06 +0000 Subject: [PATCH 0279/1518] Add ioctl's to support XIP git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@913 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 3ee7c80b71..b1e1b1c7da 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: September 11, 2008</p> + <p>Last Updated: September 12, 2008</p> </td> </tr> </table> @@ -1100,6 +1100,11 @@ nuttx-0.3.15 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Added support for ROMFS filesystem. * Added a simple test the ROMFS filesystem (examples/romfs) * NSH: Use ROMFS to provide an option for a start-up script at /etc/init.d/rcS + * Add definition of BIOC_XIPBASE ioctl and implement in RAM disk block driver. + This is a low level requirement for eXecute In Place (XIP) support. + * Add a FIOC_MMAP to perform memory mapping of a file and implemented the + ioctl command in the ROMFS filesystem. This is a requirement for eXecute + In Place (XIP) support. pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From ca974933bac611a05f679a562ec7b7ea2cbc1092 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 12 Sep 2008 15:54:20 +0000 Subject: [PATCH 0280/1518] Add mmap() API git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@916 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index b1e1b1c7da..b6380ec34f 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1105,6 +1105,7 @@ nuttx-0.3.15 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Add a FIOC_MMAP to perform memory mapping of a file and implemented the ioctl command in the ROMFS filesystem. This is a requirement for eXecute In Place (XIP) support. + * Add mmap() API with restricted capability (only for XIP support) pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 439c40e54b2dc80cd356c1c8bb7c3564d919333f Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 12 Sep 2008 19:17:15 +0000 Subject: [PATCH 0281/1518] Added mmap()/XIP test to ROMFS test git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@917 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + Documentation/NuttxUserGuide.html | 466 ++++++++++++++++++++++++------ 2 files changed, 380 insertions(+), 87 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index b6380ec34f..6d7774dec7 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1106,6 +1106,7 @@ nuttx-0.3.15 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; ioctl command in the ROMFS filesystem. This is a requirement for eXecute In Place (XIP) support. * Add mmap() API with restricted capability (only for XIP support) + * Extend ROMFS test at /examples/romfs to verify mmap() and XIP support. pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 55eb1ce68b..557d59036e 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -6,31 +6,39 @@ </head> <body background="backgd.gif"> -<hr> -<hr> -<center><h1><i>Under Construction</i></h1></center> -<hr> -<hr> -<center><BIG><b> -NuttX Operating System -<p> -User's Manual -</b></BIG> -<p> -<small>by</small> -<p> -Gregory Nutt -<p> -<small>Last Update: September 1, 2008</small> -</center> +<hr><hr> +<table width ="100%"> + <tr align="center" bgcolor="#e4e4e4"> + <td> + <h1><big><font color="#3c34ec"><i>NuttX Operating System<p>User's Manual</i></font></big></h1> + <p><small>by</small></p> + <p>Gregory Nutt<p> + <p>Last Updated: September 10, 2008</p> + </td> + </tr> +</table> +<hr><hr> -<h1>1.0 <A NAME="Introduction">Introduction</a></h1> +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="Introduction"><h1>1.0 Introduction</h1></a> + </td> + </tr> +</table> <p> This manual provides general usage information for the NuttX RTOS from the perspective of the firmware developer. -<h2>1.1 <a name="overview">Document Overview</a></h2> +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="overview"><h2>1.1 Document Overview</h2></a> + </td> + </tr> +</table> + <p> This user's manual is divided into three sections plus a index: </p> @@ -74,7 +82,14 @@ Gregory Nutt </li> </ul> -<h2>1.2 <a name="scope">Intended Audience and Scope</a></h2> +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="scope"><h2>1.2 Intended Audience and Scope</h2></a> + </td> + </tr> +</table> + <p> The intended audience for this document are firmware developers who are implementing applications on NuttX. Specifically, this documented is limited to addressing only NuttX RTOS APIs that are available to the application developer. @@ -86,9 +101,14 @@ Gregory Nutt That information can also be found in the <a href="NuttxPortingGuide.html#configandbuild">NuttX Porting Guide</a>. </p> -<hr> +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="OS_Interfaces"><h1>2.0 OS Interfaces</h1></a> + </td> + </tr> +</table> -<h1>2.0 <A NAME="OS_Interfaces">OS Interfaces</a></h1> <p> This section describes each C-callable interface to the NuttX Operating System. The description of each interface is presented @@ -120,9 +140,15 @@ NOTE: In order to achieve an independent name space for the NuttX interface functions, differences in function names and types are to be expected and will not be identified as differences in these paragraphs. -<hr> +</p> -<H2>2.1 <A NAME="Task_Control">Task Control Interfaces</a></H2> +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="Task_Control"><h2>2.1 Task Control Interfaces</h2></a> + </td> + </tr> +</table> <p> <b>Tasks</b>. @@ -554,8 +580,15 @@ level. <p> <b>POSIX Compatibility:</b> Compatible with the POSIX interface of the same name. +</p> -<H2>2.2 <A NAME="Task_Schedule">Task Scheduling Interfaces</a></H2> +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="Task_Schedule"><h2>2.2 Task Scheduling Interfaces</h2></a> + </td> + </tr> +</table> <p> By default, NuttX performs strict priority scheduling: Tasks of higher @@ -916,7 +949,13 @@ priority of the calling task is returned. interface of the same name. </P> -<H2>2.3 <A NAME="Task_Switch">Task Switching Interfaces</a></H2> +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="Task_Switch"><h2>2.3 Task Switching Interfaces</h2></a> + </td> + </tr> +</table> <ul> <li><a href="#schedlock">2.3.1 sched_lock</a></li> @@ -1015,9 +1054,15 @@ on this thread of execution. <b>Assumptions/Limitations:</b> <p> <b> POSIX Compatibility:</b> None. -<hr> +</p> -<H2>2.4 <A NAME="Message_Queue">Named Message Queue Interfaces</a></H2> +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="Message_Queue"><h2>2.4 Named Message Queue Interfaces</h2></a> + </td> + </tr> +</table> <p> NuttX supports POSIX named message queues for intertask communication. @@ -1626,8 +1671,15 @@ attributes include: <p> <b> POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. +</p> -<H2>2.5 <A NAME="Semaphores">Counting Semaphore Interfaces</a></H2> +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="Semaphores"><h2>2.5 Counting Semaphore Interfaces</h2></a> + </td> + </tr> +</table> <p> <b>Semaphores</b>. Semaphores are the basis for @@ -2094,10 +2146,15 @@ number of tasks waiting for the semaphore. <p> <b> POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. +</p> -<hr> - -<H2>2.6 <A NAME="Watchdogs">Watchdog Timer Interfaces</a></H2> +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="Watchdogs"><h2>2.6 Watchdog Timer Interfaces</h2></a> + </td> + </tr> +</table> <p> NuttX provides a general watchdog timer facility. @@ -2313,9 +2370,14 @@ VxWorks provides the following comparable interface: means either that wdog is not valid or that the wdog has already expired. </p> -<hr> +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="ClocksNTimers"><h2>2.7 Clocks and Timers</h2></a> + </td> + </tr> +</table> -<H2><A NAME="ClocksNTimers">2.7 Clocks and Timers</a></H2> <ul> <li><a href="#clocksettime">2.7.1 clock_settime</a></li> <li><a href="#clockgettime">2.7.2 clock_gettime</a></li> @@ -2774,10 +2836,15 @@ VxWorks provides the following comparable interface: <p> <b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. +</p> -<hr> - -<H2>2.8 <A NAME="Signals">Signal Interfaces</a></H2> +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="Signals"><h2>2.8 Signal Interfaces</h2></a> + </td> + </tr> +</table> <p> NuttX provides signal interfaces for tasks. Signals are used to @@ -3393,7 +3460,14 @@ be sent. <li>Sending of signals to 'process groups' is not supported in NuttX.</li> </ul> -<H2>2.9 <A NAME="Pthread">Pthread Interfaces</a></H2> +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="Pthread"><h2>2.9 Pthread Interfaces</h2></a> + </td> + </tr> +</table> + <p> NuttX does not support <i>processes</i> in the way that, say, Linux does. NuttX only supports simple threads or tasks running within the same address space. @@ -5656,7 +5730,14 @@ interface of the same name. <b>POSIX Compatibility:</b> Comparable to the POSIX interface of the same name. </p> -<h1><a name="Environ">2.10 Environment Variables</a></h1> +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="Environ"><h2>2.10 Environment Variables</h2></a> + </td> + </tr> +</table> + <p><b>Overview</b>. NuttX supports environment variables that can be used to control the behavior of programs. In the spirit of NuttX the environment variable behavior attempts to emulate the behavior of @@ -5695,12 +5776,12 @@ interface of the same name. in the board configuration file. </p> -<h2><a name="getenv">2.10.1 <code>getenv</code></a></h2> +<h3><a name="getenv">2.10.1 <code>getenv</code></a></h3> <p> <b>Function Prototype:</b> </p> <pre> - #include <stdlib.h> + #include &lt;stdlib.h&gt; FAR char *getenv(const char *name); </pre> <p> @@ -5723,12 +5804,12 @@ interface of the same name. The value of the valiable (read-only) or NULL on failure. </p> -<h2><a name="putenv">2.10.2 <code>putenv</code></a></h2> +<h3><a name="putenv">2.10.2 <code>putenv</code></a></h3> <p> <b>Function Prototype:</b> </p> <pre> - #include <stdlib.h> + #include &lt;stdlib.h&gt; int putenv(char *string); </pre> <p> @@ -5754,12 +5835,12 @@ interface of the same name. Zero on sucess. </p> -<h2><a name="clearenv">2.10.3 <code>clearenv</code></a></h2> +<h3><a name="clearenv">2.10.3 <code>clearenv</code></a></h3> <p> <b>Function Prototype:</b> </p> <pre> - #include <stdlib.h> + #include &lt;stdlib.h&gt; int clearenv(void); </pre> <p> @@ -5776,12 +5857,12 @@ interface of the same name. Zero on success. </p> -<h2><a name="setenv">2.10.4 <code>setenv</code></a></h2> +<h3><a name="setenv">2.10.4 <code>setenv</code></a></h3> <p> <b>Function Prototype:</b> </p> <pre> - #include <stdlib.h> + #include &lt;stdlib.h&gt; int setenv(const char *name, const char *value, int overwrite); </pre> <p> @@ -5814,12 +5895,12 @@ interface of the same name. Zero on success. </p> -<h2><a name="unsetenv">2.10.5 <code>unsetenv</code></a></h2> +<h3><a name="unsetenv">2.10.5 <code>unsetenv</code></a></h3> <p> <b>Function Prototype:</b> </p> <pre> - #include <stdlib.h> + #include &lt;stdlib.h&gt; int unsetenv(const char *name); </pre> <p> @@ -5841,7 +5922,13 @@ interface of the same name. Zero on success. </p> -<h1><a name="FileSystem">2.11 File System Interfaces</a></h1> +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="FileSystem"><h2>2.11 File System Interfaces</h2></a> + </td> + </tr> +</table> <ul> <li><a href="#FileSystemOverview">2.11.1 NuttX File System Overview</a></li> @@ -5850,9 +5937,10 @@ interface of the same name. <li><a href="#standardio">2.11.4 Standard I/O</a></li> <li><a href="#PipesNFifos">2.11.5 Pipes and FIFOs</a></li> <li><a href="#fatsupport">2.11.6 FAT File System Support</a></li> + <li><a href="#mmapxip">2.11.7 <code>mmap()</code> and eXecute In Place (XIP)</a></li> </ul> -<h2><a name="FileSystemOverview">2.11.1 NuttX File System Overview</a></h2> +<h3><a name="FileSystemOverview">2.11.1 NuttX File System Overview</a></h3> <p><b>Overview</b>. NuttX includes an optional, scalable file system. @@ -5909,7 +5997,7 @@ interface of the same name. in a file-system-like name space. </p> -<h2><a name="driveroperations">2.11.2 Driver Operations</a></h2> +<h3><a name="driveroperations">2.11.2 Driver Operations</a></h3> <a name="drvrfcntlops"> <ul><pre> #include &lt;fcntl.h&gt; @@ -5937,7 +6025,7 @@ interface of the same name. </pre></ul> </a> -<h2><a name="directoryoperations">2.11.3 Directory Operations</a></h2> +<h3><a name="directoryoperations">2.11.3 Directory Operations</a></h3> <a name="dirdirentops"> <ul><pre> #include &lt;dirent.h&gt; @@ -5959,7 +6047,7 @@ interface of the same name. </pre></ul> </a> -<h2><a name="standardio">2.11.4 Standard I/O</a></h2> +<h3><a name="standardio">2.11.4 Standard I/O</a></h3> <ul><pre> #include &lt;stdio.h&gt; int fclose(FILE *stream); @@ -5997,14 +6085,14 @@ interface of the same name. int statfs(const char *path, FAR struct statfs *buf); /* Prototyped but not implemented */ </pre></ul> -<h2><a name="PipesNFifos">2.11.5 Pipes and FIFOs</a></h2> +<h3><a name="PipesNFifos">2.11.5 Pipes and FIFOs</a></h3> <h3>2.11.5.1 <a name="pipe"><code>pipe</code></a></h3> <p> <b>Function Prototype:</b> </p> <pre> - #include <unistd.h> + #include &lt;unistd.h&gt; int pipe(int filedes[2]); </pre> <p> @@ -6038,7 +6126,7 @@ interface of the same name. <b>Function Prototype:</b> </p> <pre> - #include <sys/stat.h> + #include &lt;sys/stat.h&gt; int mkfifo(FAR const char *pathname, mode_t mode); </pre> <p> @@ -6080,13 +6168,13 @@ interface of the same name. </ul> </p> -<h2><a name="fatsupport">2.11.6 FAT File System Support</a></h2> -<h3>2.11.5.1 <a name="mkfatfs"><code>mkfatfs</code></a></h3> +<h3><a name="fatsupport">2.11.6 FAT File System Support</a></h3> +<h3>2.11.6.1 <a name="mkfatfs"><code>mkfatfs</code></a></h3> <p> <b>Function Prototype:</b> </p> <ul><pre> -#include <nutts/mkfatfs.h> +#include &lt;nuttx/mkfatfs.h&gt; int mkfatfs(FAR const char *pathname, FAR struct fat_format_s *fmt); </pre></ul> <p> @@ -6158,7 +6246,164 @@ struct fat_format_s </ul> </p> -<h2>2.12 <a name="Network">Network Interfaces</a></h2> +<h3><a name="mmapxip">2.11.7 <code>mmap()</code> and eXecute In Place (XIP)</a></h3> +<p> + NuttX operates in a flat open address space. + Therefore, it generally does not require <code>mmap()</code> functionality. + There is one one exception: + <code>mmap()</code> is the API that is used to support direct access to random + access media under the following very restrictive conditions: + <ol> + <li> + The filesystem supports the <code>FIOC_MMAP</code> ioctl command. + Any file system that maps files contiguously on the media should support this + <code>ioctl</code> command. + By comparison, most file system scatter files over the media in non-contiguous + sectors. As of this writing, ROMFS is the only file system that meets this requirement. + </li> + <li> + The underly block driver supports the <code>BIOC_XIPBASE</code> <code>ioctl</code> command + that maps the underlying media to a randomly accessible address. + At present, only the RAM/ROM disk driver does this. + </li> + </ol> +</p> + +<h3><a name="mmap">2.11.7.1 <code>mmap</code></a></h3> +<p> + <b>Function Prototype:</b> +</p> +<ul><pre> +#include &lt;sys/mman.h&gt; +int mkfatfs(FAR const char *pathname, FAR struct fat_format_s *fmt); +FAR void *mmap(FAR void *start, size_t length, int prot, int flags, int fd, off_t offset) +</pre></ul> +<p> + <b>Description:</b> + <ul> + Provides minimal <code>mmap()</code> as needed to support eXecute In Place (XIP) + operation (as described above). + </ul> +</p> +<p> + <b>Input Parameters:</b> + <ul> + <li> + <code>start</code> + A hint at where to map the memory -- ignored. + The address of the underlying media is fixed and cannot be re-mapped without MMU support. + </li> + <li> + <code>length</code> + The length of the mapping -- ignored. + The entire underlying media is always accessible. + </li> + <li> + <code>prot</code> + See the <code>PROT_*</code> definitions in <code>sys/mman.h</code>. + <ul> + <li> + <code>PROT_NONE</code> - Will cause an error. + </li> + <li> + <code>PROT_READ</code> - <code>PROT_WRITE</code> and <code>PROT_EXEC</code> also assumed. + </li> + <li> + <code>PROT_WRITE</code> - <code>PROT_READ</code> and <code>PROT_EXEC</code> also assumed. + </li> + <li> + <code>PROT_EXEC</code> - <code>PROT_READ</code> and <code>PROT_WRITE</code> also assumed. + </li> + </ul> + </li> + <li> + <code>flags</code> + See the <code>MAP_*</code> definitions in <code>sys/mman.h</code>. + <ul> + <li> + <code>MAP_SHARED</code> - Required + </li> + <li> + <code>MAP_PRIVATE</code> - Will cause an error + </li> + <li> + <code>MAP_FIXED</code> - Will cause an error + </li> + <li> + <code>MAP_FILE</code> - Ignored + </li> + <li> + <code>MAP_ANONYMOUS</code> - Will cause an error + </li> + <li> + <code>MAP_ANON</code> - Will cause an error + </li> + <li> + <code>MAP_GROWSDOWN</code> - Ignored + </li> + <li> + <code>MAP_DENYWRITE</code> - Will cause an error + </li> + <li> + <code>MAP_EXECUTABLE</code> - Ignored + </li> + <li> + <code>MAP_LOCKED</code> - Ignored + </li> + <li> + <code>MAP_NORESERVE</code> - Ignored + </li> + <li> + <code>MAP_POPULATE</code> - Ignored + </li> + <li> + <code>AP_NONBLOCK</code> - Ignored + </li> + </ul> + </li> + <li> + <code>fd</code> + file descriptor of the backing file -- required. + </li> + <li> + <code>offset</code> + The offset into the file to map. + </li> + </ul> +</p> +<p> + <b>Returned Values:</b> + <ul> + <p> + On success, <code>mmap()</code> returns a pointer to the mapped area. + On error, the value <code>MAP_FAILED</code> is returned, and <code>errno</code> is set appropriately. + <ul> + <li><code>ENOSYS</code> - + Returned if any of the unsupported <code>mmap()</code> features are attempted. + </li> + <li><code>EBADF</code> - + <code>fd</code> is not a valid file descriptor. + </li> + <li><code>EINVAL</code> - + Length is 0. flags contained neither <code>MAP_PRIVATE</code> or <code>MAP_SHARED</code>, or + contained both of these values. + </li> + <li><code>ENODEV</code> - + The underlying filesystem of the specified file does not support memory mapping. + </li> + </ul> + </p> + </ul> +</p> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="Network"><h2>2.12 Network Interfaces</h2></a> + </td> + </tr> +</table> + <p>NuttX includes a simple interface layer based on uIP (see <a href="http://www.sics.se/~adam/uip/index.php/Main_Page">http://www.sics.se</a>). NuttX supports subset of a standard socket interface to uIP. These network feature can be enabled by settings in the architecture @@ -6185,7 +6430,7 @@ Those socket APIs are discussed in the following paragraphs.</p> <b>Function Prototype:</b> </p> <pre> - #include <sys/socket.h> + #include &lt;sys/socket.h&gt; int socket(int domain, int type, int protocol); </pre> <p> @@ -6227,7 +6472,7 @@ Those socket APIs are discussed in the following paragraphs.</p> <b>Function Prototype:</b> </p> <pre> - #include <sys/socket.h> + #include &lt;sys/socket.h&gt; int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen); </pre> <p> @@ -6269,7 +6514,7 @@ Those socket APIs are discussed in the following paragraphs.</p> <b>Function Prototype:</b> </p> <pre> - #include <sys/socket.h> + #include &lt;sys/socket.h&gt; int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen); </pre> <p> @@ -6348,7 +6593,7 @@ Those socket APIs are discussed in the following paragraphs.</p> <b>Function Prototype:</b> </p> <pre> - #include <sys/socket.h> + #include &lt;sys/socket.h&gt; int listen(int sockfd, int backlog); </pre> <p> @@ -6386,7 +6631,7 @@ Those socket APIs are discussed in the following paragraphs.</p> <b>Function Prototype:</b> </p> <pre> - #include <sys/socket.h> + #include &lt;sys/socket.h&gt; int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen); </pre> <p> @@ -6464,7 +6709,7 @@ Those socket APIs are discussed in the following paragraphs.</p> <b>Function Prototype:</b> </p> <pre> - #include <sys/socket.h> + #include &lt;sys/socket.h&gt; ssize_t send(int sockfd, const void *buf, size_t len, int flags); </pre> <p> @@ -6496,7 +6741,7 @@ Those socket APIs are discussed in the following paragraphs.</p> <b>Function Prototype:</b> </p> <pre> - #include <sys/socket.h> + #include &lt;sys/socket.h&gt; ssize_t sendto(int sockfd, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); </pre> @@ -6569,7 +6814,7 @@ Those socket APIs are discussed in the following paragraphs.</p> <b>Function Prototype:</b> </p> <pre> - #include <sys/socket.h> + #include &lt;sys/socket.h&gt; ssize_t recv(int sockfd, void *buf, size_t len, int flags); </pre> <p> @@ -6600,7 +6845,7 @@ Those socket APIs are discussed in the following paragraphs.</p> <b>Function Prototype:</b> </p> <pre> - #include <sys/socket.h> + #include &lt;sys/socket.h&gt; ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlen); </pre> @@ -6662,7 +6907,7 @@ Those socket APIs are discussed in the following paragraphs.</p> <b>Function Prototype:</b> </p> <pre> - #include <sys/socket.h> + #include &lt;sys/socket.h&gt; int setsockopt(int sockfd, int level, int option, const void *value, socklen_t value_len); </pre> @@ -6678,7 +6923,7 @@ Those socket APIs are discussed in the following paragraphs.</p> options at the socket level, specify the level argument as SOL_SOCKET. </p> <p> - See <sys/socket.h> a complete list of values for the <code>option</code> argument. + See <code>sys/socket.h</code> for a complete list of values for the <code>option</code> argument. </p> <p> <b>Input Parameters:</b> @@ -6722,7 +6967,7 @@ Those socket APIs are discussed in the following paragraphs.</p> <b>Function Prototype:</b> </p> <pre> - #include <sys/socket.h> + #include &lt;sys/socket.h&gt; int getsockopt(int sockfd, int level, int option, void *value, socklen_t *value_len); </pre> @@ -6741,7 +6986,7 @@ Those socket APIs are discussed in the following paragraphs.</p> SOL_SOCKET. </p> <p> - See <sys/socket.h> a complete list of values for the <code>option</code> argument. + See <code>sys/socket.h</code>for a complete list of values for the <code>option</code> argument. </p> <p> <b>Input Parameters:</b> @@ -6772,9 +7017,22 @@ Those socket APIs are discussed in the following paragraphs.</p> Insufficient resources are available in the system to complete the call.</li> </ul> -<hr> -<h1>3.0 <A NAME="Data_Structures">OS Data Structures</A></h1> -<H2>3.1 <A NAME="ScalarType">Scalar Types</A></H2> +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="Data_Structures"><h1>3.0 OS Data Structures</h1></a> + </td> + </tr> +</table> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="ScalarType"><h2>3.1 Scalar Types</h2></a> + </td> + </tr> +</table> + <p> Many of the types used to communicate with NuttX are simple scalar types. These types are used to provide architecture independence @@ -6788,7 +7046,14 @@ interface include: <li>time_t </ul> -<H2>3.2 <A NAME="HiddenStructures">Hidden Interface Structures</A></H2> +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="HiddenStructures"><h2>3.2 Hidden Interface Structures</h2></a> + </td> + </tr> +</table> + <p> Several of the types used to interface with NuttX are structures that are intended to be hidden from the application. @@ -6807,9 +7072,15 @@ OS resources. These hidden structures include: specific elements within these hidden structures. These hidden structures will not be described further in this user's manual. </p> -<p> -<H2>3.3 <A NAME="ErrnoAccess">Access to the <code>errno</code> Variable</A></H2> +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="ErrnoAccess"><h2>3.3 Access to the <code>errno</code> Variable</h2></a> + </td> + </tr> +</table> + <p> A pointer to the thread-specific <code>errno</code> value is available through a function call: @@ -6817,7 +7088,7 @@ OS resources. These hidden structures include: <p> <b>Function Prototype:</b> <p> -<pre> #include <errno.h> +<pre> #include &lt;errno.h&gt; #define errno *get_errno_ptr() int *get_errno_ptr( void )</pre> <p> @@ -6841,10 +7112,16 @@ OS resources. These hidden structures include: <ul> <li>A pointer to the thread-specific <code>errno</code> value. </ul> -<p> +</p> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="UserStructures"><h2>3.4 User Interface Structures</h2></a> + </td> + </tr> +</table> -<H2>3.4 <A NAME="UserStructures">User Interface Structures</A></H2> -<p> <H3>3.4.1 main_t</H3> <p> main_t defines the type of a task entry point. main_t is declared @@ -6984,12 +7261,20 @@ notify a task when a message is available on a queue. have to do some redesign. </p> -<h1><a name="index">Index</a></h1> +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="index"><h1>Index</h1></a> + </td> + </tr> +</table> + <table width="100%"> <tr> <td valign="top" width="34%"> <li><a href="#accept">accept</a></li> <li><a href="#bind">bind</a></li> + <li><a href="#mmapxip">BIOC_XIPBASE</a></li> <li><a href="#dirunistdops">chdir</a></li> <li><a href="#clockgetres">clock_getres</a></li> <li><a href="#clockgettime">clock_gettime</a></li> @@ -7003,6 +7288,7 @@ notify a task when a message is available on a queue. <li><a href="#driveroperations">Driver operations</a></li> <li><a href="#drvrunistdops">dup</a></li> <li><a href="#drvrunistdops">dup2</a></li> + <li><a href="#mmapxip">eXecute In Place (XIP)</a></li> <li><a href="#exit">exit</a></li> <li><a href="#fatsupport">FAT File System Support</a></li> <li><a href="#standardio">fclose</a></li> @@ -7015,6 +7301,7 @@ notify a task when a message is available on a queue. <li><a href="#standardio">fgetc</a></li> <li><a href="#standardio">fgetpos</a></li> <li><a href="#standardio">fgets</a></li> + <li><a href="#mmapxip">FIOC_MMAP</a></li> <li><a href="#standardio">fopen</a></li> <li><a href="#standardio">fprintf</a></li> <li><a href="#standardio">fputc</a></li> @@ -7051,13 +7338,14 @@ notify a task when a message is available on a queue. <li><a href="#mqtimedreceive">mq_timedreceive</a></li> <li><a href="#mqtimedsend">mq_timedsend</a></li> <li><a href="#mqunlink">mq_unlink</a></li> + <li><a href="#mmap">mmap</a></li> <li><a href="#Network">Network Interfaces</a></li> <li><a href="#drvrfcntlops">open</a></li> <li><a href="#dirdirentops">opendir</a></li> <li><a href="#OS_Interfaces">OS Interfaces</a></li> - <li><a href="#pipe">pipe</a></li> </td> <td valign="top" width="33%"> + <li><a href="#pipe">pipe</a></li> <li><a href="#standardio">printf</a></li> <li><a href="#Pthread">Pthread Interfaces</a> <li><a href="#pthreadattrdestroy">pthread_attr_destroy</a></li> @@ -7116,6 +7404,7 @@ notify a task when a message is available on a queue. <li><a href="#pthreadtestcancelstate">pthread_testcancelstate</a></li> <li><a href="#pthreadyield">pthread_yield</a></li> <li><a href="#standardio">puts</a></li> + <li><a href="#mmapxip">RAM disk driver</a></li> <li><a href="#drvrunistdops">read</a></li> <li><a href="#dirdirentops">readdir</a></li> <li><a href="#dirdirentops">readdir_r</a></li> @@ -7124,10 +7413,12 @@ notify a task when a message is available on a queue. <li><a href="#standardio">rename</a></li> <li><a href="#standardio">rmdir</a></li> <li><a href="#dirdirentops">rewinddir</a></li> + <li><a href="#mmapxip">ROM disk driver</a></li> + <li><a href="#mmapxip">ROMFS</a></li> <li><a href="#schedgetparam">sched_getparam</a></li> - <li><a href="#schedgetprioritymax">sched_get_priority_max</a></li> </td> <td valign="top"> + <li><a href="#schedgetprioritymax">sched_get_priority_max</a></li> <li><a href="#schedgetprioritymin">sched_get_priority_min</a></li> <li><a href="#schedgetrrinterval">sched_get_rr_interval</a></li> <li><a href="#schedlockcount">sched_lockcount</a></li> @@ -7196,6 +7487,7 @@ notify a task when a message is available on a queue. <li><a href="#wdgettime">wd_gettime</a></li> <li><a href="#wdstart">wd_start</a></li> <li><a href="#drvrunistdops">write</a></li> + <li><a href="#mmapxip">XIP</a></li> </td> </tr> </table> From 88937c7905f9c787739440cbf5c6485a26b5558c Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 16 Sep 2008 21:45:41 +0000 Subject: [PATCH 0282/1518] Add support for Intel Hex format output git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@922 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + Documentation/NuttxPortingGuide.html | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 6d7774dec7..bf0082c430 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1107,6 +1107,7 @@ nuttx-0.3.15 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; In Place (XIP) support. * Add mmap() API with restricted capability (only for XIP support) * Extend ROMFS test at /examples/romfs to verify mmap() and XIP support. + * Add support for Intel Hex format output using objcopy pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index d9bb8a662d..2693f19410 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -1334,7 +1334,11 @@ The system can be re-made subsequently by just typing <code>make</code>. </p> <ul> <li><code>CONFIG_RRLOAD_BINARY</code>: - Make the rrload binary format used with BSPs from <a href="www.ridgerun.com">ridgerun.com</a>.</li> + Make the rrload binary format used with BSPs from <a href="www.ridgerun.com">ridgerun.com</a> + using the <code>tools/mkimage.sh</code> script.</li> + <li><code>CONFIG_INTELHEX_BINARY</code>: + Make the Intel HEX binary format used with many different loaders using the GNU objcopy program + Should not be selected if you are not using the GNU toolchain.</li> <li><code>CONFIG_HAVE_LIBM</code>: Toolchain supports libm.a</li> </ul> From ecb59e1443e58cad784bb114c9b1239ea4a81dc7 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 17 Sep 2008 23:14:42 +0000 Subject: [PATCH 0283/1518] build lpc2148 ostest config git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@928 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 7 +++++-- Documentation/NuttxPortingGuide.html | 9 ++++++--- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index bf0082c430..e93eb5bcbc 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: September 12, 2008</p> + <p>Last Updated: September 17, 2008</p> </td> </tr> </table> @@ -609,7 +609,7 @@ </p> <p> <b>STATUS:</b> - Initial coding of this port code complete but has not yet been verified. + A basic port that boots and supports a serial console is in place. </p> </td> </tr> @@ -1108,6 +1108,9 @@ nuttx-0.3.15 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Add mmap() API with restricted capability (only for XIP support) * Extend ROMFS test at /examples/romfs to verify mmap() and XIP support. * Add support for Intel Hex format output using objcopy + * Complete the basic port of the NXP LPC2148 on the mcu123.com board. + The basic port includes successful booting, serial console and succesfully + passing the examples/ostest. pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 2693f19410..a2773bcde4 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -16,7 +16,7 @@ </b></big></h1> <p><small>by</small></p> <p>Gregory Nutt</p> - <p><small>Last Update: September 1, 2008</small></p> + <p><small>Last Update: September 17, 2008</small></p> </center> <center><h1>Table of Contents</h1></center> @@ -1338,8 +1338,11 @@ The system can be re-made subsequently by just typing <code>make</code>. using the <code>tools/mkimage.sh</code> script.</li> <li><code>CONFIG_INTELHEX_BINARY</code>: Make the Intel HEX binary format used with many different loaders using the GNU objcopy program - Should not be selected if you are not using the GNU toolchain.</li> - <li><code>CONFIG_HAVE_LIBM</code>: + This option hould not be selected if you are not using the GNU toolchain.</li> + <li><code>CONFIG_RAW_BINARY</code>: + mmke a raw binary format file used with many different loaders using the GNU objcopy program. + This option should not be selected if you are not using the GNU toolchain.</li> + <li><code>CONFIG_HAVE_LIBM</code>: Toolchain supports libm.a</li> </ul> From 09f13da24200eed9b35e22483b192406334ee440 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 18 Sep 2008 14:48:26 +0000 Subject: [PATCH 0284/1518] ARM architecture supports lowconsole git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@930 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index e93eb5bcbc..bc8398e5d0 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: September 17, 2008</p> + <p>Last Updated: September 18, 2008</p> </td> </tr> </table> @@ -1111,6 +1111,7 @@ nuttx-0.3.15 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Complete the basic port of the NXP LPC2148 on the mcu123.com board. The basic port includes successful booting, serial console and succesfully passing the examples/ostest. + * ARM architectures now support drivers/lowconsole.c pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 566d4009f1b5a87254a5107e0c231291293a49e0 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 20 Sep 2008 16:24:43 +0000 Subject: [PATCH 0285/1518] Prep for 0.3.15 git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@948 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 128 +++++++++++++-------------------------- 1 file changed, 43 insertions(+), 85 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index bc8398e5d0..7edeb4d19e 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: September 18, 2008</p> + <p>Last Updated: September 20, 2008</p> </td> </tr> </table> @@ -494,7 +494,7 @@ </table> <p> - The 26th release of NuttX (nuttx-0.3.14) is available for download + The 27th release of NuttX (nuttx-0.3.15) is available for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. The change log associated with the release is available <a href="#currentrelease">here</a>. @@ -502,47 +502,29 @@ These unreleased changes are listed <a href="#pendingchanges">here</a>. </p> <p> - The nuttx-0.3.14 release includes some important bug fixes as well as a few new features. - Critical bugs fixed include: + The nuttx-0.3.15 release includes some new features: <ul> - <li>FAT FS: + <li>ROMFS <ul> - <li>Fixed several critical bugs with regard to fat reading and writing and FAT12 - accesses. Basically the FAT FS only worked with my tiny test files and test - cases. A lot of stronger FAT tested is still needed!!</li> - <li>Fixed another FAT bug in implementation of FAT lseek; this prohibit correct - random access to large files.</li> - </ul> - </li> - <li>Network: + <li> + Adds support for the ROMFS filesystem + </li> + <li>R + ROMFS supports <code>mmap()</code> to provide eXecute In Place (XIP) capability + </li> + <li> + The NuttShell (NSH) can be configured to use ROMFS to provide a tiny read-only + filesystem with a startup script in <code>/etc</code>. + </li> + </ul></li> + <li>NXP LPC2148 <ul> - <li>Corrected a critical bug that may prevent <code>recvfrom()</code> from receiving - packets from most remote UDP port numbers.</li> - <li>Corrected an error in multi-threaded socket handling in <code>send()</code> and - <code>sendto()</code>. Outgoing data could overwrite incoming data.</li> - <li>Corrected IP checksum calculation in ICMP and UDP message send logic. - <li>Corrected an error in <code>send()</code> timeout logic.</li> - </ul> - </li> - </ul> -</p> -<p> - New features were also added: - <ul> - <li>Network: - <ul> - <li>Added support for application access to ICMP protocol stacks; Added - ping request logic (<code>net/uip</code>). - <li>Added basic TFTP client logic (<code>netutils/tftpc</code>). - </ul> - </li> - <li>NuttShell (NSH): - <ul> - <li>New commands: <code>test</code>, <code>[</code>, <code>ping</code>, - <code>mkrd,</code> <code>xd</code>, andTFTP <code>get</code> and <code>put</code> commands. - (See the new NuttShell User Guide for additional information). - </ul> - </li> + <li> + The basic port of the NXP LPC2148 on the mcu123.com board was completed. + That basic port includes successful booting, timer interrupts, serial console, + succesfully passing the OS test, and a NuttShell (NSH) configuration. + </li> + </ul></li> </ul> </p> <p> @@ -605,11 +587,13 @@ <b>NXP LPC214x</b>. Support is provided for the NXP LPC214x family of processors. In particular, support is provided for the mcu123.com lpc214x evaluation board (LPC2148). - This port also used the GNU arm-eld toolchain* under Linux or Cygwin. + This port also used the GNU arm-elf toolchain* under Linux or Cygwin. </p> <p> <b>STATUS:</b> - A basic port that boots and supports a serial console is in place. + The basic port includes successful booting, timer interrupts, serial console, + succesfully passing the OS test, and a NuttShell (NSH) configuration. + Additional driver development is underway. </p> </td> </tr> @@ -1044,33 +1028,22 @@ Other memory: </table> <pre><ul> -nuttx-0.3.14 2008-09-08 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - * FAT FS now uses position variable in struct file. This simplifies operations - like ftell(). - * fseek() needs to discard bytes buffered by ungetc(). - * Corrected ftell() return value. - * Added fsetpos() and fgetpos(). - * NSH: Now supports 'test' and '[' commands - * Correct error in send() timeout logic. - * Correct error in multi-threaded socket handling in send() and sendto(). - Outgoing data could overwrite incoming data. - * Add support to uIP for application access to ICMP protocol stacks; Add - ping request logic. - * NSH: Add ping command - * Correct IP checksum calculation in ICMP and UDP message send logic. - * NSH: Created an HTML document and a more detailed README file describing NSH. - * Added basic TFTP client logic (netutils/tftpc). Untested as of initial check-in. - * NSH: Add get and put commands to support TFTP get and put operations. - * NSH: Added a mkrd command that will create a RAMDISK that can be formatted - and mounted. - * Corrected a critical bug that prevent recvfrom from receiving packets from - any remote UDP port. - * NSH: Add hexadecimal dump command (xd) - * Fixed several critical bugs with regard to fat reading and writing and FAT12 - accesses. Basically the FAT FS only worked with my tiny test files and test - cases. A lot of stronger FAT tested is needed!! - * Fixed another FAT bug in implementation of FAT lseek; this prohibit correct - random access to large files. +nuttx-0.3.15 2008-09-20 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + * Added support for ROMFS filesystem. + * Added a simple test the ROMFS filesystem (examples/romfs) + * NSH: Use ROMFS to provide an option for a start-up script at /etc/init.d/rcS + * Add definition of BIOC_XIPBASE ioctl and implement in RAM disk block driver. + This is a low level requirement for eXecute In Place (XIP) support. + * Add a FIOC_MMAP to perform memory mapping of a file and implemented the + ioctl command in the ROMFS filesystem. This is a requirement for eXecute + In Place (XIP) support. + * Add mmap() API with restricted capability (only for XIP support) + * Extend ROMFS test at /examples/romfs to verify mmap() and XIP support. + * Add support for Intel Hex format output using objcopy + * Completed the basic port of the NXP LPC2148 on the mcu123.com board. + The basic port includes successful booting, timer interrupts, serial console, + succesfully passing the examples/ostest, and a NuttShell (NSH) configuration. + * ARM architectures now support drivers/lowconsole.c pascal-0.1.2 2008-02-10 Gregory Nutt <spudmonkey@racsa.co.cr> @@ -1096,22 +1069,7 @@ buildroot-0.1.0 2007-03-09 &lt;spudmonkey@racsa.co.cr&gt </table> <pre><ul> -nuttx-0.3.15 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - * Added support for ROMFS filesystem. - * Added a simple test the ROMFS filesystem (examples/romfs) - * NSH: Use ROMFS to provide an option for a start-up script at /etc/init.d/rcS - * Add definition of BIOC_XIPBASE ioctl and implement in RAM disk block driver. - This is a low level requirement for eXecute In Place (XIP) support. - * Add a FIOC_MMAP to perform memory mapping of a file and implemented the - ioctl command in the ROMFS filesystem. This is a requirement for eXecute - In Place (XIP) support. - * Add mmap() API with restricted capability (only for XIP support) - * Extend ROMFS test at /examples/romfs to verify mmap() and XIP support. - * Add support for Intel Hex format output using objcopy - * Complete the basic port of the NXP LPC2148 on the mcu123.com board. - The basic port includes successful booting, serial console and succesfully - passing the examples/ostest. - * ARM architectures now support drivers/lowconsole.c +nuttx-0.3.16 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 92cbe8e770be315ddbf8e61988d4f2c9fa0e08fd Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 29 Sep 2008 22:04:58 +0000 Subject: [PATCH 0286/1518] Added USB device controller driver for LPC214x git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@960 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 7edeb4d19e..00d58f1936 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: September 20, 2008</p> + <p>Last Updated: September 29, 2008</p> </td> </tr> </table> @@ -1070,6 +1070,8 @@ buildroot-0.1.0 2007-03-09 &lt;spudmonkey@racsa.co.cr&gt <pre><ul> nuttx-0.3.16 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + * Added header files defining a common USB device controller architecture + * Added USB device side driver for the LPC214x (untested at initial checkin) pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 6fba1affd013660e438c8f074a38699944b36131 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 2 Oct 2008 00:29:05 +0000 Subject: [PATCH 0287/1518] USB config options git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@971 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index a2773bcde4..56c56d53d6 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -16,7 +16,7 @@ </b></big></h1> <p><small>by</small></p> <p>Gregory Nutt</p> - <p><small>Last Update: September 17, 2008</small></p> + <p><small>Last Update: October 1, 2008</small></p> </center> <center><h1>Table of Contents</h1></center> @@ -1627,6 +1627,31 @@ The system can be re-made subsequently by just typing <code>make</code>. </li> </ul> +<h2>USB device controller driver</h2> +<ul> + <li> + <code>CONFIG_USBDEV</code>: Enables USB device support + </li> + <li> + <code>CONFIG_USBDEV_ISOCHRONOUS</code>: Build in extra support for isochronous endpoints + </li> + <li> + <code>CONFIG_USBDEV_DUALSPEED</code>: Hardware handles high and full speed operation (USB 2.0) + </li> + <li> + <code>CONFIG_USBDEV_SELFPOWERED</code>: Will cause USB features to indicate that the device is self-powered + </li> + <li> + <code>CONFIG_USBDEV_MAXPOWER</code>: Maximum power consumption in mA + </li> + <li> + <code>CONFIG_USBDEV_TRACE</code>: Enables USB tracing for debug + </li> + <li> + <code>CONFIG_USBDEV_TRACE_NRECORDS</code>: Number of trace entries to remember + </li> +</ul> + <h2>Stack and heap information</h2> <ul> From 5a074691dc113e6a82a94d592097cc90f469f262 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 6 Oct 2008 16:20:53 +0000 Subject: [PATCH 0288/1518] Add option for ARM interrupt stack git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@981 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 00d58f1936..b405c52df6 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: September 29, 2008</p> + <p>Last Updated: October 6, 2008</p> </td> </tr> </table> @@ -1072,6 +1072,9 @@ buildroot-0.1.0 2007-03-09 &lt;spudmonkey@racsa.co.cr&gt nuttx-0.3.16 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Added header files defining a common USB device controller architecture * Added USB device side driver for the LPC214x (untested at initial checkin) + * Add an option to set aside a separate stack for interrupt handling (ARM only). + This is useful when memory is constrained, there are multiple tasks, and + the interrupt stack requirement is high (as when USB is enabled). pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 898783a49933b7a65597d90e473ec2469c799ad0 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 6 Oct 2008 23:12:09 +0000 Subject: [PATCH 0289/1518] Add USB serial driver git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@984 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index b405c52df6..9e4b2ce0ad 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1075,6 +1075,9 @@ nuttx-0.3.16 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Add an option to set aside a separate stack for interrupt handling (ARM only). This is useful when memory is constrained, there are multiple tasks, and the interrupt stack requirement is high (as when USB is enabled). + * Basic LPC214x USB device side driver basically functional (but probably still buggy) + * Initial USB serial class device side driver check in (not well tested at initial checkin) + * Add LPC214x USB serial configuration; Add examples/usbserial test (still a work in progress) pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 2a0b7c56878ddd3551eae07196602c2c265ed6eb Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 7 Oct 2008 17:23:58 +0000 Subject: [PATCH 0290/1518] Add DM320 USB device side driver git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@986 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 9e4b2ce0ad..57e9e3dfbd 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: October 6, 2008</p> + <p>Last Updated: October 7, 2008</p> </td> </tr> </table> @@ -1078,6 +1078,7 @@ nuttx-0.3.16 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Basic LPC214x USB device side driver basically functional (but probably still buggy) * Initial USB serial class device side driver check in (not well tested at initial checkin) * Add LPC214x USB serial configuration; Add examples/usbserial test (still a work in progress) + * Added USB device side driver for the DM320 (untested at initial checkin) pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 7d8ef00de72189ed642540977447133dafe0db4b Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 7 Oct 2008 19:02:20 +0000 Subject: [PATCH 0291/1518] Fix timer error introduced recently git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@987 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 57e9e3dfbd..ac64d72044 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1079,6 +1079,7 @@ nuttx-0.3.16 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Initial USB serial class device side driver check in (not well tested at initial checkin) * Add LPC214x USB serial configuration; Add examples/usbserial test (still a work in progress) * Added USB device side driver for the DM320 (untested at initial checkin) + * Fixed an error in a previous (post 0.3.15) check-in that broke the LPC214x system timer. pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 2f1f10161a353fa4c13d5aa1b8f815d8c7e14445 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 7 Oct 2008 23:07:33 +0000 Subject: [PATCH 0292/1518] Note fixed LPC214x timer freq git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@996 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index ac64d72044..e9376d5a37 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1072,6 +1072,7 @@ buildroot-0.1.0 2007-03-09 &lt;spudmonkey@racsa.co.cr&gt nuttx-0.3.16 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Added header files defining a common USB device controller architecture * Added USB device side driver for the LPC214x (untested at initial checkin) + * Correct the frequency of system timer interrupts (off by 20x in nuttx-0.3.15) * Add an option to set aside a separate stack for interrupt handling (ARM only). This is useful when memory is constrained, there are multiple tasks, and the interrupt stack requirement is high (as when USB is enabled). From 7164f28aaa9b1991c6aa45ae7bceaa1be8b74538 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 9 Oct 2008 12:49:11 +0000 Subject: [PATCH 0293/1518] Need to select endpoints actually supported by hardware git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1007 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 30 ++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 56c56d53d6..091afedba9 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -16,7 +16,7 @@ </b></big></h1> <p><small>by</small></p> <p>Gregory Nutt</p> - <p><small>Last Update: October 1, 2008</small></p> + <p><small>Last Update: October 9, 2008</small></p> </center> <center><h1>Table of Contents</h1></center> @@ -1627,7 +1627,8 @@ The system can be re-made subsequently by just typing <code>make</code>. </li> </ul> -<h2>USB device controller driver</h2> +<h2>USB Device-Side Support</h2> +<h3>USB Device Controller Driver</h3> <ul> <li> <code>CONFIG_USBDEV</code>: Enables USB device support @@ -1652,6 +1653,31 @@ The system can be re-made subsequently by just typing <code>make</code>. </li> </ul> +<h3>USB Serial Device Class Driver</h3> +<ul> + <li> + <code>CONFIG_USBSER_EPINTIN</code>: The logical 7-bit address of a hardware endpoint that supports interrupt IN operation + </li> + <li> + <code>CONFIG_USBSER_EPBULKOUT</code>: The logical 7-bit address of a hardware endpoint that supports bulk OUT operation + </li> + <li> + <code>CONFIG_USBSER_EPBULKIN</code>: The logical 7-bit address of a hardware endpoint that supports bulk IN operation + </li> + <li> + <code>CONFIG_USBSER_NWRREQS</code> and <code>CONFIG_USBSER_NRDREQS</code>: The number of write/read requests that can be in flight + </li> + <li> + <code>CONFIG_USBSER_VENDORID</code> and <code>CONFIG_USBSER_VENDORSTR</code>: The vendor ID code/string + </li> + <li> + <code>CONFIG_USBSER_PRODUCTID</code> and <code>CONFIG_USBSER_PRODUCTSTR</code>: The product ID code/string + </li> + <li> + <code>CONFIG_USBSER_RXBUFSIZE</code> and <code>CONFIG_USBSER_TXBUFSIZE</code>: Size of the serial receive/transmit buffers + </li> +</ul> + <h2>Stack and heap information</h2> <ul> From c01dcff420a1c98e3dd65251c9400d8b792231a5 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 9 Oct 2008 19:20:02 +0000 Subject: [PATCH 0294/1518] Fixe open count error + O_NONBLOCK function git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1013 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index e9376d5a37..09f2b465c7 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: October 7, 2008</p> + <p>Last Updated: October 9, 2008</p> </td> </tr> </table> @@ -1081,6 +1081,7 @@ nuttx-0.3.16 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Add LPC214x USB serial configuration; Add examples/usbserial test (still a work in progress) * Added USB device side driver for the DM320 (untested at initial checkin) * Fixed an error in a previous (post 0.3.15) check-in that broke the LPC214x system timer. + * Fixed serial drive bugs related to (1) open counts and (2) recognizing O_NONBLOCK on read. pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 34c0a9a5009aa2562db15edad99559f25a8d5de9 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 9 Oct 2008 20:22:21 +0000 Subject: [PATCH 0295/1518] Not setting error on driver errors git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1014 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 09f2b465c7..7445634d04 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1082,6 +1082,7 @@ nuttx-0.3.16 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Added USB device side driver for the DM320 (untested at initial checkin) * Fixed an error in a previous (post 0.3.15) check-in that broke the LPC214x system timer. * Fixed serial drive bugs related to (1) open counts and (2) recognizing O_NONBLOCK on read. + * Fixed an error in read(); it was not setting the errno on errors returned from the driver. pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 25b2eb0e28a6a70c9da8b591cd77e3ae73b4f36d Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 10 Oct 2008 18:14:24 +0000 Subject: [PATCH 0296/1518] Prep for release 0.3.16 git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1027 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 164 +++++++++++++++++++++++++-------------- 1 file changed, 106 insertions(+), 58 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 7445634d04..c88174735a 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: October 9, 2008</p> + <p>Last Updated: October 10, 2008</p> </td> </tr> </table> @@ -443,6 +443,38 @@ <li>Networking utilities (DHCP, SMTP, TELNET, TFTP, HTTP)</li> </p> </tr> + +<tr> + <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> + <td bgcolor="#5eaee1"> + <b>USB Device Support</b> + </td> +</tr> + +<tr> + <td><br></td> + <td> + <p> + <li><i>Gadget</i>-like architecture for USB device controller drivers and device-dependent USB class drivers.</li> + </p> +</tr> + +<tr> + <td><br></td> + <td> + <p> + <li>USB device controller drivers available for the NXP LPC214x and TI DM320.</li> + </p> +</tr> + +<tr> + <td><br></td> + <td> + <p> + <li>Device-dependent USB class drivers available for USB serial.</li> + </p> +</tr> + </table></center> <p> @@ -493,38 +525,63 @@ </tr> </table> -<p> - The 27th release of NuttX (nuttx-0.3.15) is available for download +<p><b>nuttx-0.3.16</b>. + The 28th release of NuttX (nuttx-0.3.16) is available for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. The change log associated with the release is available <a href="#currentrelease">here</a>. Unreleased changes after this release are available in CVS. These unreleased changes are listed <a href="#pendingchanges">here</a>. </p> +<p><b>USB Support</b>. + The nuttx-0.3.16 release includes the first support for USB in NuttX. + A set of USB APIs were added to support USB device controller drivers and bindings to USB device class drivers. + The form of the interface was inspired by the Linux Gadget APIs. +</p> <p> - The nuttx-0.3.15 release includes some new features: + At present USB device controller drivers are included for: <ul> - <li>ROMFS - <ul> - <li> - Adds support for the ROMFS filesystem - </li> - <li>R - ROMFS supports <code>mmap()</code> to provide eXecute In Place (XIP) capability - </li> - <li> - The NuttShell (NSH) can be configured to use ROMFS to provide a tiny read-only - filesystem with a startup script in <code>/etc</code>. - </li> - </ul></li> - <li>NXP LPC2148 - <ul> - <li> - The basic port of the NXP LPC2148 on the mcu123.com board was completed. - That basic port includes successful booting, timer interrupts, serial console, - succesfully passing the OS test, and a NuttShell (NSH) configuration. - </li> - </ul></li> + <li> + The NXP LPC214x. This driver has been verified and is an early alpha stage in quality. + </li> + <li> + TI DM320. Coding for this driver is complete but it is completely untested as of this release. + </li> + </ul> +</p> +<p> + A controller-independent class driver is also included for: + <ul> + <li> + USB serial class device driver (emulates the Prolific PL2303 serial-to-USB adaptor). + This drver has only been verified with the Linux host PL2303 driver. + </li> + </ul> +</p> +<p><b>Other New Features</b>. + Other new features include: + <ul> + <li> + Add an option to set aside a separate stack for interrupt handling (ARM only). + This is useful when memory is constrained, there are multiple tasks, and + the interrupt stack requirement is high (as when USB is enabled). + </li> + </ul> +</p> +<p><b>Bugs Fixed</b>. + A few bugs were also fixed: + <ul> + <li> + Fixed the frequency of system timer interrupts in the NXP LPC214x port + (off by 20x in nuttx-0.3.15) + </li> + <li> + Fixed serial driver bugs related to (1) open counts and (2) recognizing + O_NONBLOCK on read. + <li> + Fixed an error in read(); it was not setting the <code>errno</code> on errors returned + from the driver. + </li> </ul> </p> <p> @@ -592,7 +649,7 @@ <p> <b>STATUS:</b> The basic port includes successful booting, timer interrupts, serial console, - succesfully passing the OS test, and a NuttShell (NSH) configuration. + USB driver, succesfully passing the OS test, and a NuttShell (NSH) configuration. Additional driver development is underway. </p> </td> @@ -615,7 +672,9 @@ </p> <p> <b>STATUS:</b> - This port is complete and verified. + The basic port (timer interrupts, serial ports, etc.) is complete. + All implemented features have been verified with the exception of the USB device-side + driver; that implementation is complete but completely untested. </p> </td> </tr> @@ -1028,24 +1087,26 @@ Other memory: </table> <pre><ul> -nuttx-0.3.15 2008-09-20 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - * Added support for ROMFS filesystem. - * Added a simple test the ROMFS filesystem (examples/romfs) - * NSH: Use ROMFS to provide an option for a start-up script at /etc/init.d/rcS - * Add definition of BIOC_XIPBASE ioctl and implement in RAM disk block driver. - This is a low level requirement for eXecute In Place (XIP) support. - * Add a FIOC_MMAP to perform memory mapping of a file and implemented the - ioctl command in the ROMFS filesystem. This is a requirement for eXecute - In Place (XIP) support. - * Add mmap() API with restricted capability (only for XIP support) - * Extend ROMFS test at /examples/romfs to verify mmap() and XIP support. - * Add support for Intel Hex format output using objcopy - * Completed the basic port of the NXP LPC2148 on the mcu123.com board. - The basic port includes successful booting, timer interrupts, serial console, - succesfully passing the examples/ostest, and a NuttShell (NSH) configuration. - * ARM architectures now support drivers/lowconsole.c +nuttx-0.3.16 2008-10-10 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + * Added header files defining a common USB device controller architecture + * Added USB device side driver for the LPC214x + * Correct the frequency of system timer interrupts in the NXP LPC214x port + (off by 20x in nuttx-0.3.15) + * Add an option to set aside a separate stack for interrupt handling (ARM only). + This is useful when memory is constrained, there are multiple tasks, and + the interrupt stack requirement is high (as when USB is enabled). + * Added USB serial class device side driver (emulates Prolific PL2303 + serial-to-USB adaptor) + * Add LPC214x USB serial configuration; Add examples/usbserial test + * Added USB device side driver for the DM320 (untested at initial release) + * Fixed an error in a previous (post 0.3.15) check-in that broke the LPC214x + system timer. + * Fixed serial driver bugs related to (1) open counts and (2) recognizing + O_NONBLOCK on read. + * Fixed an error in read(); it was not setting the errno on errors returned + from the driver. -pascal-0.1.2 2008-02-10 Gregory Nutt <spudmonkey@racsa.co.cr> +pascal-0.1.2 2008-02-10 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Add logic to build and link with the ZDS-II toolchain use with the z16f. @@ -1069,20 +1130,7 @@ buildroot-0.1.0 2007-03-09 &lt;spudmonkey@racsa.co.cr&gt </table> <pre><ul> -nuttx-0.3.16 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - * Added header files defining a common USB device controller architecture - * Added USB device side driver for the LPC214x (untested at initial checkin) - * Correct the frequency of system timer interrupts (off by 20x in nuttx-0.3.15) - * Add an option to set aside a separate stack for interrupt handling (ARM only). - This is useful when memory is constrained, there are multiple tasks, and - the interrupt stack requirement is high (as when USB is enabled). - * Basic LPC214x USB device side driver basically functional (but probably still buggy) - * Initial USB serial class device side driver check in (not well tested at initial checkin) - * Add LPC214x USB serial configuration; Add examples/usbserial test (still a work in progress) - * Added USB device side driver for the DM320 (untested at initial checkin) - * Fixed an error in a previous (post 0.3.15) check-in that broke the LPC214x system timer. - * Fixed serial drive bugs related to (1) open counts and (2) recognizing O_NONBLOCK on read. - * Fixed an error in read(); it was not setting the errno on errors returned from the driver. +nuttx-0.3.17 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From b55f4bb1b19ff309369c1f82224a6dd724892a36 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 11 Oct 2008 19:42:01 +0000 Subject: [PATCH 0297/1518] Add 1st cut SPI driver for SPI MMC git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1034 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index c88174735a..8ac7bc8b42 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: October 10, 2008</p> + <p>Last Updated: October 11, 2008</p> </td> </tr> </table> @@ -672,7 +672,7 @@ </p> <p> <b>STATUS:</b> - The basic port (timer interrupts, serial ports, etc.) is complete. + The basic port (timer interrupts, serial ports, network, etc.) is complete. All implemented features have been verified with the exception of the USB device-side driver; that implementation is complete but completely untested. </p> @@ -1131,6 +1131,7 @@ buildroot-0.1.0 2007-03-09 &lt;spudmonkey@racsa.co.cr&gt <pre><ul> nuttx-0.3.17 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + * Add LPC214x SPI1 driver to interface with MMC on mcu123.com board. pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 44a94dc8e3c2ee3d1ed3f7378e4a547ec29631df Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 11 Oct 2008 22:33:49 +0000 Subject: [PATCH 0298/1518] update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1036 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 8ac7bc8b42..87925c495d 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1131,6 +1131,8 @@ buildroot-0.1.0 2007-03-09 &lt;spudmonkey@racsa.co.cr&gt <pre><ul> nuttx-0.3.17 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + * Reduced the amount of memory reserved for USB serial control requests. It + was unnecessarily large. * Add LPC214x SPI1 driver to interface with MMC on mcu123.com board. pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 1cba8039973741d29c733f3003592f05cd5eb156 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 13 Oct 2008 20:58:19 +0000 Subject: [PATCH 0299/1518] update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1040 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 87925c495d..26730ef422 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1131,6 +1131,7 @@ buildroot-0.1.0 2007-03-09 &lt;spudmonkey@racsa.co.cr&gt <pre><ul> nuttx-0.3.17 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + * Incorporate patch "[2164503] nuttx-0.3.16 does not build for ARM with USB disabled" * Reduced the amount of memory reserved for USB serial control requests. It was unnecessarily large. * Add LPC214x SPI1 driver to interface with MMC on mcu123.com board. From 1452a5e25f7cc29cec07f840543897b6c523c5d8 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 15 Oct 2008 14:19:46 +0000 Subject: [PATCH 0300/1518] Add simple SPI-based MMC/SD block driver git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1043 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 26730ef422..ef667163cc 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: October 11, 2008</p> + <p>Last Updated: October 15, 2008</p> </td> </tr> </table> @@ -1134,7 +1134,8 @@ nuttx-0.3.17 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Incorporate patch "[2164503] nuttx-0.3.16 does not build for ARM with USB disabled" * Reduced the amount of memory reserved for USB serial control requests. It was unnecessarily large. - * Add LPC214x SPI1 driver to interface with MMC on mcu123.com board. + * Added LPC214x SPI1 driver to interface with MMC on mcu123.com board. + * Added a simple SPI-based MMC/SD block driver pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 1d73d06fc5ba3636e96fc623bf82d98e0441fe4e Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 15 Oct 2008 17:26:05 +0000 Subject: [PATCH 0301/1518] Add NXP LPC214x-specific NSH support git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1044 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttShell.html | 12 +++++++++++- Documentation/NuttX.html | 1 + 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index c017d6eca8..f292c26cd4 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttShell (NSH)</i></font></big></h1> - <p>Last Updated: September 10, 2008</p> + <p>Last Updated: October 15, 2008</p> </td> </tr> </table> @@ -1820,6 +1820,16 @@ nsh> where a minimal footprint is a necessity and background command execution is not. </td> </tr> + <tr> + <td valign="top"><b><code>CONFIG_EXAMPLES_NSH_MMCSDMINOR</code></b></td> + <td> + If the architecture supports an MMC/SD slot and if the NSH + architecture specific logic is present, this option will provide + the MMC/SD minor number, i.e., the MMC/SD block driver will + be registered as <code>/dev/mmcsd</code><i>N</i> where <i>N</i> is the minor number. + Default is zero. + </td> + </tr> <tr> <td valign="top"><b><code>CONFIG_EXAMPLES_NSH_ROMFSETC</code></b></td> <td> diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index ef667163cc..c30a030ba1 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1136,6 +1136,7 @@ nuttx-0.3.17 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; was unnecessarily large. * Added LPC214x SPI1 driver to interface with MMC on mcu123.com board. * Added a simple SPI-based MMC/SD block driver + * NSH: Add LPC214x-specific support to NSH; NSH now mounts any SD cards in the slot. pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From f19a33728397adf15c06db4092a1f6bff16daa92 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 15 Oct 2008 19:12:33 +0000 Subject: [PATCH 0302/1518] Fix access to aligned partition table values git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1046 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index c30a030ba1..fa0996a550 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1137,10 +1137,12 @@ nuttx-0.3.17 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Added LPC214x SPI1 driver to interface with MMC on mcu123.com board. * Added a simple SPI-based MMC/SD block driver * NSH: Add LPC214x-specific support to NSH; NSH now mounts any SD cards in the slot. + (Now that I have large media support so many partition and FAT fixes should follow). + * FAT: Fix access to unaligned 32-bit values in partion table (start sector &amp; size) pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; -buildroot-0.1.1 2008-xx-xx &lt;spudmonkey@racsa.co.cr&gt +buildroot-0.1.1 2008-xx-xx &lt;spudmonkey@racsa.co.cr&gt; * Support for m68k-elf and m68hc11 toolchain </pre></ul> From e0f7e9e8c3aa2cbe472b076d4106f348c850ade3 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 17 Oct 2008 17:53:46 +0000 Subject: [PATCH 0303/1518] Fix uninitialized variable git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1051 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index fa0996a550..ec77f0cf3a 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: October 15, 2008</p> + <p>Last Updated: October 17, 2008</p> </td> </tr> </table> @@ -1137,8 +1137,8 @@ nuttx-0.3.17 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Added LPC214x SPI1 driver to interface with MMC on mcu123.com board. * Added a simple SPI-based MMC/SD block driver * NSH: Add LPC214x-specific support to NSH; NSH now mounts any SD cards in the slot. - (Now that I have large media support so many partition and FAT fixes should follow). * FAT: Fix access to unaligned 32-bit values in partion table (start sector &amp; size) + * Fixed a problem with a un-initialized variable in the USB serial driver. pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From cc4d35102b70461cab5c81d2249f5dc6326b4d1a Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 22 Oct 2008 16:20:18 +0000 Subject: [PATCH 0304/1518] Building environment for USB storage git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1061 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index ec77f0cf3a..d151f208fa 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: October 17, 2008</p> + <p>Last Updated: October 22, 2008</p> </td> </tr> </table> @@ -1139,6 +1139,7 @@ nuttx-0.3.17 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * NSH: Add LPC214x-specific support to NSH; NSH now mounts any SD cards in the slot. * FAT: Fix access to unaligned 32-bit values in partion table (start sector &amp; size) * Fixed a problem with a un-initialized variable in the USB serial driver. + * Added USB storage NXP LPC214x configuration pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 621fac17a9e971dc646138fedadc2efce27dc3bf Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 22 Oct 2008 22:03:47 +0000 Subject: [PATCH 0305/1518] USB bulk storage configuration settings git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1064 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 36 +++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 091afedba9..c8eaa532e9 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -16,7 +16,7 @@ </b></big></h1> <p><small>by</small></p> <p>Gregory Nutt</p> - <p><small>Last Update: October 9, 2008</small></p> + <p><small>Last Update: October 22, 2008</small></p> </center> <center><h1>Table of Contents</h1></center> @@ -1678,6 +1678,40 @@ The system can be re-made subsequently by just typing <code>make</code>. </li> </ul> +<h3>USB Storage Device Configuration</h3> +<ul> + <li> + <code>CONFIG_USBSTRG_EP0MAXPACKET</code>: + Max packet size for endpoint 0 + </li> + <li> + <code>CONFIG_USBSTRGEPBULKOUT</code> and <code>CONFIG_USBSTRG_EPBULKIN</code>: + The logical 7-bit address of a hardware endpoints that support bulk OUT and IN operations + </li> + <li> + <code>CONFIG_USBSTRG_NWRREQS</code> and <code>CONFIG_USBSTRG_NRDREQS</code>: + The number of write/read requests that can be in flight + </li> + <li> + <code>CONFIG_USBSTRG_BULKINREQLEN</code> and <code>CONFIG_USBSTRG_BULKOUTREQLEN</code>: + The size of the buffer in each write/read request. + This value needs to be at least as large as the endpoint maxpacket and + ideally as large as a block device sector. + </li> + <li> + <code>CONFIG_USBSTRG_VENDORID</code> and <code>CONFIG_USBSTRG_VENDORSTR</code>: + The vendor ID code/string + </li> + <li> + <code>CONFIG_USBSTRG_PRODUCTID</code> and <code>CONFIG_USBSTRG_PRODUCTSTR</code>: + The product ID code/string + </li> + <li> + <code>CONFIG_USBSTRG_REMOVABLE</code>: + Select if the media is removable + </li> +</ul> + <h2>Stack and heap information</h2> <ul> From acd7a2adf0d889becb56c40bb2a88cafe08571f7 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 23 Oct 2008 20:51:26 +0000 Subject: [PATCH 0306/1518] update USB configuration settings git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1068 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 ++- Documentation/NuttxPortingGuide.html | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index d151f208fa..d9f51c0303 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: October 22, 2008</p> + <p>Last Updated: October 23, 2008</p> </td> </tr> </table> @@ -1140,6 +1140,7 @@ nuttx-0.3.17 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * FAT: Fix access to unaligned 32-bit values in partion table (start sector &amp; size) * Fixed a problem with a un-initialized variable in the USB serial driver. * Added USB storage NXP LPC214x configuration + * Added a test for USB storage under examples/usbstorage pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index c8eaa532e9..bf755cff26 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -1535,6 +1535,16 @@ The system can be re-made subsequently by just typing <code>make</code>. </li> </ul> +<h2>SPI-based MMC/SD driver<h2> +<ul> + <li> + <code>CONFIG_MMCSD_NSLOTS</code>: Number of MMC/SD slots supported by the driver. Default is one. + </li> + <li> + <code>CONFIG_MMCSD_READONLY</code>: Provide read-only access. Default is Read/Write + </li> +</ul> + <h2>Network Support</h2> <h3>TCP/IP and UDP support via uIP</h2> <ul> @@ -1655,6 +1665,9 @@ The system can be re-made subsequently by just typing <code>make</code>. <h3>USB Serial Device Class Driver</h3> <ul> + <li> + <code>CONFIG_USBSER</code>: Enable compilation of the USB serial driver + </li> <li> <code>CONFIG_USBSER_EPINTIN</code>: The logical 7-bit address of a hardware endpoint that supports interrupt IN operation </li> @@ -1680,6 +1693,10 @@ The system can be re-made subsequently by just typing <code>make</code>. <h3>USB Storage Device Configuration</h3> <ul> + <li> + <code>CONFIG_USBSTRG</code>: + Enable compilation of the USB storage driver + </li> <li> <code>CONFIG_USBSTRG_EP0MAXPACKET</code>: Max packet size for endpoint 0 From 4cce94e3c35dc7d54d56e97ebbf3b2484048bee7 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 24 Oct 2008 22:42:28 +0000 Subject: [PATCH 0307/1518] Add USB storage class driver git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1075 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index d9f51c0303..b3a25507a9 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: October 23, 2008</p> + <p>Last Updated: October 24, 2008</p> </td> </tr> </table> @@ -356,7 +356,7 @@ <td><br></td> <td> <p> - <li>Network, serial, CAN, driver architecture.</li> + <li>Network, USB (device), serial, CAN, driver architecture.</li> </p> </tr> @@ -374,7 +374,6 @@ <li>Mount-able volumes. Bind mountpoint, filesystem, and block device driver.</li> </p> </tr> - <tr> <td><br></td> <td> @@ -382,7 +381,6 @@ <li>FAT12/16/32 filesystem support.</li> </p> </tr> - <tr> <td><br></td> <td> @@ -390,13 +388,13 @@ <li>ROMFS filesystem support.</li> </p> </tr> + <tr> <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> <td bgcolor="#5eaee1"> <b>C Library</b> </td> </tr> - <tr> <td><br></td> <td> @@ -411,7 +409,6 @@ <b>Networking</b> </td> </tr> - <tr> <td><br></td> <td> @@ -419,7 +416,6 @@ <li>TCP/IP, UDP, ICMP stacks.</li> </p> </tr> - <tr> <td><br></td> <td> @@ -427,7 +423,6 @@ <li>Small footprint (based on uIP).</li> </p> </tr> - <tr> <td><br></td> <td> @@ -435,7 +430,6 @@ <li>BSD compatible socket layer.</li> </p> </tr> - <tr> <td><br></td> <td> @@ -450,7 +444,6 @@ <b>USB Device Support</b> </td> </tr> - <tr> <td><br></td> <td> @@ -458,7 +451,6 @@ <li><i>Gadget</i>-like architecture for USB device controller drivers and device-dependent USB class drivers.</li> </p> </tr> - <tr> <td><br></td> <td> @@ -466,7 +458,6 @@ <li>USB device controller drivers available for the NXP LPC214x and TI DM320.</li> </p> </tr> - <tr> <td><br></td> <td> @@ -474,6 +465,13 @@ <li>Device-dependent USB class drivers available for USB serial.</li> </p> </tr> +<tr> + <td><br></td> + <td> + <p> + <li>Bult-in USB trace functionality for USB debug.</li> + </p> +</tr> </table></center> @@ -1141,6 +1139,9 @@ nuttx-0.3.17 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Fixed a problem with a un-initialized variable in the USB serial driver. * Added USB storage NXP LPC214x configuration * Added a test for USB storage under examples/usbstorage + * Fixed a bug in the LPC214x USB driver: It was not properly clearing a HALTed + endpoints (other than EP) on receipt of CLEAR FEATURES request. + * Added USB storage class device side driver (BBB) pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 7041e0498d62a650a1da0d1aeac6f7489190a176 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 25 Oct 2008 14:41:11 +0000 Subject: [PATCH 0308/1518] update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1079 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index b3a25507a9..b0c04ea922 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: October 24, 2008</p> + <p>Last Updated: October 25, 2008</p> </td> </tr> </table> @@ -1142,6 +1142,10 @@ nuttx-0.3.17 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Fixed a bug in the LPC214x USB driver: It was not properly clearing a HALTed endpoints (other than EP) on receipt of CLEAR FEATURES request. * Added USB storage class device side driver (BBB) + * Fixed a bug in the LPC214x USB driver: It was not properly handling request buffers + larger then the endpoint's max packet (DM320 driver also fixed, untested) + * Added logic to the USB device interface: A bit is needed to force the driver to + to terminate an IN transfer with a short packet (zero-length if necessary). pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From bf229f36b5493e68b2880ceef6dfffe3a21218c4 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 27 Oct 2008 16:39:15 +0000 Subject: [PATCH 0309/1518] Correct error in end-of-request handling git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1082 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index b0c04ea922..cf95485381 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: October 25, 2008</p> + <p>Last Updated: October 27, 2008</p> </td> </tr> </table> @@ -1146,6 +1146,8 @@ nuttx-0.3.17 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; larger then the endpoint's max packet (DM320 driver also fixed, untested) * Added logic to the USB device interface: A bit is needed to force the driver to to terminate an IN transfer with a short packet (zero-length if necessary). + * Fix an error in the NXP LPC214x USB device driver that was causing corruption of + the request queue (M320 driver also fixed, untested) pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From d8cf87229af5b1677f9c1da0c8ddc696ccf95d4a Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 27 Oct 2008 22:45:55 +0000 Subject: [PATCH 0310/1518] Fix read failures when OUT req size > maxpacket git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1086 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index cf95485381..a93e24cff9 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1148,6 +1148,8 @@ nuttx-0.3.17 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; to terminate an IN transfer with a short packet (zero-length if necessary). * Fix an error in the NXP LPC214x USB device driver that was causing corruption of the request queue (M320 driver also fixed, untested) + * Correct another error in the NXP LPC214x USB device driver that caused read failures + when the request buffer size was larger than maxpacket. pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 0e038cbc5ee437b8fb107a438fe0ef68c26d16d8 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 28 Oct 2008 17:40:11 +0000 Subject: [PATCH 0311/1518] Prep for 0.3.17 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1098 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 142 +++++++++++++++------------------------ 1 file changed, 53 insertions(+), 89 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index a93e24cff9..94c6940913 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: October 27, 2008</p> + <p>Last Updated: October 28, 2008</p> </td> </tr> </table> @@ -381,6 +381,13 @@ <li>FAT12/16/32 filesystem support.</li> </p> </tr> +<tr> + <td><br></td> + <td> + <p> + <li>Generic driver for SPI-based MMC/SD cards.</li> + </p> +</tr> <tr> <td><br></td> <td> @@ -462,7 +469,7 @@ <td><br></td> <td> <p> - <li>Device-dependent USB class drivers available for USB serial.</li> + <li>Device-dependent USB class drivers available for USB serial and for USB mass storage.</li> </p> </tr> <tr> @@ -523,66 +530,36 @@ </tr> </table> -<p><b>nuttx-0.3.16</b>. - The 28th release of NuttX (nuttx-0.3.16) is available for download +<p><b>nuttx-0.3.17</b>. + The 29th release of NuttX (nuttx-0.3.16) is available for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. The change log associated with the release is available <a href="#currentrelease">here</a>. Unreleased changes after this release are available in CVS. These unreleased changes are listed <a href="#pendingchanges">here</a>. </p> -<p><b>USB Support</b>. - The nuttx-0.3.16 release includes the first support for USB in NuttX. - A set of USB APIs were added to support USB device controller drivers and bindings to USB device class drivers. - The form of the interface was inspired by the Linux Gadget APIs. -</p> -<p> - At present USB device controller drivers are included for: +<p><b>MMC/SD and USB Mass Storage Support</b>. + The nuttx-0.3.17 release includes additional support for USB in NuttX. + The following new features were added: <ul> - <li> - The NXP LPC214x. This driver has been verified and is an early alpha stage in quality. - </li> - <li> - TI DM320. Coding for this driver is complete but it is completely untested as of this release. - </li> + <li>Added support for SPI-based MMC/SD cards (with an SPI driver for the NXP LPC214x).</li> + <li>Added USB storage class device side driver (BBB)</li> + <li>Added an example that demonstrates the USB storage class by exporting the SPI based MMC/SD card on the NXP LPC214x.</li> </ul> </p> <p> - A controller-independent class driver is also included for: - <ul> - <li> - USB serial class device driver (emulates the Prolific PL2303 serial-to-USB adaptor). - This drver has only been verified with the Linux host PL2303 driver. - </li> - </ul> + This is an early alpha release of these drivers. + At present they only work with debug features enabled so there are probably some race conditions that + occur only with debug features disabled (anyone out there with a USB analyzer? I would love + to know what is happening). </p> -<p><b>Other New Features</b>. - Other new features include: - <ul> - <li> - Add an option to set aside a separate stack for interrupt handling (ARM only). - This is useful when memory is constrained, there are multiple tasks, and - the interrupt stack requirement is high (as when USB is enabled). - </li> - </ul> -</p> -<p><b>Bugs Fixed</b>. - A few bugs were also fixed: - <ul> - <li> - Fixed the frequency of system timer interrupts in the NXP LPC214x port - (off by 20x in nuttx-0.3.15) - </li> - <li> - Fixed serial driver bugs related to (1) open counts and (2) recognizing - O_NONBLOCK on read. - <li> - Fixed an error in read(); it was not setting the <code>errno</code> on errors returned - from the driver. - </li> - </ul> +<p><b>Bugs Fixed</b> + Several important bugs were also fixed in the FAT file system, USB serial driver and + NXP LPC214x USB controller driver (see the current <a href="#currentrelease">ChangeLog</a> for details). </p> <p> + These changes were verified only on the mcu123.com NXP LPC2148 board using a Linux development environment. + USB testing was performed using both a Linux host and a WinXP host. As usual, any feedback about bugs or suggestions for improvement would be greatly appreciated. </p> @@ -1085,24 +1062,32 @@ Other memory: </table> <pre><ul> -nuttx-0.3.16 2008-10-10 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - * Added header files defining a common USB device controller architecture - * Added USB device side driver for the LPC214x - * Correct the frequency of system timer interrupts in the NXP LPC214x port - (off by 20x in nuttx-0.3.15) - * Add an option to set aside a separate stack for interrupt handling (ARM only). - This is useful when memory is constrained, there are multiple tasks, and - the interrupt stack requirement is high (as when USB is enabled). - * Added USB serial class device side driver (emulates Prolific PL2303 - serial-to-USB adaptor) - * Add LPC214x USB serial configuration; Add examples/usbserial test - * Added USB device side driver for the DM320 (untested at initial release) - * Fixed an error in a previous (post 0.3.15) check-in that broke the LPC214x - system timer. - * Fixed serial driver bugs related to (1) open counts and (2) recognizing - O_NONBLOCK on read. - * Fixed an error in read(); it was not setting the errno on errors returned - from the driver. +nuttx-0.3.17 2008-10-28 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + * Incorporate patch "[2164503] nuttx-0.3.16 does not build for ARM with USB disabled" + * Reduced the amount of memory reserved for USB serial control requests. It + was unnecessarily large. + * Added LPC214x SPI1 driver to interface with MMC on mcu123.com board. + * Added a simple SPI-based MMC/SD block driver + * NSH: Add LPC214x-specific support to NSH; NSH now mounts any SD cards in the slot. + * FAT: Fix access to unaligned 32-bit values in partion table (start sector &amp; size) + * Fixed a problem with a un-initialized variable in the USB serial driver. + * Added USB storage NXP LPC214x configuration + * Added a test for USB storage under examples/usbstorage + * Fixed a bug in the LPC214x USB driver: It was not properly clearing a HALTed + endpoints (other than EP) on receipt of CLEAR FEATURES request. + * Added USB storage class device side driver (BBB) + * Fixed a bug in the LPC214x USB driver: It was not properly handling request buffers + larger then the endpoint's max packet (DM320 driver also fixed, untested) + * Added logic to the USB device interface: A bit is needed to force the driver to + to terminate an IN transfer with a short packet (zero-length if necessary). + * Fix an error in the NXP LPC214x USB device driver that was causing corruption of + the request queue (M320 driver also fixed, untested) + * Correct another error in the NXP LPC214x USB device driver that caused read failures + when the request buffer size was larger than maxpacket. + * Numerous corrections/extensions to the USB tracing logic included in 0.3.16 (but + not integrated until 0.3.17) + * Fixed another bug in the NXP LPC214x USB device driver: After a stalled endpoint + is resumed (view CLEAR FEATURE), we must restart the IN (outgoing) queue. pascal-0.1.2 2008-02-10 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; @@ -1128,28 +1113,7 @@ buildroot-0.1.0 2007-03-09 &lt;spudmonkey@racsa.co.cr&gt </table> <pre><ul> -nuttx-0.3.17 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - * Incorporate patch "[2164503] nuttx-0.3.16 does not build for ARM with USB disabled" - * Reduced the amount of memory reserved for USB serial control requests. It - was unnecessarily large. - * Added LPC214x SPI1 driver to interface with MMC on mcu123.com board. - * Added a simple SPI-based MMC/SD block driver - * NSH: Add LPC214x-specific support to NSH; NSH now mounts any SD cards in the slot. - * FAT: Fix access to unaligned 32-bit values in partion table (start sector &amp; size) - * Fixed a problem with a un-initialized variable in the USB serial driver. - * Added USB storage NXP LPC214x configuration - * Added a test for USB storage under examples/usbstorage - * Fixed a bug in the LPC214x USB driver: It was not properly clearing a HALTed - endpoints (other than EP) on receipt of CLEAR FEATURES request. - * Added USB storage class device side driver (BBB) - * Fixed a bug in the LPC214x USB driver: It was not properly handling request buffers - larger then the endpoint's max packet (DM320 driver also fixed, untested) - * Added logic to the USB device interface: A bit is needed to force the driver to - to terminate an IN transfer with a short packet (zero-length if necessary). - * Fix an error in the NXP LPC214x USB device driver that was causing corruption of - the request queue (M320 driver also fixed, untested) - * Correct another error in the NXP LPC214x USB device driver that caused read failures - when the request buffer size was larger than maxpacket. +nuttx-0.3.18 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 608e857d77f34d34ffff622ecf7ac596f1a2849e Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 28 Oct 2008 19:16:06 +0000 Subject: [PATCH 0312/1518] Correct release description git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1100 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 94c6940913..66590724ac 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -549,9 +549,7 @@ </p> <p> This is an early alpha release of these drivers. - At present they only work with debug features enabled so there are probably some race conditions that - occur only with debug features disabled (anyone out there with a USB analyzer? I would love - to know what is happening). + A known problem is that the storage driver does not work properly with WinXP when debug features are disabled. </p> <p><b>Bugs Fixed</b> Several important bugs were also fixed in the FAT file system, USB serial driver and From 442b1a3763d6fd4cf32bbf4cc530a6c8cfc47e2c Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 1 Nov 2008 17:02:36 +0000 Subject: [PATCH 0313/1518] Added STR71x port git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1116 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 66590724ac..34f9bee036 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: October 28, 2008</p> + <p>Last Updated: November 1, 2008</p> </td> </tr> </table> @@ -1112,6 +1112,8 @@ buildroot-0.1.0 2007-03-09 &lt;spudmonkey@racsa.co.cr&gt <pre><ul> nuttx-0.3.18 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + * Added port for the STMicro STR71x processor and configuration for the Olimex STR-P711 + board (untested as of the initial checkin). pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 7e68a126ee7e21f33da964524856da7a0e359e95 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 2 Nov 2008 22:34:35 +0000 Subject: [PATCH 0314/1518] Fix workaround logic git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1124 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 34f9bee036..b56566e4f0 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: November 1, 2008</p> + <p>Last Updated: November 2, 2008</p> </td> </tr> </table> @@ -1114,6 +1114,8 @@ buildroot-0.1.0 2007-03-09 &lt;spudmonkey@racsa.co.cr&gt nuttx-0.3.18 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Added port for the STMicro STR71x processor and configuration for the Olimex STR-P711 board (untested as of the initial checkin). + * Fix race condition workaround delay in LPC214X SPI logic. It the cause of the very + bad MMC/SD performance. pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From e7b61afa7e1e4bc04966924b419d950888ed620d Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 5 Nov 2008 15:27:02 +0000 Subject: [PATCH 0315/1518] update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1131 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index b56566e4f0..b503421227 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: November 2, 2008</p> + <p>Last Updated: November 5, 2008</p> </td> </tr> </table> @@ -1113,7 +1113,8 @@ buildroot-0.1.0 2007-03-09 &lt;spudmonkey@racsa.co.cr&gt <pre><ul> nuttx-0.3.18 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Added port for the STMicro STR71x processor and configuration for the Olimex STR-P711 - board (untested as of the initial checkin). + board (STR71x testing is stalled because I have been unable to get OpenOCD to + communicate with my JTAG wiggler on Linux). * Fix race condition workaround delay in LPC214X SPI logic. It the cause of the very bad MMC/SD performance. From eecbc381fec0efa9fd22b34661b923ae11b3e919 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 5 Nov 2008 22:16:22 +0000 Subject: [PATCH 0316/1518] Add infrastructure for Hitachi SH-1 git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1134 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + Documentation/NuttxPortingGuide.html | 73 +++++++++++++++++----------- 2 files changed, 45 insertions(+), 29 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index b503421227..01d46dba36 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1117,6 +1117,7 @@ nuttx-0.3.18 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; communicate with my JTAG wiggler on Linux). * Fix race condition workaround delay in LPC214X SPI logic. It the cause of the very bad MMC/SD performance. + * Began port of the Hitachi SH-1 using the SH-1/US7032EVB1 board (this is a work in progress) pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index bf755cff26..4aee251aec 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -16,7 +16,7 @@ </b></big></h1> <p><small>by</small></p> <p>Gregory Nutt</p> - <p><small>Last Update: October 22, 2008</small></p> + <p><small>Last Update: November 5, 2008</small></p> </center> <center><h1>Table of Contents</h1></center> @@ -601,13 +601,6 @@ as described <a href="#configuringnuttx">below</a>. </p> <ul> - <li><code>configs/sim</code>: - A user-mode port of NuttX to the x86 Linux platform is available. - The purpose of this port is primarily to support OS feature developement. - This port does not support interrupts or a real timer (and hence no - round robin scheduler) Otherwise, it is complete. - </li> - <li><code>configs/c5471evm</code>: This is a port to the Spectrum Digital C5471 evaluation board. The C5471 is a dual core processor from TI with an ARM7TDMI general purpose @@ -616,12 +609,22 @@ This port is complete, verified, and included in the NuttX release. </li> + <li><code>configs/ez80f0910200kitg</code> + ez80Acclaim! Microcontroller. This port use the Zilog ez80f0910200kitg + development kit, eZ80F091 part, and the Zilog ZDS-II Windows command line + tools. The development environment is Cygwin under WinXP. + </li> + + <li><code>configs/m68322evb</code>: + This is a work in progress for the venerable m68322evb board from + Motorola. + </li> + <li><code>configs/mcu123-lpc214x</code>: This port is for the NXP LPC2148 as provided on the mcu123.com lpc214x development board. This OS is also built with the arm-elf toolchain* under Linux or Cygwin. - STATUS: This port is in progress and should be available in the - nuttx-0.2.5 release. + The port supports serial, timer0, spi, and usb. </li> <li><code>configs/ntosd-dm320</code>: @@ -633,9 +636,12 @@ NuttX 0.2.1 release. </li> - <li><code>configs/m68322evb</code>: - This is a work in progress for the venerable m68322evb board from - Motorola. + <li><code>configs/olimex-strp711</code>: + This port uses the Olimex STR-P711 board arm-elf toolchain* under Linux or Cygwin. + See the <a href="http://www.olimex.com/dev/str-p711.html">Olimex</a> web site + for futher information. + STATUS: Coding for the basic port -- serial console and system timer -- is complete + but untested to problems I am having using OpenOCD with a wiggler clone JTAG. </li> <li><code>configs/pjrc-8051</code>: @@ -644,7 +650,19 @@ This port is not quite ready for prime time. </li> - <li><code>configs/xtrs</code> + <li><code>configs/sim</code>: + A user-mode port of NuttX to the x86 Linux platform is available. + The purpose of this port is primarily to support OS feature developement. + This port does not support interrupts or a real timer (and hence no + round robin scheduler) Otherwise, it is complete. + </li> + + <li><code>configs/us7032evb1</code>: + This is a port of the Hitachi SH-1 on the Hitachi SH-1/US7032EVB1 board. + STATUS: Work has just began on this port. + </li> + + <li><code>configs/xtrs</code>: TRS80 Model 3. This port uses a vintage computer based on the Z80. An emulator for this computer is available to run TRS80 programs on a linux platform (http://www.tim-mann.org/xtrs.html). @@ -657,10 +675,12 @@ The development environment is Cygwin under WinXP. </li> - <li><code>configs/ez80f0910200kitg</code> - ez80Acclaim! Microcontroller. This port use the Zilog ez80f0910200kitg - development kit, eZ80F091 part, and the Zilog ZDS-II Windows command line - tools. The development environment is Cygwin under WinXP. + <li><code>configs/z80sim</code>: + z80 Microcontroller. This port uses a Z80 instruction set simulator. + That simulator can be found in the NuttX CVS + <a href="http://nuttx.cvs.sourceforge.net/nuttx/misc/sims/z80sim/">here</a>. + This port also the <a href="http://sdcc.sourceforge.net/">SDCC</a> toolchain + under Linux or Cygwin(verfied with version 2.6.0). </li> <li><code>configs/z8encore000zco</code> @@ -674,14 +694,6 @@ development kit, Z8F6423 part, and the Zilog ZDS-II Windows command line tools. The development environment is Cygwin under WinXP. </li> - - <li><code>configs/z80sim</code>: - z80 Microcontroller. This port uses a Z80 instruction set simulator. - That simulator can be found in the NuttX CVS - <a href="http://nuttx.cvs.sourceforge.net/nuttx/misc/sims/z80sim/">here</a>. - This port also the <a href="http://sdcc.sourceforge.net/">SDCC</a> toolchain - under Linux or Cygwin(verfied with version 2.6.0). - </li> </ul> <p><small><blockquote> @@ -1336,13 +1348,16 @@ The system can be re-made subsequently by just typing <code>make</code>. <li><code>CONFIG_RRLOAD_BINARY</code>: Make the rrload binary format used with BSPs from <a href="www.ridgerun.com">ridgerun.com</a> using the <code>tools/mkimage.sh</code> script.</li> - <li><code>CONFIG_INTELHEX_BINARY</code>: + <li><code>CONFIG_INTELHEX_BINARY</code>: Make the Intel HEX binary format used with many different loaders using the GNU objcopy program This option hould not be selected if you are not using the GNU toolchain.</li> - <li><code>CONFIG_RAW_BINARY</code>: + <li><code>CONFIG_MOTOROLA_SREC</code>: + Make the Motorola S-Record binary format used with many different loaders using the GNU objcopy program + Should not be selected if you are not using the GNU toolchain.</li> + <li><code>CONFIG_RAW_BINARY</code>: mmke a raw binary format file used with many different loaders using the GNU objcopy program. This option should not be selected if you are not using the GNU toolchain.</li> - <li><code>CONFIG_HAVE_LIBM</code>: + <li><code>CONFIG_HAVE_LIBM</code>: Toolchain supports libm.a</li> </ul> From 47642a8a41b13c0a1db0821350641113583fe82f Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 6 Nov 2008 17:37:16 +0000 Subject: [PATCH 0317/1518] Basic SH-1 build environment git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1139 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 01d46dba36..d708cc1910 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: November 5, 2008</p> + <p>Last Updated: November 6, 2008</p> </td> </tr> </table> @@ -1124,6 +1124,9 @@ pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; buildroot-0.1.1 2008-xx-xx &lt;spudmonkey@racsa.co.cr&gt; * Support for m68k-elf and m68hc11 toolchain + * Add patch to build older binutils with newer Texinfo version + * Add support for SH-1 toolchain + </pre></ul> <table width ="100%"> From 341bfa4cb6725124d39a9ce91cf90ce75da37d7d Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 6 Nov 2008 22:27:40 +0000 Subject: [PATCH 0318/1518] Update for buildroot 0.1.2 git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1145 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 69 +++++++++++++++++++++++++++++++++------- 1 file changed, 57 insertions(+), 12 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index d708cc1910..c28fcd49e6 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -610,6 +610,10 @@ </p> </td> </tr> +<tr> + <td><br></td> + <td><hr></td> +</tr> <tr> <td><br></td> <td> @@ -627,6 +631,27 @@ </p> </td> </tr> +<tr> + <td><br></td> + <td><hr></td> +</tr> +<tr> + <td><br></td> + <td> + <p> + <b>STMicro STR71x</b>. + Support is provided for the STMicro STR71x family of processors. In particular, + support is provided for the Olimex STR-P711 evaluation board. + This port also used the GNU arm-elf toolchain* under Linux or Cygwin. + </p> + <p> + <b>STATUS:</b> + Coding is complete on the basic port (boot logic, system time, serial console), + but no testing has been performed due to some problems I am having with my + JTAG wiggler and OpenOCD on Linux. + </p> + </td> +</tr> <tr> <td valign="top"><img height="20" width="20" src="favicon.ico"></td> <td bgcolor="#5eaee1"> @@ -675,6 +700,26 @@ </p> </td> </tr> +<tr> + <td valign="top"><img height="20" width="20" src="favicon.ico"></td> + <td bgcolor="#5eaee1"> + <b>Renesas/Hitachi SuperH</b> + </td> +</tr> +<tr> + <td><br></td> + <td> + <p> + <b>SH-1 SH7032</b>. + This port uses the Hitachi SH-1 Low-Cost Evaluation Board (SH1_LCEVB1), US7032EVB, + with a GNU arm-elf toolchain* under Linux or Cygwin. + </p> + <p> + <b>STATUS:</b> + This port is in progress and should be available in the next release of NuttX. + </p> + </td> +</tr> <tr> <td valign="top"><img height="20" width="20" src="favicon.ico"></td> <td bgcolor="#5eaee1"> @@ -786,8 +831,9 @@ </table></center> <blockquote>* A highly modified <a href="http://buildroot.uclibc.org/">buildroot</a> -is available that may be used to build a NuttX-compatible arm-elf toolchain under -Linux or Cygwin.</blockquote> +is available that may be used to build a NuttX-compatible ELF toolchain under +Linux or Cygwin. Configurations are available in that buildroot to support ARM, +m68k, m68hc11, m68hc12, and SuperH ports.</blockquote> <table width ="100%"> <tr bgcolor="#e4e4e4"> @@ -814,8 +860,9 @@ Linux or Cygwin.</blockquote> available for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">NuttX SourceForge</a> page. - This download may be used to build a NuttX-compatible arm-elf toolchain under Linux or Cygwin. - Additional support for m68k, m68hc11, and m68hc12 is available in the + This download may be used to build a NuttX-compatible ELF toolchain under Linux or Cygwin. + That toolchain will support ARM, m68k, m68hc11, m68hc12, and SuperH ports. + The buildroot CVS may be accessed in the <a href="http://nuttx.cvs.sourceforge.net/nuttx/misc/buildroot/">NuttX CVS</a>. </p> </td> @@ -924,7 +971,7 @@ Linux or Cygwin.</blockquote> <tr> <td valign="top"><img height="20" width="20" src="favicon.ico"></td> <td bgcolor="#5eaee1"> - <b>Others Environments?</b> + <b>Other Environments?</b> </td> </tr> <tr> @@ -1097,9 +1144,11 @@ pascal-0.1.2 2008-02-10 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; and eliminate a compiler bug * Changes so that runtime compiles with SDCC. -buildroot-0.1.0 2007-03-09 &lt;spudmonkey@racsa.co.cr&gt +buildroot-0.1.2 2007-11-06 &lt;spudmonkey@racsa.co.cr&gt - * Support for arm-elf toolchain + * Support for m68k-elf and m68hc11 toolchain + * Add patch to build older binutils with newer Texinfo version + * Add support for SH-1 toolchain </pre></ul> <table width ="100%"> @@ -1121,11 +1170,7 @@ nuttx-0.3.18 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; -buildroot-0.1.1 2008-xx-xx &lt;spudmonkey@racsa.co.cr&gt; - - * Support for m68k-elf and m68hc11 toolchain - * Add patch to build older binutils with newer Texinfo version - * Add support for SH-1 toolchain +buildroot-0.1.3 2008-xx-xx &lt;spudmonkey@racsa.co.cr&gt; </pre></ul> From 0211d92473ba408fd925c05e2e5e14304cf56328 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 7 Nov 2008 00:28:42 +0000 Subject: [PATCH 0319/1518] update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1149 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index c28fcd49e6..e5f8cda0f3 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -580,7 +580,7 @@ <td><br></td> <td> <p> - A user-mode port of NuttX to the x86 Linux platform is available. + A user-mode port of NuttX to the x86 Linux/Cygwin platform is available. The purpose of this port is primarily to support OS feature development. </p> <p> @@ -625,9 +625,10 @@ </p> <p> <b>STATUS:</b> - The basic port includes successful booting, timer interrupts, serial console, - USB driver, succesfully passing the OS test, and a NuttShell (NSH) configuration. - Additional driver development is underway. + This port boots and passes the OS test (examples/ostest). + The port is complete and verifed. As of NuttX 0.3.17, the port includes: + timer interrupts, serial console, USB driver, and SPI-based MMC/SD card + support. A verifed NuttShell (NSH) configuration is also available. </p> </td> </tr> @@ -744,7 +745,7 @@ <tr> <td valign="top"><img height="20" width="20" src="favicon.ico"></td> <td bgcolor="#5eaee1"> - <b>Zilog eZ80Acclaim!</b> + <b>Zilog eZ80 Acclaim!</b> </td> </tr> <tr> From 997facae921492ea72e7da2195ff86535650cfbf Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 7 Nov 2008 16:59:36 +0000 Subject: [PATCH 0320/1518] reconcile architectures w/o interrupt controllers git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1153 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 4aee251aec..a471ac72a7 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -1327,6 +1327,12 @@ The system can be re-made subsequently by just typing <code>make</code>. For use in C code</li> <li><code>CONFIG_ENDIAN_BIG</code>: Define if big endian (default is little endian).</li> + <li><code>CONFIG_ARCH_NOINTC</code>: + Define if the architecture does not support an interrupt controller + or otherwise cannot support APIs like up_enable_irq() and up_disable_irq().</li> + <li><code>CONFIG_ARCH_IRQPRIO</code>: + Define if the architecture suports prioritizaton of interrupts and the + up_prioritize_irq() API.</li> </ul> <p> From f8ab33856e6f41edf068d6c9ccb2e45bf41e4576 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 7 Nov 2008 20:56:35 +0000 Subject: [PATCH 0321/1518] update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1165 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index e5f8cda0f3..fbd0d65ef3 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: November 6, 2008</p> + <p>Last Updated: November 7, 2008</p> </td> </tr> </table> @@ -1168,6 +1168,9 @@ nuttx-0.3.18 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Fix race condition workaround delay in LPC214X SPI logic. It the cause of the very bad MMC/SD performance. * Began port of the Hitachi SH-1 using the SH-1/US7032EVB1 board (this is a work in progress) + * Re-built all configurations that use SDCC and Zilog toolchains to make sure they still + build (they didn't, but they do now). + * Fixed several erroneous "list empty" checks in the CAN driver. pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 8723b57f02d32e5221efc326f2082b3502051338 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 11 Nov 2008 23:44:38 +0000 Subject: [PATCH 0322/1518] update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1208 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index fbd0d65ef3..52c139bae2 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: November 7, 2008</p> + <p>Last Updated: November 11, 2008</p> </td> </tr> </table> @@ -1167,10 +1167,11 @@ nuttx-0.3.18 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; communicate with my JTAG wiggler on Linux). * Fix race condition workaround delay in LPC214X SPI logic. It the cause of the very bad MMC/SD performance. - * Began port of the Hitachi SH-1 using the SH-1/US7032EVB1 board (this is a work in progress) + * Began port of the Hitachi SH-1 using the SH-1/US7032EVB1 board * Re-built all configurations that use SDCC and Zilog toolchains to make sure they still build (they didn't, but they do now). * Fixed several erroneous "list empty" checks in the CAN driver. + * Hitachi SH-1 passes (reduced) examples/ostest (examples/nsh still fails) pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 003597c80f04d3c1a71a1985476e2b7291a0654d Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 13 Nov 2008 20:16:42 +0000 Subject: [PATCH 0323/1518] Update SH-1 status git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1225 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 52c139bae2..9c8e006afb 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -717,7 +717,14 @@ </p> <p> <b>STATUS:</b> - This port is in progress and should be available in the next release of NuttX. + This port is availble as of release 0.3.18 of NuttX. The port is basically complete + and many examples run correctly. However, there are remaining instabilities that + make the port un-usable. The nature of these is not understood; the behavior is + that certain SH-1 instructions stop working as advertised. This could be a silicon + problem, some pipeline issue that is not handled properly by the gcc 3.4.5 toolchain + (which has very limit SH-1 support to begin with), or perhaps with the CMON debugger. + At any rate, I have exhausted all of the energy that I am willing to put into this cool + old processor for the time being. </p> </td> </tr> @@ -1165,18 +1172,25 @@ nuttx-0.3.18 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Added port for the STMicro STR71x processor and configuration for the Olimex STR-P711 board (STR71x testing is stalled because I have been unable to get OpenOCD to communicate with my JTAG wiggler on Linux). - * Fix race condition workaround delay in LPC214X SPI logic. It the cause of the very - bad MMC/SD performance. + * Fix race condition workaround delay in LPC214X SPI logic. This was also the cause of the + very bad MMC/SD performance. * Began port of the Hitachi SH-1 using the SH-1/US7032EVB1 board * Re-built all configurations that use SDCC and Zilog toolchains to make sure they still build (they didn't, but they do now). * Fixed several erroneous "list empty" checks in the CAN driver. - * Hitachi SH-1 passes (reduced) examples/ostest (examples/nsh still fails) + * Hitachi SH-1 passes (reduced) examples/ostest; the examples/nsh test still fails. + There are remaining instabilities that make the port un-usable. The nature of these is + not understood; the behavior is that certain SH-1 instructions stop working as advertised. + This could be a silicon problem, some pipeline issue that is not handled properly by the + gcc 3.4.5 toolchain (which has very limit SH-1 support to begin with), or perhaps with the + CMON debugger. At any rate, I have exhausted all of the energy that I am willing to put + into this cool old processor for the time being. pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; buildroot-0.1.3 2008-xx-xx &lt;spudmonkey@racsa.co.cr&gt; + * Add support for H8/300 toolchain </pre></ul> <table width ="100%"> From e82d14a43044d7933bef5970f2bb434bb19dfab1 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 13 Nov 2008 20:37:02 +0000 Subject: [PATCH 0324/1518] Change configuration name git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1226 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index a471ac72a7..dfee322125 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -1761,7 +1761,7 @@ The system can be re-made subsequently by just typing <code>make</code>. <code>CONFIG_STACK_POINTER</code>: The initial stack pointer </li> <li> - <code>CONFIG_PROC_STACK_SIZE</code>: The size of the initial stack + <code>CONFIG_IDLETHREAD_STACKSIZE</code>: The size of the initial stack </li> <li> <code>CONFIG_PTHREAD_STACK_MIN</code>: Minimum pthread stack size From 7c182b90cac37fc443d17270afe86972c61b32f1 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 13 Nov 2008 21:13:53 +0000 Subject: [PATCH 0325/1518] Added CONFIG_USERMAIN_STACKSIZE git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1227 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 6 +++++- Documentation/NuttxPortingGuide.html | 10 +++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 9c8e006afb..84ba8a6ef0 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: November 11, 2008</p> + <p>Last Updated: November 13, 2008</p> </td> </tr> </table> @@ -1185,6 +1185,10 @@ nuttx-0.3.18 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; gcc 3.4.5 toolchain (which has very limit SH-1 support to begin with), or perhaps with the CMON debugger. At any rate, I have exhausted all of the energy that I am willing to put into this cool old processor for the time being. + * Renamed configuration item CONFIG_PROC_STACK_SIZE as CONFIG_IDLETHREAD_STACKSIZE: It now + only controls the size of the stack for the IDLE thread. Added CONFIG_USERMAIN_STACKSIZE: + This is the size of stack used with the user_start() thread is created. The two stacks + no longer have to be the same. pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index dfee322125..03b40d117c 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -1761,7 +1761,15 @@ The system can be re-made subsequently by just typing <code>make</code>. <code>CONFIG_STACK_POINTER</code>: The initial stack pointer </li> <li> - <code>CONFIG_IDLETHREAD_STACKSIZE</code>: The size of the initial stack + <code>CONFIG_IDLETHREAD_STACKSIZE</code>: The size of the initial stack. + This is the thread that (1) performs the inital boot of the system up + to the point where user_start() is spawned, and (2) there after is the + IDLE thread that executes only when there is no other thread ready to + run. + </li> + <li> + <code>CONFIG_USERMAIN_STACKSIZE</code>: The size of the stack to allocate + for the main user thread that begins at the user_start() entry point. </li> <li> <code>CONFIG_PTHREAD_STACK_MIN</code>: Minimum pthread stack size From a2474fcb1b1d4d26892b711ab709ae9709307a11 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 14 Nov 2008 01:42:18 +0000 Subject: [PATCH 0326/1518] Add group links git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1229 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttXBanner.html | 22 ++++++++++++---------- Documentation/freeports.html | 23 +++++++++++++---------- 2 files changed, 25 insertions(+), 20 deletions(-) diff --git a/Documentation/NuttXBanner.html b/Documentation/NuttXBanner.html index 9907d2e93f..5250aa4cf5 100644 --- a/Documentation/NuttXBanner.html +++ b/Documentation/NuttXBanner.html @@ -5,7 +5,7 @@ <body background="backgd.gif"> <table width="100%"> <tr> - <td width="210"> + <td width="210" valign="top"> <a href="http://sourceforge.net/"> <img src="http://sflogo.sourceforge.net/sflogo.php?group_id=235&amp;type=5" width="210" height="62" border="0" alt="SourceForge"/> </a> @@ -13,25 +13,27 @@ <td> <table width="100%"> <tr> - <td bgcolor="#e4e4e4"> + <td bgcolor="#e4e4e4" colspan="2"> <big><b><i><font color="#3c34ec">NuttX RTOS</font></i></b></big> </td> </tr> <tr> - <td> + <td valign="top"> <a href="http://sourceforge.net/projects/nuttx" target="_top">Project</a><br> - </td> - </tr> - <tr> - <td> <a href="http://nuttx.sourceforge.net" target="_top">Home</a> </td> + <td valign="top"> + <a href="http://tech.groups.yahoo.com/group/nuttx-dev" target="_top">Yahoo! Groups</a><br> + <a href="freeports.html">Free Ports</a><br> + </td> </tr> </table> </td> - <td width="210"> - <a href="freeports.html" target="_blank"> - <img src="freeports.gif" width="210" height="62" border="0"/> + <td width="100" valign="top"> + <a href="http://groups.yahoo.com/group/nuttx-dev/join"> + <img src="http://us.i1.yimg.com/us.yimg.com/i/yg/img/i/us/ui/join.gif" + style="border: 0px;" + alt="Click to join nuttx-dev"/> </a> </td> </tr> diff --git a/Documentation/freeports.html b/Documentation/freeports.html index ef58fa474e..07720a4ed7 100644 --- a/Documentation/freeports.html +++ b/Documentation/freeports.html @@ -5,16 +5,19 @@ <body background="backgd.gif"> <center> <table border="1" width="80%" bgcolor="#eeeeee"> -<tr><td> -<big><b><i>Free</i> Ports</b></big>. -If you have a hardware platform that you would like to see NuttX ported to then have I got a deal for you: -I am willing to port NuttX to run on your hardware <b><i>FREE</i></b>. -You would, of course, have to provide all hardware, development tools, and documentation. -The functionality would be limited to basic boot-up, serial console, networking, ... -I would need to retain the hardware throught the support cycle. -Of course, this offer depends the availability of free time to do the port. -If you are interested, contact <a href="http://sourceforge.net/users/patacongo/">patacongo</a> at SourceForge. -</td></tr></table> +<tr> + <td width="210"> + <a href="freeports.html" target="_blank"> + <img src="freeports.gif" width="210" height="62" border="0"/> + </a> + </td> + <td> + If you have a hardware platform that you would like to see NuttX ported to then have I got a deal for you: + I am willing to port NuttX to run on your hardware <b><i>FREE</i></b>. + If you are interested, contact <a href="http://sourceforge.net/users/patacongo/">patacongo</a> at SourceForge. + <a href="NuttXBanner.html">&gt;&gt;back&lt;&lt;</a>. +</td> +</tr></table> </body> </html> From cecab65fe0440f262ef98b041d915d85b5e306fd Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 14 Nov 2008 01:59:40 +0000 Subject: [PATCH 0327/1518] update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1230 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttXBanner.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Documentation/NuttXBanner.html b/Documentation/NuttXBanner.html index 5250aa4cf5..ee9aaeb195 100644 --- a/Documentation/NuttXBanner.html +++ b/Documentation/NuttXBanner.html @@ -23,17 +23,17 @@ <a href="http://nuttx.sourceforge.net" target="_top">Home</a> </td> <td valign="top"> - <a href="http://tech.groups.yahoo.com/group/nuttx-dev" target="_top">Yahoo! Groups</a><br> + <a href="http://tech.groups.yahoo.com/group/nuttx" target="_top">Yahoo! Groups</a><br> <a href="freeports.html">Free Ports</a><br> </td> </tr> </table> </td> <td width="100" valign="top"> - <a href="http://groups.yahoo.com/group/nuttx-dev/join"> + <a href="http://groups.yahoo.com/group/nuttx/join"> <img src="http://us.i1.yimg.com/us.yimg.com/i/yg/img/i/us/ui/join.gif" style="border: 0px;" - alt="Click to join nuttx-dev"/> + alt="Click to join nuttx"/> </a> </td> </tr> From 97d6e036f73f9758cb9b18e8efd43031da55482c Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 14 Nov 2008 03:07:54 +0000 Subject: [PATCH 0328/1518] Add loop device git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1231 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + Documentation/NuttXBanner.html | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 84ba8a6ef0..3f8538cd55 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1189,6 +1189,7 @@ nuttx-0.3.18 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; only controls the size of the stack for the IDLE thread. Added CONFIG_USERMAIN_STACKSIZE: This is the size of stack used with the user_start() thread is created. The two stacks no longer have to be the same. + * Add a loop device that converts a file into a block device. pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; diff --git a/Documentation/NuttXBanner.html b/Documentation/NuttXBanner.html index ee9aaeb195..7b83f46ad5 100644 --- a/Documentation/NuttXBanner.html +++ b/Documentation/NuttXBanner.html @@ -30,7 +30,7 @@ </table> </td> <td width="100" valign="top"> - <a href="http://groups.yahoo.com/group/nuttx/join"> + <a href="http://groups.yahoo.com/group/nuttx/join" target="_top"> <img src="http://us.i1.yimg.com/us.yimg.com/i/yg/img/i/us/ui/join.gif" style="border: 0px;" alt="Click to join nuttx"/> From 19b810e2b5c1f532cd84e4534a33635d5785d9ff Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 14 Nov 2008 15:11:26 +0000 Subject: [PATCH 0329/1518] Allow each NSH command to be disabled git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1234 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttShell.html | 48 ++++++++++++++++++++++++++++ Documentation/NuttX.html | 5 ++- Documentation/NuttxPortingGuide.html | 2 +- 3 files changed, 53 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index f292c26cd4..a46f8fedaf 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -1590,6 +1590,13 @@ nsh> Configuration settings specific to NSH as discussed at the <a href="#nshconfiguration">bottom</a> of this document. </p> +<p> + Note that in addition to general NuttX configuation settings, each NSH command can be + individually disabled via the settings in the rightmost column. + All of these settings make the configuration of NSH potentially complex but also allow it to + squeeze into very small memory footprints. +</p> + <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> @@ -1603,134 +1610,175 @@ nsh> <tr bgcolor="#e4e4e4"> <th align="left" width="25%">Command</th> <th align="left">Depends on Configuration</th> + <th align="left">Can Be Disabled with</th> </tr> <tr> <td><b><code>[</code></b></td> <td>!<code>CONFIG_EXAMPLES_NSH_DISABLESCRIPT</code></td> + <td><code>CONFIG_EXAMPLES_NSH_DISABLE_TEST</code></td> </tr> <tr> <td><b><code>cat</code></b></td> <td><code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0</td> + <td><code>CONFIG_EXAMPLES_NSH_DISABLE_CAT</code></td> </tr> <tr> <td><b><code>cd</code></b></td> <td>!<code>CONFIG_DISABLE_ENVIRON</code> &amp;&amp; <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0</td> + <td><code>CONFIG_EXAMPLES_NSH_DISABLE_CD</code></td> </tr> <tr> <td><b><code>cp</code></b></td> <td><code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0</td> + <td><code>CONFIG_EXAMPLES_NSH_DISABLE_CP</code></td> </tr> <tr> <td><b><code>echo</code></b></td> <td><br></td> + <td><code>CONFIG_EXAMPLES_NSH_DISABLE_ECHO</code></td> </tr> <tr> <td><b><code>exec</code></b></td> <td><br></td> + <td><code>CONFIG_EXAMPLES_NSH_DISABLE_EXEC</code></td> </tr> <tr> <td><b><code>exit</code></b></td> <td><br></td> + <td><code>CONFIG_EXAMPLES_NSH_DISABLE_EXIT</code></td> </tr> <tr> <td><b><code>get</code></b></td> <td><code>CONFIG_NET</code> &amp;&amp; <code>CONFIG_NET_UDP</code> &amp;&amp; <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0 &amp;&amp; <code>CONFIG_NET_BUFSIZE</code> &gt;= 558<sup>1</sup></td> + <td><code>CONFIG_EXAMPLES_NSH_DISABLE_GET</code></td> </tr> <tr> <td><b><code>help</code></b></td> <td><br></td> + <td><code>CONFIG_EXAMPLES_NSH_DISABLE_HELP</code></td> </tr> <tr> <td><b><code>ifconfig</code></b></td> <td><code>CONFIG_NET</code></td> + <td><code>CONFIG_EXAMPLES_NSH_DISABLE_IFCONFIG</code></td> </tr> <tr> <td><b><code>ls</code></b></td> <td><code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0</td> + <td><code>CONFIG_EXAMPLES_NSH_DISABLE_LS</code></td> </tr> <tr> <td><b><code>mb,mh,mw</code></b></td> <td><br></td> + <td> + <code>CONFIG_EXAMPLES_NSH_DISABLE_MB</code>,<br> + <code>CONFIG_EXAMPLES_NSH_DISABLE_MH</code>,<br> + <code>CONFIG_EXAMPLES_NSH_DISABLE_MW</code> + </td> </tr> <tr> <td><b><code>mem</code></b></td> <td><br></td> + <td><code>CONFIG_EXAMPLES_NSH_DISABLE_MEM</code></td> </tr> <tr> <td><b><code>mkdir</code></b></td> <td>!<code>CONFIG_DISABLE_MOUNTPOINT</code> &amp;&amp; <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0 &amp;&amp; <code>CONFIG_FS_WRITABLE</code><sup>4</sup></td> + <td><code>CONFIG_EXAMPLES_NSH_DISABLE_MKDIR</code></td> </tr> <tr> <td><b><code>mkfatfs</code></b></td> <td>!<code>CONFIG_DISABLE_MOUNTPOINT</code> &amp;&amp; <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0 &amp;&amp; <code>CONFIG_FS_FAT</code></td> + <td><code>CONFIG_EXAMPLES_NSH_DISABLE_MKFATFS</code></td> </tr> <tr> <td><b><code>mkfifo</code></b></td> <td><code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0</td> + <td><code>CONFIG_EXAMPLES_NSH_DISABLE_MKFIFO</code></td> </tr> <tr> <td><b><code>mkrd</code></b></td> <td>!<code>CONFIG_DISABLE_MOUNTPOINT</code> &amp;&amp; <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0 &amp;&amp; <code>CONFIG_FS_WRITABLE</code><sup>4</sup></td> + <td><code>CONFIG_EXAMPLES_NSH_DISABLE_MKRD</code></td> </tr> <tr> <td><b><code>mount</code></b></td> <td>!<code>CONFIG_DISABLE_MOUNTPOINT</code> &amp;&amp; <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0 &amp;&amp; <code>CONFIG_FS_READABLE</code><sup>3</sup></td> + <td><code>CONFIG_EXAMPLES_NSH_DISABLE_MOUNT</code></td> </tr> <tr> <td><b><code>ping</code></b></td> <td><code>CONFIG_NET</code> &amp;&amp; <code>CONFIG_NET_ICMP</code> &amp;&amp; <code>CONFIG_NET_ICMP_PING</code> &amp;&amp; !<code>CONFIG_DISABLE_CLOCK</code> &amp;&amp; !<code>CONFIG_DISABLE_SIGNALS</code></td> + <td><code>CONFIG_EXAMPLES_NSH_DISABLE_PING</code></td> </tr> <tr> <td><b><code>ps</code></b></td> <td><br></td> + <td><code>CONFIG_EXAMPLES_NSH_DISABLE_PS</code></td> </tr> <tr> <td><b><code>put</code></b></td> <td><code>CONFIG_NET</code> &amp;&amp; <code>CONFIG_NET_UDP</code> &amp;&amp; <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0 &amp;&amp; <code>CONFIG_NET_BUFSIZE</code> &gt;= 558<sup>1,2</sup></td> + <td><code>CONFIG_EXAMPLES_NSH_DISABLE_PUT</code></td> </tr> <tr> <td><b><code>pwd</code></b></td> <td>!<code>CONFIG_DISABLE_ENVIRON</code> &amp;&amp; <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0</td> + <td><code>CONFIG_EXAMPLES_NSH_DISABLE_PWD</code></td> </tr> <tr> <td><b><code>rm</code></b></td> <td>!<code>CONFIG_DISABLE_MOUNTPOINT</code> &amp;&amp; <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0 &amp;&amp; <code>CONFIG_FS_WRITABLE</code><sup>4</sup></td> + <td><code>CONFIG_EXAMPLES_NSH_DISABLE_RM</code></td> </tr> <tr> <td><b><code>rmdir</code></b></td> <td>!<code>CONFIG_DISABLE_MOUNTPOINT</code> &amp;&amp; <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0 &amp;&amp; <code>CONFIG_FS_WRITABLE</code><sup>4</sup></td> + <td><code>CONFIG_EXAMPLES_NSH_DISABLE_RMDIR</code></td> </tr> <tr> <td><b><code>set</code></b></td> <td>!<code>CONFIG_DISABLE_ENVIRON</code></td> + <td><code>CONFIG_EXAMPLES_NSH_DISABLE_SET</code></td> </tr> <tr> <td><b><code>sh</code></b></td> <td><code>CONFIG_NFILE_DESCRIPTORS &gt; 0 &amp;&amp; <code>CONFIG_NFILE_STREAMS &gt; 0 &amp;&amp; !<code>CONFIG_EXAMPLES_NSH_DISABLESCRIPT</code></td> + <td><code>CONFIG_EXAMPLES_NSH_DISABLE_SH</code></td> </tr> <tr> <td><b><code>sleep</code></b></td> <td>!<code>CONFIG_DISABLE_SIGNALS</code></td> + <td><code>CONFIG_EXAMPLES_NSH_DISABLE_SLEEP</code></td> </tr> <tr> <td><b><code>test</code></b></td> <td>!<code>CONFIG_EXAMPLES_NSH_DISABLESCRIPT</code></td> + <td><code>CONFIG_EXAMPLES_NSH_DISABLE_TEST</code></td> </tr> <tr> <td><b><code>umount</code></b></td> <td>!<code>CONFIG_DISABLE_MOUNTPOINT</code> &amp;&amp; <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0 &amp;&amp; <code>CONFIG_FS_READABLE</code><sup>3</sup></td> + <td><code>CONFIG_EXAMPLES_NSH_DISABLE_UMOUNT</code></td> </tr> <tr> <td><b><code>unset</code></b></td> <td>!<code>CONFIG_DISABLE_ENVIRON</code></td> + <td><code>CONFIG_EXAMPLES_NSH_DISABLE_UNSET</code></td> </tr> <tr> <td><b><code>usleep</code></b></td> <td>!<code>CONFIG_DISABLE_SIGNALS</code></td> + <td><code>CONFIG_EXAMPLES_NSH_DISABLE_USLEEP</code></td> + </tr> + <tr> + <td><b><code>xd</code></b></td> + <td><br></td> + <td><code>CONFIG_EXAMPLES_NSH_DISABLE_XD</code></td> </tr> </table></center> diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 3f8538cd55..b328898242 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: November 13, 2008</p> + <p>Last Updated: November 15, 2008</p> </td> </tr> </table> @@ -1190,6 +1190,9 @@ nuttx-0.3.18 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; This is the size of stack used with the user_start() thread is created. The two stacks no longer have to be the same. * Add a loop device that converts a file into a block device. + * Each NSH command can not be disabled through a configuration setting. All of these + settings make the configuration of NSH potentially complex but also allow it to squeeze + into very small memory footprints. pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 03b40d117c..f32138fcdc 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -16,7 +16,7 @@ </b></big></h1> <p><small>by</small></p> <p>Gregory Nutt</p> - <p><small>Last Update: November 5, 2008</small></p> + <p><small>Last Update: November 14, 2008</small></p> </center> <center><h1>Table of Contents</h1></center> From 8c0d92b38ccbceab05c3c9203d7ebb815114e493 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 15 Nov 2008 00:18:23 +0000 Subject: [PATCH 0330/1518] Add Block-to-character device driver git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1237 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index b328898242..9204f3454c 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1193,6 +1193,8 @@ nuttx-0.3.18 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Each NSH command can not be disabled through a configuration setting. All of these settings make the configuration of NSH potentially complex but also allow it to squeeze into very small memory footprints. + * Added a block to character (BCH) driver. This is kind of the reverse of the loop + device; it allows you access a block device like a character device. pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 4e41c9fed1f25f98311d9a2a8dd6e8fe8e330a1d Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 15 Nov 2008 15:36:16 +0000 Subject: [PATCH 0331/1518] Add dd command to NSH git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1241 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttShell.html | 149 +++++++++++++++++++++-------------- Documentation/NuttX.html | 1 + 2 files changed, 93 insertions(+), 57 deletions(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index a46f8fedaf..a2a4a7c5b3 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttShell (NSH)</i></font></big></h1> - <p>Last Updated: October 15, 2008</p> + <p>Last Updated: November 15, 2008</p> </td> </tr> </table> @@ -107,163 +107,169 @@ <tr> <td><br></td> <td> - <a href="#cmdecho">2.5 Echo Strings and Variables (echo)</a> + <a href="#cmddd">2.5 Copy and Convert Files (dd)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdexec">2.6 Execute User Code (exec)</a> + <a href="#cmdecho">2.6 Echo Strings and Variables (echo)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdget">2.7 Get File Via TFTP (get)</a> + <a href="#cmdexec">2.7 Execute User Code (exec)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdexit">2.8 Exit NSH (exit)</a> + <a href="#cmdget">2.8 Get File Via TFTP (get)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdhelp">2.9 Show Usage Command Usage (help)</a> + <a href="#cmdexit">2.9 Exit NSH (exit)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdifconfig">2.10 Show Network Configuration (ifconfig)</a> + <a href="#cmdhelp">2.10 Show Usage Command Usage (help)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdls">2.11 List Directory Contents (ls)</a> + <a href="#cmdifconfig">2.11 Show Network Configuration (ifconfig)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdmbhw">2.12 Access Memory (mb, mh, and mw)</a> + <a href="#cmdls">2.12 List Directory Contents (ls)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdmem">2.13 Show Memory Manager Status (mem)</a> + <a href="#cmdmbhw">2.13 Access Memory (mb, mh, and mw)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdps">2.14 Show Current Tasks and Threads (ps)</a> + <a href="#cmdmem">2.14 Show Memory Manager Status (mem)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdmkdir">2.15 Create a Directory (mkdir)</a> + <a href="#cmdps">2.15 Show Current Tasks and Threads (ps)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdmkfatfs">2.16 Create a FAT Filesystem (mkfatfs)</a> + <a href="#cmdmkdir">2.16 Create a Directory (mkdir)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdmkfifo">2.17 Create a FIFO (mkfifo)</a> + <a href="#cmdmkfatfs">2.17 Create a FAT Filesystem (mkfatfs)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdmkrd">2.18 Create a RAMDISK (mkrd)</a> + <a href="#cmdmkfifo">2.18 Create a FIFO (mkfifo)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdmount">2.19 Mount a File System (mount)</a> + <a href="#cmdmkrd">2.19 Create a RAMDISK (mkrd)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdping">2.20 Check Network Peer (ping)</a> + <a href="#cmdmount">2.20 Mount a File System (mount)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdput">2.21 Send File Via TFTP (put)</a> + <a href="#cmdping">2.21 Check Network Peer (ping)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdpwd">2.22 Show Current Working Directory (pwd)</a> + <a href="#cmdput">2.22 Send File Via TFTP (put)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdrm">2.23 Remove a File (rm)</a> + <a href="#cmdpwd">2.23 Show Current Working Directory (pwd)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdrmdir">2.24 Remove a Directory (rmdir)</a> + <a href="#cmdrm">2.24 Remove a File (rm)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdset">2.25 Set an Environment Variable (set)</a> + <a href="#cmdrmdir">2.25 Remove a Directory (rmdir)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdsh">2.26 Execute an NSH Script (sh)</a> + <a href="#cmdset">2.26 Set an Environment Variable (set)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdsleep">2.27 Wait for Seconds (sleep)</a> + <a href="#cmdsh">2.27 Execute an NSH Script (sh)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdunmount">2.28 Unmount a File System (umount)</a> + <a href="#cmdsleep">2.28 Wait for Seconds (sleep)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdunset">2.29 Unset an Environment Variable (unset)</a> + <a href="#cmdunmount">2.29 Unmount a File System (umount)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdusleep">2.30 Wait for Microseconds (usleep)</a> + <a href="#cmdunset">2.30 Unset an Environment Variable (unset)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdxd">2.31 Hexadecimal Dump (xd)</a> + <a href="#cmdusleep">2.31 Wait for Microseconds (usleep)</a> + </td> +</tr> +<tr> + <td><br></td> + <td> + <a href="#cmdxd">2.32 Hexadecimal Dump (xd)</a> </td> </tr> <tr> @@ -730,14 +736,37 @@ cp &lt;source-path&gt; &lt;dest-path&gt; </pre></ul> <p> <b>Synopsis</b>. - Copy of the contents of the file at <code>&lt;source-path&lt;</code> to the location - in the filesystem indicated by <code>&lt;path-path&gt;</code>. + Copy of the contents of the file at <code>&lt;source-path&gt;</code> to the location + in the filesystem indicated by <code>&lt;dest-path&gt;</code>. </p> <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdecho"><h2>2.5 Echo Strings and Variables (echo)</h2></a> + <a name="cmddd"><h2>2.5 Copy and Convert Files (dd)</h2></a> + </td> + </tr> +</table> + +<a <p><b>Command Syntax:</b></p> +<ul><pre> +dd if=&lt;infile&gt; of=&lt;outfile&gt; [bs=&lt;sectsize&gt;] [count=&lt;sectors&gt;] [skip=&lt;sectors&gt;] +</pre></ul> +<p> + <b>Synopsis</b>. + Copy blocks from &lt;infile&gt; to &lt;outfile&gt;. As an example: +<ul><pre> +nsh&gt; dd if=/dev/zero of=/tmp/zeros bs=64 count=16 +nsh&gt; ls -l /tmp +/tmp: + -rw-rw-rw- 1024 ZEROS +</pre></ul> +</p> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="cmdecho"><h2>2.6 Echo Strings and Variables (echo)</h2></a> </td> </tr> </table> @@ -755,7 +784,7 @@ echo [&lt;string|$name&gt; [&lt;string|$name&gt;...]] <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdexec"><h2>2.6 Execute User Code (exec)</h2></a> + <a name="cmdexec"><h2>2.7 Execute User Code (exec)</h2></a> </td> </tr> </table> @@ -774,7 +803,7 @@ exec &lt;hex-address&gt; <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdget"><h2>2.7 Get File Via TFTP (get)</h2></a> + <a name="cmdget"><h2>2.8 Get File Via TFTP (get)</h2></a> </td> </tr> </table> @@ -809,7 +838,7 @@ get [-b|-n] [-f &lt;local-path&gt;] -h &lt;ip-address&gt; &lt;remote-path&gt; <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdexit"><h2>2.8 Exit NSH (exit)</h2></a> + <a name="cmdexit"><h2>2.9 Exit NSH (exit)</h2></a> </td> </tr> </table> @@ -828,7 +857,7 @@ exit <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdhelp"><h2>2.9 Show Usage Command Usage (help)</h2></a> + <a name="cmdhelp"><h2>2.10 Show Usage Command Usage (help)</h2></a> </td> </tr> </table> @@ -845,7 +874,7 @@ help <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdifconfig"><h2>2.10 Show Network Configuration (ifconfig)</h2></a> + <a name="cmdifconfig"><h2>2.11 Show Network Configuration (ifconfig)</h2></a> </td> </tr> </table> @@ -871,7 +900,7 @@ eth0 HWaddr 00:18:11:80:10:06 <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdls"><h2>2.11 List Directory Contents (ls)</h2></a> + <a name="cmdls"><h2>2.12 List Directory Contents (ls)</h2></a> </td> </tr> </table> @@ -908,7 +937,7 @@ ls [-lRs] &lt;dir-path&gt; <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdmbhw"><h2>2.12 Access Memory (mb, mh, and mw)</h2></a> + <a name="cmdmbhw"><h2>2.13 Access Memory (mb, mh, and mw)</h2></a> </td> </tr> </table> @@ -962,7 +991,7 @@ nsh&gt; <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdmem"><h2>2.13 Show Memory Manager Status (mem)</h2></a> + <a name="cmdmem"><h2>2.14 Show Memory Manager Status (mem)</h2></a> </td> </tr> </table> @@ -1011,7 +1040,7 @@ nsh&gt; <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdps"><h2>2.14 Show Current Tasks and Threads (ps)</h2></a> + <a name="cmdps"><h2>2.15 Show Current Tasks and Threads (ps)</h2></a> </td> </tr> </table> @@ -1037,7 +1066,7 @@ nsh&gt; <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdmkdir"><h2>2.15 Create a Directory (mkdir)</h2></a> + <a name="cmdmkdir"><h2>2.16 Create a Directory (mkdir)</h2></a> </td> </tr> </table> @@ -1072,7 +1101,7 @@ nsh> <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdmkfatfs"><h2>2.16 Create a FAT Filesystem (mkfatfs)</h2></a> + <a name="cmdmkfatfs"><h2>2.17 Create a FAT Filesystem (mkfatfs)</h2></a> </td> </tr> </table> @@ -1092,7 +1121,7 @@ mkfatfs &lt;path&gt; <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdmkfifo"><h2>2.17 Create a FIFO (mkfifo)</h2></a> + <a name="cmdmkfifo"><h2>2.18 Create a FIFO (mkfifo)</h2></a> </td> </tr> </table> @@ -1130,7 +1159,7 @@ nsh> <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdmkrd"><h2>2.18 Create a RAMDISK (mkrd)</h2></a> + <a name="cmdmkrd"><h2>2.19 Create a RAMDISK (mkrd)</h2></a> </td> </tr> </table> @@ -1181,7 +1210,7 @@ nsh&gt; <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdmount"><h2>2.19 Mount a File System (mount)</h2></a> + <a name="cmdmount"><h2>2.20 Mount a File System (mount)</h2></a> </td> </tr> </table> @@ -1248,7 +1277,7 @@ nsh> <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdping"><h2>2.20 Check Network Peer (ping)</h2></a> + <a name="cmdping"><h2>2.21 Check Network Peer (ping)</h2></a> </td> </tr> </table> @@ -1281,7 +1310,7 @@ nsh&gt; <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdput"><h2>2.21 Send File Via TFTP (put)</h2></a> + <a name="cmdput"><h2>2.22 Send File Via TFTP (put)</h2></a> </td> </tr> </table> @@ -1316,7 +1345,7 @@ put [-b|-n] [-f &lt;remote-path&gt;] -h &lt;ip-address&gt; &lt;local-path&gt; <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdpwd"><h2>2.22 Show Current Working Directory (pwd)</h2></a> + <a name="cmdpwd"><h2>2.23 Show Current Working Directory (pwd)</h2></a> </td> </tr> </table> @@ -1346,7 +1375,7 @@ nsh&gt; <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdrm"><h2>2.23 Remove a File (rm)</h2></a> + <a name="cmdrm"><h2>2.24 Remove a File (rm)</h2></a> </td> </tr> </table> @@ -1380,7 +1409,7 @@ nsh> <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdrmdir"><h2>2.24 Remove a Directory (rmdir)</h2></a> + <a name="cmdrmdir"><h2>2.25 Remove a Directory (rmdir)</h2></a> </td> </tr> </table> @@ -1415,7 +1444,7 @@ nsh> <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdset"><h2>2.25 Set an Environment Variable (set)</h2></a> + <a name="cmdset"><h2>2.26 Set an Environment Variable (set)</h2></a> </td> </tr> </table> @@ -1441,7 +1470,7 @@ nsh&gt; <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdsh"><h2>2.26 Execute an NSH Script (sh)</h2></a> + <a name="cmdsh"><h2>2.27 Execute an NSH Script (sh)</h2></a> </td> </tr> </table> @@ -1459,7 +1488,7 @@ sh &lt;script-path&gt; <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdsleep"><h2>2.27 Wait for Seconds (sleep)</h2></a> + <a name="cmdsleep"><h2>2.28 Wait for Seconds (sleep)</h2></a> </td> </tr> </table> @@ -1476,7 +1505,7 @@ sleep &lt;sec&gt; <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdunmount"><h2>2.28 Unmount a File System (umount)</h2></a> + <a name="cmdunmount"><h2>2.29 Unmount a File System (umount)</h2></a> </td> </tr> </table> @@ -1506,7 +1535,7 @@ nsh> <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdunset"><h2>2.29 Unset an Environment Variable (unset)</h2></a> + <a name="cmdunset"><h2>2.30 Unset an Environment Variable (unset)</h2></a> </td> </tr> </table> @@ -1532,7 +1561,7 @@ nsh&gt; <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdusleep"><h2>2.30 Wait for Microseconds (usleep)</h2></a> + <a name="cmdusleep"><h2>2.31 Wait for Microseconds (usleep)</h2></a> </td> </tr> </table> @@ -1549,7 +1578,7 @@ usleep &lt;usec&gt; <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdxd"><h2>2.31 Hexadecimal dump (xd)</h2></a> + <a name="cmdxd"><h2>2.32 Hexadecimal dump (xd)</h2></a> </td> </tr> </table> @@ -1632,6 +1661,11 @@ nsh> <td><code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0</td> <td><code>CONFIG_EXAMPLES_NSH_DISABLE_CP</code></td> </tr> + <tr> + <td><b><code>dd</code></b></td> + <td><code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0</td> + <td><code>CONFIG_EXAMPLES_NSH_DISABLE_DD</code></td> + </tr> <tr> <td><b><code>echo</code></b></td> <td><br></td> @@ -2076,6 +2110,7 @@ nsh> <li><a href="#nshconfiguration">Configuration settings, NSH-specific</a></li> <li><a href="#cmdcp"><code>cp</code></a></li> <li><a href="#currentwd">Current working directory</a></li> + <li><a href="#cmddd"><code>dd</code></a></li> <li><a href="#cmdecho"><code>echo</code></a></li> <li><a href="#environvars">Environment Variables</a></li> <li><a href="#startupscript"><code>/etc/init.d/rcS</code></a> diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 9204f3454c..a26f2e55e8 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1195,6 +1195,7 @@ nuttx-0.3.18 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; into very small memory footprints. * Added a block to character (BCH) driver. This is kind of the reverse of the loop device; it allows you access a block device like a character device. + * NSH: Added 'dd' command pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 5c2fbf08a500d5e1aa3e0562eecec35865bba8b5 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 15 Nov 2008 16:36:32 +0000 Subject: [PATCH 0332/1518] NSH dd command test with block devices git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1242 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttShell.html | 40 ++++++++++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index a2a4a7c5b3..9418056eb9 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -754,14 +754,50 @@ dd if=&lt;infile&gt; of=&lt;outfile&gt; [bs=&lt;sectsize&gt;] [count=&lt;sectors </pre></ul> <p> <b>Synopsis</b>. - Copy blocks from &lt;infile&gt; to &lt;outfile&gt;. As an example: + Copy blocks from &lt;infile&gt; to &lt;outfile&gt;. + &lt;infile&gt; or &lt;outfile&gt; may be the path to a standard file, a character device, or a block device. + Examples follow: +</p> +<ol> + <li> + Read from character device, write to regular file. + This will create a new file of the specified size filled with zero. <ul><pre> +nsh&gt; ls -l /dev +/dev: + crw-rw-rw- 0 zero nsh&gt; dd if=/dev/zero of=/tmp/zeros bs=64 count=16 nsh&gt; ls -l /tmp /tmp: -rw-rw-rw- 1024 ZEROS </pre></ul> -</p> + </li> + <li> + Read from character device, write to block device. + This will fill the entire block device with zeros. + </li> +<ul><pre> +nsh&gt; ls -l /dev +/dev: + brw-rw-rw- 0 ram0 + crw-rw-rw- 0 zero +nsh&gt; dd if=/dev/zero of=/dev/ram0 +</pre></ul> + </li> + <li> + Read from a block devic, write to a character device. This + will read the entire block device and dump the contents in + the bit bucket. + </li> +<ul><pre> +nsh&gt; ls -l /dev +/dev: + crw-rw-rw- 0 null + brw-rw-rw- 0 ram0 +nsh&gt; dd if=/dev/ram0 of=/dev/null +</pre></ul> + </li> +</ol> <table width ="100%"> <tr bgcolor="#e4e4e4"> From cb42609f95b27995bc9af0a6f93d8edfaf08c395 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 15 Nov 2008 17:42:49 +0000 Subject: [PATCH 0333/1518] Add losetup to NSH git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1243 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttShell.html | 124 +++++++++++++++++++++++------------ Documentation/NuttX.html | 3 +- 2 files changed, 83 insertions(+), 44 deletions(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index 9418056eb9..c873c79b95 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -1,6 +1,6 @@ <html> <head> -<title>NuttX</title> +<title>NuttShell</title> </head> <body background="backgd.gif"> <hr><hr> @@ -149,127 +149,133 @@ <tr> <td><br></td> <td> - <a href="#cmdls">2.12 List Directory Contents (ls)</a> + <a href="#cmdlosetup">2.12 Setup/teardown the Loop Device (losetup)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdmbhw">2.13 Access Memory (mb, mh, and mw)</a> + <a href="#cmdls">2.13 List Directory Contents (ls)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdmem">2.14 Show Memory Manager Status (mem)</a> + <a href="#cmdmbhw">2.14 Access Memory (mb, mh, and mw)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdps">2.15 Show Current Tasks and Threads (ps)</a> + <a href="#cmdmem">2.15 Show Memory Manager Status (mem)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdmkdir">2.16 Create a Directory (mkdir)</a> + <a href="#cmdps">2.16 Show Current Tasks and Threads (ps)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdmkfatfs">2.17 Create a FAT Filesystem (mkfatfs)</a> + <a href="#cmdmkdir">2.17 Create a Directory (mkdir)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdmkfifo">2.18 Create a FIFO (mkfifo)</a> + <a href="#cmdmkfatfs">2.18 Create a FAT Filesystem (mkfatfs)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdmkrd">2.19 Create a RAMDISK (mkrd)</a> + <a href="#cmdmkfifo">2.19 Create a FIFO (mkfifo)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdmount">2.20 Mount a File System (mount)</a> + <a href="#cmdmkrd">2.20 Create a RAMDISK (mkrd)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdping">2.21 Check Network Peer (ping)</a> + <a href="#cmdmount">2.21 Mount a File System (mount)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdput">2.22 Send File Via TFTP (put)</a> + <a href="#cmdping">2.22 Check Network Peer (ping)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdpwd">2.23 Show Current Working Directory (pwd)</a> + <a href="#cmdput">2.23 Send File Via TFTP (put)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdrm">2.24 Remove a File (rm)</a> + <a href="#cmdpwd">2.24 Show Current Working Directory (pwd)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdrmdir">2.25 Remove a Directory (rmdir)</a> + <a href="#cmdrm">2.25 Remove a File (rm)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdset">2.26 Set an Environment Variable (set)</a> + <a href="#cmdrmdir">2.26 Remove a Directory (rmdir)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdsh">2.27 Execute an NSH Script (sh)</a> + <a href="#cmdset">2.27 Set an Environment Variable (set)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdsleep">2.28 Wait for Seconds (sleep)</a> + <a href="#cmdsh">2.28 Execute an NSH Script (sh)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdunmount">2.29 Unmount a File System (umount)</a> + <a href="#cmdsleep">2.29 Wait for Seconds (sleep)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdunset">2.30 Unset an Environment Variable (unset)</a> + <a href="#cmdunmount">2.30 Unmount a File System (umount)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdusleep">2.31 Wait for Microseconds (usleep)</a> + <a href="#cmdunset">2.31 Unset an Environment Variable (unset)</a> </td> </tr> <tr> <td><br></td> <td> - <a href="#cmdxd">2.32 Hexadecimal Dump (xd)</a> + <a href="#cmdusleep">2.32 Wait for Microseconds (usleep)</a> + </td> +</tr> +<tr> + <td><br></td> + <td> + <a href="#cmdxd">2.33 Hexadecimal Dump (xd)</a> </td> </tr> <tr> @@ -936,7 +942,33 @@ eth0 HWaddr 00:18:11:80:10:06 <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdls"><h2>2.12 List Directory Contents (ls)</h2></a> + <a name="cmdlosetup"><h2>2.12 Setup/teardown the Loop Device (losetup)</h2></a> + </td> + </tr> +</table> + +<a <p><b>Command Syntax 1:</b></p> +<ul><pre> +losetup [-o <offset>] [-r] &lt;dev-path&gt; &lt;file-path&gt; +</pre></ul> +<p> + <b>Synopsis</b>. + Setup the loop device at &lt;dev-path&gt; to access the file at &lt;file-path&gt; as a block device: +</p> + +<a <p><b>Command Syntax 2:</b></p> +<ul><pre> +losetup d &lt;dev-path&gt; +</pre></ul> +<p> + <b>Synopsis</b>. + Teardown the setup for the loop device at &lt;dev-path&gt;. +</p> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="cmdls"><h2>2.13 List Directory Contents (ls)</h2></a> </td> </tr> </table> @@ -973,7 +1005,7 @@ ls [-lRs] &lt;dir-path&gt; <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdmbhw"><h2>2.13 Access Memory (mb, mh, and mw)</h2></a> + <a name="cmdmbhw"><h2>2.14 Access Memory (mb, mh, and mw)</h2></a> </td> </tr> </table> @@ -1027,7 +1059,7 @@ nsh&gt; <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdmem"><h2>2.14 Show Memory Manager Status (mem)</h2></a> + <a name="cmdmem"><h2>2.15 Show Memory Manager Status (mem)</h2></a> </td> </tr> </table> @@ -1076,7 +1108,7 @@ nsh&gt; <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdps"><h2>2.15 Show Current Tasks and Threads (ps)</h2></a> + <a name="cmdps"><h2>2.16 Show Current Tasks and Threads (ps)</h2></a> </td> </tr> </table> @@ -1102,7 +1134,7 @@ nsh&gt; <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdmkdir"><h2>2.16 Create a Directory (mkdir)</h2></a> + <a name="cmdmkdir"><h2>2.17 Create a Directory (mkdir)</h2></a> </td> </tr> </table> @@ -1137,7 +1169,7 @@ nsh> <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdmkfatfs"><h2>2.17 Create a FAT Filesystem (mkfatfs)</h2></a> + <a name="cmdmkfatfs"><h2>2.18 Create a FAT Filesystem (mkfatfs)</h2></a> </td> </tr> </table> @@ -1157,7 +1189,7 @@ mkfatfs &lt;path&gt; <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdmkfifo"><h2>2.18 Create a FIFO (mkfifo)</h2></a> + <a name="cmdmkfifo"><h2>2.19 Create a FIFO (mkfifo)</h2></a> </td> </tr> </table> @@ -1195,7 +1227,7 @@ nsh> <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdmkrd"><h2>2.19 Create a RAMDISK (mkrd)</h2></a> + <a name="cmdmkrd"><h2>2.20 Create a RAMDISK (mkrd)</h2></a> </td> </tr> </table> @@ -1246,7 +1278,7 @@ nsh&gt; <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdmount"><h2>2.20 Mount a File System (mount)</h2></a> + <a name="cmdmount"><h2>2.21 Mount a File System (mount)</h2></a> </td> </tr> </table> @@ -1313,7 +1345,7 @@ nsh> <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdping"><h2>2.21 Check Network Peer (ping)</h2></a> + <a name="cmdping"><h2>2.22 Check Network Peer (ping)</h2></a> </td> </tr> </table> @@ -1346,7 +1378,7 @@ nsh&gt; <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdput"><h2>2.22 Send File Via TFTP (put)</h2></a> + <a name="cmdput"><h2>2.23 Send File Via TFTP (put)</h2></a> </td> </tr> </table> @@ -1381,7 +1413,7 @@ put [-b|-n] [-f &lt;remote-path&gt;] -h &lt;ip-address&gt; &lt;local-path&gt; <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdpwd"><h2>2.23 Show Current Working Directory (pwd)</h2></a> + <a name="cmdpwd"><h2>2.24 Show Current Working Directory (pwd)</h2></a> </td> </tr> </table> @@ -1411,7 +1443,7 @@ nsh&gt; <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdrm"><h2>2.24 Remove a File (rm)</h2></a> + <a name="cmdrm"><h2>2.25 Remove a File (rm)</h2></a> </td> </tr> </table> @@ -1445,7 +1477,7 @@ nsh> <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdrmdir"><h2>2.25 Remove a Directory (rmdir)</h2></a> + <a name="cmdrmdir"><h2>2.26 Remove a Directory (rmdir)</h2></a> </td> </tr> </table> @@ -1480,7 +1512,7 @@ nsh> <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdset"><h2>2.26 Set an Environment Variable (set)</h2></a> + <a name="cmdset"><h2>2.27 Set an Environment Variable (set)</h2></a> </td> </tr> </table> @@ -1506,7 +1538,7 @@ nsh&gt; <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdsh"><h2>2.27 Execute an NSH Script (sh)</h2></a> + <a name="cmdsh"><h2>2.28 Execute an NSH Script (sh)</h2></a> </td> </tr> </table> @@ -1524,7 +1556,7 @@ sh &lt;script-path&gt; <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdsleep"><h2>2.28 Wait for Seconds (sleep)</h2></a> + <a name="cmdsleep"><h2>2.29 Wait for Seconds (sleep)</h2></a> </td> </tr> </table> @@ -1541,7 +1573,7 @@ sleep &lt;sec&gt; <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdunmount"><h2>2.29 Unmount a File System (umount)</h2></a> + <a name="cmdunmount"><h2>2.30 Unmount a File System (umount)</h2></a> </td> </tr> </table> @@ -1571,7 +1603,7 @@ nsh> <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdunset"><h2>2.30 Unset an Environment Variable (unset)</h2></a> + <a name="cmdunset"><h2>2.31 Unset an Environment Variable (unset)</h2></a> </td> </tr> </table> @@ -1597,7 +1629,7 @@ nsh&gt; <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdusleep"><h2>2.31 Wait for Microseconds (usleep)</h2></a> + <a name="cmdusleep"><h2>2.32 Wait for Microseconds (usleep)</h2></a> </td> </tr> </table> @@ -1614,7 +1646,7 @@ usleep &lt;usec&gt; <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdxd"><h2>2.32 Hexadecimal dump (xd)</h2></a> + <a name="cmdxd"><h2>2.33 Hexadecimal dump (xd)</h2></a> </td> </tr> </table> @@ -1733,6 +1765,11 @@ nsh> <td><code>CONFIG_NET</code></td> <td><code>CONFIG_EXAMPLES_NSH_DISABLE_IFCONFIG</code></td> </tr> + <tr> + <td><b><code>losetup</code></b></td> + <td>!<code>CONFIG_DISABLE_MOUNTPOINT</code> &amp;&amp; <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0</td> + <td><code>CONFIG_EXAMPLES_NSH_DISABLE_LOSETUP</code></td> + </tr> <tr> <td><b><code>ls</code></b></td> <td><code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0</td> @@ -2159,6 +2196,7 @@ nsh> <li><a href="#cmdhelp"><code>help</code></a></li> <li><a href="#conditional"><code>if-then[-else]-fi</code></a></li> <li><a href="#cmdifconfig"><code>ifconfig</code></a></li> + <li><a href="#cmdlosetup"><code>losetup</code></a></li> <li><a href="#cmdls">ls</code></a></li> <li><a href="#cmdmbhw"><code>mb</code></a></li> <li><a href="#cmdmbhw"><code>mh</code></a></li> diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index a26f2e55e8..6bb9c58c3d 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1195,7 +1195,8 @@ nuttx-0.3.18 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; into very small memory footprints. * Added a block to character (BCH) driver. This is kind of the reverse of the loop device; it allows you access a block device like a character device. - * NSH: Added 'dd' command + * NSH: Added the 'dd' command + * NSH: Added the 'losetup' command pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 375e7b165fa18d6b0d89f8a4fc8a57b49e2c59db Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 15 Nov 2008 19:17:55 +0000 Subject: [PATCH 0334/1518] losetup example git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1244 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttShell.html | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index c873c79b95..3db6178674 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -953,7 +953,24 @@ losetup [-o <offset>] [-r] &lt;dev-path&gt; &lt;file-path&gt; </pre></ul> <p> <b>Synopsis</b>. - Setup the loop device at &lt;dev-path&gt; to access the file at &lt;file-path&gt; as a block device: + Setup the loop device at &lt;dev-path&gt; to access the file at &lt;file-path&gt; as a block device. + Example: +<ul><pre> +nsh&gt; dd if=/dev/zero of=/tmp/image bs=512 count=512 +nsh&gt; ls -l /tmp +/tmp: + -rw-rw-rw- 262144 IMAGE +nsh&gt; losetup /dev/loop0 /tmp/image +nsh&gt; ls -l /dev +/dev: + brw-rw-rw- 0 loop0 +nsh&gt; mkfatfs /dev/loop0 +nsh&gt; mount -t vfat /dev/loop0 /mnt/example +nsh&gt; ls -l /mnt +ls -l /mnt +/mnt: + drw-rw-rw- 0 example/ +</pre></ul> </p> <a <p><b>Command Syntax 2:</b></p> From b0b03332a2fc89fc2e724af0fdb5649722e9a9a3 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 16 Nov 2008 01:06:12 +0000 Subject: [PATCH 0335/1518] Fix hyperlink git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1248 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/freeports.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/freeports.html b/Documentation/freeports.html index 07720a4ed7..608b05cdf2 100644 --- a/Documentation/freeports.html +++ b/Documentation/freeports.html @@ -14,7 +14,8 @@ <td> If you have a hardware platform that you would like to see NuttX ported to then have I got a deal for you: I am willing to port NuttX to run on your hardware <b><i>FREE</i></b>. - If you are interested, contact <a href="http://sourceforge.net/users/patacongo/">patacongo</a> at SourceForge. + If you are interested, contact + <a href="http://sourceforge.net/users/patacongo/" target="_top">patacongo</a> at SourceForge. <a href="NuttXBanner.html">&gt;&gt;back&lt;&lt;</a>. </td> </tr></table> From d217835447149a40e7bd167e6a132c2d621f196b Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 16 Nov 2008 01:28:01 +0000 Subject: [PATCH 0336/1518] Fix a FAT mount bug git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1249 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 6bb9c58c3d..a1bd82f023 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1191,12 +1191,14 @@ nuttx-0.3.18 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; no longer have to be the same. * Add a loop device that converts a file into a block device. * Each NSH command can not be disabled through a configuration setting. All of these - settings make the configuration of NSH potentially complex but also allow it to squeeze - into very small memory footprints. + settings make the configuration of NSH potentially complex but also allow it to squeeze + into very small memory footprints. * Added a block to character (BCH) driver. This is kind of the reverse of the loop device; it allows you access a block device like a character device. * NSH: Added the 'dd' command * NSH: Added the 'losetup' command + * Fixed a FAT bug: After recent changes, it would mount a (invalid) FAT file system + even if the medium is not formatted! pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From b3bff3be2825eb68d17e4455fa377692839090b8 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 16 Nov 2008 14:55:34 +0000 Subject: [PATCH 0337/1518] Add to losetup example git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1254 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttShell.html | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index 3db6178674..c5c5c921be 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -954,7 +954,10 @@ losetup [-o <offset>] [-r] &lt;dev-path&gt; &lt;file-path&gt; <p> <b>Synopsis</b>. Setup the loop device at &lt;dev-path&gt; to access the file at &lt;file-path&gt; as a block device. - Example: + In the following example a 256Kb file is created (<code>dd</code>) and <code>losetup</code> is + used to make the file accessible as a block device. + A FAT file system is created (<code>mkfatfs</code>) and mounted (<code>mount</code>). + Files can then be managed on the loop-mounted file. <ul><pre> nsh&gt; dd if=/dev/zero of=/tmp/image bs=512 count=512 nsh&gt; ls -l /tmp @@ -970,6 +973,13 @@ nsh&gt; ls -l /mnt ls -l /mnt /mnt: drw-rw-rw- 0 example/ +nsh&gt; echo &quot;This is a test&quot; &gt;/mnt/example/atest.txt +nsh&gt; ls -l /mnt/example +/mnt/example: + -rw-rw-rw- 16 ATEST.TXT +nsh&gt; cat /mnt/example/atest.txt +This is a test +nsh&gt; </pre></ul> </p> From 6789b12f9c0bb77d5c5f3a046f83d55d771a1e87 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 16 Nov 2008 14:57:10 +0000 Subject: [PATCH 0338/1518] Prep for 0.3.18 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1255 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 145 ++++++++++++++++++++------------------- 1 file changed, 73 insertions(+), 72 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index a1bd82f023..79420fa15a 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: November 15, 2008</p> + <p>Last Updated: November 16, 2008</p> </td> </tr> </table> @@ -530,35 +530,56 @@ </tr> </table> -<p><b>nuttx-0.3.17</b>. - The 29th release of NuttX (nuttx-0.3.16) is available for download +<p><b>nuttx-0.3.18</b>. + The 30<sup>th</sup> release of NuttX (nuttx-0.3.18) is available for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. The change log associated with the release is available <a href="#currentrelease">here</a>. Unreleased changes after this release are available in CVS. These unreleased changes are listed <a href="#pendingchanges">here</a>. </p> -<p><b>MMC/SD and USB Mass Storage Support</b>. - The nuttx-0.3.17 release includes additional support for USB in NuttX. - The following new features were added: +<p> + This release includes two partially completed ports, several new features, and a + couple of important bug fixes. The two partially completed ports are: <ul> - <li>Added support for SPI-based MMC/SD cards (with an SPI driver for the NXP LPC214x).</li> - <li>Added USB storage class device side driver (BBB)</li> - <li>Added an example that demonstrates the USB storage class by exporting the SPI based MMC/SD card on the NXP LPC214x.</li> + <li>The STMicro STR71x processor and configuration for the Olimex STR-P711 board, and</li> + <li>The Hitachi SH-1 using the SH1_LCEVB1 (SH-1/US7032EVB1) board.</li> </ul> </p> <p> - This is an early alpha release of these drivers. - A known problem is that the storage driver does not work properly with WinXP when debug features are disabled. -</p> -<p><b>Bugs Fixed</b> - Several important bugs were also fixed in the FAT file system, USB serial driver and - NXP LPC214x USB controller driver (see the current <a href="#currentrelease">ChangeLog</a> for details). + Progress on these ports is stalled (as detailed in the ChangeLog). </p> <p> - These changes were verified only on the mcu123.com NXP LPC2148 board using a Linux development environment. - USB testing was performed using both a Linux host and a WinXP host. - As usual, any feedback about bugs or suggestions for improvement would be greatly appreciated. + The new features focus primarily on management of block devices and extensions of + the NuttShell (NSH). These new features include: + <ul> + <li>A loop device that converts a file into a block device,</li> + <li>A block to character (BCH) driver that allow access a block device as if it were character device, </li> + <li>Added strcasecmp() and strncasecmp() libc functions, and </li> + <li>Added the 'dd' and 'losetup' commands to NSH. These commands (along with mkfatfs and mount), + give good managment of filesystems on the target.</li> + </ul> +</p> +<p> + Several bugs were fixed, the most important of which are: + <ul> + <li>Fixd a race condition workaround delay in LPC214X SPI logic. This was also + the cause of some bad MMC/SD performance on that platform.</li> + <li>Fixed a recently introduced FAT file system problem: It would mount a (invalid) + FAT file system even if the medium is not formatted!</li> + <li>Corrected two iother important errors in the FAT lseek implementation: + (1) the sectors-per-cluster value was being reset to "1" and (2) important + lseek logic was omitted when the seek position was zero.</li> + </ul> +</p> +<p> + The FAT filesystem has had many bugs fixed in it and, I think, is now maturing + and becoming stable. +</p> +<p> + These changes were verified only on the mcu123.com NXP LPC2148 board, the Hitachi + SH1_LCEVB1 board, and the Linux simulator, all using a Linux development environment. + Please report any errors to me. </p> <table width ="100%"> @@ -1115,60 +1136,7 @@ Other memory: </table> <pre><ul> -nuttx-0.3.17 2008-10-28 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - * Incorporate patch "[2164503] nuttx-0.3.16 does not build for ARM with USB disabled" - * Reduced the amount of memory reserved for USB serial control requests. It - was unnecessarily large. - * Added LPC214x SPI1 driver to interface with MMC on mcu123.com board. - * Added a simple SPI-based MMC/SD block driver - * NSH: Add LPC214x-specific support to NSH; NSH now mounts any SD cards in the slot. - * FAT: Fix access to unaligned 32-bit values in partion table (start sector &amp; size) - * Fixed a problem with a un-initialized variable in the USB serial driver. - * Added USB storage NXP LPC214x configuration - * Added a test for USB storage under examples/usbstorage - * Fixed a bug in the LPC214x USB driver: It was not properly clearing a HALTed - endpoints (other than EP) on receipt of CLEAR FEATURES request. - * Added USB storage class device side driver (BBB) - * Fixed a bug in the LPC214x USB driver: It was not properly handling request buffers - larger then the endpoint's max packet (DM320 driver also fixed, untested) - * Added logic to the USB device interface: A bit is needed to force the driver to - to terminate an IN transfer with a short packet (zero-length if necessary). - * Fix an error in the NXP LPC214x USB device driver that was causing corruption of - the request queue (M320 driver also fixed, untested) - * Correct another error in the NXP LPC214x USB device driver that caused read failures - when the request buffer size was larger than maxpacket. - * Numerous corrections/extensions to the USB tracing logic included in 0.3.16 (but - not integrated until 0.3.17) - * Fixed another bug in the NXP LPC214x USB device driver: After a stalled endpoint - is resumed (view CLEAR FEATURE), we must restart the IN (outgoing) queue. - -pascal-0.1.2 2008-02-10 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - - * Add logic to build and link with the ZDS-II toolchain - use with the z16f. - * Make sure that POFF header structures are aligned - * Standardized POFF file format to big-endian - * Break up large switch statements to lower complexity - and eliminate a compiler bug - * Changes so that runtime compiles with SDCC. - -buildroot-0.1.2 2007-11-06 &lt;spudmonkey@racsa.co.cr&gt - - * Support for m68k-elf and m68hc11 toolchain - * Add patch to build older binutils with newer Texinfo version - * Add support for SH-1 toolchain -</pre></ul> - -<table width ="100%"> - <tr bgcolor="#e4e4e4"> - <td> - <a name="pendingchanges">Unreleased Changes</a> - </td> - </tr> -</table> - -<pre><ul> -nuttx-0.3.18 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; +nuttx-0.3.18 2008-11-16 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Added port for the STMicro STR71x processor and configuration for the Olimex STR-P711 board (STR71x testing is stalled because I have been unable to get OpenOCD to communicate with my JTAG wiggler on Linux). @@ -1199,6 +1167,39 @@ nuttx-0.3.18 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * NSH: Added the 'losetup' command * Fixed a FAT bug: After recent changes, it would mount a (invalid) FAT file system even if the medium is not formatted! + * Corrected two important errors in FAT lseek implementation: (1) the sectors-per-cluster + value was being reset to '1' and (2) important lseek logic was omitted when the seek + position was zero. + * Fixed a bug in getopt(). It would fail if on certain combinations of terminal argument + types. + +pascal-0.1.2 2008-02-10 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + + * Add logic to build and link with the ZDS-II toolchain + use with the z16f. + * Make sure that POFF header structures are aligned + * Standardized POFF file format to big-endian + * Break up large switch statements to lower complexity + and eliminate a compiler bug + * Changes so that runtime compiles with SDCC. + +buildroot-0.1.2 2007-11-06 &lt;spudmonkey@racsa.co.cr&gt + + * Support for m68k-elf and m68hc11 toolchain + * Add patch to build older binutils with newer Texinfo version + * Add support for SH-1 toolchain +</pre></ul> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="pendingchanges">Unreleased Changes</a> + </td> + </tr> +</table> + +<pre><ul> +nuttx-0.3.19 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 51ae4ca178856396dcde17e09bd2542a85d6ba9f Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 16 Nov 2008 18:48:29 +0000 Subject: [PATCH 0339/1518] Add infrastructure to support poll() git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1258 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 79420fa15a..98920305b8 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1200,6 +1200,7 @@ buildroot-0.1.2 2007-11-06 &lt;spudmonkey@racsa.co.cr&gt <pre><ul> nuttx-0.3.19 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + * Add the basic infrastructure for support the poll() API pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 16ca91d9ed4b8cc35210f323412c8b4772e0b85d Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 16 Nov 2008 22:05:28 +0000 Subject: [PATCH 0340/1518] Poll API may be disabled git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1259 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxUserGuide.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 557d59036e..7d37b73ef1 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -5772,7 +5772,7 @@ interface of the same name. <li><a href="#unsetenv">2.10.5 <code>unsetenv</code></a></li> </ul> <p><b>Disabling Environment Variable Support</b>. - All support for environment variables can be disabled by setting <code>CONFIG_DISABLE_ENVIRONMENT</code> + All support for environment variables can be disabled by setting <code>CONFIG_DISABLE_ENVIRON</code> in the board configuration file. </p> From 67ff986ae2ac9e72f2870216cc35feec935d3a48 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 17 Nov 2008 20:25:28 +0000 Subject: [PATCH 0341/1518] Add select() git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1263 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 98920305b8..e149f42a84 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: November 16, 2008</p> + <p>Last Updated: November 17, 2008</p> </td> </tr> </table> @@ -1200,7 +1200,9 @@ buildroot-0.1.2 2007-11-06 &lt;spudmonkey@racsa.co.cr&gt <pre><ul> nuttx-0.3.19 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - * Add the basic infrastructure for support the poll() API + * Add poll() and select() APIs (in the initial check-in, these work only with character devices) + * Add poll() methods to /dev/null, /dev/zero, pipes, and fifos. + * Add examples/poll for testing poll() and select() pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 2c77a90737d4e995efd0c1d7324b67661d9d1857 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 17 Nov 2008 23:22:27 +0000 Subject: [PATCH 0342/1518] Add poll method to serial drivers git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1268 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index e149f42a84..cf3e9603d1 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1201,7 +1201,7 @@ buildroot-0.1.2 2007-11-06 &lt;spudmonkey@racsa.co.cr&gt <pre><ul> nuttx-0.3.19 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Add poll() and select() APIs (in the initial check-in, these work only with character devices) - * Add poll() methods to /dev/null, /dev/zero, pipes, and fifos. + * Add poll() methods to /dev/null, /dev/zero, pipes, fifos, and serial drivers. * Add examples/poll for testing poll() and select() pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 4a152edb8539837c295cdb255e6d3102e27c80d7 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 18 Nov 2008 14:54:43 +0000 Subject: [PATCH 0343/1518] Fix serial read behavior git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1275 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index cf3e9603d1..24c3a23a35 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1203,6 +1203,10 @@ nuttx-0.3.19 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Add poll() and select() APIs (in the initial check-in, these work only with character devices) * Add poll() methods to /dev/null, /dev/zero, pipes, fifos, and serial drivers. * Add examples/poll for testing poll() and select() + * Fix hostile behavior of getc, fgetc, getchar, etc.: the serial driver was waiting for a + full buffer of read data before return. This means that getc would stall when it needed + to refill the input buffer. The old behavior (read full blocks) might be useful in other + contexts, so it is still available within the driver as a configuration option. pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 8f27d31585836ad7bc2618eb9e605fe20d90e2f0 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 18 Nov 2008 17:30:30 +0000 Subject: [PATCH 0344/1518] Implement poll/select for sockets git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1277 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 24c3a23a35..3273b7d95f 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1207,6 +1207,7 @@ nuttx-0.3.19 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; full buffer of read data before return. This means that getc would stall when it needed to refill the input buffer. The old behavior (read full blocks) might be useful in other contexts, so it is still available within the driver as a configuration option. + * Implement poll() and select() support for TCP/IP sockets pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 9f998c7d60a7472c0d5b504810e287c3a5fb8147 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 18 Nov 2008 23:00:29 +0000 Subject: [PATCH 0345/1518] Add poll() and select() git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1282 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxUserGuide.html | 125 +++++++++++++++++++++++++++--- 1 file changed, 115 insertions(+), 10 deletions(-) diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 7d37b73ef1..99ff9563fe 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -13,7 +13,7 @@ <h1><big><font color="#3c34ec"><i>NuttX Operating System<p>User's Manual</i></font></big></h1> <p><small>by</small></p> <p>Gregory Nutt<p> - <p>Last Updated: September 10, 2008</p> + <p>Last Updated: November 18, 2008</p> </td> </tr> </table> @@ -5998,14 +5998,23 @@ interface of the same name. </p> <h3><a name="driveroperations">2.11.2 Driver Operations</a></h3> -<a name="drvrfcntlops"> +<ul> + <li><a href="#drvrfcntlops">2.11.2.1 <code>fcntl.h</code></a></li> + <li><a href="#drvrunistdops">2.11.2.2 <code>unistd.h</code></a></li> + <li><a href="#drvrioctlops">2.11.2.3 <code>sys/ioctl.h</code></a></li> + <li><a href="#drvrpollops">2.11.2.4 <code>poll.h</code></a></li> + <li><a href="#drvselectops">2.11.2.5 <code>sys/select.h</code></a></li> +</ul> + +<h4><a name="drvrfcntlops">2.11.2.1 fcntl.h</a></h4> + <ul><pre> #include &lt;fcntl.h&gt; int open(const char *path, int oflag, ...); </pre></ul> -</a> -<a name="drvrunistdops"> +<h4><a name="drvrunistdops">2.11.2.2 unistd.h</a></h4> + <ul><pre> #include &lt;unistd.h&gt; int close(int fd); @@ -6016,14 +6025,103 @@ interface of the same name. int unlink(const char *path); ssize_t write(int fd, const void *buf, size_t nbytes); </pre></ul> -</a> -<a name="drvrioctlops"> +<h4><a name="drvrioctlops">2.11.2.3 sys/ioctl.h</a></h4> + <ul><pre> #include &lt;sys/ioctl.h&gt; int ioctl(int fd, int req, unsigned long arg); </pre></ul> -</a> + +<h4><a name="drvrpollops">2.11.2.4 poll.h</a></h4> + +<h5><a name="poll">2.11.2.4.1 poll</a></H5> +<p> + <b>Function Prototype:</b> +</p> +<pre> + #include &lt;poll.h&gt; + int poll(struct pollfd *fds, nfds_t nfds, int timeout); +</pre> +<p> + <b>Description:</b> + <code>poll()</code> waits for one of a set of file descriptors to become ready to + perform I/O. If none of the events requested (and no error) has + occurred for any of the file descriptors, then <code>poll()</code> blocks until + one of the events occurs. +</p> +<p> + <b>Input Parameters:</b> +</p> +<ul> + <li><code>fds</code>. List of structures describing file descriptors to be monitored.</li> + <li><code>nfds</code>. The number of entries in the list.</li> + <li><code>timeout</code>. Specifies an upper limit on the time for which <code>poll()</code> will + block in milliseconds. A negative value of <code>timeout</code> means an infinite + timeout.</li> +</ul> +<p> + <b>Returned Values:</b> +</p> +<p> + On success, the number of structures that have nonzero <cod>revents</code> fields. + A value of 0 indicates that the call timed out and no file descriptors were ready. + On error, -1 is returned, and <code>errno</code> is set appropriately: +</p> +<ul> + <li><code>EBADF</code>. An invalid file descriptor was given in one of the sets.</li> + <li><code>EFAULT</code>. The fds address is invalid</li> + <li><code>EINTR</code>. A signal occurred before any requested event.</li> + <li><code>EINVAL</code>. The nfds value exceeds a system limit.</li> + <li><code>ENOMEM</code>. There was no space to allocate internal data structures.</li> + <li><code>ENOSYS</code>. One or more of the drivers supporting the file descriptor does not support the poll method.</li> +</ul> + +<h4><a name="drvselectops">2.11.2.5 sys/select.h</a></h4> + +<h5><a name="select">2.11.2.5.1 select</a></H5> +<p> + <b>Function Prototype:</b> +</p> +<pre> + #include &lt;sys/select.h&gt; + int select(int nfds, FAR fd_set *readfds, FAR fd_set *writefds, + FAR fd_set *exceptfds, FAR struct timeval *timeout); +</pre> +<p> + <b>Description:</b> + <code>select()</code> allows a program to monitor multiple file descriptors, waiting + until one or more of the file descriptors become &quot;ready&quot; for some class + of I/O operation (e.g., input possible). A file descriptor is + considered ready if it is possible to perform the corresponding I/O + operation (e.g., read(2)) without blocking. +</p> +<p> + <b>NOTE:</b> <a href="#poll"><code>poll()</code></a> is the fundamental API for performing such monitoring + operation under NuttX. <code>select()</code> is provided for compatibility and + is simply a layer of added logic on top of <code>poll()</code>. As such, <code>select()</code> + is more wasteful of resources and <a href="#poll"><code>poll()</code></a> is the recommended API to be + used. +</p> +<p> + <b>Input Parameters:</b> +</p> +<ul> + <li><code>nfds</code>. the maximum file descriptor number (+1) of any descriptor in any of the three sets.</li> + <li><code>readfds</code>. the set of descriptions to monitor for read-ready events</li> + <li><code>writefds</code>. the set of descriptions to monitor for write-ready events</li> + <li><code>exceptfds</code>. the set of descriptions to monitor for error events</li> + <li><code>timeout</code>. Return at this time if none of these events of interest occur.</li> +</ul> +<p> + <b>Returned Values:</b> +</p> +<ul> + <li><code>0:</code> Timer expired</li> + <li><code>&gt;0:</code> The number of bits set in the three sets of descriptors</li> + <li><code>-1:</code> An error occurred (<code>errno</code> will be set appropriately, + see <a href="#poll"><code>poll()</code></a>).</li> +</ul> <h3><a name="directoryoperations">2.11.3 Directory Operations</a></h3> <a name="dirdirentops"> @@ -7292,6 +7390,7 @@ notify a task when a message is available on a queue. <li><a href="#exit">exit</a></li> <li><a href="#fatsupport">FAT File System Support</a></li> <li><a href="#standardio">fclose</a></li> + <li><a href="#drvrfcntlops">fcntl.h</a></li> <li><a href="#standardio">fdopen</a></li> <li><a href="#standardio">feof</a></li> <li><a href="#standardio">ferror</a></li> @@ -7309,7 +7408,7 @@ notify a task when a message is available on a queue. <li><a href="#standardio">fread</a></li> <li><a href="#standardio">fseek</a></li> <li><a href="#standardio">fsetpos</a></li> - <li><a href="#standardio">fstat(</a></li> + <li><a href="#standardio">fstat</a></li> <li><a href="#standardio">ftell</a></li> <li><a href="#standardio">fwrite</a></li> <li><a href="#dirunistdops">getcwd</a></li> @@ -7343,9 +7442,11 @@ notify a task when a message is available on a queue. <li><a href="#drvrfcntlops">open</a></li> <li><a href="#dirdirentops">opendir</a></li> <li><a href="#OS_Interfaces">OS Interfaces</a></li> + <li><a href="#pipe">pipe</a></li> </td> <td valign="top" width="33%"> - <li><a href="#pipe">pipe</a></li> + <li><a href="#poll">poll</a></li> + <li><a href="#drvrpollops">poll.h</a></li> <li><a href="#standardio">printf</a></li> <li><a href="#Pthread">Pthread Interfaces</a> <li><a href="#pthreadattrdestroy">pthread_attr_destroy</a></li> @@ -7416,9 +7517,9 @@ notify a task when a message is available on a queue. <li><a href="#mmapxip">ROM disk driver</a></li> <li><a href="#mmapxip">ROMFS</a></li> <li><a href="#schedgetparam">sched_getparam</a></li> + <li><a href="#schedgetprioritymax">sched_get_priority_max</a></li> </td> <td valign="top"> - <li><a href="#schedgetprioritymax">sched_get_priority_max</a></li> <li><a href="#schedgetprioritymin">sched_get_priority_min</a></li> <li><a href="#schedgetrrinterval">sched_get_rr_interval</a></li> <li><a href="#schedlockcount">sched_lockcount</a></li> @@ -7427,6 +7528,7 @@ notify a task when a message is available on a queue. <li><a href="#schedsetscheduler">sched_setscheduler</a></li> <li><a href="#schedunlock">sched_unlock</a></li> <li><a href="#sched_yield">sched_yield</a></li> + <li><a href="#select">select</a></li> <li><a href="#Semaphores">Counting Semaphore Interfaces</a> <li><a href="#semclose">sem_close</a></li> <li><a href="#semdestroy">sem_destroy</a></li> @@ -7460,6 +7562,8 @@ notify a task when a message is available on a queue. <li><a href="#standardio">Standard I/O</a></li> <li><a href="#standardio">stat</a></li> <li><a href="#standardio">statfs</a></li> + <li><a href="#drvselectops">sys/select.h</a></li> + <li><a href="#drvrioctlops">sys/ioctl.h</a></li> <li><a href="#taskactivate">task_activate</a></li> <li><a href="#Task_Control">Task Control Interfaces</a> <li><a href="#taskcreate">task_create</a></li> @@ -7476,6 +7580,7 @@ notify a task when a message is available on a queue. <li><a href="#ClocksNTimers">Timers</a></li> <li><a href="#timersettime">timer_settime</a></li> <li><a href="#standardio">ungetc</a></li> + <li><a href="#drvrunistdops">unistd.h</a></li> <li><a href="#drvrunistdops">unlink</a></li> <li><a href="#standardio">vfprintf</a></li> <li><a href="#standardio">vprintf</a></li> From 5cd3135721eb681769827ec1fa96a097c9acc16c Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 19 Nov 2008 00:23:19 +0000 Subject: [PATCH 0346/1518] Add configuration settings necessary to use poll() git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1283 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxUserGuide.html | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 99ff9563fe..43eed8c2e9 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -6050,6 +6050,25 @@ interface of the same name. occurred for any of the file descriptors, then <code>poll()</code> blocks until one of the events occurs. </p> +<p> + <b>Configuration Settings</b>. + In order to use the <code>poll()</code> API, the following must be defined + in your NuttX configuration file: +</p> +<ul> + <li><code>CONFIG_NFILE_DESCRIPTORS</code> Defined to be greater than 0</li> + <li><code>CONFIG_DISABLE_POLL</code> NOT defined</li> +</ul> +<p> + In order to use the select with TCP/IP sockets test, you must also have the following additional things + selected in your NuttX configuration file: +</p> +<ul> + <li><code>CONFIG_NET</code> Defined for general network support</li> + <li><code>CONFIG_NET_TCP</code> Defined for TCP/IP support</li> + <li><code>CONFIG_NSOCKET_DESCRIPTORS</code> Defined to be greater than 0</li> + <li><code>CONFIG_NET_NTCP_READAHEAD_BUFFERS</code> Defined to be greater than zero</li> +</ul> <p> <b>Input Parameters:</b> </p> From c5a4c59c7c3572c2583d2c93941d8bf987fe6276 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 19 Nov 2008 02:40:54 +0000 Subject: [PATCH 0347/1518] Add entries to index git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1287 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxUserGuide.html | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 43eed8c2e9..e843908a75 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -7402,6 +7402,7 @@ notify a task when a message is available on a queue. <li><a href="#connect">connect</a></li> <li><a href="#Data_Structures">Data structures</a></li> <li><a href="#directoryoperations">Directory operations</a></li> + <li><a href="#dirdirentops">dirent.h</a></li> <li><a href="#driveroperations">Driver operations</a></li> <li><a href="#drvrunistdops">dup</a></li> <li><a href="#drvrunistdops">dup2</a></li> @@ -7537,9 +7538,9 @@ notify a task when a message is available on a queue. <li><a href="#mmapxip">ROMFS</a></li> <li><a href="#schedgetparam">sched_getparam</a></li> <li><a href="#schedgetprioritymax">sched_get_priority_max</a></li> + <li><a href="#schedgetprioritymin">sched_get_priority_min</a></li> </td> <td valign="top"> - <li><a href="#schedgetprioritymin">sched_get_priority_min</a></li> <li><a href="#schedgetrrinterval">sched_get_rr_interval</a></li> <li><a href="#schedlockcount">sched_lockcount</a></li> <li><a href="#schedlock">sched_lock</a></li> @@ -7581,6 +7582,7 @@ notify a task when a message is available on a queue. <li><a href="#standardio">Standard I/O</a></li> <li><a href="#standardio">stat</a></li> <li><a href="#standardio">statfs</a></li> + <li><a href="#standardio">stdio.h</a></li> <li><a href="#drvselectops">sys/select.h</a></li> <li><a href="#drvrioctlops">sys/ioctl.h</a></li> <li><a href="#taskactivate">task_activate</a></li> @@ -7599,7 +7601,8 @@ notify a task when a message is available on a queue. <li><a href="#ClocksNTimers">Timers</a></li> <li><a href="#timersettime">timer_settime</a></li> <li><a href="#standardio">ungetc</a></li> - <li><a href="#drvrunistdops">unistd.h</a></li> + <li><a href="#drvrunistdops">unistd.h</a>, + <a href="#dirunistdops">unistd.h</a></li> <li><a href="#drvrunistdops">unlink</a></li> <li><a href="#standardio">vfprintf</a></li> <li><a href="#standardio">vprintf</a></li> From ee2d6b5e886f6bc0bbb6f8893b42d0246564cac2 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 19 Nov 2008 20:05:55 +0000 Subject: [PATCH 0348/1518] Corrected a bug in the buffering of TCP data git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1289 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 3273b7d95f..39ba8dcc35 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1208,6 +1208,10 @@ nuttx-0.3.19 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; to refill the input buffer. The old behavior (read full blocks) might be useful in other contexts, so it is still available within the driver as a configuration option. * Implement poll() and select() support for TCP/IP sockets + * Fixed an important bug in the TCP/IP buffering logic. When TCP/IP read-ahead is enabled + and not recv() is in-place when a TCP/IP packet is received, the packet is placed into + a read-ahead buffer. However, the old contents of the read-ahead buffer were not being + cleared and old data would contaminate the newly received buffer. pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From bb03e867718cac28d08ff32a7c2a1b7d60152c3e Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 20 Nov 2008 19:24:06 +0000 Subject: [PATCH 0349/1518] Add support for TCP/IP connection backlog git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1294 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 5 ++++- Documentation/NuttxPortingGuide.html | 5 +++++ Documentation/NuttxUserGuide.html | 8 ++++++++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 39ba8dcc35..3dd0d53fab 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: November 17, 2008</p> + <p>Last Updated: November 20, 2008</p> </td> </tr> </table> @@ -1212,6 +1212,9 @@ nuttx-0.3.19 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; and not recv() is in-place when a TCP/IP packet is received, the packet is placed into a read-ahead buffer. However, the old contents of the read-ahead buffer were not being cleared and old data would contaminate the newly received buffer. + * Implemented support for connection backlog. The size of the backlog is specified by the + second argument of the standard listen() API. Hooks are provided to support poll()/select() + waiting for connections, with a subsequent call to accept() to use the backlogged connection. pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index f32138fcdc..0d3b978d0b 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -1594,6 +1594,11 @@ The system can be re-made subsequently by just typing <code>make</code>. <li> <code>CONFIG_NET_TCP_CONNS</code>: Maximum number of TCP connections (all tasks). </li> + <li> + <code>CONFIG_NET_TCPBACKLOG</code>: + Incoming connections pend in a backlog until <code>accept()</code> is called. + The size of the backlog is selected when <code>listen()</code> is called. + </li> <li> <code>CONFIG_NET_TCP_READAHEAD_BUFSIZE</code>: Size of TCP read-ahead buffers </li> diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index e843908a75..0dfa64a87b 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -6069,6 +6069,14 @@ interface of the same name. <li><code>CONFIG_NSOCKET_DESCRIPTORS</code> Defined to be greater than 0</li> <li><code>CONFIG_NET_NTCP_READAHEAD_BUFFERS</code> Defined to be greater than zero</li> </ul> +<p> + In order to for select to work with incoming connections, you must also select: +</p> +<ul> + <li><code>CONFIG_NET_TCPBACKLOG</code> + Incoming connections pend in a backlog until <code>accept()</cod> is called. + The size of the backlog is selected when <code>listen()</code> is called.</li> +</ul> <p> <b>Input Parameters:</b> </p> From 8864829ded7bce759a5e6d9a4ef30007aa99f675 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 20 Nov 2008 21:50:55 +0000 Subject: [PATCH 0350/1518] Completed integration of TCP connection backlog and poll()/select() for connections git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1295 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 3dd0d53fab..a5eb01a82a 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1215,6 +1215,7 @@ nuttx-0.3.19 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Implemented support for connection backlog. The size of the backlog is specified by the second argument of the standard listen() API. Hooks are provided to support poll()/select() waiting for connections, with a subsequent call to accept() to use the backlogged connection. + * Fixed a minor bug in accept(). It should allow the address and addresslen values to be NULL pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 15379cd0533d4fd1b830cb039e8e2a63b04058f4 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 23 Nov 2008 15:53:51 +0000 Subject: [PATCH 0351/1518] Added framebuffer interface git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1298 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index a5eb01a82a..9613eebdfd 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: November 20, 2008</p> + <p>Last Updated: November 23, 2008</p> </td> </tr> </table> @@ -1216,6 +1216,7 @@ nuttx-0.3.19 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; second argument of the standard listen() API. Hooks are provided to support poll()/select() waiting for connections, with a subsequent call to accept() to use the backlogged connection. * Fixed a minor bug in accept(). It should allow the address and addresslen values to be NULL + * Added first-cut definition for a framebuffer interface pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From affd571125094a9485f5b6b183b34867e4c49021 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 26 Nov 2008 00:26:27 +0000 Subject: [PATCH 0352/1518] Add DM320 framebuffer driver git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1306 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 9613eebdfd..f24304ccca 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: November 23, 2008</p> + <p>Last Updated: November 25, 2008</p> </td> </tr> </table> @@ -1216,7 +1216,11 @@ nuttx-0.3.19 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; second argument of the standard listen() API. Hooks are provided to support poll()/select() waiting for connections, with a subsequent call to accept() to use the backlogged connection. * Fixed a minor bug in accept(). It should allow the address and addresslen values to be NULL - * Added first-cut definition for a framebuffer interface + * Added first-cut definition for a framebuffer interface (and simulated framebuffer for testing + purposes only) + * Added fixed precision math support + * Added some color converson routines into what may become a real graphics library someday. + * Added a framebuffer driver for the DM320 (untested on initial check-in) pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 68979f979e0515794450d869996c7e80a535a03f Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 26 Nov 2008 13:39:09 +0000 Subject: [PATCH 0353/1518] Add multicast support git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1307 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 0d3b978d0b..992548fafd 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -1643,7 +1643,10 @@ The system can be re-made subsequently by just typing <code>make</code>. <code>CONFIG_NET_ARPTAB_SIZE</code>: The size of the ARP table </li> <li> - <code>CONFIG_NET_BROADCAST</code>: Broadcast support + <code>CONFIG_NET_BROADCAST</code>: Incoming UDP broadcast support + </li> + <li> + <code>CONFIG_NET_MULTICAST</code>: Outgoing multi-cast address support </li> <li> <code>CONFIG_NET_LLH_LEN</code>: The link level header length From 5a09a2ea6e0d4fdcb8d3bc90483bbc485a7c5a45 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 26 Nov 2008 15:46:12 +0000 Subject: [PATCH 0354/1518] graphics dir now has its own makefile git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1308 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 280 ++++++++++++++++++--------- 1 file changed, 188 insertions(+), 92 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 992548fafd..52ca0cf9b4 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -16,7 +16,7 @@ </b></big></h1> <p><small>by</small></p> <p>Gregory Nutt</p> - <p><small>Last Update: November 14, 2008</small></p> + <p><small>Last Update: November 26, 2008</small></p> </center> <center><h1>Table of Contents</h1></center> @@ -43,14 +43,15 @@ <li><a href="#DirStructDrivers">2.4 drivers/</a></li> <li><a href="#DirStructExamples">2.5 examples/</a></li> <li><a href="#DirStructFs">2.6 fs/</a></li> - <li><a href="#DirStructInclude">2.7 include/</a></li> - <li><a href="#DirStructLib">2.8 lib/</a></li> - <li><a href="#DirStructMm">2.9 mm/</a></li> - <li><a href="#DirStructNet">2.10 net</a></li> - <li><a href="#DirStructNetUtils">2.11 netutils</a></li> - <li><a href="#DirStructSched">2.12 sched/</a></li> - <li><a href="#DirStructTools">2.13 tools/</a></li> - <li><a href="#topmakefile">2.14 Makefile</a></li> + <li><a href="#DirStructGraphics">2.7 graphics/</a></li> + <li><a href="#DirStructInclude">2.8 include/</a></li> + <li><a href="#DirStructLib">2.9 lib/</a></li> + <li><a href="#DirStructMm">2.10 mm/</a></li> + <li><a href="#DirStructNet">2.11 net</a></li> + <li><a href="#DirStructNetUtils">2.12 netutils</a></li> + <li><a href="#DirStructSched">2.13 sched/</a></li> + <li><a href="#DirStructTools">2.14 tools/</a></li> + <li><a href="#topmakefile">2.15 Makefile</a></li> </ul> <li><a href="#configandbuild">3.0 Configuring and Building</a></li> <ul> @@ -136,16 +137,17 @@ |-- <a href="#DirStructConfigs">configs</a>/ | |-- <i>&lt;board-name&gt;</i>/ | | |-- include/ -| | | `-- <i>(board-specific header files)</i> +| | | `-- <i>(other board-specific header files)</i> | | |-- src/ -| | | |-- Makefile -| | | `-- <i>(board-specific source files)</i> -| | |---<i>&lt;config1-dir&gt;</i>/ -| | | `-- <i>(board-specific/configuration-specific files)</i> -| | `---<i>(other board-specific configuration sub-directories)</i>/ +| | | `-- <i>(board-specific source files)</i> +| | |---<i>&lt;config-name&gt;</i>/ +| | | `-- <i>(board configuration-specific source files)</i> +| | `---<i>(other configuration sub-directories for this board)</i>/ | `-- <i>&lt;(other board directories)&gt;</i>/ |-- <a href="#DirStructDrivers">drivers</a>/ | |-- Makefile +| |-- <i>(driver-specific sub-directories)/</i> +| | `-- <i>(driver-specific source files)</i> | `-- <i>(common driver source files)</i> |-- <a href="#DirStructExamples">examples</a>/ | `-- <i>(example)</i>/ @@ -153,20 +155,20 @@ | `-- <i>(example source files)</i> |-- <a href="#DirStructFs">fs</a>/ | |-- Makefile +| |-- <i>(file system-specific sub-directories)</i>/ +| | `-- <i>(file system-specific source files)</i> | `-- <i>(common file system source files)</i> +|-- <a href="#DirStructGraphics">graphics</a>/ +| |-- Makefile +| |-- <i>(feature-specific sub-directories)</i>/ +| | `-- <i>(feature-specific source files library source files)</i> +| `-- <i>(common graphics-related source files)</i> |-- <a href="#DirStructInclude">include</a>/ | |-- <i>(standard header files)</i> -| |-- arpa/ -| | `-- <i>(standard header files)</i> -| |-- net/ -| | `-- uip/ -| | `-- <i>(uIP specific header files)</i> -| |-- netinet/ -| | `-- <i>(standard header files)</i> -| |-- nuttx/ -| | `-- <i>(nuttx specific header files)</i> -| `- sys/ +| |-- <i>(standard include sub-directories)</i> | | `-- <i>(more standard header files)</i> +| |-- <i>(non-standard include sub-directories)</i> +| `-- <i>(non-standard header files)</i> |-- <a href="#DirStructLib">lib</a>/ | |-- Makefile | `-- <i>(lib source files)</i> @@ -177,33 +179,17 @@ | |-- Makefile | |-- uip/ | | `-- <i>(uip source files)</i> -| `-- <i>(socket source files)</i> +| `-- <i>(BSD socket source files)</i> |-- <a href="#DirStructNetUtils">netutils</a>/ -| |-- dhcp/ -| | `-- <i>(dhcp source files)</i> -| |-- resolv/ -| | `-- <i>(resolv source files)</i> -| |-- smtp/ -| | `-- <i>(smtp source files)</i> -| |-- telnetd/ -| | `-- <i>(telnetd source files)</i> -| |-- uiplib/ -| | `-- <i>(uiplib source files)</i> -| |-- weblclient/ -| | `-- <i>(webclient source files)</i> -| |-- webserver/ -| | `-- <i>(webserver source files)</i> | |-- Makefile -| `-- <i>(fs source files)</i> +| |-- <i>(network feature sub-directories)</i>/ +| | `-- <i>(network feature source files)</i> +| `-- <i>(netutils common files)</i> |-- <a href="#DirStructSched">sched</a>/ | |-- Makefile | `-- <i>(sched source files)</i> -`-- <a href="#DirStructDrivers">tools</a>/ - |-- Makefile.mkconfig - |-- configure.sh - |-- mkconfig.c - |-- mkdeps.sh - `-- zipme +`-- <a href="#DirStructTools">tools</a>/ + `-- <i>(miscellaneous scripts and programs)</i> </pre></ul> <p> @@ -262,21 +248,21 @@ under <code>arch/</code> with the following characteristics: </p> <ul><pre> - <i>&lt;arch-name&gt;</i>/ - |-- include/ - | |--<i>&lt;chip-name&gt;</i>/ - | | `-- <i>(chip-specific header files)</i> - | |--<i>&lt;other-chips&gt;</i>/ - | |-- arch.h - | |-- irq.h - | |-- types.h - | `-- limits.h - `-- src/ - |--<i>&lt;chip-name&gt;</i>/ - | `-- <i>(chip-specific source files)</i> - |--<i>&lt;other-chips&gt;</i>/ - |-- Makefile - `-- <i>(architecture-specific source files)</i> +<i>&lt;arch-name&gt;</i>/ +|-- include/ +| |--<i>&lt;chip-name&gt;</i>/ +| | `-- <i>(chip-specific header files)</i> +| |--<i>&lt;other-chips&gt;</i>/ +| |-- arch.h +| |-- irq.h +| |-- types.h +| `-- limits.h +`-- src/ + |--<i>&lt;chip-name&gt;</i>/ + | `-- <i>(chip-specific source files)</i> + |--<i>&lt;other-chips&gt;</i>/ + |-- Makefile + `-- <i>(architecture-specific source files)</i> </pre></ul> <h3><a name="summaryofarchfiles">2.2.2 Summary of Files</a></h3> @@ -498,24 +484,23 @@ provide a subdirectory &lt;board-name&gt; under <code>configs/</code> with the following characteristics: </p> <ul><pre> - |-- Make.defs - |-- defconfig - `-- setenv.sh - <i>&lt;board-name&gt;</i> - |-- include/ - | `-- <i>(board-specific header files)</i> - |-- src/ - | |-- Makefile - | `-- <i>(board-specific source files)</i> - |-- <i>&lt;config1-dir&gt;</i> - | |-- Make.defs - | |-- defconfig - | `-- setenv.sh - |-- <i>&lt;config2-dir&gt;</i> - | |-- Make.defs - | |-- defconfig - | `-- setenv.sh - `-- <i>(other board-specific configuration sub-directories)</i>/ +<i>&lt;board-name&gt;</i> +|-- include/ +| |-- board.h +| `-- <i>(board-specific header files)</i> +|-- src/ +| |-- Makefile +| `-- <i>(board-specific source files)</i> +|-- <i>&lt;config1-dir&gt;</i> +| |-- Make.defs +| |-- defconfig +| `-- setenv.sh +|-- <i>&lt;config2-dir&gt;</i> +| |-- Make.defs +| |-- defconfig +| `-- setenv.sh +| ... +`-- <i>(other board-specific configuration sub-directories)</i>/ </pre></ul> <h3><a name="summaryofconfigfiles">2.3.2 Summary of Files</a></h3> @@ -706,6 +691,23 @@ <p> This directory holds architecture-independent device drivers. </p> +<ul><pre> +drivers/ +|-- Makefile +|-- bch/ +| |-- Make.defs +| `-- <i>(bch driver source files)</i> +|-- mmcsd/ +| |-- Make.defs +| `-- <i>(mmcsd driver source files)</i> +|-- net/ +| |-- Make.defs +| `-- <i>(net driver source files)</i> +|-- usbdev/ +| |-- Make.defs +| `-- <i>(usbdev driver source files)</i> +`-- <i>(common driver source files)</i> +</pre></ul> <h2>2.5 <a name="DirStructExamples">examples</a></h2> @@ -719,53 +721,147 @@ This directory contains the NuttX file system. This file system is described <a href="#NxFileSystem">below</a>. </p> +<ul><pre> +fs/ +|-- Makefile +|-- fat/ +| |-- Make.defs +| `-- <i>(fat file system source files)</i> +|-- romfs/ +| |-- Make.defs +| `-- <i>(romfs file system source files)</i> + `-- <i>(common file system source files)</i> +</pre></ul> -<h2>2.7 <a name="DirStructInclude">include</a></h2> +<h2>2.7 <a name="DirStructGraphics">graphics</a></h2> + +<p> + This directory contains files for graphics/video support under NuttX. +</p> +<ul><pre> +graphics/ +|-- Makefile +|-- nxglib/ +| |-- Make.defs +| `-- <i>(NuttX graphics library source files)</i> +|-- nx/ +| |-- Make.defs +| `-- <i>(Nuttx X-server source files)</i> +`-- <i>(common file system source files)</i> +</pre></ul> + +<h2>2.8 <a name="DirStructInclude">include</a></h2> <p> This directory holds NuttX header files. Standard header files file retained in can be included in the <i>normal</i> fashion: </p> <ul> - <code>include &lt:stdio.h&gt</code><br> + <code>include &lt;stdio.h&gt;</code><br> <code>include &lt;sys/types.h&gt;</code><br> etc. </ul> +<p> + Directory structure: +</p> +<ul><pre> +include/ +|-- <i>(standard header files)</i> +|-- arpa/ +| `-- <i>(standard header files)</i> +|-- net/ +| `-- uip/ +| `-- <i>(uIP specific header files)</i> +|-- netinet/ +| `-- <i>(standard header files)</i> +|-- nuttx/ +| `-- <i>(nuttx specific header files)</i> +`- sys/ + `-- <i>(more standard header files)</i> +</per></ul> -<h2>2.8 <a name="DirStructLib">lib</a></h2> +<h2>2.9 <a name="DirStructLib">lib</a></h2> <p> This directory holds a collection of standard libc-like functions with custom interfaces into Nuttx. </p> -<h2>2.9 <a name="DirStructMm">mm</a></h2> +<h2>2.10 <a name="DirStructMm">mm</a></h2> <p> This is the NuttX memory manager. </p> -<h2>2.10 <a name="DirStructNet">net</a></h2> +<h2>2.11 <a name="DirStructNet">net</a></h2> <p> This directory contains the implementation of the socket APIs. The subdirectory, <code>uip</code> contians the uIP port. </P> -<h2>2.11 <a name="DirStructNetUtils">netutils</a></h2> +<h2>2.12 <a name="DirStructNetUtils">netutils</a></h2> <p> - This directory contains most of the network applications contained under the uIP-1.0 apps directory. - As the uIP apps/README says, these applications "are not all heavily tested." + This directory contains most of the network applications. + Some of these are original with NuttX (like tftpc) and others were leveraged from the uIP-1.0 apps directory. + As the uIP apps/README says, these applications &quot;are not all heavily tested.&quot; </p> +<ul><pre> +netutils/ +|-- Makefile +|-- dhcp/ +| |-- Make.defs +| `-- <i>(dhcp source files)</i> +|-- dhcpd/ +| |-- Make.defs +| `-- <i>(dhcpd source files)</i> +|-- resolv/ +| |-- Make.defs +| `-- <i>(resolv source files)</i> +|-- smtp/ +| |-- Make.defs +| `-- <i>(smtp source files)</i> +|-- telnetd/ +| |-- Make.defs +| `-- <i>(telnetd source files)</i> +|-- tftpc/ +| |-- Make.defs +| `-- <i>(tftpc source files)</i> +|-- uiplib/ +| |-- Make.defs +| `-- <i>(uiplib source files)</i> +|-- weblclient/ +| |-- Make.defs +| `-- <i>(webclient source files)</i> +|-- webserver/ +| |-- Make.defs +| `-- <i>(webserver source files)</i> +`-- <i>(netutils common files)</i> +</pre></ul> -<h2>2.12 <a name="DirStructSched">sched</a></h2> +<h2>2.13 <a name="DirStructSched">sched</a></h2> <p> The files forming core of the NuttX RTOS reside here. </p> -<h2>2.13 <a name="DirStructTools">tools</a></h2> +<h2>2.14 <a name="DirStructTools">tools</a></h2> <p> This directory holds a collection of tools and scripts to simplify - configuring and building NuttX. + configuring, building and maintaining NuttX. </p> +<ul><pre> +tools/ +|-- Makefile.mkconfig +|-- configure.sh +|-- incdir.sh +|-- indent.sh +|-- link.sh +|-- mkconfig.c +|-- mkdeps.sh +|-- mkimage.sh +|-- mknulldeps.sh +|-- unlink.sh +|-- winlink.sh +`-- zipme +</pre></ul> -<h2>2.14 <a name="topmakefile">Makefile</a></h2> +<h2>2.15 <a name="topmakefile">Makefile</a></h2> <p> The top-level <code>Makefile</code> in the <code>${TOPDIR}</code> directory contains all of the top-level control logic to build NuttX. From 1dd62a3f7bb90514218b163b7cbb799fbf33278c Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 26 Nov 2008 19:39:54 +0000 Subject: [PATCH 0355/1518] Add another rasterizer git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1314 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index f24304ccca..b752096b60 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: November 25, 2008</p> + <p>Last Updated: November 26, 2008</p> </td> </tr> </table> @@ -1221,6 +1221,8 @@ nuttx-0.3.19 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Added fixed precision math support * Added some color converson routines into what may become a real graphics library someday. * Added a framebuffer driver for the DM320 (untested on initial check-in) + * Network: add support for outgoing multicast addresses + * Added some rasterizers to the graphics library pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 36fb98005a04f3f7b1a6e286382dab421ce9eabb Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 27 Nov 2008 03:18:04 +0000 Subject: [PATCH 0356/1518] Prep for 0.3.19 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1319 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 178 ++++++++++++++++++--------------------- 1 file changed, 80 insertions(+), 98 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index b752096b60..c8aa054e0c 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -480,6 +480,26 @@ </p> </tr> +<tr> + <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> + <td bgcolor="#5eaee1"> + <b>Graphics Support</b> + </td> +</tr> +<tr> + <td><br></td> + <td> + <p> + <li>Framebuffer drivers.</li> + </p> +</tr> +<tr> + <td><br></td> + <td> + <p> + <li>Graphics library and tiny windowing system under developement.</li> + </p> +</tr> </table></center> <p> @@ -530,8 +550,8 @@ </tr> </table> -<p><b>nuttx-0.3.18</b>. - The 30<sup>th</sup> release of NuttX (nuttx-0.3.18) is available for download +<p><b>nuttx-0.3.19</b>. + The 31<sup>st</sup> release of NuttX (nuttx-0.3.19) is available for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. The change log associated with the release is available <a href="#currentrelease">here</a>. @@ -539,46 +559,43 @@ These unreleased changes are listed <a href="#pendingchanges">here</a>. </p> <p> - This release includes two partially completed ports, several new features, and a - couple of important bug fixes. The two partially completed ports are: - <ul> - <li>The STMicro STR71x processor and configuration for the Olimex STR-P711 board, and</li> - <li>The Hitachi SH-1 using the SH1_LCEVB1 (SH-1/US7032EVB1) board.</li> - </ul> -</p> + This release includes the following new feature: <p> - Progress on these ports is stalled (as detailed in the ChangeLog). -</p> -<p> - The new features focus primarily on management of block devices and extensions of - the NuttShell (NSH). These new features include: - <ul> - <li>A loop device that converts a file into a block device,</li> - <li>A block to character (BCH) driver that allow access a block device as if it were character device, </li> - <li>Added strcasecmp() and strncasecmp() libc functions, and </li> - <li>Added the 'dd' and 'losetup' commands to NSH. These commands (along with mkfatfs and mount), - give good managment of filesystems on the target.</li> - </ul> -</p> +<ul> + <li>Add <code>poll()</code> and <code>select()</code> APIs that may be used to monitor for data + availability on character devices or TCP/IP sockets. + </li> + <li>Implemented support TCP/IP connection backlog. + This allows <code>poll()</code>/<code>select()</code> to wake-up on new connections to a listener socket. + </li> + <li>Added definition of a framebuffer driver and implement framebuffer drivers for the + simulated platform and the TI DM320 (untested as of the inital check-in). + </li> + <li>Partially developed a graphics framework based on the framebuffer drivers, however, + this will not be ready for use for a few more release. + Currently this includes only a few color conversion routines and some rasteizing functions. + A tiny windowing system is under development but not ready for check-in yet. + <li>Added support for fixed precision math. + </li> + <li>Added support for outgoing multicast packets. + </li> +</ul> <p> Several bugs were fixed, the most important of which are: - <ul> - <li>Fixd a race condition workaround delay in LPC214X SPI logic. This was also - the cause of some bad MMC/SD performance on that platform.</li> - <li>Fixed a recently introduced FAT file system problem: It would mount a (invalid) - FAT file system even if the medium is not formatted!</li> - <li>Corrected two iother important errors in the FAT lseek implementation: - (1) the sectors-per-cluster value was being reset to "1" and (2) important - lseek logic was omitted when the seek position was zero.</li> - </ul> </p> + <li>Fixed an important bug in the TCP/IP buffering logic. + When TCP/IP read-ahead is enabled and not recv() is in-place when a TCP/IP packet is received, + the packet is placed into a read-ahead buffer. + However, the old contents of the read-ahead buffer were not being cleared and old data would + contaminate the newly received buffer. + </li> + <li>Changed the behavior of the serial driver read. + It now returns data as it is available rather than waiting for the full requested read size. + This makes functions like <code>fgetc()</code> work much more smoothly. + </li> <p> - The FAT filesystem has had many bugs fixed in it and, I think, is now maturing - and becoming stable. -</p> -<p> - These changes were verified only on the mcu123.com NXP LPC2148 board, the Hitachi - SH1_LCEVB1 board, and the Linux simulator, all using a Linux development environment. + These changes were verified only on the Neuros OSD (ARM) and the Linux simulator using a + Linux development environment. Please report any errors to me. </p> @@ -692,7 +709,7 @@ </p> <p> <b>STATUS:</b> - The basic port (timer interrupts, serial ports, network, etc.) is complete. + The basic port (timer interrupts, serial ports, network, framebuffe, etc.) is complete. All implemented features have been verified with the exception of the USB device-side driver; that implementation is complete but completely untested. </p> @@ -1136,42 +1153,30 @@ Other memory: </table> <pre><ul> -nuttx-0.3.18 2008-11-16 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - * Added port for the STMicro STR71x processor and configuration for the Olimex STR-P711 - board (STR71x testing is stalled because I have been unable to get OpenOCD to - communicate with my JTAG wiggler on Linux). - * Fix race condition workaround delay in LPC214X SPI logic. This was also the cause of the - very bad MMC/SD performance. - * Began port of the Hitachi SH-1 using the SH-1/US7032EVB1 board - * Re-built all configurations that use SDCC and Zilog toolchains to make sure they still - build (they didn't, but they do now). - * Fixed several erroneous "list empty" checks in the CAN driver. - * Hitachi SH-1 passes (reduced) examples/ostest; the examples/nsh test still fails. - There are remaining instabilities that make the port un-usable. The nature of these is - not understood; the behavior is that certain SH-1 instructions stop working as advertised. - This could be a silicon problem, some pipeline issue that is not handled properly by the - gcc 3.4.5 toolchain (which has very limit SH-1 support to begin with), or perhaps with the - CMON debugger. At any rate, I have exhausted all of the energy that I am willing to put - into this cool old processor for the time being. - * Renamed configuration item CONFIG_PROC_STACK_SIZE as CONFIG_IDLETHREAD_STACKSIZE: It now - only controls the size of the stack for the IDLE thread. Added CONFIG_USERMAIN_STACKSIZE: - This is the size of stack used with the user_start() thread is created. The two stacks - no longer have to be the same. - * Add a loop device that converts a file into a block device. - * Each NSH command can not be disabled through a configuration setting. All of these - settings make the configuration of NSH potentially complex but also allow it to squeeze - into very small memory footprints. - * Added a block to character (BCH) driver. This is kind of the reverse of the loop - device; it allows you access a block device like a character device. - * NSH: Added the 'dd' command - * NSH: Added the 'losetup' command - * Fixed a FAT bug: After recent changes, it would mount a (invalid) FAT file system - even if the medium is not formatted! - * Corrected two important errors in FAT lseek implementation: (1) the sectors-per-cluster - value was being reset to '1' and (2) important lseek logic was omitted when the seek - position was zero. - * Fixed a bug in getopt(). It would fail if on certain combinations of terminal argument - types. +nuttx-0.3.19 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + * Add poll() and select() APIs (in the initial check-in, these work only with character devices) + * Add poll() methods to /dev/null, /dev/zero, pipes, fifos, and serial drivers. + * Add examples/poll for testing poll() and select() + * Fix hostile behavior of getc, fgetc, getchar, etc.: the serial driver was waiting for a + full buffer of read data before return. This means that getc would stall when it needed + to refill the input buffer. The old behavior (read full blocks) might be useful in other + contexts, so it is still available within the driver as a configuration option. + * Implement poll() and select() support for TCP/IP sockets + * Fixed an important bug in the TCP/IP buffering logic. When TCP/IP read-ahead is enabled + and not recv() is in-place when a TCP/IP packet is received, the packet is placed into + a read-ahead buffer. However, the old contents of the read-ahead buffer were not being + cleared and old data would contaminate the newly received buffer. + * Implemented support for connection backlog. The size of the backlog is specified by the + second argument of the standard listen() API. Hooks are provided to support poll()/select() + waiting for connections, with a subsequent call to accept() to use the backlogged connection. + * Fixed a minor bug in accept(). It should allow the address and addresslen values to be NULL + * Added first-cut definition for a framebuffer interface (and simulated framebuffer for testing + purposes only) + * Added fixed precision math support + * Added some color converson routines into what may become a real graphics library someday. + * Added a framebuffer driver for the DM320 (untested on initial check-in) + * Network: add support for outgoing multicast addresses + * Added some rasterizers to the graphics library pascal-0.1.2 2008-02-10 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; @@ -1199,30 +1204,7 @@ buildroot-0.1.2 2007-11-06 &lt;spudmonkey@racsa.co.cr&gt </table> <pre><ul> -nuttx-0.3.19 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - * Add poll() and select() APIs (in the initial check-in, these work only with character devices) - * Add poll() methods to /dev/null, /dev/zero, pipes, fifos, and serial drivers. - * Add examples/poll for testing poll() and select() - * Fix hostile behavior of getc, fgetc, getchar, etc.: the serial driver was waiting for a - full buffer of read data before return. This means that getc would stall when it needed - to refill the input buffer. The old behavior (read full blocks) might be useful in other - contexts, so it is still available within the driver as a configuration option. - * Implement poll() and select() support for TCP/IP sockets - * Fixed an important bug in the TCP/IP buffering logic. When TCP/IP read-ahead is enabled - and not recv() is in-place when a TCP/IP packet is received, the packet is placed into - a read-ahead buffer. However, the old contents of the read-ahead buffer were not being - cleared and old data would contaminate the newly received buffer. - * Implemented support for connection backlog. The size of the backlog is specified by the - second argument of the standard listen() API. Hooks are provided to support poll()/select() - waiting for connections, with a subsequent call to accept() to use the backlogged connection. - * Fixed a minor bug in accept(). It should allow the address and addresslen values to be NULL - * Added first-cut definition for a framebuffer interface (and simulated framebuffer for testing - purposes only) - * Added fixed precision math support - * Added some color converson routines into what may become a real graphics library someday. - * Added a framebuffer driver for the DM320 (untested on initial check-in) - * Network: add support for outgoing multicast addresses - * Added some rasterizers to the graphics library +nuttx-0.3.20 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From b3f7382de1395413ee557c6ebe862080827d5f3d Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 28 Nov 2008 16:07:54 +0000 Subject: [PATCH 0357/1518] Add NX configuration git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1329 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 64 +++++++++++++++++++++++++++- 1 file changed, 62 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 52ca0cf9b4..01ef85086c 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -16,7 +16,7 @@ </b></big></h1> <p><small>by</small></p> <p>Gregory Nutt</p> - <p><small>Last Update: November 26, 2008</small></p> + <p><small>Last Update: November 28, 2008</small></p> </center> <center><h1>Table of Contents</h1></center> @@ -1652,7 +1652,7 @@ The system can be re-made subsequently by just typing <code>make</code>. </li> </ul> -<h2>SPI-based MMC/SD driver<h2> +<h2>SPI-based MMC/SD driver</h2> <ul> <li> <code>CONFIG_MMCSD_NSLOTS</code>: Number of MMC/SD slots supported by the driver. Default is one. @@ -1854,6 +1854,66 @@ The system can be re-made subsequently by just typing <code>make</code>. </li> </ul> +<h2>Graphics related configuration settings</h3> +<ul> + <li> + <code>CONFIG_NXGRAPHICS</code> + Enables overall support for graphics library and NX + </li> +</ul> + +<h3>NX configuration setting</h3> +<ul> + <li> + <code>CONFIG_NX_MULTIUSER</code> + Configures NX in multi-user mode + </li> + <li> + <code>CONFIG_NX_NPLANES</code> + Some YUV color formats requires support for multiple planes, + one for each color component. Unless you have such special + hardware, this value should be undefined or set to 1 + </li> + <li> + <code>CONFIG_NXGLIB_DISABLE_1BPP</code>, <code>CONFIG_NXGLIB_DISABLE_2BPP</code>, + <code>CONFIG_NXGLIB_DISABLE_4BPP</code>, <code>CONFIG_NXGLIB_DISABLE_8BPP</code> + <code>CONFIG_NXGLIB_DISABLE_16BPP</code>, <code>CONFIG_NXGLIB_DISABLE_24BPP</code>, and + <code>CONFIG_NXGLIB_DISABLE_32BPP + NX supports a variety of pixel depths. You can save some + memory by disabling support for unused color depths. + </li> + <li> + <code>CONFIG_NXGL_PACKEDMSFIRST</code> + If a pixel depth of less than 8-bits is used, then NX needs + to know if the pixels pack from the MS to LS or from LS to MS + </li> + <li> + <code>CONFIG_NX_MOUSE</code> + Build in support for mouse input + </li> + <li> + <code>CONFIG_NX_KBD</code> + Build in support of keypad/keyboard input + </li> +</ul> + +<h3>NX Multi-user only options</h3> +<ul> + <li> + <code>CONFIG_NX_BLOCKING</code> + Open the client message queues in blocking mode. In this case, + <code>nx_eventhandler()</code> will never return. + </li> + <li> + <code>CONFIG_NX_MXSERVERMSGS</code> and <code>CONFIG_NX_MXCLIENTMSGS</code> + Specifies the maximum number of messages that can fit in + the message queues. No additional resources are allocated, but + this can be set to prevent flooding of the client or server with + too many messages (<code>CONFIG_PREALLOC_MQ_MSGS</code> controls how many + messages are pre-allocated). + </li> +</ul> + <h2>Stack and heap information</h2> <ul> From 7583df5c34e561a125ad94966ae5f0b33dd6ac43 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 28 Nov 2008 23:04:54 +0000 Subject: [PATCH 0358/1518] Changes from initial NX debug git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1341 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index c8aa054e0c..0fdedd3db1 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: November 26, 2008</p> + <p>Last Updated: November 28, 2008</p> </td> </tr> </table> @@ -1205,6 +1205,7 @@ buildroot-0.1.2 2007-11-06 &lt;spudmonkey@racsa.co.cr&gt <pre><ul> nuttx-0.3.20 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + * Initial release of a tiny windowing system for NuttX (not well tested at initial check-in) pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 30231fb59c570ce893fc6c1d8225a404a8635bf6 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 29 Nov 2008 01:19:35 +0000 Subject: [PATCH 0359/1518] Add fixed precision sin() and cos() git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1342 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 0fdedd3db1..6dcce8b587 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1206,6 +1206,7 @@ buildroot-0.1.2 2007-11-06 &lt;spudmonkey@racsa.co.cr&gt <pre><ul> nuttx-0.3.20 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Initial release of a tiny windowing system for NuttX (not well tested at initial check-in) + * Add fixed precision sin() and cos() (not well tested at initial check-in) pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From c6d028c534dbbda3a9bfa1c3efcdd41f49563d14 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 30 Nov 2008 18:52:14 +0000 Subject: [PATCH 0360/1518] There is at least some X11 output now git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1361 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 6dcce8b587..ecf01aa7c2 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1207,6 +1207,9 @@ buildroot-0.1.2 2007-11-06 &lt;spudmonkey@racsa.co.cr&gt nuttx-0.3.20 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Initial release of a tiny windowing system for NuttX (not well tested at initial check-in) * Add fixed precision sin() and cos() (not well tested at initial check-in) + * Add an X11-based simulated framebuffer driver + * The simulated target now has an option (CONFIG_SIM_WALLTIME) that will let the simulation + run in more-or-less realtime. pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 519525f05415c1b37e36954fe2ffb187fa72e73f Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 3 Dec 2008 20:53:23 +0000 Subject: [PATCH 0361/1518] Add support for bitmap fonts git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1408 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index ecf01aa7c2..2b0a0ee333 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: November 28, 2008</p> + <p>Last Updated: December 3, 2008</p> </td> </tr> </table> @@ -1205,11 +1205,13 @@ buildroot-0.1.2 2007-11-06 &lt;spudmonkey@racsa.co.cr&gt <pre><ul> nuttx-0.3.20 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - * Initial release of a tiny windowing system for NuttX (not well tested at initial check-in) + * Initial release of a tiny windowing system for NuttX * Add fixed precision sin() and cos() (not well tested at initial check-in) * Add an X11-based simulated framebuffer driver * The simulated target now has an option (CONFIG_SIM_WALLTIME) that will let the simulation run in more-or-less realtime. + * Added more more extensive window support: frames, toolbars, etc. + * Added support for bitmap fonts pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 262d9daddaffda24a803c6a92b5169cf20d729be Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 4 Dec 2008 23:32:06 +0000 Subject: [PATCH 0362/1518] Fonts are integated git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1416 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 2b0a0ee333..5a824cc8de 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: December 3, 2008</p> + <p>Last Updated: December 4, 2008</p> </td> </tr> </table> @@ -1212,6 +1212,7 @@ nuttx-0.3.20 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; run in more-or-less realtime. * Added more more extensive window support: frames, toolbars, etc. * Added support for bitmap fonts + * Integrated the new font support with a font test in examples/nx pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From effed25b7407bd0385a286a13efde368402db766 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 5 Dec 2008 00:42:37 +0000 Subject: [PATCH 0363/1518] update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1417 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 137 +++++++++++++++++++++++++++--- Documentation/NuttXScreenShot.jpg | Bin 0 -> 5950 bytes 2 files changed, 127 insertions(+), 10 deletions(-) create mode 100644 Documentation/NuttXScreenShot.jpg diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 5a824cc8de..f73f1008e5 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -29,7 +29,7 @@ <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> <td> <a href="#overview">Overview</a>.<br> - What is NuttX? + What is NuttX? Look at all those files and features... How can it be a tiny OS? </td> </tr> <tr> @@ -476,7 +476,7 @@ <td><br></td> <td> <p> - <li>Bult-in USB trace functionality for USB debug.</li> + <li>Built-in USB trace functionality for USB debug.</li> </p> </tr> @@ -497,7 +497,7 @@ <td><br></td> <td> <p> - <li>Graphics library and tiny windowing system under developement.</li> + <li>Graphics library and tiny windowing system under development.</li> </p> </tr> </table></center> @@ -505,7 +505,7 @@ <p> <b>NuttX Add-Ons</b>. The following packages are available to extend the basic NuttX feature set: -<p> +</p> <center><table width="90%"> <tr> @@ -539,9 +539,126 @@ <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website.</li> </p> + </td> </tr> </table></center> +<p> + <b>Look at all those files and features... How can it be a tiny OS?</b>. + The NuttX feature list (above) is fairly long and if you look at the NuttX + source tree, you will see that there are hundreds of source files comprising + NuttX. How can NuttX be a tiny OS will all of that? +</p> +<center><table width="90%"> + +<tr> + <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> + <td bgcolor="#5eaee1"> + <b>Lots of Features -- More can be smaller!</b> + </td> +</tr> + +<tr> + <td><br></td> + <td> + <p> + The philosophy behind that NuttX is that lots of features are great... <i>BUT</i> + also that if you don't use those features, then you should not have to pay a penalty + for the unused features. + And, with NuttX, you don't! If you don't use a feature, it will not + be included in the final executable binary. + You only have to pay the penalty of increased footprint for the features + that you actually use. + </p> + <p> + Using a variety of technologies, NuttX can scale from the very tiny to + the moderate-size system. I have executed NuttX with some simple applications + in as little as 32Kb <i>total</i> memory (code and data). + On the other hand, I often run richly featured NuttX builds that require + memory up to 100Kb. + </p> + </td> +</tr> + +<tr> + <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> + <td bgcolor="#5eaee1"> + <b>Many, many files -- More really is smaller!</b> + </td> +</tr> +<tr> + <td><br></td> + <td> + <p> + One may be intimidated by the size NuttX source tree. There are hundreds of source files! + How can that be a tiny OS? + Actually, the large number of files is one of the tricks to keep NuttX small and + as scalable as possible. + Most files contain only a single function. + Sometimes just one tiny function with only a few lines of code. + Why? + </p> + <ul> + <li> + <b>Static Libraries</b>. + Because in the NuttX build processed, objects are compiled and saved into + <i>static libraries</i> (<i>archives</i>). + Then, when the file executable is linked, only the object files that are needed + are extracted from the archive and added to the final executable. + By having many, many tiny source files, you can assure that no code that you do + not execute is ever included in the link. + And by having many, tiny source files you have better granularity -- + if you don't use that tiny function of even just a few lines of code, it will + not be included in the binary. + </li> + </ul> + </td> +</tr> + +<tr> + <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> + <td bgcolor="#5eaee1"> + <b>Other Tricks</b> + </td> +</tr> +<tr> + <td><br></td> + <td> + <p> + As mentioned above, the use of many, tiny source files and linking from static + libraries keeps the size of NuttX down. + Other tricks used in NuttX include: + </p> + <ul> + <li> + <b>Configuration Files</b>. + Before you build NuttX, you must provide a configuration file that specifies + what features you plan to use and which features you do not. + This configuration file contains a long list of settings that control + what is built into NuttX and what is not. + There are hundreds of such settings + (see the <a href="NuttxPortingGuide.html#apndxconfigs">NuttX Porting Guide</a> + for a partial list that excludes platform specific settings). + These many, many configuration options allow NuttX to be highly tuned to + meet size requirements. + The downside to all of these configuration options is that it greatly + complicates the maintenance of NuttX -- but that is my problem, not yours. + </li> + <li> + <b>Weak Symbols</b> + The GNU toolchain supports <i>weak</i> symbols and these also help to keep + the size of NuttX down. + Weak symbols prevent object files from being drawn into the link even if they + are accessed from source code. + Careful use of weak symbols is another trick for keep unused code out of the + final binary. + </li> + </ul> + </td> +</tr> + +</table></center> + <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> @@ -569,11 +686,11 @@ This allows <code>poll()</code>/<code>select()</code> to wake-up on new connections to a listener socket. </li> <li>Added definition of a framebuffer driver and implement framebuffer drivers for the - simulated platform and the TI DM320 (untested as of the inital check-in). + simulated platform and the TI DM320 (untested as of the initial check-in). </li> <li>Partially developed a graphics framework based on the framebuffer drivers, however, this will not be ready for use for a few more release. - Currently this includes only a few color conversion routines and some rasteizing functions. + Currently this includes only a few color conversion routines and some rasterizing functions. A tiny windowing system is under development but not ready for check-in yet. <li>Added support for fixed precision math. </li> @@ -664,9 +781,9 @@ <p> <b>STATUS:</b> This port boots and passes the OS test (examples/ostest). - The port is complete and verifed. As of NuttX 0.3.17, the port includes: + The port is complete and verified. As of NuttX 0.3.17, the port includes: timer interrupts, serial console, USB driver, and SPI-based MMC/SD card - support. A verifed NuttShell (NSH) configuration is also available. + support. A verified NuttShell (NSH) configuration is also available. </p> </td> </tr> @@ -709,7 +826,7 @@ </p> <p> <b>STATUS:</b> - The basic port (timer interrupts, serial ports, network, framebuffe, etc.) is complete. + The basic port (timer interrupts, serial ports, network, framebuffer, etc.) is complete. All implemented features have been verified with the exception of the USB device-side driver; that implementation is complete but completely untested. </p> @@ -755,7 +872,7 @@ </p> <p> <b>STATUS:</b> - This port is availble as of release 0.3.18 of NuttX. The port is basically complete + This port is available as of release 0.3.18 of NuttX. The port is basically complete and many examples run correctly. However, there are remaining instabilities that make the port un-usable. The nature of these is not understood; the behavior is that certain SH-1 instructions stop working as advertised. This could be a silicon diff --git a/Documentation/NuttXScreenShot.jpg b/Documentation/NuttXScreenShot.jpg new file mode 100644 index 0000000000000000000000000000000000000000..199686b507e240e7ab356be499bfcf4e683fdb53 GIT binary patch literal 5950 zcmeHKcU05aw*H0CR1iWHP>`yCz(6P>#X=87DWL=c7l9CZM*^taaij`}5D-F9ARq~# zbm=NpIzdXLIDm9ix}rcX4i1CPtasnMwcc9yk9)F`wf8>X-upXepBBmx<yU|irm3R| zfIuKXd-nrS#sLnE04Edx=<5Sw007YMes>#X2Vhn6cChtzus?at$rpW6OGp0-Wf)Kc zXu#Ce)L@$39~v4OS~>=Ly4}Wf<j5fg2onnngb4y+<v7mC%ErwOfgIyM#(m-hA0Hnp zr+|<Euh4N`KHjfEK)bGVv~)-5>5uZVLD+czcB4E4AoRcz=vOdE0HA_^zz`6n5#ath zuCHxx3}1g~>8NSw!MlAInE?=(3PeZ8Km`I*gTMAsfvG_>v=A0{4wI~2I#xD0--KdL zegSDiV^g1aEU8bnNKodYpYSEyIIo|Vc0=&&2BrcZj1GWkslYUJ)VrOMkln0c8d}<2 zz_<J$DhM@)QCu&Wmc`Jkh=vua_VWvAnTyZ)Z7Ht-2Jmh$2p9sK2ev}!N~FIM`oA^M z7k#HQ9hd~uGF^93*@EjBQLC^CJE5L*bA6^+fFWdepj9*}uNRNKujCOMAej(mh}{TM z#-`$q;6#uVQ=&!rlRGYL8H@i&2$%3Z@z`NZJiN!hHYuR+l*szfQfGqP=}4NwTV;#Y zO<vqb2a7+jH(FQoautW-As5Q_fPxoaZy+b0Mh)6E$X|Jtd77hY4~JH=Zm%(e1TF@k z+PD)ms0R0N(R424YmpOD$XEulno;-z#OxmK!Mh;IWh;$^qH)}5XG69l$UU6w9;aG= zWvBxqOyHj`dpONKN}Po)p{@_})USNcUEn{0`VH2_fq@6Deox69p$XZ8D%Q><ECqO( zfa|qSN9!I!QGohQMwrkAnz+9z{ZU-5McZckvdQ#0_cTZG8L1}Y`+cZ2`?;gf00jU5 zU3ZyptrzCyW)`_^8{vubu&s8hCAYhU&d*!=W%sicsBjOeIIT|;`;+>Oa%=Avwm2Gi zE#5zW#UHJ#zcezo%(D?q7g5K98xy=iihZsi)Zcux^LIn<gJp#VpP)vM*JnlE!vEW` zJ4gT9De*y`D>i#+6PiohpF>ZZ2P5N_LQXs`Jtbso$Fq~p-K`m_dQIZ}iRm@zC4TAV z4Q|4=+hJa5Axzd+|7tDFRr#epPOWD*u*;bn@UHXTf-6SLduSTmT?D|M0Kmg1c>d*6 zfBN&o(`Q|S?@$1d@u8Cxzyo`Ic3U24Hxy)8sn)RKnIqchl_x#)386kaD1z=kJ#Q5O z>u=1JKw};BPiGG*38M)PorMVFl4EwR(A%Eb9lCziYT3tXRzz|9H8W$*QC%@(-gz1- z*s@%xq}AJjbXP2N%PgcwC<Z32#BnUYrHM7QrZ_YeBkS&~2*saG94U|?l}*1PMw^!D zTY6cDo8Uc!tpXaTC&fGC%vFVx6DLUvHxh`%KITLho#po?cG8F1rqEcuOUDWKQt%c~ zmI)VlPMY~cbd0H|ED_sAcC2lvGq~+O*Qr_7hSDvm=@!dxftg`j;x)w)nF%>CiK?l! znpa-Z?8R==!o_1B4CYMdM~p>e?oHC82$w7gSlDLe$P~QlZEKaxJ13h<*|ofl%SCeC z>>AInai&(9r^Iw{qSW17wZkh5g_#Ot@<g*nzBpaN5tGFc{k|HaGus%|7sj4`Q`4tw z&vXu)!&|w>7)3vg$TM;-#dGx+aADkAuS?|iI{5_&yJ#7!>j^^Mk9hf?C=+q1sBWt2 z<`rsuVZ56A6NzI!S?!g+IQ+9*r_E=x6hf~YToh+Q$hQrSchoPIs{%s{%`C8CjJa>& zp+2+ij|qi}>JmD+^6kko{BS~v)4hZOxVGi!E!M`Sq~X!XUavluLL#!zM@l{4<jEuX zjaLz9Kg`yPv1q;b4swAJs7kDXA9Qw8=XsAba)GYevteVQ#`1dqpfJgfQAu;MknNYZ zt@TK;b-O8jnN1Sbe$BhrJW|nY;kY?cUVnb1(b{Xeaz>c{bT=vn{%XdwQYJH632r=) zB41Mpb%~F;ai*xbqFOGZW5n|6d{d4F|G6;d#w2_BCLU{zKsi{NhDpk2lN=j4mwVVY z=?$jl!Q)b=jtno&sD>6QY?k6I@*gs-%??V&B*w!X%>?idE5vF#`t3Wj!n+VI9|B;S z#hoTRB9{7s<K?zxkc}*SU6}Xvsb1LvaTtHLXc=6wv`b&?7gOviNgR?H!tm_RTj-am zFe2Bc)F&h4-P9-RcISmDz+t`en>Dqzqd#puSpv<6{MiQp?{Bu4{j*q>T+4M%?FqoR zo8;hDyFXsE0^P!e{o~el9sFa~8rd(_HXAq``4?fonW$J3dGj6L){pD>U-E9~zq6IJ zB`QPSSy>PBZCGh|Mo0K7*MD~@?2<tE=B-hHz~S+m9{0zetjKN6y;<&|02PttYk@(M zMT@czKt>l1#0EDHL~)E(*?<Z-B&vPuXwghb-N{&P>r(Ubccf2@=pwga{1Wtn@@AxL z?ViHjdv&-%_g7R1W|hq;a8HrTY^rcide#Z7PM;>N?<p=CQSPHs|4aeRbQt0nep5pB za)D*R-S@L}e@IN1A+4FT$AUUTl=IlN0Esg9pbP{8BbVc5JOdYvAA|)l0jx*Vd+rFf zW{O`Nl}AnlMAP|_uSHBCZq*0AyYJ9;E<ppWl+#{w8S>ygPI6gU_lgv<grQQ)D7;_~ zD0`yMVeC|dGtEM|ZPMv^L-swK=B+B%>c(Y>3$^|oGE*mD0;Rv<!h5diCk3PnKjJJT zhgxOjshjTMxR1^ie_(Aaqgo&SsXf8(bmSgRaF0{s1M6xOmv;=F`NM0;Ge1qfZ|QU^ z?RPE=bh($1gP;JF&yY4%F*i{@4MuEF0yrbz)u?r>+R}UWE!(`qG%JSy=FDF!^zV*+ zCPAC7GzxHn=}SOMbXeTu83PIs6SiFgugLBDx&ZOO;d=)v4ICR%VUTjYg?ZW)t&(dJ z-cejWKN7}W2=8wbm%N&nw0&s(bIlIvmeCRgc#8YT#h2WTilqs~k5d3Ih4(V&rSk%A zj_7~66Wc+*WbSOu_mTC+q~I!dQrLFmo2RW?&;E<un}?t4{f_T+%!Fo(=6T<CsCa$G zV~uu9ONnc7$6GgMsx?DiZ{6%vVO^GlWKh<J;2W*sfF$~BnS4jjb(wY9MCMBO`7S8h zDBciDZN@2NoznIPKu-aH@j!*`n#)=j6GXm<2>bYqls0>(CuInjRGD>BfU%67Jkzm^ z%MJr7p_zb~_QCq2w$j$8-jrx8tEyRfN$j-0G*!i2tJbx`$VknVj69k$A_hg*^XFvd znXJXnDZomnT;dh21|OP~Xh~v}7TW7kQ4_%%x#MS)&NCP^K;2wlmR|PyXy5DygL71* z8Fz_GxM1aGIPj#>g566&K?G($Q-a#cvvbu>*U4!wt7oAmD;$}sDrOl@?u0^!k@w2y zlUPk^5o%hwiKQ?s95vXfHgNk0j}_)(qp5hERD`zf6ZNdJa?7#E1*?@Affy~L>`F~* zydkW=4R7%ZCK{($>2moLFn-9)?UYz+N780XDva05#ep4DR=&+b!kYGJq37o(&?$yZ zrjbZCf>Ei?vjArk)d<n3sCNXO9&2KSg|1cNiOkuYF{D*jV8V=5$BbB^hiaLon=@V5 z%S8Ult6yHc?>jNu`|EJeD-^d8PUE=@dzZ*f8NxuRgIjsGTw-M>p?KKT&p6?2^#pNI zeB)#+du!rwuuF@~_G>Fe=ukB5;x7|MliGgDZR}lDgxb_l%PhI>9G~R%p0x58{>$9& zClyi6F^ec<*W=7#f}6o95i4xFsbwLePXZcDmKl_a_j!Ila8gV?!V6Etx8_H<W{&fh z3yT%V_M=yIkj(R9!xA}<5Y8#2$kjkt8-tTy<ppHoDB465H73a(`YJ*%Z#rwbB~Sxy zN-Bk8&`pLgL#LPUUJDl-&W7b(l$8Ic!Ri=YpQWF0zW9~Y7d?ypB&hd^d}qgjXhVso zSdl2gW|Qfo0?SPFJW*=H^7;z5z=&mFo?F|wzI<)3uw<kt!cl&~8P<!y!}Oi8#$qPf zgA(irv$zq_tAP%6cFWe7PmJZmy8gyQVySy&Cw!4W0aUK!6ECH86F3nCa+yTLD`ge; zN}m*;`w_${yGuS?k#ngZ^=7XNDk(vs8EcsQWK8{v<IK%pRxpQ22;TOtwOXz`j-#<@ zX&pY~V$4YQ7oSy3>SB6ua`MfgivD)_BBz}&3UFn8#)mk)+0o^ZHoY?KGxFxs=E%ra zx0;ed$C<O<omZ#VOjKh#EhjAvci@kO0yekWRKy0imFKs1s-{*4Dn;+A{Nv#E`6ffG z3f8%+Wn&o`Jcl+d=jHsJc)5>_`;77hO>U@P0Qp?_!{_h55V-13UB_Ho><zx0m~FN% z=BnKPBjleXDsgOGmKiE;{9z0apZImn!cM^kwc|e=Eqh*!F89dG63+LwW-y6wZbKLc z<q2H`%xhvl?Cs0+jO}F6p10(vOjgoceu>O*eI7q;yy#`KWVzg(E~)4M|JS2JcgdQ} zcLcW|Z_>wRmVI~0uO{gvSLlBbpE#%2S>=JTVX60jH-zsx$98LW^t)F>@DvH<))&<F zDJCB3jvF&;L{|HY`o!Em`B?#R#?pT-n0D{s!Kdh(jPo5^sT0iZ7|!{KUFLKjjkKD4 zsI40P-LrwN3n_vcRj7F!J_nVbtDOqg7_PXQbavK=Da-GFWC;2HA}IIX;Pc7{a^|ND z3GKpt5r#YYr_%jlpf=mDoV=>(=V)Y#R%qy1tB+b^pSI(e0jr)rpg&4Oo4+5;WdfD^ zqO!x?AAtw-zp-Wxc>N~22LFDCAmXg{#dMk0AAtvS5PRDjLt=^cQcnwG?EY%yRO$U# zcivtd;FLXp{Xvvh-Jih&lX;oT{s-K5YUGs1qkeLB0NO6JWk2(g^w}?O_=*L9BPrj3 zzf(BkmV-F*464D|5*`l^dAXIRkV^I8IK8L>6^piY<L#~tQK(A%jVNX9lcw(YST=Hl zdVkQAh-0xwuVeU1Jd~_3ThjP5)x7z#eyXfk?e7+hPVypd&0^vr$nQ)*P8T=3_2xH= za(2gt{^v8xCqt?dm5m)44?hn6X5lqL1&M5P1l+xV)a4Z|3B7Gr_stT!&q4Ax3YUm) zzFD*qlG9(-YorS?a~icox{g1DfB0q*Y}4zuf0NnGLVqOBu1Vgrhw$;61@eu41U1d8 zq6yqtH2gn$K&ArCx;2*RcfQCBl*vr+5bnNqf)SFHH`yt`b1_ig(uc!CpKfwukF`W* Xq}&v5W1imq8yE6jjsLzvM<M?Uwq|dy literal 0 HcmV?d00001 From b81cd8ca207d345cf6477acd43b1361763d88f4d Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 5 Dec 2008 02:36:05 +0000 Subject: [PATCH 0364/1518] Fix tiny drawing errors in frame git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1419 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttXScreenShot.jpg | Bin 5950 -> 5872 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Documentation/NuttXScreenShot.jpg b/Documentation/NuttXScreenShot.jpg index 199686b507e240e7ab356be499bfcf4e683fdb53..f5a9dc1fe721b12d9744247bbcb80ca8cd85ba82 100644 GIT binary patch literal 5872 zcmeHJc|4SB`+tTkWoxV_vZS(xGL{f6vJI1r8EVW>)-kp))`U(SS;DC>mZ72%GnO!D zEU8dgi?O7!MD|dWE#%c1)!SQtyyy4%{qg>B?&tH|&wXFl_qy)yeO=GJtiN1;4Qz)R zniv8g5C|~dc!2dmK-eJA)foU_FhBtS0M3nfqpW`h1oVBJ&f=XMr2<^>SSceD*vWMU zpbxOIZrQShm2IP9V`F3I;O6AmD12O8Te-n}{QO`(Fjzo%r-*={s1O+Z+pgb4#l<Bh zB?UyJ_ee|Z*(o6@@x=*f!<2)agO`(&S3(dhDDk(;`a=NB3A_irW(7$DEMO2T7_?po zh<%yYUxhh|jhdZf3mYfv7p2a20L01y;@HZ`!V0j0z93jww}9B#!TdtPh^#ga0YMRU z3w%QHE@?}v8;R}o1HQXekM2Eo&HIbzjd-!JZdBh3h@FL%jbqD(QVF~vXJz{`&Q~>v z1-wNVeyxp_o!{bjHh}}GkfZvKy^9{%ufGDgH()GaRxofFSPkbWIq=oy?|(rnFxP#} zK?zo+rk?U@`C-I_0{z(o*RkgNWUkx?xWhMQ*nRZX0%qtwv9)a)6YuhV@!r)y%Ah&U z_o^02kPE}%))Nptq$XbI)UO!TT<w1d;=}`$zUX#q`n>Wi+VE28RAs%lNWs$x_uIM0 zPb%U60!F^@uO<W*NYB4~-;$s%7tL0{#EJ5D7rzs#v#pfaQ5-=6A1P(xb~72obUV~) zob1Sy6Ru$5usXI)Ro39(sX*sO(FB99Ok<gxR50<}J^Jv-Tc~j+j!DVjZP8$w9M0lD zxJUj^P$!nV8PH-7<*(vX-?%He76enSQ(<oApEl<bbp+&m<QGY1&7OGWQ$q_S6Q9E9 z)R8csHKbOohL@pv-QgpECIEo4QXbvWw;$BDY|Afe5U^_8UXEkL%0y*Ol4aMrh&AJd zue0Cb6?^Gx7c4p6i>LAlgp_MG8?I#?9r8*VU5*@}X1|9usC!>3`6j>~g3a{~91vTG z+e#DqNAV>_|7A#s)-$y?2Z<j$7Vr`>%bs4zu`A{ffk(8*MJ??b-M3wy1VD)1r7puT zpW$YB%~k4WpD=0FCldR2ECCCKQoqPPZ`xhg#?K?4$iCv5C+LZ5P4kFRwVvu7hqtc* zK<~x|*3;nSX<MacZaFIBK}=d0d0TsYUJs#p_j%FeXNl*AnsR}mCj{#c#;MEbNOBpc ziw?JllEh7~$)oNkjO6p@<&p$b#~ky8%xI-eP=5z*kBD;xf+<m+<yibBkqiTfqb6~s z#UiMU(TbG2TU<sRb!sA}(tECFhef{^-gB+NP}aUyD0wN<mymRl9xoHydPN3*m!FZC zjk2m@%zKl&aw(pQdvOW*!<6{n&Jdk~iWNEPN>qD;F<$M7e!=$qEv|aHjaQv_X`%D^ zb0hT=;g$%Bj6E8LqjtIpDuEkY*%N(eHv1Ou2Q<9M@6*cZqM0@L2NaDUlP92a_vf(n zZU}fngF!j^!D4ZojC2{Ss;<nYZ=z43&nDXO2^@WvyVKaz51wo1qC+H?qf<l-G5Lx! z2twA&3=J9DP|khjp$`N_0gImBr=G>;M}bAu>u%4tb?#L=f73(G($9CV8>%3Zq+3%c z`x5HOTUAvrLQ1K4ilD@{HCmK|)fHe?30c~uSt?3Bd?e~hzH*^sK6Vltb=h8*5vN>R zcBjREF|hpfo4Vv=XefSE^jM#zTyPW#SL08ktOLkVG8Kk|I(I5iezV)tLwAq$3~zp$ z*yVJ#)^%CvEb)`-+eu2C1sB}4rFhgV5{b)u<w#OQ!i5*l)Xg4nT3EEFqVaVUa<?0? zsZCL6p8`*HsWeL5Hf(=+mZeS#%r^6Mfs<vr*(W{tIXt&@@S~aD{c9EPga`cm8t}=r zC))16{bQGws>(9SHZLSM+YSfM%a}naf{hf`9Adb#8>(%RV_FY&9~!>1cgIv)V+C=t zTLxiq7e@}0&vI+Jp+P%1Hq^A!?R?28VoQCQavsVNE|BA&XX3B#Zc#dHU5Uu;K$;X* zL!B0^X!7VR$up}S-jC<bRoC$Pj^o~hrJ0nbHf~=BPQ?0*Pq?aE`S~cI#C#~tEmmf) z4qhF}ez17?j@!P@qs30tc0Dm?F$+nYw#|5eY(GW-+D^?BJ(h;FOfws9&oOYd^N=nQ zl>?f8UP7F_s7l@pQFGGXWl)p#S$eI>$2;Ana|Zio?a#1wh5u{-aD3Zm<G!svQTP6< zHzPyC0nd%I+<mybT*X#YHur;oMyu(0pZUSe;F}6!^s$%oVSG+YK%Ueuyl#r5v~W|} zfv$Q9gkcUP%oTGU+4dW@-3@}Z^-<w`s9)KAU-;Ud>30=Z2$Q+Zt|h^$p}Rf-p!)#8 zQ*yn(w>l7;aktrwp`|q4)EyBu8It2=e$%0IRhRIZ<zD!|x#ft>7gnmoKVU`ev+<t@ z;eH{h5(ZIFtHu_2Fi7u3+w2+TrmvmD13n141~WVAnf2wKgoiD_yHUCJd1lAWAjY## z<zgympxJ`-_ODKOSB!99g&nIJYfW;NDYFA&j>V4U2s>a%_>X~kKikKuFj;KnwH&Lf zdX-aO+JB+->_^8I@&z(X-h6?i6VDCS=z<)(CKvr807eMR*nPB512Ytubn9M!rSlG- zI1(7eJ5l^jpbo2(-Be}H-@(=GUaM@;k*UZ8#&Y0$0-}ac7lWshof@?h4463Zt(i3C z*+Zr$RWK#oG$VLqJ`<-VPIu~;jl!|LEjvq)o3s#O;tVfUxL4NADjlizZ&n=<he}ib z!bLJU?adJ>=!rmQ<sR2rh>77oxKi}N#zP%N$w(b0$tTr(e63vAcja)c)<o{MQ#xFw z{(ZOm1MXcu=sIW@{NZX40Nj(>$Pb8)pVqSLtwEk}_;%nwNz=@d9g@5Sh;3x>dur=i zzGb{I;^Xpyu3c?UD4@7`HD~79;mq{ovPjLC`g+>OKdA>KbZtz1(6|J0!h+w0dP`+= z$2y=}FF_hy2QF&Ps2+x7v`BFAnAWZXEMC2ip$_o(>%hab#T}B#;Mey$st&)GS$kqM zs;<Jfy0ymp+VaJJ!2cc%w$Lf9&pV#Oj4k0K+nT(nrv}D(s^a`1J*&e6@uq8f%_)-w z=A$)_k_ftO%N3!|A^~OWmo(w~bWT_=s&rZ=ugxgx6Sned+{xeOhlJihQ}Y#3E7(x> z|N9T%yqdl+GEi$UucwdpR{Gr3V5OH9P-%(|QdOBK>CG8|Q_jcM?8?r}MJ(QUrwOHw zxZTh~che9hM#@1t(@ixIF_R$+cL(?B9Ogbz3-NGopqhIxIzI7(B8AJ-En5|p+!EEt zgh}nxe2Ci(O&O@;Sc&s$u7kUAhDml)X$}9D9!;*1iei37N(%%`iN0PoNf1C(qx6kx zlBm!`q;q$Ve%BvdV(6fwbykWGRHBSc?;X!7Ewky5ev6(Pla4cj-=P`Wk}RN|jil2Z zQ2A?GG&gfuU~sFohpfW0X2SAQB2>cL%}FSzv}}#PJ<*D8gq@rm!lqi(TSa38$#AO4 z!$2HDFG@ZpW|}Pa!j@8g+7z86o;jY~k3qKvCyb$+#}o>@^hymqa2!_}l6KMTS02yM z#mC!TGhTE!i^9_k9;pho%7m$syQoecWzW@<Xf5PohLxXX!f@pfWlC{DDqiSW5+lUz zsp{G*v=-!LEcEE*A^00(ze9~etrg^IVuVeW`txkxl=&CwWsm)5MQ7e<IX{V;a>le4 zRxrpOCuC*NiA`2E1t_`_<U)#Sx5^FQN6Eo&6plxElPIKTc~S0}gS*Q1D&(tmVn3K* zwofWBl(KVBxYYLOh4YP#+^&AKBbcN<EW*&aUs))kBg!myG;8!}umRGlor(;?)>}X= zTpN&Wr`^)h?D(f+RQ#8^E8|Rk-|tVuljewzUrcqjLwv;Za4uc37E1RMWn#$7^;S9g zHksH-ipqk`g*j2_UYp=tk49~Jp0W3p6pTE|MdK|F+J+)QVYoy~1;m|hB_WjcwO)Dq zV5bKTv$jD?JY@`1e@hC5>Pc%sPLVe@nv;2yW9iSyBB*@zObV*wkgg}qH`O;eic;Zl z%y&oh1aZ-9{K9S>9SG#+Vo+X6P|cjnSlH#cpl$6aiKf<%)jM*9dE?X5n|*tVgL<E@ z`F;o@PG$6_q=XH6QIb6D>1%xJz^>IXU&`ombE{YS=-jAp@4(V>Z|~}JUmeYt`wsfF z*pGfh=*73#ys@$Pj4a#}xV+k^JK4P!)VUItI<nA3lmAoq40GrFp$4P#7euSn;$ht9 zUM|~AsRz1Br2aPO+b5ZJcPcWRWi<Rd`tR+}-<K!q8v5%>MG+Uye0TU$i?hILg~wLZ zC_Cbyd&oClw3+x8`oi%eAm1b3E!+dyLrgJU<EvvqNdxxUVg(+^bVTkXWr^hD_}qLQ zFgv#vY}QiYm0~AwiE)8YR&L}Xo^X~|bg8?acw55cg4hpdH6O8p2?n=2d(cA~mxwy$ zp7qM!ZGxA^`+m4Mgp6z=;%-1Z(?+f9FqQuDzHxs@ebQu}^z77AWz+3Tl3MtbH2i?- zgWY$U8QIH;vm%~-(daj~jrC%GxH)jNVq~2AG@A<}Cm<RV51c{_80GeagX3_%EWaOa zA|D7QDdn&aibL9)O#P={l3KO@{|TzkoLKRBH<<b9rjl{Nw<a`A>U;2iYHhJrybw{y zvzxBJQ$z1t4$+H7qZ2FAQULANPZnPVprW||1|f_`q+=Op;Pb5+*d+B8@r&<2!~G&C z8zPXM=aX2*K+ux+DD_PPbZ3EsU(@kUr1@OoGO_S;dY@zSOxnlOLq}Ok{PqQAw~ES8 z`iq?dV4wEQihossm>MD5`5TZ5uQr#+w=ypHfz0RpoLspM^&011kQeh((&?cwhm1}` zbh6ik1OGgNF_n-niTK01deez^LrS0KcuC#wER&~ZVMH~B>P;u$F0<B&8iR~I+eP3{ zqumE@Bj0U0iQD8M6<(2a$kK&pTVe2~6F(-8s4Z+AMMG%^vB>kAPIhndFqTp##S8Y- z9{b;&47o^H6*JWP(WNJ;G?%cw4-r9!A`uPK&kEOpttWYJy7*f?Em^9}d2$Fbd$%;` S*v^Ll{>86T{NGF0d;SGL89Ma< literal 5950 zcmeHKcU05aw*H0CR1iWHP>`yCz(6P>#X=87DWL=c7l9CZM*^taaij`}5D-F9ARq~# zbm=NpIzdXLIDm9ix}rcX4i1CPtasnMwcc9yk9)F`wf8>X-upXepBBmx<yU|irm3R| zfIuKXd-nrS#sLnE04Edx=<5Sw007YMes>#X2Vhn6cChtzus?at$rpW6OGp0-Wf)Kc zXu#Ce)L@$39~v4OS~>=Ly4}Wf<j5fg2onnngb4y+<v7mC%ErwOfgIyM#(m-hA0Hnp zr+|<Euh4N`KHjfEK)bGVv~)-5>5uZVLD+czcB4E4AoRcz=vOdE0HA_^zz`6n5#ath zuCHxx3}1g~>8NSw!MlAInE?=(3PeZ8Km`I*gTMAsfvG_>v=A0{4wI~2I#xD0--KdL zegSDiV^g1aEU8bnNKodYpYSEyIIo|Vc0=&&2BrcZj1GWkslYUJ)VrOMkln0c8d}<2 zz_<J$DhM@)QCu&Wmc`Jkh=vua_VWvAnTyZ)Z7Ht-2Jmh$2p9sK2ev}!N~FIM`oA^M z7k#HQ9hd~uGF^93*@EjBQLC^CJE5L*bA6^+fFWdepj9*}uNRNKujCOMAej(mh}{TM z#-`$q;6#uVQ=&!rlRGYL8H@i&2$%3Z@z`NZJiN!hHYuR+l*szfQfGqP=}4NwTV;#Y zO<vqb2a7+jH(FQoautW-As5Q_fPxoaZy+b0Mh)6E$X|Jtd77hY4~JH=Zm%(e1TF@k z+PD)ms0R0N(R424YmpOD$XEulno;-z#OxmK!Mh;IWh;$^qH)}5XG69l$UU6w9;aG= zWvBxqOyHj`dpONKN}Po)p{@_})USNcUEn{0`VH2_fq@6Deox69p$XZ8D%Q><ECqO( zfa|qSN9!I!QGohQMwrkAnz+9z{ZU-5McZckvdQ#0_cTZG8L1}Y`+cZ2`?;gf00jU5 zU3ZyptrzCyW)`_^8{vubu&s8hCAYhU&d*!=W%sicsBjOeIIT|;`;+>Oa%=Avwm2Gi zE#5zW#UHJ#zcezo%(D?q7g5K98xy=iihZsi)Zcux^LIn<gJp#VpP)vM*JnlE!vEW` zJ4gT9De*y`D>i#+6PiohpF>ZZ2P5N_LQXs`Jtbso$Fq~p-K`m_dQIZ}iRm@zC4TAV z4Q|4=+hJa5Axzd+|7tDFRr#epPOWD*u*;bn@UHXTf-6SLduSTmT?D|M0Kmg1c>d*6 zfBN&o(`Q|S?@$1d@u8Cxzyo`Ic3U24Hxy)8sn)RKnIqchl_x#)386kaD1z=kJ#Q5O z>u=1JKw};BPiGG*38M)PorMVFl4EwR(A%Eb9lCziYT3tXRzz|9H8W$*QC%@(-gz1- z*s@%xq}AJjbXP2N%PgcwC<Z32#BnUYrHM7QrZ_YeBkS&~2*saG94U|?l}*1PMw^!D zTY6cDo8Uc!tpXaTC&fGC%vFVx6DLUvHxh`%KITLho#po?cG8F1rqEcuOUDWKQt%c~ zmI)VlPMY~cbd0H|ED_sAcC2lvGq~+O*Qr_7hSDvm=@!dxftg`j;x)w)nF%>CiK?l! znpa-Z?8R==!o_1B4CYMdM~p>e?oHC82$w7gSlDLe$P~QlZEKaxJ13h<*|ofl%SCeC z>>AInai&(9r^Iw{qSW17wZkh5g_#Ot@<g*nzBpaN5tGFc{k|HaGus%|7sj4`Q`4tw z&vXu)!&|w>7)3vg$TM;-#dGx+aADkAuS?|iI{5_&yJ#7!>j^^Mk9hf?C=+q1sBWt2 z<`rsuVZ56A6NzI!S?!g+IQ+9*r_E=x6hf~YToh+Q$hQrSchoPIs{%s{%`C8CjJa>& zp+2+ij|qi}>JmD+^6kko{BS~v)4hZOxVGi!E!M`Sq~X!XUavluLL#!zM@l{4<jEuX zjaLz9Kg`yPv1q;b4swAJs7kDXA9Qw8=XsAba)GYevteVQ#`1dqpfJgfQAu;MknNYZ zt@TK;b-O8jnN1Sbe$BhrJW|nY;kY?cUVnb1(b{Xeaz>c{bT=vn{%XdwQYJH632r=) zB41Mpb%~F;ai*xbqFOGZW5n|6d{d4F|G6;d#w2_BCLU{zKsi{NhDpk2lN=j4mwVVY z=?$jl!Q)b=jtno&sD>6QY?k6I@*gs-%??V&B*w!X%>?idE5vF#`t3Wj!n+VI9|B;S z#hoTRB9{7s<K?zxkc}*SU6}Xvsb1LvaTtHLXc=6wv`b&?7gOviNgR?H!tm_RTj-am zFe2Bc)F&h4-P9-RcISmDz+t`en>Dqzqd#puSpv<6{MiQp?{Bu4{j*q>T+4M%?FqoR zo8;hDyFXsE0^P!e{o~el9sFa~8rd(_HXAq``4?fonW$J3dGj6L){pD>U-E9~zq6IJ zB`QPSSy>PBZCGh|Mo0K7*MD~@?2<tE=B-hHz~S+m9{0zetjKN6y;<&|02PttYk@(M zMT@czKt>l1#0EDHL~)E(*?<Z-B&vPuXwghb-N{&P>r(Ubccf2@=pwga{1Wtn@@AxL z?ViHjdv&-%_g7R1W|hq;a8HrTY^rcide#Z7PM;>N?<p=CQSPHs|4aeRbQt0nep5pB za)D*R-S@L}e@IN1A+4FT$AUUTl=IlN0Esg9pbP{8BbVc5JOdYvAA|)l0jx*Vd+rFf zW{O`Nl}AnlMAP|_uSHBCZq*0AyYJ9;E<ppWl+#{w8S>ygPI6gU_lgv<grQQ)D7;_~ zD0`yMVeC|dGtEM|ZPMv^L-swK=B+B%>c(Y>3$^|oGE*mD0;Rv<!h5diCk3PnKjJJT zhgxOjshjTMxR1^ie_(Aaqgo&SsXf8(bmSgRaF0{s1M6xOmv;=F`NM0;Ge1qfZ|QU^ z?RPE=bh($1gP;JF&yY4%F*i{@4MuEF0yrbz)u?r>+R}UWE!(`qG%JSy=FDF!^zV*+ zCPAC7GzxHn=}SOMbXeTu83PIs6SiFgugLBDx&ZOO;d=)v4ICR%VUTjYg?ZW)t&(dJ z-cejWKN7}W2=8wbm%N&nw0&s(bIlIvmeCRgc#8YT#h2WTilqs~k5d3Ih4(V&rSk%A zj_7~66Wc+*WbSOu_mTC+q~I!dQrLFmo2RW?&;E<un}?t4{f_T+%!Fo(=6T<CsCa$G zV~uu9ONnc7$6GgMsx?DiZ{6%vVO^GlWKh<J;2W*sfF$~BnS4jjb(wY9MCMBO`7S8h zDBciDZN@2NoznIPKu-aH@j!*`n#)=j6GXm<2>bYqls0>(CuInjRGD>BfU%67Jkzm^ z%MJr7p_zb~_QCq2w$j$8-jrx8tEyRfN$j-0G*!i2tJbx`$VknVj69k$A_hg*^XFvd znXJXnDZomnT;dh21|OP~Xh~v}7TW7kQ4_%%x#MS)&NCP^K;2wlmR|PyXy5DygL71* z8Fz_GxM1aGIPj#>g566&K?G($Q-a#cvvbu>*U4!wt7oAmD;$}sDrOl@?u0^!k@w2y zlUPk^5o%hwiKQ?s95vXfHgNk0j}_)(qp5hERD`zf6ZNdJa?7#E1*?@Affy~L>`F~* zydkW=4R7%ZCK{($>2moLFn-9)?UYz+N780XDva05#ep4DR=&+b!kYGJq37o(&?$yZ zrjbZCf>Ei?vjArk)d<n3sCNXO9&2KSg|1cNiOkuYF{D*jV8V=5$BbB^hiaLon=@V5 z%S8Ult6yHc?>jNu`|EJeD-^d8PUE=@dzZ*f8NxuRgIjsGTw-M>p?KKT&p6?2^#pNI zeB)#+du!rwuuF@~_G>Fe=ukB5;x7|MliGgDZR}lDgxb_l%PhI>9G~R%p0x58{>$9& zClyi6F^ec<*W=7#f}6o95i4xFsbwLePXZcDmKl_a_j!Ila8gV?!V6Etx8_H<W{&fh z3yT%V_M=yIkj(R9!xA}<5Y8#2$kjkt8-tTy<ppHoDB465H73a(`YJ*%Z#rwbB~Sxy zN-Bk8&`pLgL#LPUUJDl-&W7b(l$8Ic!Ri=YpQWF0zW9~Y7d?ypB&hd^d}qgjXhVso zSdl2gW|Qfo0?SPFJW*=H^7;z5z=&mFo?F|wzI<)3uw<kt!cl&~8P<!y!}Oi8#$qPf zgA(irv$zq_tAP%6cFWe7PmJZmy8gyQVySy&Cw!4W0aUK!6ECH86F3nCa+yTLD`ge; zN}m*;`w_${yGuS?k#ngZ^=7XNDk(vs8EcsQWK8{v<IK%pRxpQ22;TOtwOXz`j-#<@ zX&pY~V$4YQ7oSy3>SB6ua`MfgivD)_BBz}&3UFn8#)mk)+0o^ZHoY?KGxFxs=E%ra zx0;ed$C<O<omZ#VOjKh#EhjAvci@kO0yekWRKy0imFKs1s-{*4Dn;+A{Nv#E`6ffG z3f8%+Wn&o`Jcl+d=jHsJc)5>_`;77hO>U@P0Qp?_!{_h55V-13UB_Ho><zx0m~FN% z=BnKPBjleXDsgOGmKiE;{9z0apZImn!cM^kwc|e=Eqh*!F89dG63+LwW-y6wZbKLc z<q2H`%xhvl?Cs0+jO}F6p10(vOjgoceu>O*eI7q;yy#`KWVzg(E~)4M|JS2JcgdQ} zcLcW|Z_>wRmVI~0uO{gvSLlBbpE#%2S>=JTVX60jH-zsx$98LW^t)F>@DvH<))&<F zDJCB3jvF&;L{|HY`o!Em`B?#R#?pT-n0D{s!Kdh(jPo5^sT0iZ7|!{KUFLKjjkKD4 zsI40P-LrwN3n_vcRj7F!J_nVbtDOqg7_PXQbavK=Da-GFWC;2HA}IIX;Pc7{a^|ND z3GKpt5r#YYr_%jlpf=mDoV=>(=V)Y#R%qy1tB+b^pSI(e0jr)rpg&4Oo4+5;WdfD^ zqO!x?AAtw-zp-Wxc>N~22LFDCAmXg{#dMk0AAtvS5PRDjLt=^cQcnwG?EY%yRO$U# zcivtd;FLXp{Xvvh-Jih&lX;oT{s-K5YUGs1qkeLB0NO6JWk2(g^w}?O_=*L9BPrj3 zzf(BkmV-F*464D|5*`l^dAXIRkV^I8IK8L>6^piY<L#~tQK(A%jVNX9lcw(YST=Hl zdVkQAh-0xwuVeU1Jd~_3ThjP5)x7z#eyXfk?e7+hPVypd&0^vr$nQ)*P8T=3_2xH= za(2gt{^v8xCqt?dm5m)44?hn6X5lqL1&M5P1l+xV)a4Z|3B7Gr_stT!&q4Ax3YUm) zzFD*qlG9(-YorS?a~icox{g1DfB0q*Y}4zuf0NnGLVqOBu1Vgrhw$;61@eu41U1d8 zq6yqtH2gn$K&ArCx;2*RcfQCBl*vr+5bnNqf)SFHH`yt`b1_ig(uc!CpKfwukF`W* Xq}&v5W1imq8yE6jjsLzvM<M?Uwq|dy From cb141d8bb27e1cb74901ada03fb10eb1244d617b Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 5 Dec 2008 14:04:37 +0000 Subject: [PATCH 0365/1518] Clean-up and document NX configuration settings git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1420 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 +- Documentation/NuttxPortingGuide.html | 60 ++++++++++++++++++++-------- 2 files changed, 45 insertions(+), 17 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index f73f1008e5..e333675e9a 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -547,7 +547,7 @@ <b>Look at all those files and features... How can it be a tiny OS?</b>. The NuttX feature list (above) is fairly long and if you look at the NuttX source tree, you will see that there are hundreds of source files comprising - NuttX. How can NuttX be a tiny OS will all of that? + NuttX. How can NuttX be a tiny OS with all of that? </p> <center><table width="90%"> diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 01ef85086c..e40a8d4e2b 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -16,7 +16,7 @@ </b></big></h1> <p><small>by</small></p> <p>Gregory Nutt</p> - <p><small>Last Update: November 28, 2008</small></p> + <p><small>Last Update: December 5, 2008</small></p> </center> <center><h1>Table of Contents</h1></center> @@ -1857,7 +1857,7 @@ The system can be re-made subsequently by just typing <code>make</code>. <h2>Graphics related configuration settings</h3> <ul> <li> - <code>CONFIG_NXGRAPHICS</code> + <code>CONFIG_NX</code> Enables overall support for graphics library and NX </li> </ul> @@ -1865,35 +1865,63 @@ The system can be re-made subsequently by just typing <code>make</code>. <h3>NX configuration setting</h3> <ul> <li> - <code>CONFIG_NX_MULTIUSER</code> - Configures NX in multi-user mode + <code>CONFIG_NX_MULTIUSER</code>: + Configures NX in multi-user mode. </li> <li> - <code>CONFIG_NX_NPLANES</code> + <code>CONFIG_NX_NPLANES</code>: Some YUV color formats requires support for multiple planes, one for each color component. Unless you have such special - hardware, this value should be undefined or set to 1 + hardware, this value should be undefined or set to 1. </li> <li> - <code>CONFIG_NXGLIB_DISABLE_1BPP</code>, <code>CONFIG_NXGLIB_DISABLE_2BPP</code>, - <code>CONFIG_NXGLIB_DISABLE_4BPP</code>, <code>CONFIG_NXGLIB_DISABLE_8BPP</code> - <code>CONFIG_NXGLIB_DISABLE_16BPP</code>, <code>CONFIG_NXGLIB_DISABLE_24BPP</code>, and - <code>CONFIG_NXGLIB_DISABLE_32BPP + <code>CONFIG_NX_DISABLE_1BPP</code>, <code>CONFIG_NX_DISABLE_2BPP</code>, + <code>CONFIG_NX_DISABLE_4BPP</code>, <code>CONFIG_NX_DISABLE_8BPP</code> + <code>CONFIG_NX_DISABLE_16BPP</code>, <code>CONFIG_NX_DISABLE_24BPP</code>, and + <code>CONFIG_NX_DISABLE_32BPP</code>: NX supports a variety of pixel depths. You can save some memory by disabling support for unused color depths. </li> <li> - <code>CONFIG_NXGL_PACKEDMSFIRST</code> + <code>CONFIG_NX_PACKEDMSFIRST</code>: If a pixel depth of less than 8-bits is used, then NX needs to know if the pixels pack from the MS to LS or from LS to MS </li> <li> - <code>CONFIG_NX_MOUSE</code> - Build in support for mouse input + <code>CONFIG_NX_MOUSE</code>: + Build in support for mouse input. </li> <li> - <code>CONFIG_NX_KBD</code> - Build in support of keypad/keyboard input + <code>CONFIG_NX_KBD</code>: + Build in support of keypad/keyboard input. + </li> + <li> + <code>CONFIG_NXTK_BORDERWIDTH</code>: + Specifies with with of the border (in pixels) used with + framed windows. The default is 4. + </li> + <li> + <code>CONFIG_NXTK_BORDERCOLOR1</code> and <code>CONFIG_NXTK_BORDERCOLOR2</code>: + Specify the colors of the border used with framed windows. + <code>CONFIG_NXTK_BORDERCOLOR2</code> is the shadow side color and so + is normally darker. The default is medium and dark grey, + respectively + </li> + <li> + <code>CONFIG_NXTK_AUTORAISE</code>: + If set, a window will be raised to the top if the mouse position + is over a visible portion of the window. Default: A mouse + button must be clicked over a visible portion of the window. + </li> + <li> + <code>CONFIG_NXFONTS_CHARBITS</code>: + The number of bits in the character set. Current options are + only 7 and 8. The default is 7. + </li> + <li> + <code>CONFIG_NXFONT_SANS</code>: + At present, there is only one font. But if there were were more, + then this option would select the sans serif font. </li> </ul> @@ -1902,7 +1930,7 @@ The system can be re-made subsequently by just typing <code>make</code>. <li> <code>CONFIG_NX_BLOCKING</code> Open the client message queues in blocking mode. In this case, - <code>nx_eventhandler()</code> will never return. + <code>nx_eventhandler()</code> will not return until a message is received and processed. </li> <li> <code>CONFIG_NX_MXSERVERMSGS</code> and <code>CONFIG_NX_MXCLIENTMSGS</code> From 624bb7d9873cc26074f3ad35323adcb33ff72644 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 5 Dec 2008 22:57:27 +0000 Subject: [PATCH 0366/1518] Document NX Graphics Subsystem git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1421 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NXGraphicsSubsystem.html | 2620 ++++++++++++++++++++++++ Documentation/NXOrganization.gif | Bin 0 -> 34880 bytes Documentation/NuttX.html | 14 +- Documentation/NuttxPortingGuide.html | 284 ++- 4 files changed, 2821 insertions(+), 97 deletions(-) create mode 100644 Documentation/NXGraphicsSubsystem.html create mode 100644 Documentation/NXOrganization.gif diff --git a/Documentation/NXGraphicsSubsystem.html b/Documentation/NXGraphicsSubsystem.html new file mode 100644 index 0000000000..cfe66daaea --- /dev/null +++ b/Documentation/NXGraphicsSubsystem.html @@ -0,0 +1,2620 @@ +<html> +<head> +<title>NX Graphics Subsystem</title> +<meta name="author" content="Gregory Nutt"> +</head> + +<body background="backgd.gif"> +<hr><hr> +<table width ="100%"> + <tr align="center" bgcolor="#e4e4e4"> + <td> + <h1><big><font color="#3c34ec"> + <i>NX Graphics Subsystem</i> + </font></big></h1> + <p>Last Updated: December 5, 2008</p> + </td> + </tr> +</table> +<hr><hr> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <h1>Table of Contents</h1> + </td> + </tr> +</table> + +<table width="100%"> +<tr> + <td align="left" valign="top"> + <p> + <big><b>1.0</b> <a href="#Introduction">Introduction</a></big> + </p> + <ul> + <p> + <i><b>1.1</b> <a href="#Overview">Overview</a><br></i> + <i><b>1.2</b> <a href="#Objectives">Objectives</a></i><br> + <i><b>1.3</b> <a href="#Organization">Organization</a></i> + </p> + <p> + <ul> + <i>1.3.1 <a href="#nxgl1">NX Graphics Library (<code>NXGL</code>)</a></i><br> + <i>1.3.2 <a href="#nx1">NX (NXSU and NXMU)</a></i><br> + <i>1.3.3 <a href="#nxtk1">NX Tool Kit (<code>NXTK</code>)</a></i><br> + <i>1.3.4 <a href="#nxfonts1">NX Fonts Support (<code>NXFONTS</code>)</a></i><br> + <i>1.3.5 <a href="#nxwidgets1">NX Widgets (<code>NXWIDGETS</code>)</a></i> + </ul> + </p> + </ul> + <p> + <big><b>2.0</b> <a href="#nxapis">NX User APIs</a></big> + </p> + <ul> + <p> + <i><b>2.1</b> <a href="#nxheaders">NX Header Files</a></i><br> + <i><b>2.2</b> <a href="#nxgl2">NX Graphics Library (<code>NXGL</code>)</a></i> + </p> + <p> + <ul> + <i>2.2.1 <a href="#nxgltypes">NXGL Types</a></i><br> + <i>2.2.1 <a href="#nxglrgb2yuv"><code>nxgl_rgb2yuv()</code></a></i><br> + <i>2.2.2 <a href="#nxglyuv2rgb"><code>nxgl_yuv2rgb()</code></a></i><br> + <i>2.2.3 <a href="#nxglrectcopy"><code>nxgl_rectcopy()</code></a></i><br> + <i>2.2.4 <a href="#nxglrectoffset"><code>nxgl_rectoffset()</code></a></i><br> + <i>2.2.5 <a href="#nxglvectoradd"><code>nxgl_vectoradd()</code></a></i><br> + <i>2.2.6 <a href="#nxglvectorsubtract"><code>nxgl_vectorsubtract()</code></a></i><br> + <i>2.2.7 <a href="#nxglrectintersect"><code>nxgl_rectintersect()</code></a></i><br> + <i>2.2.8 <a href="#nxglrectunion"><code>nxgl_rectunion()</code></a></i><br> + <i>2.2.9 <a href="#nxglnonintersecting"><code>nxgl_nonintersecting()</code></a></i><br> + <i>2.2.10 <a href="#nxglrectoverlap"><code>nxgl_rectoverlap()</code></a></i><br> + <i>2.2.11 <a href="#nxglrectinside"><code>nxgl_rectinside()</code></a></i><br> + <i>2.2.12 <a href="#nxglrectsize"><code>nxgl_rectsize()</code></a></i><br> + <i>2.2.13 <a href="#nxglnullrect"><code>nxgl_nullrect()</code></a></i><br> + <i>2.2.14 <a href="#nxglrunoffset"><code>nxgl_runoffset()</code></a></i><br> + <i>2.2.15 <a href="#nxglruncopy"><code>nxgl_runcopy()</code></a></i><br> + <i>2.2.16 <a href="#nxgltrapoffset"><code>nxgl_trapoffset()</code></a></i><br> + <i>2.2.17 <a href="#nxgltrapcopy"><code>nxgl_trapcopy()</code></a></i><br> + <i>2.2.18 <a href="#nxglcolorcopy"><code>nxgl_colorcopy</code></a></i> + </ul> + </p> + <p> + <i><b>2.3</b> <a href="#nx2">NX</a></i> + </p> + <p> + <ul> + <i>2.3.1 <a href="#nxppdefs">Pre-Processor Definitions</a></i><br> + <i>2.3.2 <a href="#nxtypes">NX Types</a></i><br> + <i>2.3.3 <a href="#nxtypes">NX Server Callbacks</a></i> + <p> + <ul> + <i>2.3.3.1 <a href="#nxcbredraw"><code>redraw()</code></a></i><br> + <i>2.3.3.2 <a href="#nxcbposition"><code>position()</code></a></i><br> + <i>2.3.3.3 <a href="#nxcbmousein"><code>mousein()</code></a></i><br> + <i>2.3.3.4 <a href="#nxcbkbdin"><code>kbdin()</code></a></i> + </ul> + <p> + <i>2.3.4 <a href="#nxruninstance"><code>nx_runinstance()</code> (and <code>nx_run()<code> macro)</a></i><br> + <i>2.3.5 <a href="#nxconnectinstance"><code>nx_connectinstance()</code> (and <code>nx_connect()</code> macro)</a></i><br> + <i>2.3.6 <a href="#nxopen"><code>nx_open()</code></a></i><br> + <i>2.3.7 <a href="#nxdisconnect"><code>nx_disconnect()</code></a></i><br> + <i>2.3.8 <a href="#nxclose"><code>nx_close()</code></a></i><br> + <i>2.3.9 <a href="#nxeventhandler"><code>nx_eventhandler()</code></a></i><br> + <i>2.3.10 <a href="#nxeventnotify"><code>nx_eventnotify()</code></a></i><br> + <i>2.3.11 <a href="#nxopenwindow"><code>nx_openwindow()</code></a></i><br> + <i>2.3.12 <a href="#nxclosewindow"><code>nx_closewindow()</code></a></i><br> + <i>2.3.13 <a href="#nxrequestbkgd"><code>nx_requestbkgd()</code></a></i><br> + <i>2.3.14 <a href="#nxreleasebkgd"><code>nx_releasebkgd()</code></a></i><br> + <i>2.3.15 <a href="#nxgetposition"><code>nx_getposition()</code></a></i><br> + <i>2.3.16 <a href="#nxsetposition"><code>nx_setposition()</code></a></i><br> + <i>2.3.17 <a href="#nxsetsize"><code>nx_setsize()</code></a></i><br> + <i>2.3.18 <a href="#nxraise"><code>nx_raise()</code></a></i><br> + <i>2.3.19 <a href="#nxlower"><code>nx_lower()</code></a></i><br> + <i>2.3.20 <a href="#nxfill"><code>nx_fill()</code></a></i><br> + <i>2.3.21 <a href="#nxfilltrapezoid"><code>nx_filltrapezoid()</code></a></i><br> + <i>2.3.22 <a href="#nxglrgb2yuv"><code>nx_setbgcolor()</code></a></i><br> + <i>2.3.23 <a href="#nxmove"><code>nx_move()</code></a></i><br> + <i>2.3.24 <a href="#nxbitmap"><code>nx_bitmap()</code></a></i><br> + <i>2.3.25 <a href="#nxkbdin"><code>nx_kbdin()</code></a></i><br> + <i>2.3.26 <a href="#nxmousein"><code>nx_mousein()</code></a></i><br> + </ul> + </p> + </td> + <td align="left" valign="top"> + <p> + <i><b>2.4</b> <a href="#nxtk2">NX Tool Kit (<code>NXTK</code>)</a></i> + </p> + <p> + <ul> + <i>2.4.1 <a href="#nxtktypes"><code>NXTK Types()</code></a></i><br> + <i>2.4.2 <a href="#nxtkopenwindow"><code>nxtk_openwindow()</code></a></i><br> + <i>2.4.3 <a href="#nxtkclosewindow"><code>nxtk_closewindow()</code></a></i><br> + <i>2.4.4 <a href="#nxtkgetposition"><code>nxtk_getposition()</code></a></i><br> + <i>2.4.5 <a href="#nxtksetposition"><code>nxtk_setposition()</code></a></i><br> + <i>2.4.6 <a href="#nxtksetsize"><code>nxtk_setsize()</code></a></i><br> + <i>2.4.7 <a href="#nxtkraise"><code>nxtk_raise()</code></a></i><br> + <i>2.4.8 <a href="#nxtklower"><code>nxtk_lower()</code></a></i><br> + <i>2.4.9 <a href="#nxtkfillwindow"><code>nxtk_fillwindow()</code></a></i><br> + <i>2.4.10 <a href="#nxtkfilltrapwindow"><code>nxtk_filltrapwindow()</code></a></i><br> + <i>2.4.11 <a href="#nxtkmovewindow"><code>nxtk_movewindow()</code></a></i><br> + <i>2.4.12 <a href="#nxtkbitmapwindow"><code>nxtk_bitmapwindow()</code></a></i><br> + <i>2.4.13 <a href="#nxtkopentoolbar"><code>nxtk_opentoolbar()</code></a></i><br> + <i>2.4.14 <a href="#nxtkclosetoolbar"><code>nxtk_closetoolbar()</code></a></i><br> + <i>2.4.15 <a href="#nxtkfilltoolbar"><code>nxtk_filltoolbar()</code></a></i><br> + <i>2.4.16 <a href="#nxtkfilltraptoolbar"><code>nxtk_filltraptoolbar()</code></a></i><br> + <i>2.4.17 <a href="#nxtkmovetoolbar"><code>nxtk_movetoolbar()</code></a></i><br> + <i>2.4.18 <a href="#nxtkbitmaptoolbar"><code>nxtk_bitmaptoolbar()</code></a></i> + </ul> + </p> + <p> + <i><b>2.5</b> <a href="#nxfonts2">NX Fonts Support (<code>NXFONTS</code>)</a></i><br> + </p> + <p> + <ul> + <i>2.5.1 <a href="#nxfontstypes"><code>NXFONTS Types()</code></a></i><br> + <i>2.5.2 <a href="#nxfgetfontset"><code>nxf_getfontset()</code></a></i><br> + <i>2.5.3 <a href="#nxfgetbitmap"><code>nxf_getbitmap()</code></a></i><br> + <i>2.5.4 <a href="#nxfconvertbpp"><code>nxf_convert_*bpp()</code></a></i> + </ul> + </p> + </ul> + <p> + <big><b>Appendix A</b> <a href="#grapicsdirs"><code>graphics/</code> Directory Structure</a></big><br> + <big><b>Appendix B</b> <a href="#nxconfigs">NX Configuration Options</a></big> + </p> + <p> + <ul> + <i><b>B.1</b> <a href="#nxgenconfig">General Configuration Settings</a></i><br> + <i><b>B.2</b> <a href="#nxglconfig">NXGL Configuration Settings</a></i><br> + <i><b>B.3</b> <a href="#nxconfig">NX Configuration Settings</a></i><br> + <i><b>B.4</b> <a href="#nxmuconfig">NX Multi-User (Only) Configuration Settings</a></i><br> + <i><b>B.5</b> <a href="#nxtkconfig">NXTK Configuration Settings</a></i><br> + <i><b>B.6</b> <a href="#nxfpmtsconfig">NXFONTS Configuration Settings</a></i> + </ul> + </p> + <p> + <big><b>Appendix C</b> <a href="#testcoverage">NX Test Coverage</a></big> + </p> + </td> + </tr> +</table> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <h1>1.0 <a name="Introduction">Introduction</a></h1> + </td> + </tr> +</table> + +<h2>1.1 <a name="Overview">Overview</a></h2> +<p> + This document describes the tiny graphics support included in NuttX. + It includes an overview description of that graphics support, detailed + descriptions of the NuttX graphics APIs, and discussion of code organization, + and OS configuration options. +</p> + +<center><table width="480"> + <tr> + <td><a name="screenshot"><img src="NuttXScreenShot.jpg"></a></td> + </tr> + <tr> + <td><small>Figure 1. + This sceen shot shows the final frame for the NuttX example at <code>examples/nx</code> + running on the simulated, Linux x86 platform with simulated framebuffer output to + an X window. + This picture shows to framed windows with (blank) toolbars. + Each window has displayed text as received from the NX keyboard interface + The second window has just been raised to the top of the display. + </small> + </tr> +</table></center> + + +<h2>1.2 <a name="Objectives">Objectives</a></h2> + +<p> + The objective of this development was to provide a tiny windowing system in the + spirit of X, but greatly scaled down and appropriate for most resource-limited + embedded environments. + The current NX implementation supports the general following, high-level features: +</p> +<ul> + <li><b>Virtual Vertical Graphics Space</b>. + Windows that reside in a virtual, <i>vertical</i> space so that it makes + sense to talk about one window being on top of another and obcuring the + window below it. + </li> + <li><b>Client/Server Model</b>. + A standard client server/model was adopted. NX may be considered a server + and other logic that presents the windows are NX clients. + </li> + <li><b>Single- and Multi-User Support</b>. + NX includes <i>front-end</i> logic to either a simple single-thread/single-user + architecture or a separate NX server thread that can serve multiple NX client threads. + In the single-user case, the NX <i>server</i> is simply a set of library + calls; in the multi-user case, NX is a server thread/daemon the serializes + graphics operations from multiple clients. + Other some unique start-up/connection logic, the APIs supported by the single-user + and multi-user front-ends are identical. + Providing both front-ends is consistent with the NuttX commitment to scalability. + </li> + <li><b>Minimal Graphics Toolset</b>. + The actual implementation of the graphics operations is performed by common, + <i>back-end</i> logic. This back-end supports only a primitive set of graphic + and rendering operations. + </li> + <li><b>Framebuffer Device Interface</b>. + NX supports any graphics device using the NuttX framebuffer <i>driver</i> + interface. + (However, the dependency of NX on framebuffer drivers is minimal and the + logic could be extended to other interfaces -- such as a serial LCD -- with + some minimal effort). + <li><b>Transparent to NX Client</b>. + The window client on &quot;sees&quot; the sub-window that is operates in + and does not need to be concerned with the virtual, vertical space (other + that to respond to <i>redraw</i> requests from NX when needed). + </li> + <li><b>Framed Windows and Toolbars</b>. + NX also adds the capability to support windows with frames and toolbars on + top of the basic windowing support. + These are windows such as those shown in the + <a href="#screenshot">screenshot</a> above. + These framed windows sub-divide one one window into three relatively independent + subwindows: A frame, the contained window and an (optional) toolbar window. + </li> + <li><b>Mouse Support</b>. + NX provides support for a mouse or other X/Y pointing devices. + APIs are provided to allow external devices to give X/Y position information + and mouse button presses to NX. + NX will then provide the mouse input to the relevant window clients via callbacks. + Client windows only receive the mouse input callback if the mouse is positioned over a visible + portion of the client window; X/Y position is provided to the client in the relative + coordinate system of the client window. + </li> + <li><b>Keyboard input</b>. + NX also supports keyboard/keypad devices. + APIs are provided to allow external devices to give keypad information to NX. + NX will then provide the mouse input to the top window on the display (the window + that has the <i>focus</i>) via a callback function. + </li> +</ul> + +<h2>1.3 <a name="Organization">Organization</a></h2> + +<p> + NX is organized into 6 (and perhaps someday 7 or 8) logical modules. + These logical modules also correspond to the directory organization. + That NuttX directory organization is discussed in + <a href="#grapicsdirs">Appendix B</a> of this document. + The logic modules are discussed in the following sub-paragraphs. +</p> + +<p> + <center><img src="NXOrganization.gif" width="60%"></center> +</p> + +<h3>1.3.1 <a name="nxgl1">NX Graphics Library (<code>NXGL</code>)</a></h3> + +<p> + NXGLIB is a standalone library that contains low-level graphics utilities and + direct framebuffer rendering logic. NX is built on top NXGLIB. +</p> + +<h3>1.3.2 <a name="nx1">NX (<code>NXSU</code> and <code>NXMU</code>)</a></h3> + +<p> + NX is the tiny NuttX windowing system for raw windows (i.e., simple regions of + graphics memory). + NX includes both a small-footprint, single user implementaton (NXSU) and a somewhat + larger multi-user implentation (NXMU as described below). + Both conform to the same APIs as defined in <code>include/nuttx/nx.h</code> and, hence, + are interchangable<sup>1</sup>. + NX can be used without NXWIDGETS and without NXTOOLKIT for raw window displays. +</p> + +<p> + <sup>1</sup><small>NXMU and NXSU are interchangeable other than (1) certain start-up + and intialization APIs (as described below), and (2) timing. With NXSU, NX APIs + execute immediately; with NXMU, NX APIs defer and serialize the operations and, hence, + introduce different timing and potential race conditions that you would not experience + with NXSU.</small> +</p> + +<p><b>NXNULL?</b> + At one time, I also envisoned a <i>NULL</i> front-end that did not support windowing + at all but, rather, simply provided the entire framebuffer memory as one dumb window. + This has the advantage that the same NX APIs can be used on the one dumb window as + for the other NX windows. + This would be in the NuttX spirit of scalability. +</p> +<p> + However, the same end result can be obtained by using the + <a href="nxrequestbkgd"><code>nx_requestbkgd()</code></a> API. + It still may be possible to reduce the footprint in this usage case by developing + and even thinner NXNULL front-end. + That is a possible future development. +</p> + +<h3>1.3.3 <a name="nxtk1">NX Tool Kit (<code>NXTK</code>)</a></h3> + +<p> + NXTK is a s set of C graphics tools that provide higher-level window drawing + operations. + This is the module where the framed windows and toolbar logic is implemented. + NXTK is built on top of NX and does not depend on NXWIDGETS. +</p> + +<h3>1.3.4 <a name="nxfonts1">NX Fonts Support (<code>NXFONTS</code>)</a></h3> + +<p> + A set of C graphics tools for present (bitmap) font images. + The font implementation is at a very low level or graphics operation, + comparable to the logic in NXGLIB. + NXFONTS does not depend on any NX module other than some utilities and types from NXGLIB. +</p> + +<h3>1.3.5 <a name="nxwidgets1">NX Widgets (<code>NXWIDGETS</code>)</a></h3> + +<p> + I had originally planned a high level, C++, object-oriented library for + object-oriented access to graphics <i>widgets</i>. + However, C++ compilers are not available for some of the targets supported by NuttX. + So I have decided to implement the entire solution in C. + That decision makes the solution somewhat more difficult to work with, but supports all platforms. +</p> +<p> + At this point, the amount of C in the implementation would make conversion to C++ a + more difficult job. + I leave the C++ widget interface to any contributor who may have an interest in such things. +</p> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <h1>2.0 <a name="nxapis">NX User APIs</a></h1> + </td> + </tr> +</table> + +<h2>2.1 <a name="nxheaders">NX Header Files</a></h2> + +<ul><dl> + <dt><code>include/nuttx/nxglib.h + <dd>Describes the NXGLIB C interfaces + <dt><code>include/nuttx/nx.h + <dd>Describes the NX C interfaces + <dt><code>include/nutt/nxtk.h + <dd>Describe the NXTOOLKIT C interfaces + <dt><code>include/nutt/nxfont.h + <dd>Describe sthe NXFONT C interfaces + <dt><code>include/nuttx/nxwidgets.h + <dd>Will describe the NXWIDGETS classes (no longer planned) +</dl></ul> + +<h2>2.2 <a name="nxgl2">NX Graphics Library (<code>NXGL</code>)</a></h2> + +<p> + NXGL provides many APIs, some available for use internally by NX and + others for use by applications as well. + Only those APIs intended for application usage are documented here + See <code>include/nuttx/nxglib.h</code> for the full set of APIs; + those APIs might be of interest if you are rendering directly into + framebuffer memory. +</p> + +<h3>2.2.1 <a name="nxgltypes">NXGL Types</a></h3> + +<p> + <code>nxgl_mxpixel_t</code>. + Holds one device pixel. + NXGLIB will select the smallest size for the <code>nxgl_mxpixel_t</code> + that just contains the pixel: <code>byte</code> if 16, 24, and 32 resolution + support is disabled, <code>uint16</code> if 24, and 32 resolution + support is disabled, or <code>uint32</code>. +</p> + +<p> + <code>nxgl_coord_t</b> + A given coordinate is limited to the screen height an width. If either + of those values exceed 32,767 pixels, then the following will have to need + to change: +</p> +<ul><pre> +typedef sint16 nxgl_coord_t; +</pre></ul> + +<p> + <code>struct nxgl_point_s</code>. Describes a point on the display: +</p> +<ul><pre> +struct nxgl_point_s +{ + nxgl_coord_t x; /* X position, range: 0 to screen width - 1 */ + nxgl_coord_t y; /* Y position, range: 0 to screen height - 1 */ +}; +</pre></ul> + +<p> + <code>struct nxgl_size_s</code>. Describes the size of a rectangular region. +</p> +<ul><pre> +struct nxgl_size_s +{ + nxgl_coord_t w; /* Width in pixels */ + nxgl_coord_t h; /* Height in rows */ +}; +</pre></ul> + +<p> + <code>struct nxgl_rect_s</code>. Describes a positioned rectangle on the display. +</p> +<ul><pre> +struct nxgl_rect_s +{ + struct nxgl_point_s pt1; /* Upper, left-hand corner */ + struct nxgl_point_s pt2; /* Lower, right-hand corner */ +}; +</pre></ul> + +<p> + <code>struct nxgl_run_s</code>. + Describes a run, i.e., a horizontal line. Note that the start/end positions + have fractional precision. This is necessary for good joining of trapezoids + when a more complex shape is decomposed into trapezoids +</p> +<ul><pre> +struct nxgl_run_s +{ + b16_t x1; /* Left X position, range: 0 to x2 */ + b16_t x2; /* Right X position, range: x1 to screen width - 1 */ + nxgl_coord_t y; /* Top Y position, range: 0 to screen height - 1 */ +}; +</pre></ul> + +<p> + <code>struct nxgl_trapezoid_s</code>. + Describes a horizontal trapezoid on the display in terms the run at the + top of the trapezoid and the run at the bottom +</p> +<ul><pre> +struct nxgl_trapezoid_s +{ + struct nxgl_run_s top; /* Top run */ + struct nxgl_run_s bot; /* bottom run */ +}; +</pre></ul> + +<h3>2.2.1 <a name="nxglrgb2yuv"><code>nxgl_rgb2yuv()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +void nxgl_rgb2yuv(ubyte r, ubyte g, ubyte b, ubyte *y, ubyte *u, ubyte *v); +</pre></ul> +<p> + <b>Description:</b> + Convert 8-bit RGB triplet to 8-bit YUV triplet. +</p> + +<h3>2.2.2 <a name="nxglyuv2rgb"><code>nxgl_yuv2rgb()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +void nxgl_yuv2rgb(ubyte y, ubyte u, ubyte v, ubyte *r, ubyte *g, ubyte *b); +</pre></ul> +<p> + <b>Description:</b> + Convert 8-bit RGB triplet to 8-bit YUV triplet. +</p> + +<h3>2.2.3 <a name="nxglrectcopy"><code>nxgl_rectcopy()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +void nxgl_rectcopy(FAR struct nxgl_rect_s *dest, + FAR const struct nxgl_rect_s *src); +</pre></ul> +<p> + <b>Description:</b> + This is essentially <code>memcpy()</code>for rectangles. We don't do structure + assignments because some compilers are not good at that. +</p> + +<h3>2.2.4 <a name="nxglrectoffset"><code>nxgl_rectoffset()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +void nxgl_rectoffset(FAR struct nxgl_rect_s *dest, + FAR const struct nxgl_rect_s *src, + nxgl_coord_t dx, nxgl_coord_t dy); +</pre></ul> +<p> + <b>Description:</b> + Offset the rectangle position by the specified dx, dy values. +</p> + +<h3>2.2.5 <a name="nxglvectoradd"><code>nxgl_vectoradd()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +void nxgl_vectoradd(FAR struct nxgl_point_s *dest, + FAR const struct nxgl_point_s *v1, + FAR const struct nxgl_point_s *v2); +</pre></ul> +<p> + <b>Description:</b> + Add two 2x1 vectors and save the result to a third. +</p> + +<h3>2.2.6 <a name="nxglvectorsubtract"><code>nxgl_vectorsubtract()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +void nxgl_vectsubtract(FAR struct nxgl_point_s *dest, + FAR const struct nxgl_point_s *v1, + FAR const struct nxgl_point_s *v2); +</pre></ul> +<p> + <b>Description:</b> + Add subtract vector <code>v2</code> from vector <code>v1</code> and return the result in vector dest. +</p> + +<h3>2.2.7 <a name="nxglrectintersect"><code>nxgl_rectintersect()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +void nxgl_rectintersect(FAR struct nxgl_rect_s *dest, + FAR const struct nxgl_rect_s *src1, + FAR const struct nxgl_rect_s *src2); +</pre></ul> +<p> + <b>Description:</b> + Return the rectangle representing the intersection of the two rectangles. +</p> + +<h3>2.2.8 <a name="nxglrectunion"><code>nxgl_rectunion()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +void nxgl_rectunion(FAR struct nxgl_rect_s *dest, + FAR const struct nxgl_rect_s *src1, + FAR const struct nxgl_rect_s *src2); +</pre></ul> +<p> + <b>Description:</b> + Given two rectanges, <code>src1</code> and <code>src2</code>, return the larger rectangle that + contains both, <code>dest</code>. +</p> + +<h3>2.2.9 <a name="nxglnonintersecting"><code>nxgl_nonintersecting()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +nxgl_nonintersecting(FAR struct nxgl_rect_s result[4], + FAR const struct nxgl_rect_s *rect1, + FAR const struct nxgl_rect_s *rect2); +</pre></ul> +<p> + <b>Description:</b> + Return the regions of rectangle <code>rect1</code> that do not intersect with + <code>rect2</code>. This will four rectangles, some of which may be + degenerate (and can be picked off with <a href="#nxglnullrect"><code>nxgl_nullrect()<code></a>). +</p> + +<h3>2.2.10 <a name="nxglrectoverlap"><code>nxgl_rectoverlap()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +boolean nxgl_rectoverlap(FAR struct nxgl_rect_s *rect1, + FAR struct nxgl_rect_s *rect2); +</pre></ul> +<p> + <b>Description:</b> + Return TRUE if the two rectangles overlap. +</p> + +<h3>2.2.11 <a name="nxglrectinside"><code>nxgl_rectinside()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +boolean nxgl_rectinside(FAR const struct nxgl_rect_s *rect, + FAR const struct nxgl_point_s *pt); +</pre></ul> +<p> + <b>Description:</b> + Return TRUE if the point <code>pt</code> lies within <code>rect</code>. +</p> + +<h3>2.2.12 <a name="nxglrectsize"><code>nxgl_rectsize()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +void nxgl_rectsize(FAR struct nxgl_size_s *size, + FAR const struct nxgl_rect_s *rect); +</pre></ul> +<p> + <b>Description:</b> + Return the size of the specified rectangle. +</p> + +<h3>2.2.13 <a name="nxglnullrect"><code>nxgl_nullrect()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +boolean nxgl_nullrect(FAR const struct nxgl_rect_s *rect); +</pre></ul> +<p> + <b>Description:</b> + Return TRUE if the area of the retangle is &lt;= 0. +</p> + +<h3>2.2.14 <a name="nxglrunoffset"><code>nxgl_runoffset()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +void nxgl_runoffset(FAR struct nxgl_run_s *dest, + FAR const struct nxgl_run_s *src, + nxgl_coord_t dx, nxgl_coord_t dy); +</pre></ul> +<p> + <b>Description:</b> + Offset the run position by the specified <code>dx</code>, <code>dy</code> values. +</p> + +<h3>2.2.15 <a name="nxglruncopy"><code>nxgl_runcopy()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +void nxgl_runcopy(FAR struct nxgl_run_s *dest, + FAR const struct nxgl_run_s *src); +</pre></ul> +<p> + <b>Description:</b> + This is essentially <code>memcpy()</code>for runs. We don't do structure assignments + because some compilers are not good at that. +</p> + +<h3>2.2.16 <a name="nxgltrapoffset"><code>nxgl_trapoffset()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +void nxgl_trapoffset(FAR struct nxgl_trapezoid_s *dest, + FAR const struct nxgl_trapezoid_s *src, + nxgl_coord_t dx, nxgl_coord_t dy); +</pre></ul> +<p> + <b>Description:</b> + Offset the trapezoid position by the specified <code>dx</code>, <code>dy</code> values. +</p> + +<h3>2.2.1 <a name="nxgltrapcopy"><code>nxgl_trapcopy()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +void nxgl_trapcopy(FAR struct nxgl_trapezoid_s *dest, + FAR const struct nxgl_trapezoid_s *src); +</pre></ul> +<p> + <b>Description:</b> + This is essentially <code>memcpy()</code>for trapezoids. We don't do structure + assignments because some compilers are not good at that. +</p> + +<h3>2.2.1 <a name="nxglcolorcopy"><code>nxgl_colorcopy</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +nxgl_colorcopy(nxgl_mxpixel_t dest[CONFIG_NX_NPLANES], + const nxgl_mxpixel_t src[CONFIG_NX_NPLANES]); +</pre></ul> +<p> + <b>Description:</b> + This is essentially <code>memcpy()</code>for colors. This does very little for us + other than hide all of the conditional compilation for planar colors + in one place. +</p> + +<h2>2.3 <a name="nx2">NX</a></h2> + +<h3>2.3.1 <a name="nxppdefs">Pre-Processor Definitions</a></h3> + +<p> + The default server message queue name used by the + <a href="#nxruninstance"><code>nx_run()</code></a> macro: +</p> +<ul><pre> +#define NX_DEFAULT_SERVER_MQNAME "/dev/nxs" +</pre></ul> + +<p> + Mouse button bits: +</p> +<ul><pre> +#define NX_MOUSE_NOBUTTONS 0x00 +#define NX_MOUSE_LEFTBUTTON 0x01 +#define NX_MOUSE_CENTERBUTTON 0x02 +#define NX_MOUSE_RIGHTBUTTON 0x04 +</pre></ul> + +<h3>2.3.2 <a name="nxtypes">NX Types</a></h3> + +<p> + The interface to the NX server is managed using a opaque handle: +</p> +<ul><pre> +typedef FAR void *NXHANDLE; +</pre></ul> + +<p> + The interface to a specific window is managed using an opaque handle: +</p> +<ul><pre> +typedef FAR void *NXWINDOW; +</pre></ul> + +<p> + These define callbacks that must be provided to + <a href="#nxopenwindow"><code>nx_openwindow()</code></a>. + In the multi-user model, these callbacks will be invoked as part of the + processing performed by + <a href="#nxeventhandler"><code>nx_eventhandler()</code></a>. +</p> +<ul><pre> +struct nx_callback_s +{ + void (*redraw)(NXWINDOW hwnd, FAR const struct nxgl_rect_s *rect, + boolean more, FAR void *arg); + void (*position)(NXWINDOW hwnd, FAR const struct nxgl_size_s *size, + FAR const struct nxgl_point_s *pos, + FAR const struct nxgl_rect_s *bounds, + FAR void *arg); +#ifdef CONFIG_NX_MOUSE + void (*mousein)(NXWINDOW hwnd, FAR const struct nxgl_point_s *pos, + ubyte buttons, FAR void *arg); +#endif +#ifdef CONFIG_NX_KBD + void (*kbdin)(NXWINDOW hwnd, ubyte nch, FAR const ubyte *ch, FAR void *arg); +#endif +}; +</pre></ul> + +<h3>2.3.3 <a name="nxtypes">NX Server Callbacks</a></h3> + +<h4>2.3.3.1 <a name="nxcbredraw"><code>redraw()</code></a></h4> +<p><b>Callback Function Prototype:</b></p> +<ul><pre> +void redraw(NXWINDOW hwnd, FAR const struct nxgl_rect_s *rect, + boolean more, FAR void *arg); +</pre></ul> +<p> + <b>Description:</b> + NX requests that the client re-draw the portion of the window within + with rectangle. +</p> +<p> + <b>Input Parameters:</b> + <ul><dl> + <dt><code>hwnd</code> + <dd>The handle created by <a href="#nxopenwindow"><code>nx_openwindow()</code></a> + or <a href="#nxrequestbkgd"><code>nx_requestbkgd()</code></a> + <dt><code>rect</code> + <dd>The rectangle that needs to be re-drawn (in window relative coordinates) + <dt><code>more</code> + <dd>TRUE: More re-draw requests will follow + <dt><code>arg</code> + <dd>User provided argument (see <a href="#nxopenwindow"><code>nx_openwindow()</code></a>) + </dl></ul> +</p> +<p> + <b>Returned Value:</b> None +</p> + +<h4>2.3.3.2 <a name="nxcbposition"><code>position()</code></a></h4> +<p><b>Callback Function Prototype:</b></p> +<ul><pre> +void position(NXWINDOW hwnd, FAR const struct nxgl_size_s *size, + FAR const struct nxgl_point_s *pos, + FAR const struct nxgl_rect_s *bounds, + FAR void *arg); +</pre></ul> +<p> + <b>Description:</b> + The size or position of the window has changed (or the window was + just created with zero size. +</p> +<p> + <b>Input Parameters:</b> + <ul><dl> + <dt><code>hwnd</code> + <dd>The handle created by <a href="#nxopenwindow"><code>nx_openwindow()</code></a> + or <a href="#nxrequestbkgd"><code>nx_requestbkgd()</code></a> + <dt><code>size</code> + <dd>The size of the window + <dt><code>pos</code> + <dd>The position of the upper left hand corner of the window on + the overall display + <dt><code>bounds</code> + <dd>The bounding rectangle that the describes the entire display + <dt><code>arg</code> + <dd>User provided argument (see <a href="#nxopenwindow"><code>nx_openwindow()</code></a>) + </dl></ul> +</p> +<p> + <b>Returned Value:</b> None +</p> + +<h4>2.3.3.3 <a name="nxcbmousein"><code>mousein()</code></a></h4> +<p><b>Callback Function Prototype:</b></p> +<ul><pre> +#ifdef CONFIG_NX_MOUSE +void mousein(NXWINDOW hwnd, FAR const struct nxgl_point_s *pos, + ubyte buttons, FAR void *arg); +#endif +</pre></ul> +<p> + <b>Description:</b> + New mouse data is available for the window +</p> +<p> + <b>Input Parameters:</b> + <ul><dl> + <dt><code>hwnd</code> + <dd>The handle created by <a href="#nxopenwindow"><code>nx_openwindow()</code></a> + or <a href="#nxrequestbkgd"><code>nx_requestbkgd()</code></a> + <dt><code>pos</code> + <dd>The (x,y) position of the mouse + <dt><code>buttons</code> + <dd>See <code>NX_MOUSE_*</code> definitions + <dt><code>arg</code> + <dd>User provided argument (see <a href="#nxopenwindow"><code>nx_openwindow()</code></a>) + </dl></ul> +</p> +<p> + <b>Returned Value:</b> None +</p> + +<h4>2.3.3.4 <a name="nxcbkbdin"><code>kbdin()</code></a></h4> +<p><b>Callback Function Prototype:</b></p> +<ul><pre> +#ifdef CONFIG_NX_KBD +void (*kbdin)(NXWINDOW hwnd, ubyte nch, FAR const ubyte *ch, FAR void *arg); +#endif +</pre></ul> +<p> + <b>Description:</b> + New keyboard/keypad data is available for the window. +</p> +<p> + <b>Input Parameters:</b> + <ul><dl> + <dt><code>hwnd</code> + <dd>The handle created by <a href="#nxopenwindow"><code>nx_openwindow()</code></a> + or <a href="#nxrequestbkgd"><code>nx_requestbkgd()</code></a> + <dt><code>nch</code> + <dd>The number of characters that are available in ch[] + <dt><code>ch</code> + <dd>The array of characters + <dt><code>arg</code> + <dd>User provided argument (see <a href="#nxopenwindow"><code>nx_openwindow()</code></a>) + </dl></ul> +</p> +<p> + <b>Returned Value:</b> NOne +</p> + +<h3>2.3.4 <a name="nxruninstance"><code>nx_runinstance()</code> (and <code>nx_run()<code> macro)</a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +#include &lt;nuttx/nx.h&gt; + +#ifdef CONFIG_NX_MULTIUSER +int nx_runinstance(FAR const char *mqname, FAR struct fb_vtable_s *fb); +#define nx_run(fb) nx_runinstance(NX_DEFAULT_SERVER_MQNAME, fb) +#endif +</pre></ul> +<p> + <b>Description:</b> + This is the server entry point. It does not return; the calling thread + is dedicated to supporting NX server. +</p> +<p> + NOTE that multiple instances of the NX server may run at the same time, + with different callback and message queue names. <code>nx_run()</code> is simply + a macro that can be used when only one server instance is required. In + that case, a default server name is used. +</p> +<p> + Multiple user mode only! +</p> +<p> + <b>Input Parameters:</b> + <ul><dl> + <dt><code>mqname</code> + <dd> + - The name for the server incoming message queue + <dt><code>fb</code> + <dd>Vtable &quot;object&quot; of the framebuffer &quot;driver&quot; to use + </dl></ul> +</p> +<p> + <b>Returned Value:</b> + This function usually does not return. If it does return, it will + return <code>ERROR</code> and <code>errno</code> will be set appropriately. +</p> + +<h3>2.3.5 <a name="nxconnectinstance"><code>nx_connectinstance()</code> (and <code>nx_connect()</code> macro)</a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +#include &lt;nuttx/nx.h&gt; + +#ifdef CONFIG_NX_MULTIUSER +NXHANDLE nx_connectinstance(FAR const char *svrmqname); +#define nx_connect(cb) nx_connectinstance(NX_DEFAULT_SERVER_MQNAME) +#endif +</pre></ul> +<p> + <b>Description:</b> + Open a connection from a client to the NX server. One one client + connection is normally needed per thread as each connection can host + multiple windows. +</p> +<p> + NOTES: +</p> +<ul> + <li> + This function returns before the connection is fully instantiated. + it is necessary to wait for the connection event before using the + returned handle. + </li> + <li> + Multiple instances of the NX server may run at the same time, + each with different message queue names. + </li> + <li> + <code>nx_connect()</code> is simply a macro that can be used when only one + server instance is required. In that case, a default server name + is used. + </li> +</ul> +<p> + Multiple user mode only! +</p> +<p> + <b>Input Parameters:</b> + <ul><dl> + <dt><code>svrmqname</code> + <dd>The name for the server incoming message queue + </dl></ul> +</p> +<p> + <b>Returned Value:</b> +</p> +<ul> + Success: A non-NULL handle used with subsequent NX accesses<br> + Failure: NULL is returned and <code>errno</code> is set appropriately. +</ul> + +<h3>2.3.6 <a name="nxopen"><code>nx_open()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +#include &lt;nuttx/nx.h&gt; + +#ifndef CONFIG_NX_MULTIUSER +NXHANDLE nx_open(FAR struct fb_vtable_s *fb); +#endif +</pre></ul> +<p> + <b>Description:</b> + Create, initialize and return an NX handle for use in subsequent + NX API calls. <code>nx_open()</code> is the single user equivalent of + <a href="#nxconnectinstance"><code>nx_connect()</code></a> plus + <a href="#nxruninstance"><code>nx_run()</code></a>. +</p> +<p> + Single user mode only! +</p> +<p> + <b>Input Parameters:</b> + <ul><dl> + <dt><code>fb</code> + <dd>Vtable &quot;object&quot; of the framebuffer &quot;driver&quot; to use + <dt><code>cb</code> + <dd>Callbacks used to process received NX server messages + </dl></ul> +</p> +<p> + <b>Returned Value:</b> +</p> +<ul> + Success: A non-NULL handle used with subsequent NX accesses<br> + Failure: NULL is returned and <code>errno</code> is set appropriately. +</ul> + +<h3>2.3.7 <a name="nxdisconnect"><code>nx_disconnect()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +#include &lt;nuttx/nx.h&gt; + +#ifdef CONFIG_NX_MULTIUSER +void nx_disconnect(NXHANDLE handle); +#endif +</pre></ul> +<p> + <b>Description:</b> + Disconnect a client from the NX server and/or free resources reserved + by <a href="#nxconnectinstance"><code>nx_connect()</code>/<code>nx_connectinstance()</code></a>. + <code>nx_disconnect()</code> is muliti-user equivalent of + <a href="#nxclose"><code>nx_close()</code></a>. +</p> +<p> + Multiple user mode only! +</p> +<p> + <b>Input Parameters:</b> + <ul><dl> + <dt><code>handle</code> + <dd>The handle returned by <a href="#nxconnectinstance"><code>nx_connect()</code></a>. + </dl></ul> +</p> +<p> + <b>Returned Value:</b> None. +</p> + +<h3>2.3.8 <a name="nxclose"><code>nx_close()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +#include &lt;nuttx/nx.h&gt; + +#ifndef CONFIG_NX_MULTIUSER +void nx_close(NXHANDLE handle); +#endif +</pre></ul> +<p> + <b>Description:</b> + Close the single user NX interface. nx_close is single-user equivalent + of <a href="#nxdisconnect"><code>nx_disconnect()</code></a>. +</p> +<p> + Single user mode only! +</p> +<p> + <b>Input Parameters:</b> + <ul><dl> + <dt><code>handle</code> + <dd>The handle returned by <a href="#nxopen"><code>nx_open()</code></a>. + </dl></ul> +</p> +<p> + <b>Returned Value:</b> None +</p> + +<h3>2.3.9 <a name="nxeventhandler"><code>nx_eventhandler()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +#include &lt;nuttx/nx.h&gt; + +#ifdef CONFIG_NX_MULTIUSER +int nx_eventhandler(NXHANDLE handle); +#else +# define nx_eventhandler(handle) (OK) +#endif +</pre></ul> +<p> + <b>Description:</b> + The client code must call this function periodically to process + incoming messages from the server. If <code>CONFIG_NX_BLOCKING</code> is defined, + then this function not return until a server message is received. +</p> +<p> + When <code>CONFIG_NX_BLOCKING</code> is not defined, the client must exercise + caution in the looping to assure that it does not eat up all of + the CPU bandwidth calling nx_eventhandler repeatedly. + <a href="#nxeventnotify"><code>nx_eventnotify()</code></a> + may be called to get a signal event whenever a new incoming server + event is avaiable. +</p> +<p> + <b>Input Parameters:</b> + <ul><dl> + <dt><code>handle</code> + <dd>The handle returned by <a href="#nxconnectinstance"><code>nx_connect()</code></a>. + </dl></ul> +</p> +<p> + <b>Returned Value:</b> +</p> +<ul> + <li> + <code>OK</code>: No errors occurred. If <code>CONFIG_NX_BLOCKING</code> is defined, + then one or more server messages were processed. + </li> + <li> + <code>ERROR</code>: An error occurred and <code>errno</code> has been set appropriately. + Of particular interest, it will return <code>errno == EHOSTDOWN</code> when the + server is disconnected. After that event, the handle can no longer be used. + </li> +</ul> + +<h3>2.3.10 <a name="nxeventnotify"><code>nx_eventnotify()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +#include &lt;nuttx/nx.h&gt; + +#if defined(CONFIG_NX_MULTIUSER) && !defined(CONFIG_DISABLE_SIGNALS) +int nx_eventnotify(NXHANDLE handle, int signo); +#else +# define nx_eventnotify(handle, signo) (OK) +#endif +</pre></ul> +<p> + <b>Description:</b> + Rather than calling <a href="#nxeventhandler"><code>nx_eventhandler()</code></a> periodically, + the client may register to receive a signal when a server event is available. + The client can then call <a href="#nxeventhandler"><code>nv_eventhandler()</code></a> only when + incoming events are available. +</p> +<p> + The underlying implementation used <code>mq_notifiy()</code> and, as a result, + the client must observe the rules for using <code>mq_notifiy()</code>: + <ul> + <li> + Only one event is signaled. Upon receipt of the signal, if the client + wishes further notifications, it must call <code>nx_eventnotify()</code> again. + </li> + <li> + The signal will only be issued when the message queue transitions from empty to + not empty. + </li> + </ul> +</p> +<p> + <b>Input Parameters:</b> + <ul><dl> + <dt><code>handle</code> + <dd>The handle returned by <a href="#nxconnectinstance"><code>nx_connect()</code></a>. + </dl></ul> +</p> +<p> + <b>Returned Value:</b> + <code>OK</code> on success; + <code>ERROR</code> on failure with <code>errno</code> set appropriately +</p> + +<h3>2.3.11 <a name="nxopenwindow"><code>nx_openwindow()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +#include &lt;nuttx/nx.h&gt; + +NXWINDOW nx_openwindow(NXHANDLE handle, + FAR const struct nx_callback_s *cb, + FAR void *arg); +</pre></ul> +<p> + <b>Description:</b> Create a new window. +</p> +<p> + <b>Input Parameters:</b> + <ul><dl> + <dt><code>handle</code> + <dd>The handle returned by <a href="#nxconnectinstance"><code>nx_connect()</code></a> + or <a href="#nxopen"><code>nx_open()</code></a>. + <dt><code>cb</code> + <dd>Callbacks used to process window events + <dt><code>arg</code> + <dd>User provided value that will be returned with NX callbacks. + </dl></ul> +</p> +<p> + <b>Returned Value:</b> +</p> +<ul> + Success: A non-NULL handle used with subsequent NX accesses<br> + Failure: NULL is returned and <code>errno</code> is set appropriately. +</ul> + +<h3>2.3.12 <a name="nxclosewindow"><code>nx_closewindow()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +#include &lt;nuttx/nx.h&gt; + +int nx_closewindow(NXWINDOW hwnd); +</pre></ul> +<p> + <b>Description:</b> + Destroy a window created by <a href="#nxopenwindow"><code>nx_openwindow()</code></a> window. +</p> +<p> + <b>Input Parameters:</b> + <ul><dl> + <dt><code>hwnd</code> + <dd>The handle returned by <a href="#nxopenwindow"><code>nx_openwindow()</code></a> + that identifies the window to be destroyed. + This handle must not have been one returned by + <a href="#nxrequestbkgd"><code>nx_requestbkgd()</code></a>. + </dl></ul> +</p> +<p> + <b>Returned Value:</b> + <code>OK</code> on success; + <code>ERROR</code> on failure with <code>errno</code> set appropriately +</p> + +<h3>2.3.13 <a name="nxrequestbkgd"><code>nx_requestbkgd()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +#include &lt;nuttx/nx.h&gt; + +int nx_requestbkgd(NXHANDLE handle, + FAR const struct nx_callback_s *cb, + FAR void *arg); +</pre></ul> +<p> + <b>Description:</b> + NX normally controls a separate window called the background window. + It repaints the window as necessary using only a solid color fill. The + background window always represents the entire screen and is always + below other windows. It is useful for an application to control the + background window in the following conditions: +</p> +<ul> + <li> + If you want to implement a windowless solution. The single screen + can be used to creat a truly simple graphic environment. In this + case, you should probably also de-select <code>CONFIG_NX_MULTIUSER</code> as well. + </li> + <li> + When you want more on the background than a solid color. For + example, if you want an image in the background, or animations in the + background, or live video, etc. + </li> +</ul> +<p> + This API only requests the handle of the background window. That + handle will be returned asynchronously in a subsequent position and + redraw callbacks. +</p> +<p> + Cautions: +</p> +<ul> + <li> + The following should never be called using the background window. + They are guaranteed to cause severe crashes: + <a href="#nxsetposition"><code>nx_setposition()</code></a>, + <a href="#nxsetsize"><code>nx_setsize()</code></a>, + <a href="#nxraise"><code>nx_raise()</code></a>, or + <a href="#nxlower"><code>nx_lower()</code></a>. + </li> + <li> + Neither <code>nx_requestbkgd()</code> nor + <a href="#nxreleasebkgd"><code>nx_releasebkgd ()</code></a> should be called more than once. + Multiple instances of the background window are not supported. + </li> +</ul> +</p> +<p> + <b>Input Parameters:</b> + <ul><dl> + <dt><code>handle</code> + <dd>The handle returned by <a href="#nxconnectinstance"><code>nx_connect()</code></a> + or <a href="#nxopen"><code>nx_open()</code></a>. + <dt><code>cb</code> + <dd>Callbacks to use for processing background window events + <dt><code>arg</code> + <dd>User provided argument (see <a href="#nxopenwindow"><code>nx_openwindow()</code></a>) + </dl></ul> +</p> +<p> + <b>Returned Value:</b> + <code>OK</code> on success; + <code>ERROR</code> on failure with <code>errno</code> set appropriately +</p> + +<h3>2.3.14 <a name="nxreleasebkgd"><code>nx_releasebkgd()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +#include &lt;nuttx/nx.h&gt; + +int nx_releasebkgd(NXWINDOW hwnd); +</pre></ul> +<p> + <b>Description:</b> + Release the background window previously acquired using + <a href="#nxrequestbkgd"><code>nx_requestbkgd()</code></a> + and return control of the background to NX. +</p> +<p> + <b>Input Parameters:</b> + <ul><dl> + <dt><code>handle</code> + <dd>The handle returned indirectly by + <a href="#nxrequestbkgd"><code>nx_requestbkgd()</code></a>. + This handle must not have been one created by + <a href="#nxopenwindow"><code>nx_openwindow()</code></a>. + </dl></ul> +</p> +<p> + <b>Returned Value:</b> + <code>OK</code> on success; + <code>ERROR</code> on failure with <code>errno</code> set appropriately +</p> + +<h3>2.3.15 <a name="nxgetposition"><code>nx_getposition()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +#include &lt;nuttx/nx.h&gt; + +int nx_getposition(NXWINDOW hwnd); +</pre></ul> +<p> + <b>Description:</b> + Request the position and size information for the selected window. The + values will be return asynchronously through the client callback function + pointer. +</p> +<p> + <b>Input Parameters:</b> + <ul><dl> + <dt><code>hwnd</code> + <dd>The handle returned by <a href="#nxopenwindow"><code>nx_openwindow()</code></a> or + <a href="#nxrequestbkgd"><code>nx_requestbkgd()</code></a>. + </dl></ul> +</p> +<p> + <b>Returned Value:</b> + <code>OK</code> on success; + <code>ERROR</code> on failure with <code>errno</code> set appropriately +</p> + +<h3>2.3.16 <a name="nxsetposition"><code>nx_setposition()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +#include &lt;nuttx/nx.h&gt; + +int nx_setposition(NXWINDOW hwnd, FAR struct nxgl_point_s *pos); +</pre></ul> +<p> + <b>Description:</b> + Set the position and size for the selected window. +</p> +<p> + <b>Input Parameters:</b> + <ul><dl> + <dt><code>hwnd</code> + <dd>The handle returned by <a href="#nxopenwindow"><code>nx_openwindow()</code></a>. + This handle must not have been created by + <a href="#nxrequestbkgd"><code>nx_requestbkgd()</code></a>. + <dt><code>pos</code> + <dd>The new position of the window + </dl></ul> +</p> +<p> + <b>Returned Value:</b> + <code>OK</code> on success; + <code>ERROR</code> on failure with <code>errno</code> set appropriately +</p> + +<h3>2.3.17 <a name="nxsetsize"><code>nx_setsize()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +#include &lt;nuttx/nx.h&gt; + +int nx_setsize(NXWINDOW hwnd, FAR struct nxgl_size_s *size); +</pre></ul> +<p> + <b>Description:</b> Set the size of the selected window. +</p> +<p> + <b>Input Parameters:</b> + <ul><dl> + <dt><code>hwnd</code> + <dd>The handle returned by <a href="#nxopenwindow"><code>nx_openwindow()</code></a>. + This handle must not have been created by + <a href="#nxrequestbkgd"><code>nx_requestbkgd()</code></a>. + <dt><code>size</code> + <dd>The new size of the window (in pixels). + </dl></ul> +</p> +<p> + <b>Returned Value:</b> + <code>OK</code> on success; + <code>ERROR</code> on failure with <code>errno</code> set appropriately +</p> + +<h3>2.3.18 <a name="nxraise"><code>nx_raise()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +#include &lt;nuttx/nx.h&gt; + +int nx_raise(NXWINDOW hwnd); +</pre></ul> +<p> + <b>Description:</b> Bring the specified window to the top of the display. +</p> +<p> + <b>Input Parameters:</b> + <ul><dl> + <dt><code>hwnd</code> + <dd>The handle returned by <a href="#nxopenwindow"><code>nx_openwindow()</code></a>. + This handle must not have been created by + <a href="#nxrequestbkgd"><code>nx_requestbkgd()</code></a>. + <dt><code></code> + <dd> + </dl></ul> +</p> +<p> + <b>Returned Value:</b> + <code>OK</code> on success; + <code>ERROR</code> on failure with <code>errno</code> set appropriately +</p> + +<h3>2.3.19 <a name="nxlower"><code>nx_lower()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +#include &lt;nuttx/nx.h&gt; + +int nx_lower(NXWINDOW hwnd); +</pre></ul> +<p> + <b>Description:</b> Lower the specified window to the bottom of the display. +</p> +<p> + <b>Input Parameters:</b> + <ul><dl> + <dt><code>hwnd</code> + <dd>The handle returned by <a href="#nxopenwindow"><code>nx_openwindow()</code></a>. + This handle must not have been created by + <a href="#nxrequestbkgd"><code>nx_requestbkgd()</code></a>. + <dt><code></code> + <dd> + </dl></ul> +</p> +<p> + <b>Returned Value:</b> + <code>OK</code> on success; + <code>ERROR</code> on failure with <code>errno</code> set appropriately +</p> + +<h3>2.3.20 <a name="nxfill"><code>nx_fill()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +#include &lt;nuttx/nx.h&gt; + +int nx_fill(NXWINDOW hwnd, FAR const struct nxgl_rect_s *rect, + nxgl_mxpixel_t color[CONFIG_NX_NPLANES]); +</pre></ul> +<p> + <b>Description:</b> + Fill the specified rectangle in the window with the specified color. +</p> +<p> + <b>Input Parameters:</b> + <ul><dl> + <dt><code>hwnd</code> + <dd>The handle returned by <a href="#nxopenwindow"><code>nx_openwindow()</code></a> + or <a href="#nxrequestbkgd"><code>nx_requestbkgd()</code></a> + <dt><code>rect</code> + <dd>The location to be filled + <dt><code>color</code> + <dd>The color to use in the fill + </dl></ul> +</p> +<p> + <b>Returned Value:</b> + <code>OK</code> on success; + <code>ERROR</code> on failure with <code>errno</code> set appropriately +</p> + +<h3>2.3.21 <a name="nxfilltrapezoid"><code>nx_filltrapezoid()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +#include &lt;nuttx/nx.h&gt; + +int nx_filltrapezoid(NXWINDOW hwnd, FAR const struct nxgl_rect_s *clip, + FAR const struct nxgl_trapezoid_s *trap, + nxgl_mxpixel_t color[CONFIG_NX_NPLANES]); +</pre></ul> +<p> + <b>Description:</b> + Fill the specified trapezoidal region in the window with the specified color. +</p> +<p> + <b>Input Parameters:</b> + <ul><dl> + <dt><code>hwnd</code> + <dd>The handle returned by <a href="#nxopenwindow"><code>nx_openwindow()</code></a> + or <a href="#nxrequestbkgd"><code>nx_requestbkgd()</code></a> + <dt><code>clip</code> + <dd>Clipping rectangle relative to window (may be null) + <dt><code>trap</code> + <dd>The trapezoidal region to be filled + <dt><code>color</code> + <dd>The color to use in the fill + </dl></ul> +</p> +<p> + <b>Returned Value:</b> + <code>OK</code> on success; + <code>ERROR</code> on failure with <code>errno</code> set appropriately +</p> + +<h3>2.3.22 <a name="nxglrgb2yuv"><code>nx_setbgcolor()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +#include &lt;nuttx/nx.h&gt; + +int nx_setbgcolor(NXHANDLE handle, + nxgl_mxpixel_t color[CONFIG_NX_NPLANES]); +</pre></ul> +<p> + <b>Description:</b> Set the color of the background. +</p> +<p> + <b>Input Parameters:</b> + <ul><dl> + <dt><code>handle</code> + <dd>The handle created by <a href="#nxopenwindow"><code>nx_openwindow()</code></a> + or <a href="#nxrequestbkgd"><code>nx_requestbkgd()</code></a> + <dt><code>color</code> + <dd>The color to use in the background + </dl></ul> +</p> +<p> + <b>Returned Value:</b> + <code>OK</code> on success; + <code>ERROR</code> on failure with <code>errno</code> set appropriately +</p> + +<h3>2.3.23 <a name="nxmove"><code>nx_move()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +#include &lt;nuttx/nx.h&gt; + +int nx_move(NXWINDOW hwnd, FAR const struct nxgl_rect_s *rect, + FAR const struct nxgl_point_s *offset); +</pre></ul> +<p> + <b>Description:</b> Move a rectangular region within the window. +</p> +<p> + <b>Input Parameters:</b> + <ul><dl> + <dt><code>hwnd</code> + <dd>The handle returned by <a href="#nxopenwindow"><code>nx_openwindow()</code></a> + or <a href="#nxrequestbkgd"><code>nx_requestbkgd()</code></a> that specifies + the window within which the move is to be done + <dt><code>rect</code> + <dd>Describes the (source) rectangular region to move + <dt><code>offset</code> + <dd>The offset to move the region + </dl></ul> +</p> +<p> + <b>Returned Value:</b> + <code>OK</code> on success; + <code>ERROR</code> on failure with <code>errno</code> set appropriately +</p> + +<h3>2.3.24 <a name="nxbitmap"><code>nx_bitmap()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +#include &lt;nuttx/nx.h&gt; + +int nx_bitmap(NXWINDOW hwnd, FAR const struct nxgl_rect_s *dest, + FAR const void *src[CONFIG_NX_NPLANES], + FAR const struct nxgl_point_s *origin, + unsigned int stride); +</pre></ul> +<p> + <b>Description:</b> + Copy a rectangular region of a larger image into the rectangle in the + specified window. +</p> +<p> + <b>Input Parameters:</b> + <ul><dl> + <dt><code>hwnd</code> + <dd>The handle returned by <a href="#nxopenwindow"><code>nx_openwindow()</code></a> + 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. + <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). + <dt><code>origin</code> + <dd>The origin of the upper, left-most corner of the full bitmap. + Both dest and origin are in window coordinates, however, the origin + may lie outside of the display. + <dt><code>stride</code> + <dd>The width of the full source image in bytes. + </dl></ul> +</p> +<p> + <b>Returned Value:</b> + <code>OK</code> on success; + <code>ERROR</code> on failure with <code>errno</code> set appropriately +</p> + +<h3>2.3.25 <a name="nxkbdin"><code>nx_kbdin()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +#include &lt;nuttx/nx.h&gt; + +#ifdef CONFIG_NX_KBD +int nx_kbdchin(NXHANDLE handle, ubyte ch); +int nx_kbdin(NXHANDLE handle, ubyte nch, FAR const ubyte *ch); +#endif +</pre></ul> +<p> + <b>Description:</b> + Used by a thread or interrupt handler that manages some kind of keypad + hardware to report text information to the NX server. That text + data will be routed by the NX server to the appropriate window client. +</p> +<p> + <b>Returned Value:</b> + <code>OK</code> on success; + <code>ERROR</code> on failure with <code>errno</code> set appropriately +</p> + +<h3>2.3.26 <a name="nxmousein"><code>nx_mousein()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +#include &lt;nuttx/nx.h&gt; + +#ifdef CONFIG_NX_MOUSE +int nx_mousein(NXHANDLE handle, nxgl_coord_t x, nxgl_coord_t y, ubyte buttons); +#endif +</pre></ul> +<p> + <b>Description:</b> + Used by a thread or interrupt handler that manages some kind of pointing + hardware to report new positional data to the NX server. That positional + data will be routed by the NX server to the appropriate window client. +</p> +<p> + <b>Input Parameters:</b> + <ul><dl> + <dt><code></code> + <dd> + </dl></ul> +</p> +<p> + <b>Returned Value:</b> + <code>OK</code> on success; + <code>ERROR</code> on failure with <code>errno</code> set appropriately +</p> + +<h2>2.4 <a name="nxtk2">NX Tool Kit (<code>NXTK</code>)</a></h2> + +<h3>2.4.1 <a name="nxtktypes"><code>NXTK Types()</code></a></h3> + +<p> + This is the handle that can be used to access the window data region. +</p> +<ul><pre> +typedef FAR void *NXTKWINDOW; +</pre></ul> + +<h3>2.4.2 <a name="nxtkopenwindow"><code>nxtk_openwindow()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +#include &lt;nuttx/nx.h&gt; +#include &lt;nuttx/nxtk.h&gt; + +NXTKWINDOW nxtk_openwindow(NXHANDLE handle, + FAR const struct nx_callback_s *cb, + FAR void *arg); +</pre></ul> +<p> + <b>Description:</b> Create a new, framed window. +</p> +<p> + <b>Input Parameters:</b> + <dl> + <dt><code>handle</code> + <dd>The handle returned by <a href="#nxconnectinstance"><code>nx_connect()</code></a> + or <a href="#nxopen"><code>nx_open()</code></a>. + <dt><code>cb</code> + <dd>Callbacks used to process window events + <dt><code>arg</code> + <dd>User provided argument (see <a href="#nxopenwindow"><code>nx_openwindow()</code></a>) + </dl> +</p> +<p> + <b>Returned Value:</b> +</p> +<ul> + Success: A non-NULL handle used with subsequent NXTK window accesses<br> + Failure: NULL is returned and <code>errno</code> is set appropriately. +</ul> + +<h3>2.4.3 <a name="nxtkclosewindow"><code>nxtk_closewindow()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +#include &lt;nuttx/nx.h&gt; +#include &lt;nuttx/nxtk.h&gt; + +int nxtk_closewindow(NXTKWINDOW hfwnd); +</pre></ul> +<p> + <b>Description:</b> + Close the window opened by <a href="#nxtkopenwindow"><code>nxtk_openwindow()</code></a>. +</p> +<p> + <b>Input Parameters:</b> + <dl> + <dt><code>hfwnd</code> + <dd>A handle previously returned by + <a href="#nxtkopenwindow"><code>nxtk_openwindow()</code></a>. + </dl> +</p> +<p> + <b>Returned Value:</b> + <code>OK</code> on success; + <code>ERROR</code> on failure with <code>errno</code> set appropriately +</p> + +<h3>2.4.4 <a name="nxtkgetposition"><code>nxtk_getposition()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +#include &lt;nuttx/nx.h&gt; +#include &lt;nuttx/nxtk.h&gt; + +int nxtk_getposition(NXTKWINDOW hfwnd); +</pre></ul> +<p> + <b>Description:</b> + Request the position and size information for the selected framed window. + The size/position for the client window and toolbar will be return + asynchronously through the client callback function pointer. +</p> +<p> + <b>Input Parameters:</b> + <dl> + <dt><code>hfwnd</code> + <dd>A handle previously returned by + <a href="#nxtkopenwindow"><code>nxtk_openwindow()</code></a>. + </dl> +</p> +<p> + <b>Returned Value:</b> + <code>OK</code> on success; + <code>ERROR</code> on failure with <code>errno</code> set appropriately +</p> + +<h3>2.4.5 <a name="nxtksetposition"><code>nxtk_setposition()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +#include &lt;nuttx/nx.h&gt; +#include &lt;nuttx/nxtk.h&gt; + +int nxtk_setposition(NXTKWINDOW hfwnd, FAR struct nxgl_point_s *pos); +</pre></ul> +<p> + <b>Description:</b> + Set the position for the selected client window. This position does not + include the offsets for the borders nor for any toolbar. Those offsets + will be added in to set the full window position. +</p> +<p> + <b>Input Parameters:</b> + <dl> + <dt><code>hfwnd</code> + <dd>A handle previously returned by + <a href="#nxtkopenwindow"><code>nxtk_openwindow()</code></a>. + <dt><code>pos</code> + <dd>The new position of the client sub-window + </dl> +</p> +<p> + <b>Returned Value:</b> + <code>OK</code> on success; + <code>ERROR</code> on failure with <code>errno</code> set appropriately +</p> + +<h3>2.4.6 <a name="nxtksetsize"><code>nxtk_setsize()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +#include &lt;nuttx/nx.h&gt; +#include &lt;nuttx/nxtk.h&gt; + +int nxtk_setsize(NXTKWINDOW hfwnd, FAR struct nxgl_size_s *size); +</pre></ul> +<p> + <b>Description:</b> + Set the size for the selected client window. This size does not + include the sizes of the borders nor for any toolbar. Those sizes + will be added in to set the full window size. +</p> +<p> + <b>Input Parameters:</b> + <dl> + <dt><code>hfwnd</code> + <dd>A handle previously returned by + <a href="#nxtkopenwindow"><code>nxtk_openwindow()</code></a>. + <dt><code>size</code> + <dd>The new size of the client sub-window. + </dl> +</p> +<p> + <b>Returned Value:</b> + <code>OK</code> on success; + <code>ERROR</code> on failure with <code>errno</code> set appropriately +</p> + +<h3>2.4.7 <a name="nxtkraise"><code>nxtk_raise()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +#include &lt;nuttx/nx.h&gt; +#include &lt;nuttx/nxtk.h&gt; + +int nxtk_raise(NXTKWINDOW hfwnd); +</pre></ul> +<p> + <b>Description:</b> + Bring the window containing the specified client sub-window to the top + of the display. +</p> +<p> + <b>Input Parameters:</b> + <dl> + <dt><code>hfwnd</code> + <dd>A handle previously returned by + <a href="#nxtkopenwindow"><code>nxtk_openwindow()</code></a> + specifying the window to be raised. + <dt><code></code> + <dd> + </dl> +</p> +<p> + <b>Returned Value:</b> + <code>OK</code> on success; + <code>ERROR</code> on failure with <code>errno</code> set appropriately +</p> + +<h3>2.4.8 <a name="nxtklower"><code>nxtk_lower()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +#include &lt;nuttx/nx.h&gt; +#include &lt;nuttx/nxtk.h&gt; + +int nxtk_lower(NXTKWINDOW hfwnd); +</pre></ul> +<p> + <b>Description:</b> + Lower the window containing the specified client sub-window to the + bottom of the display. +</p> +<p> + <b>Input Parameters:</b> + <dl> + <dt><code>hfwnd</code> + <dd>A handle previously returned by + <a href="#nxtkopenwindow"><code>nxtk_openwindow()</code></a> + specifying the window to be lowered. + <dt><code></code> + <dd> + </dl> +</p> +<p> + <b>Returned Value:</b> + <code>OK</code> on success; + <code>ERROR</code> on failure with <code>errno</code> set appropriately +</p> + +<h3>2.4.9 <a name="nxtkfillwindow"><code>nxtk_fillwindow()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +#include &lt;nuttx/nx.h&gt; +#include &lt;nuttx/nxtk.h&gt; + +int nxtk_fillwindow(NXTKWINDOW hfwnd, FAR const struct nxgl_rect_s *rect, + nxgl_mxpixel_t color[CONFIG_NX_NPLANES]); +</pre></ul> +<p> + <b>Description:</b> + Fill the specified rectangle in the client window with the specified color. +</p> +<p> + <b>Input Parameters:</b> + <dl> + <dt><code>hfwnd</code> + <dd>A handle previously returned by + <a href="#nxtkopenwindow"><code>nxtk_openwindow()</code></a>. + <dt><code>rect</code> + <dd>The location within the client window to be filled + <dt><code>color</code> + <dd>The color to use in the fill + </dl> +</p> +<p> + <b>Returned Value:</b> + <code>OK</code> on success; + <code>ERROR</code> on failure with <code>errno</code> set appropriately +</p> + +<h3>2.4.10 <a name="nxtkfilltrapwindow"><code>nxtk_filltrapwindow()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +#include &lt;nuttx/nx.h&gt; +#include &lt;nuttx/nxtk.h&gt; + +int nxtk_filltrapwindow(NXTKWINDOW hfwnd, + FAR const struct nxgl_trapezoid_s *trap, + nxgl_mxpixel_t color[CONFIG_NX_NPLANES]); +</pre></ul> +<p> + <b>Description:</b> + Fill the specified trapezoid in the client window with the specified color +</p> +<p> + <b>Input Parameters:</b> + <dl> + <dt><code>hfwnd</code> + <dd>A handle previously returned by + <a href="#nxtkopenwindow"><code>nxtk_openwindow()</code></a>. + <dt><code>trap</code> + <dd>The trapezoidal region to be filled. + <dt><code>color</code> + <dd>The color to use in the fill. + </dl> +</p> +<p> + <b>Returned Value:</b> + <code>OK</code> on success; + <code>ERROR</code> on failure with <code>errno</code> set appropriately +</p> + +<h3>2.4.11 <a name="nxtkmovewindow"><code>nxtk_movewindow()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +#include &lt;nuttx/nx.h&gt; +#include &lt;nuttx/nxtk.h&gt; + +int nxtk_movewindow(NXTKWINDOW hfwnd, FAR const struct nxgl_rect_s *rect, + FAR const struct nxgl_point_s *offset); +</pre></ul> +<p> + <b>Description:</b> + Move a rectangular region within the client sub-window of a framed window. +</p> +<p> + <b>Input Parameters:</b> + <dl> + <dt><code>hfwnd</code> + <dd>A handle previously returned by + <a href="#nxtkopenwindow"><code>nxtk_openwindow()</code></a> + specifying the client sub-window within which the move is to be done. + <dt><code>rect</code> + <dd>Describes the rectangular region relative to the client sub-window to move. + <dt><code>offset</code> + <dd>The offset to move the region + </dl> +</p> +<p> + <b>Returned Value:</b> + <code>OK</code> on success; + <code>ERROR</code> on failure with <code>errno</code> set appropriately +</p> + +<h3>2.4.12 <a name="nxtkbitmapwindow"><code>nxtk_bitmapwindow()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +#include &lt;nuttx/nx.h&gt; +#include &lt;nuttx/nxtk.h&gt; + +int nxtk_bitmapwindow(NXTKWINDOW hfwnd, + FAR const struct nxgl_rect_s *dest, + FAR const void *src[CONFIG_NX_NPLANES], + FAR const struct nxgl_point_s *origin, + unsigned int stride); +</pre></ul> +<p> + <b>Description:</b> + Copy a rectangular region of a larger image into the rectangle in the + specified client sub-window. +</p> +<p> + <b>Input Parameters:</b> + <dl> + <dt><code>hfwnd</code> + <dd>A handle previously returned by + <a href="#nxtkopenwindow"><code>nxtk_openwindow()</code></a> + specifying the client sub-window that will receive the bitmap. + <dt><code>dest</code> + <dd>Describes the rectangular region on in the client sub-window + will receive the bit map. + <dt><code>src</code> + <dd>The start of the source image(s). This is an array source + images of size <code>CONFIG_NX_NPLANES</code> (probably 1). + <dt><code>origin</code> + <dd>The origin of the upper, left-most corner of the full bitmap. + Both dest and origin are in sub-window coordinates, however, the + origin may lie outside of the sub-window display. + <dt><code>stride</code> + <dd>The width of the full source image in pixels. + </dl> +</p> +<p> + <b>Returned Value:</b> + <code>OK</code> on success; + <code>ERROR</code> on failure with <code>errno</code> set appropriately +</p> + +<h3>2.4.13 <a name="nxtkopentoolbar"><code>nxtk_opentoolbar()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +#include &lt;nuttx/nx.h&gt; +#include &lt;nuttx/nxtk.h&gt; + +int nxtk_opentoolbar(NXTKWINDOW hfwnd, nxgl_coord_t height, + FAR const struct nx_callback_s *cb, + FAR void *arg); +</pre></ul> +<p> + <b>Description:</b> + Create a tool bar at the top of the specified framed window. +</p> +<p> + <b>Input Parameters:</b> + <dl> + <dt><code>hfwnd</code> + <dd>A handle previously returned by + <a href="#nxtkopenwindow"><code>nxtk_openwindow()</code></a>. + <dt><code>height</code> + <dd>The requested height of the toolbar in pixels. + <dt><code></code> + <dd>Callbacks used to process toolbar events. + <dt><code></code> + <dd>User provided value that will be returned with toolbar callbacks. + </dl> +</p> +<p> + <b>Returned Value:</b> + <code>OK</code> on success; + <code>ERROR</code> on failure with <code>errno</code> set appropriately +</p> + +<h3>2.4.14 <a name="nxtkclosetoolbar"><code>nxtk_closetoolbar()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +#include &lt;nuttx/nx.h&gt; +#include &lt;nuttx/nxtk.h&gt; + +int nxtk_closetoolbar(NXTKWINDOW hfwnd); +</pre></ul> +<p> + <b>Description:</b> + Remove the tool bar at the top of the specified framed window. +</p> +<p> + <b>Input Parameters:</b> + <dl> + <dt><code>hfwnd</code> + <dd>A handle previously returned by + <a href="#nxtkopenwindow"><code>nxtk_openwindow()</code></a>. + <dt><code></code> + <dd> + </dl> +</p> +<p> + <b>Returned Value:</b> + <code>OK</code> on success; + <code>ERROR</code> on failure with <code>errno</code> set appropriately +</p> + +<h3>2.4.15 <a name="nxtkfilltoolbar"><code>nxtk_filltoolbar()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +#include &lt;nuttx/nx.h&gt; +#include &lt;nuttx/nxtk.h&gt; + +int nxtk_filltoolbar(NXTKWINDOW hfwnd, FAR const struct nxgl_rect_s *rect, + nxgl_mxpixel_t color[CONFIG_NX_NPLANES]); +</pre></ul> +<p> + <b>Description:</b> + Fill the specified rectangle in the toolbar sub-window with the specified color. +</p> +<p> + <b>Input Parameters:</b> + <dl> + <dt><code>hfwnd</code> + <dd>A handle previously returned by + <a href="#nxtkopenwindow"><code>nxtk_openwindow()</code></a>. + <dt><code>rect</code> + <dd>The location within the toolbar window to be filled. + <dt><code>color</code> + <dd>The color to use in the fill. + </dl> +</p> +<p> + <b>Returned Value:</b> + <code>OK</code> on success; + <code>ERROR</code> on failure with <code>errno</code> set appropriately +</p> + +<h3>2.4.16 <a name="nxtkfilltraptoolbar"><code>nxtk_filltraptoolbar()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +#include &lt;nuttx/nx.h&gt; +#include &lt;nuttx/nxtk.h&gt; + +int nxtk_filltraptoolbar(NXTKWINDOW hfwnd, FAR const struct nxgl_trapezoid_s *trap, + nxgl_mxpixel_t color[CONFIG_NX_NPLANES]); +</pre></ul> +<p> + <b>Description:</b> + Fill the specified trapezoid in the toolbar sub-window with the specified color. +</p> +<p> + <b>Input Parameters:</b> + <dl> + <dt><code>hfwnd</code> + <dd>A handle previously returned by + <a href="#nxtkopenwindow"><code>nxtk_openwindow()</code></a>. + <dt><code>trap</code> + <dd>The trapezoidal region to be filled + <dt><code>color</code> + <dd>The color to use in the fill + </dl> +</p> +<p> + <b>Returned Value:</b> + <code>OK</code> on success; + <code>ERROR</code> on failure with <code>errno</code> set appropriately +</p> + +<h3>2.4.17 <a name="nxtkmovetoolbar"><code>nxtk_movetoolbar()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +#include &lt;nuttx/nx.h&gt; +#include &lt;nuttx/nxtk.h&gt; + +int nxtk_movetoolbar(NXTKWINDOW hfwnd, FAR const struct nxgl_rect_s *rect, + FAR const struct nxgl_point_s *offset); +</pre></ul> +<p> + <b>Description:</b> + Move a rectangular region within the toolbar sub-window of a framed window. +</p> +<p> + <b>Input Parameters:</b> + <dl> + <dt><code>hfwnd</code> + <dd>A handle identifying sub-window containing the toolbar within which the move is + to be done. + This handle must have previously been returned by + <a href="#nxtkopenwindow"><code>nxtk_openwindow()</code></a>. + <dt><code>rect</code> + <dd>Describes the rectangular region relative to the toolbar sub-window to move. + <dt><code>offset</code> + <dd>The offset to move the region + </dl> +</p> +<p> + <b>Returned Value:</b> + <code>OK</code> on success; + <code>ERROR</code> on failure with <code>errno</code> set appropriately +</p> + +<h3>2.4.18 <a name="nxtkbitmaptoolbar"><code>nxtk_bitmaptoolbar()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +#include &lt;nuttx/nx.h&gt; +#include &lt;nuttx/nxtk.h&gt; + +int nxtk_bitmaptoolbar(NXTKWINDOW hfwnd, + FAR const struct nxgl_rect_s *dest, + FAR const void *src[CONFIG_NX_NPLANES], + FAR const struct nxgl_point_s *origin, + unsigned int stride); +</pre></ul> +<p> + <b>Description:</b> + Copy a rectangular region of a larger image into the rectangle in the + specified toolbar sub-window. +</p> +<p> + <b>Input Parameters:</b> + <dl> + <dt><code>hfwnd</code> + <dd>A handle previously returned by + <a href="#nxtkopenwindow"><code>nxtk_openwindow()</code></a>. + <dt><code>dest</code> + <dd>Describes the rectangular region on in the toolbar sub-window + will receive the bit map. + <dt><code>src</code> + <dd>The start of the source image. + <dt><code>origin</code> + <dd>The origin of the upper, left-most corner of the full bitmap. + Both dest and origin are in sub-window coordinates, however, the + origin may lie outside of the sub-window display. + <dt><code>stride</code> + <dd>The width of the full source image in bytes. + </dl> +</p> +<p> + <b>Returned Value:</b> + <code>OK</code> on success; + <code>ERROR</code> on failure with <code>errno</code> set appropriately +</p> + +<h2>2.5 <a name="nxfonts2">NX Fonts Support (<code>NXFONTS</code>)</a></h2> + +<h3>2.5.1 <a name="nxfontstypes"><code>NXFONTS Types()</code></a></h3> +<p> + This structures provides the metrics for one glyph: +</p> +<ul><pre> +struct nx_fontmetic_s +{ + uint32 stride : 2; /* Width of one font row in bytes */ + uint32 width : 6; /* Width of the font in bits */ + uint32 height : 6; /* Height of the font in rows */ + uint32 xoffset : 6; /* Top, left-hand corner X-offset in pixels */ + uint32 yoffset : 6; /* Top, left-hand corner y-offset in pixels */ + uint32 unused : 6; +}; +</pre></ul> + +<p> + This structure binds the glyph metrics to the glyph bitmap: +</p> +<ul><pre> +struct nx_fontbitmap_s +{ + struct nx_fontmetic_s metric; /* Character metrics */ + FAR const ubyte *bitmap; /* Pointer to the character bitmap */ +}; +</pre></ul> + +<p> + This structure describes one contiguous grouping of glyphs that + can be described by an array starting with encoding <code>first</code> and + extending through (<code>first</code> + <code>nchars</code> - 1). +</p> +<ul><pre> +struct nx_fontset_s +{ + ubyte first; /* First bitmap character code */ + ubyte nchars; /* Number of bitmap character codes */ + FAR const struct nx_fontbitmap_s *bitmap; +}; +</pre></ul> + +<p> + This structure describes the overall fontset: +</p> +<ul><pre> +struct nx_font_s +{ + ubyte mxheight; /* Max height of one glyph in rows */ + ubyte mxwidth; /* Max width of any glyph in pixels */ + ubyte mxbits; /* Max number of bits per character code */ + ubyte spwidth; /* The width of a space in pixels */ +}; +</pre></ul> + +<h3>2.5.2 <a name="nxfgetfontset"><code>nxf_getfontset()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +#include &lt;nuttx/nxfonts.h&gt; + +FAR const struct nx_font_s *nxf_getfontset(void); +</pre></ul> +<p> + <b>Description:</b> + Return information about the current font set. +</p> +<p> + <b>Input Parameters:</b> None +</p> +<p> + <b>Returned Value:</b> + An instance of <code>struct nx_font_s</code> describing the font set. +</p> + +<h3>2.5.3 <a name="nxfgetbitmap"><code>nxf_getbitmap()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +#include &lt;nuttx/nxfonts.h&gt; + +FAR const struct nx_fontbitmap_s *nxf_getbitmap(uint16 ch); +</pre></ul> +<p> + <b>Description:</b> + Return font bitmap information for the selected character encoding. +</p> +<p> + <b>Input Parameters:</b> + <ul><dl> + <dt><code></code> + <dd> + </dl></ul> +</p> +<p> + <b>Returned Value:</b> + An instance of <code>struct nx_fontbitmap_s</code> describing the glyph. +</p> + +<h3>2.5.4 <a name="nxfconvertbpp"><code>nxf_convert_*bpp()</code></a></h3> +<p><b>Function Prototype:</b></p> +<ul><pre> +#include &lt;nuttx/nxglib.h&gt; +#include &lt;nuttx/nxfonts.h&gt; + +int nxf_convert_2bpp(FAR ubyte *dest, uint16 height, + uint16 width, uint16 stride, uint16 ch, + nxgl_mxpixel_t color); +int nxf_convert_4bpp(FAR ubyte *dest, uint16 height, + uint16 width, uint16 stride, uint16 ch, + nxgl_mxpixel_t color); +int nxf_convert_8bpp(FAR ubyte *dest, uint16 height, + uint16 width, uint16 stride, uint16 ch, + nxgl_mxpixel_t color); +int nxf_convert_16bpp(FAR uint16 *dest, uint16 height, + uint16 width, uint16 stride, uint16 ch, + nxgl_mxpixel_t color); +int nxf_convert_24bpp(FAR uint32 *dest, uint16 height, + uint16 width, uint16 stride, uint16 ch, + nxgl_mxpixel_t color); +int nxf_convert_32bpp(FAR uint32 *dest, uint16 height, + uint16 width, uint16 stride, uint16 ch, + nxgl_mxpixel_t color); +</pre></ul> +<p> + <b>Description:</b> Convert the 1BPP font to a new pixel depth. +</p> +<p> + <b>Input Parameters:</b> + <ul><dl> + <dt><code>dest</code> + <dd>The destination buffer provided by the caller. + <dt><code>height</code> + <dd>The max height of the returned char in rows. + <dt><code>width</code> + <dd>The max width of the returned char in pixels. + <dt><code>stride</code> + <dd>The width of the destination buffer in bytes. + <dt><code>ch</code> + <dd>The character code to convert. + <dt><code>color</code> + <dd>The color to use for '1' bits in the font bitmap (0 bits are transparent). + </dl></ul> +</p> +<p> + <b>Returned Value:</b> + On Success, these functions returns the actual width of the font in bytes. + on failed, a negated <code>errno</code> is retured. +</p> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <h1>Appendix A <a name="grapicsdirs"><code>graphics/</code> Directory Structure</a></h1> + </td> + </tr> +</table> + +<ul> + <dl> + <dt><code>graphics/nxglib</code> + <dd>The NuttX tiny graphics library. + The directory contains generic utilities support operations on primitive graphics objects + and logic to rasterize directly into a framebuffer. + It has no concept of windows (other than the one, framebuffer window). + + <dt><code>graphics/nxbe</code> + <dd>This is the <i>back-end</i> of a tiny windowing system. + It can be used with either of two front-ends to complete a windowing system (see + <code>nxmu</code> and <code>nxsu/<code> below). + It contains most of the important window management logic: clipping, window controls, + window drawing, etc. + + <dt><code>graphics/nxsu</code> + <dd>This is the NX single user <i>front end</i>. + When combined with the generic <i>back-end</i> (<code>nxbe</code>), it implements a + single threaded, single user windowing system. + The files in this directory present the window APIs described in + <code>include/nuttx/nx.h</code>. + The single user front-end is selected when <code>CONFIG_NX_MULTIUSER</code> is not + defined in the NuttX configuration file. + + <dt><code>graphics/nxsu</code> + <dd>This is the NX multi user <i>front end</i>. + When combined with the generic <i>back-end</i> (<code>nxbe</code>), it implements a + multi-threaded, multi-user windowing system. + The files in this directory present the window APIs described in + <code>include/nuttx/nx.h</code>. + The multi-user front end includes a graphics server that executes on its own thread; + multiple graphics clients then communicate with the server via a POSIX message + queue to serialize window operations from many threads. + The multi-user front-end is selected when <code>CONFIG_NX_MULTIUSER</code> is defined + in the NuttX configuration file. + + <dt><code>graphics/nxfonts</code> + <dd>This is where the NXFONTS implementation resides. + This is a relatively low-level set of charset set/glyph management APIs. + See <code>include/nuttx/nxfonts.h</code>. + + <dt><code>graphics/nxtk</code> + <dd>This is where the NXTOOLKIT implementation resides. + This toolkit is built on top of NX and works with either the single-user or + multi-user NX version. + See <code>include/nuttx/nxtk.h</code>. + + <dt><code>graphics/nxwidgets</code> + <dd>At one time, I planned to put NXWIDGETS implementation here, but not anymore. + </dl> +</ul> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <h1>Appendix B <a name="nxconfigs">NX Configuration Options</a></h1> + </td> + </tr> +</table> + +<h2>B.1 <a name="nxgenconfig">General Configuration Settings</a></h2> + +<ul> + <dl> + <dt><code>CONFIG_NX</code> + Enables overall support for graphics library and NX + </dl> +</ul> + +<h2>B.2 <a name="nxglconfig">NXGL Configuration Settings</a></h2> + +<ul> + <dl> + <dt><code>CONFIG_NX_NPLANES</code>: + <dd>Some YUV color formats requires support for multiple planes, + one for each color component. Unless you have such special + hardware, this value should be undefined or set to 1. + <dt><code>CONFIG_NX_DISABLE_1BPP</code>, <code>CONFIG_NX_DISABLE_2BPP</code>, + <code>CONFIG_NX_DISABLE_4BPP</code>, <code>CONFIG_NX_DISABLE_8BPP</code> + <code>CONFIG_NX_DISABLE_16BPP</code>, <code>CONFIG_NX_DISABLE_24BPP</code>, and + <code>CONFIG_NX_DISABLE_32BPP</code>: + <dd>NX supports a variety of pixel depths. You can save some + memory by disabling support for unused color depths. + <dt><code>CONFIG_NX_PACKEDMSFIRST</code>: + <dd>If a pixel depth of less than 8-bits is used, then NX needs + to know if the pixels pack from the MS to LS or from LS to MS + </dl> +</ul> + +<h2>B.3 <a name="nxconfig">NX Configuration Settings</a></h2> + +<ul> + <dl> + <dt><code>CONFIG_NX_MOUSE</code>: + <dd>Build in support for mouse input. + <dt><code>CONFIG_NX_KBD</code>: + <dd>Build in support of keypad/keyboard input. + </dl> +</ul> + +<h2>B.4 <a name="nxmuconfig">NX Multi-User (Only) Configuration Settings</a></h2> + +<ul> + <dl> + <dt><code>CONFIG_NX_MULTIUSER</code>: + <dd>Configures NX in multi-user mode. + <dt><code>CONFIG_NX_BLOCKING</code> + <dd>Open the client message queues in blocking mode. In this case, + <dt><code>nx_eventhandler()</code> will not return until a message is received and processed. + <dt><code>CONFIG_NX_MXSERVERMSGS</code> and <code>CONFIG_NX_MXCLIENTMSGS</code> + <dd>Specifies the maximum number of messages that can fit in + the message queues. No additional resources are allocated, but + this can be set to prevent flooding of the client or server with + too many messages (<code>CONFIG_PREALLOC_MQ_MSGS</code> controls how many + messages are pre-allocated). + </dl> +</ul> + +<h2>B.5 <a name="nxtkconfig">NXTK Configuration Settings</a></h2> + +<ul> + <dl> + <dt><code>CONFIG_NXTK_BORDERWIDTH</code>: + <dd>Specifies with with of the border (in pixels) used with + framed windows. The default is 4. + <dt><code>CONFIG_NXTK_BORDERCOLOR1</code> and <code>CONFIG_NXTK_BORDERCOLOR2</code>: + <dd>Specify the colors of the border used with framed windows. + <dt><code>CONFIG_NXTK_BORDERCOLOR2</code> is the shadow side color and so + <dd>is normally darker. The default is medium and dark grey, + respectively + <dt><code>CONFIG_NXTK_AUTORAISE</code>: + <dd>If set, a window will be raised to the top if the mouse position + is over a visible portion of the window. Default: A mouse + button must be clicked over a visible portion of the window. + </dl> +</ul> + +<h2>B.6 <a name="nxfpmtsconfig">NXFONTS Configuration Settings</a></h2> + +<ul> + <dl> + <dt><code>CONFIG_NXFONTS_CHARBITS</code>: + <dd>The number of bits in the character set. Current options are + only 7 and 8. The default is 7. + <dt><code>CONFIG_NXFONT_SANS</code>: + <dd>At present, there is only one font. But if there were were more, + then this option would select the sans serif font. + </dl> +</ul> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <h1>Appendix C <a name="testcoverage">NX Test Coverage</a></h1> + </td> + </tr> +</table> + +<p> + The primary test tool for debugging NX resides at <code>examples/nx</code>. + At present, that test only exercises a subset of NX; the remainder is essentially + untested. + The following table describes the testing performed on each NX API: +</p> + +<center><h1>Table C.1: NX Test Coverage</h1></center> + +<center><table border="1" width="50%"> + <tr><th><i>To be provided</i></th></tr> +</table></center> + +</body> +</html> + diff --git a/Documentation/NXOrganization.gif b/Documentation/NXOrganization.gif new file mode 100644 index 0000000000000000000000000000000000000000..6bae8e5529bbc177caf108e035f4e5c61ca4d2ec GIT binary patch literal 34880 zcmdQ}Ra2Z@vwdc8cbDMqI_NvNJHZ0M-8DcU8Qdi}!98ejcXxM(V8H_+!RO@r8E4(> zs@_%mrdRLkUaJ+9<RK#FvWWZ$*T6r(0XUrY0TBcM0|3YW0{^=i`FA2AqaveWpkrX7 zW8q=p5n&UM5)csJ5mVrkQj?L96H(GrQPGgmu~9McP_y#W)6+9Dva+$U(Xa{9aY8sa zco}#l`1u6{1;s=~#hCb^EJ8AD5P42<6$uGhJ{cWBc>^J(cMz5LqH5+6TGo;}b}}+D zva%|ws;Vj~IvN@V+W*75e}KMqls0gYHTKlkH#ao2G&QwXw)kjiX=!fm<ml*VZS7`n z@8#_5=jrL`?j9Hr5J2VBMeowi=+@5Z(Zb^1%J0=A>eDFh+W^>1Alr>%+YO@HjS@Qa zkvjIO*}&B8Lo^-2w4I}L-Q)B;6AgTljeOHg0<xt2>s3D0dV2@^`i2DrM03NI*+bU# zLcSY?eb)`DeHT`15nN;){>>(;(k{B%I=a>&zTPRZ(IvUnGpW`st<xi;+c&i?Fr(hI z<lHN(-@kAouypp*w|TSD^N^4b7%cuDLPL`xBhzDIz9uIpXJuuD=QKp-Hm0N$XJu8z z6f}J)Zb>a|P5;)GS>9e)SXfa}QCQemTH0Dr(^*l`Rb1EI)YR13*$Jy$4z5`Xt=kH3 z*o|!Z5#4$e*LjxMd|qAMThY{8)7oEOKiu3r-q1PJ-ag&cH6J(ll+=HlI((lt_LMR4 z+R;B&Idn5HFwi?ZIWRUoF)`8Cw>&twHasyqKD{tHx;-_wG`qMmx462ry0N~wJvH@X zWa)lt^<j4QcyaM;b9;An^=f0|c6)bkZ~x%v_~iKH=lS`?;o<Am)%ErDuh-YtXN0H! zkqi$1AGQAf02K~IpiwH;=J$o560jMM))ovz;L<B+E7lbb#gOtlY>w6yjU>>>L{lo& z7mp>g=u{Yw)t5}9^H`2&D>al(WkEboH^&;vX7ZpR=v2y$-{y)Gli5th8_O5UG>epT zl$$D+Dh(POw#J((SBiW3qp4JytJWIq7Aj08nyWWj+<uJbsI=5<b@<+%ZcVg&-|2xN zU{I^J*6s~N&U`Y#<g5EJl1Q(TtJ+q7IFZ5cxINj{U_6{JQi#Qr=4G(Zqglx{_2_lB z_+7sv7b~mze7)86EPiUk=W4U(!xJ@jcI);2XaYOV^rr9a!A!bX9(GRq@6*-qjtSFS z{(sMRT0X+x;N*7R-<-@;;>>IZJpJC0nHV`~>wbB<zkNrIYo=pBOoEG?{|S-UZZ`;d zx{O8+Rp?|l1a}xo3W$odmI3$@iJ*W;Vwf~Q9ob|aVHrqjVL)LKYyq&ndW?jB>kJzY zZ;DJE3%4w}$DjgH!X^xwDRBWRItz#%BSk&_UXrSi-)^v`^ua-juAUzm6UBIN8kIzi zZ+|$t6Df>J1o_$;Fn3Y3`NDZhs>ewbnP~%XKF>#FNF(#W-bnx9)kE}W%P-8zIuL>8 zqPS_>#5fuKJSj^2!}u;Gg^%!ONrp|u&(dt4Q+w;w@aS2)tLo$J^6LTzhl;A2Q-|`} z3OKoAr7e{(v4hQ)UV2T^t2}W{)AVCS)!@9*dF?P$%z1skkP5Y7p}fj$*`l6f^{3wV zl^4yM;fxn8WK`yZt?~?@%QoyNl^VPgHqy}cAI%es9cSZWlkM_|=2zV!dmV^9z>f*8 zUQ?tX?ml@k<L{mKr!m(9Tn`xT9bk>lw|FS;FjM*u);DU0Y0??oM>UyfugA__RqAy} zxjXCCC9PC{wPW`<dCJr8h`$-<JFC*2pn7uBndB;Zs+(1m@$#C__jA7?Q-yDOE^^^f z{hmA^mbzO;;hehDXL`C8)P|0T390C1#oe_U<xMrMxQuYNNL%BGw<y_fIR9>!-GomG zbO*M0jqiq%xZLkWGS}Si#|mHG|43BedN@eYcX>F>u&sGGO6l;3R`Gs{`@6Uc<`SJR z#h89Lt!lY^JgXhydOB}ZxfD4m&b!pwroOH2m?>}2eY$RN&5%lnrR=7q4I}B_!4A#B zg(4QqzJZ~I@8I@EfOJjo!^3d9JMTd}pM7biElgYgfPN=J=vf#vx*xtIeD=){WO$GA z>v<sl<6O_}D82`C^)8Z|HL~v5fw(XP`Oj6*!Gg@KkU)gaYJ!^>u*2%_Ce?3$1ukAq z{ENH-79}cF7-!#kCj0;r#j8OE!GIrJt9>I&weB&qG>9MUMD(Ap98k_t@!_bX)riPi zmiP6+D!!w#V|^Cx*axPB!oovLM!%xdJ)?*seFvj4@n9vlCL}UxgNzn<p8h<2pk=#Y zaW{1wghbO@?A<OFQJ(1HRw=}Pq(s-fCd{3X0f^_I{ROU}Q62RAmj)41<TcT;1PrtV zimj~DH{K^=^uHQMhj^6_VxZ#sWD-$>-mF^QX&?80SOh`d=JuzChcND$wS|BbYu(}) zthi8^N3Y*<hqUYN?ds*jbQC?@IyM>U!EOk{OS^!FI1(-RdPII62MH4*$CZxOr9<P9 z`M__?jgvlM;;``L81qQ5p?ng6e)r$zFB7L4Q*+(N&pA>(hM=IpCq2Wt(?!mYST!{# zz32#XB0NhtY}dxanHCG`LRpym6qTc4+Rh*8S6JE6c>@CbVk_UV{4i(}`SRx~DJnaM zPO!W!wHv#HLvT}8W^69XSl6{sz*<eLy(XcMuQZ*%T$vqZL0S9DHz=or3N89#-xOhy z*vmnC%B)zNJdrtdSA{-X>Dwr$FNG#1qjKfrJUQV_6+do%8rJnMH3=P53V5?i?^+|) z*G!>Oq@J~03nF(Jl~jKsip2K~=MzHop}DVjlpjf58PG#FwRUsTLB%lW(q2ZjNUnn7 z$LMuB2<ZmAoLl)3L#ER9tP17Mb;UMT7spXd?c6wZcF~s>;n+OQ^<66t6UtmoM?wPk zd>lQ}Qk(nae_Kb@YCO^>HjhOAw#~-Xcx63B390^VU!AJ)X_?r%^#9wjD{;Bu^HG22 zHI26q$-sAIV*5|~->&Pp?*YduJAdQTjWao~{7gHz_AV>C0qj~Bis~+y;=XsH>#Fsp z!+<{HL(e;;vo>7SJ#@<tGA^h{EabQ_98!{jG4FwJbRM*0mlLe9EnLET0)WTheu$^L zCYX0)4Miq{Jtu|O#}@Ag^$f}2sB>@zA7wPJ(>KhqFew1>I+73t7#fvu_mBgu-n@Gl z;<s^A|M=1Jw=${mEY(ozi0Tnv*25&<HhFg=r99V%2ROS(Jn`4#^KE`aD84%`fEno+ z4nPZAa}A&XbazuyIJ1?D6d>Kb4h1xWTKQ;t3n^ag1Q2)e@>vE-B<5gvFgn6C$=`(F z#Bll9hsC`qkGLJoWA4uwOSSP$RkqG%Z*P5!zgP?E&*Iu@%{{Il5_@L)VV;X@Jk|s* z-Rb#WI9Qu9qA4f_Hzw>l_3Wvj=BW8JeeXYSb;+vkdKJ1}4!d|qLA$c=GH%cPZp}-k zWa~11y{Uofstof_{o8LXI;(2$1J9hckCvNzGW#2XWUNus1tF)STZUfj0j#Fie+JTT z8ly0<c1N3AhZ77|;!LymK!5KQ+U0JNvYroE;KwS;JlkgQ=m7d+(X@sXK~I~p=OclU zwkgl)istj@V?mtu>9A?fe4HH79)mX0tJ9lwTZTg>?&igY7!rNo%Tw5-=yFTVU5)3< z*?SzZ)e){g^~o>iHX35<D>Z*=5ad-^Au(B>zVsn1+Hn{Z&b~`gubFS&{8<<^v53NL z(uw<eJzd?dl{N0m(cVw;IrE9g-|KH%3=)YSIus@uf=_?h)B}rX+r`s(Jg{;6U7{i3 z{%ihzxq(o)qaAZ+<nS+NLgmkb?~%sw>`n+6W-_7bmsbUp=;VmK0He?)#iu;vAN{+3 zRpf!+WeU%ln4jBLKG*GW#_q{GDPoRP^TFMvK*4~3*+cy6?+AolWDLk-Ya%LuBufe0 zMMyvI+4h8K;G`>Pd$`reYJZo7fKQYs_|-tQ|LxGLhS5vlLQ$XhB*Q&ngaSdB1~S;P zGMFb&<WX3d00c=9hKUqR?~6{W7#uqA*|i|J)|Rxv7O`o?rX~HO1_?(uo~3rFxwJem z7V)`&2Mw8qiNNghI1+jSfJ9zPiwLzEJPa8+3`HIeUi@WokAjZ#uW!(_&g(U&G&6=m z?9N6)4e!B6`o?axw0}^LMeK}|Xc)Nj1D*QVdlJ24>2>KKGSm<Vj7|bm5uG3j6gGhR zvjO&71_JXC$Aq8=H=;_<gG1r>L0%AuFrilME&EOZiFO8Y?@ci8z28CbM*$YR4q@AT zXsB$4ahaWQIm9uum3T_dsY1cAYD6~uKszx*yTwi{=Gechkhs}{Bzx5`pEO!K*uPHE zzm+b+?w4^|DTvn0_)TJHQm?Ti4X{9pzQlr7X<!<@{NCq}?TEE~qGt5QiLtF&+?2Qf zIE12}UhxgSWM`=6!GYp~Eaa|LF*R8O(<>oqAc4_9q}rDRR8G=o=Q8MvSJY~p07U@j zg9c0NKbP9C*dd?z#>Z<KTbsq<qB($PzfiLR?zrdyUH}3vx{puX{x@?*Tma)5EZdB1 zfuHP_Z|_!X9B6~=22V^Dc|c1;w&wBsGDw6B(zHnPiK9Ss_!Mqzj|<oWDDKxO?z?CO zv$pG`=wu>sjywR=K2^!j7@;k8IyI>P3VL&GZ=r;QOasv7hvTiK7C^x&M`^=yNb}5K zr-u+88aphqq#-#Z>{?nJ04aGkZcHv?*gAt;9s$+tlTNQ~`cX#2pENKJP^xDfNStgz zho<0{LXM1pL<3L&NFMh7ALin3Mp4bB6(wjGSbC-Uet*4%D23}J2;wrK(*)fzWR=x| zBeWyqLNh7qQQJfy#j{{(570}o2sk4+6EBhNKDhcYs>wTX2$kgOZTtv}*+zO!<lj_V zbA^Z^-3WL?b~b%(D{0jIsz`@j%!wg{(m=#-FWa*&es<o^##?`}{G$*m<))H<nqBP6 zPvb5UbOfXPVe9<6RL;yuc3Z1liA6}-0fg(V9LrEHy)}e4f~xI?Jb*T0cFpi%j7GDC zb6cb^g*J>)l#xv_uhE^8<COT@uL5MU!a|nBUt<Mi?eVPb#A4_q?9oNy?ZF;<Ir1x> zQ<+7#<x%PLMOg(!(D7nU17gkg4}a|6@+%iD{rndp(=mFZ`dH{SSAs=X+BM36(O#mw zUT9Aq;q$AIalOP!nKD|dBo?XAz`sly<mzjrQxux_@v%(2pbU1Z6u52{;{Q#U_FE*m ztRdXHB<ArOx1!+@xO{oobwP=BPrm$X1zt*1d5?@?jsdGvVtKAn1(6hDoI^#s4pKB* zMR7$%EjgYdZYAXichS02qbM$@y|Qz?viq@eFcq&C-HFS+5<k5XiMMLJy=rp3%8sdO zI@)3Av7&<9X3oEQmnhkC*J|lQn2CXLJ}%S8KcN~v#>r5m9^o3bZ=YA!YnsCGmeEbt z$E$}At1DP)%nd?^89@{`;JExx?)g?X%>UW|+6{8+!)W9D-B7LB?_YkRYV?|`o|r5| zSB{?6kYboRqN0EPY5q68b~rT*3qa{nKtO#L_=DLBocNt=qy9Hi^<GmQRYwgA1v(vE zr5<Ef{~%mP?qmEJ4QXnr7Q6P-;7A>ne8YHC_zV&XWg1Yvj6dvOKKiwa>s^!H$0kyY z1_KJyT2vFFk5xMCxbMW8t==`ilsDNtnIN#4n6fvSvp3tnb3({(7%M>r*QQ#~0LitP zALNbY#!}_iS`<a%d}3PsCt7xWjYC<{5NN=mKT$;-!?3Q=!X7e)1Rauh(a>fAon2%% zny+f5|4K5Glnh{if-w>U3U*O7&{6`^T1)N|O_Wj#G+Wa|zPeL5+Nqcpgc}#Cv`d#~ zra5LrmK$Tev-s*`w`G?hEs~K&fj-rd(kqto>8X=@1OE)U**vRbbE9kfqfH0=scU5d zf9<T<wZn2_scFBX`&()E`G)1*nepYjrdyRdPG022$L3LGeMm{qs|xPnMh{%9x5By( z5wj8$(2H)|yWY`T5#57)-uu;GCv?aLAG7>Fv+@DozTEY4O3F&2=RVgBq@RraZRAa0 zr~Xk<M7GU-lBaGS$^ky{0fAU+b^QTI_JC;TfVj8`Y-Io{UNw7M$NbKCI3i%=4*6aI ziDQ`_2{)Ms8mg@F{lEc0uLaQa0Yn-mDrlS3^H9g*z)VxKnelMFp0(I&$hm`YZtV~S zA87RMqYcbhKQeO=CG0@7ZXX3bZWqjEGYqTpx1byi?X0ZBsF@1OiGUl29;}WYe2Ydu z8(lRVO;L3WF&@jv9{bukHt#=>{XDh^`Rd}<GL+iFXaf=e&=GJ^XlD^C0+0uX6aoZN z13OaQJbZKq&^31(3-SSI7BV$!@>q<q?P#b&My8@tdjbs@4L3OfiabNn*+_|&XJe(d z+|d(b?6wAQ=Od3>+kP?Za?Wfmt+EdwLr=s7Bl7@MnJIxj)7oZ0i7ya`HvT8pI6YwI zv9l_<bLLgt_u+X4tY&MK-Ek*2D{|hC-ZhK4HH-Z+i%T_!FEK}GGDjRZN18K7-Ze+L zHAnq2M?*DFCo#`pGS75D#PoHZt!tiRYo2S0jPCC|pTvRy++;y0aKW?P9n!TRzO^9v zvXF(p0F_wO)JONXKn3*z!RCH}b!ZUjMNO(D>8=6=eJ@%4VuQdXBa<b=simm`33mnJ z=2}{!db(JAVoNGO`36HZXW8+B$%T&L6O5RopEi1)#oV19RLjysvtk{zhyYs&zE}!% zUJBb<3eQ=M>{@;2Osqq-l$bNGYC@b$wU!pR7W8X1qiZc*y0n@lPhotmkZO@yc)irb z!~K!e{p)(!)_N#jQOU)6eHW|6V~kWqX;j~OL)S*;%eU;Nvg$`?O3Us~f}5<yvI3TK zBA#V^UCssc?}oPw1^MSD;!37WoM$eKIxSrmIOmq&YO#1DuC0eIYdJ<6f%;oib8g9b zOd))1MXraOM#o!b&N6dnYDEtpEq}cj-a3Dj*W6jm*<_XweyTQn;S7OSZ-TkRYgTr# zUw3h_b^nvy^!MJKM+-sU{y;;tN4dR6{km7hzc&(SK>Qx6Lb6N#szcMg&#}GFr4FIX zea9HT$?CGhTm$8PFAj23At;ng%7_RlLZJYwbr?v)AP~+2`7&H)^j1|6t{S;P<bES< z=)fCvR1ulnA*1fYX#S|Od=wbp0SgaGWXg|vf*<wXIypoY*e2f~E=RQuv@IzT78a5{ zeurT?(l_5CL2d_M?z2c>5OQDO9d$CN<`F4;aS$ON$ZV0IPdUV_Jv8Pzfp()lvoS@? z4}y`7zu)T8QyVzAxHxUky5!<#ze2H3bI;0S+D<-KzkbGOjH&;0s(0|Sjp+1);3=lb zDNBI}lXXP4r?h80B#r?jhAZi*iQorC^`imtS*c3!p@h02AOI3^gMfEF3a%S~BB;dU zg%FyLB4{RwDWIm^Ew$yTj!tv2Zg~-Jl`R29_2dEeywKMXF88O!$x=|R6(LDp7xUO4 z1RBs<_XSGR<-(;pvN!rQ*VXS&>X<Ya9}z)FGZ!H`2ne`Wo^HT{=LL}|<mo-?*!0!Z z>pA7%RR`i#81w?4MG+VGnz(1b8J>IeaAB?I@I$x<zYgJ?<1j&77nL#eWZ=hbW6dd* z<ZVsZ85VI4PELjB&hCLBMC<Cb5kaXuH}`@}WVigT;gg*Ho3j{tn1$&Xr_{T=OMT_5 z9o3y9iKaa{Q!(uE+nU=ulg|(^!ry9wf@J<bVxhmw1@)>@_w4U_Rxb2xKA*jm{t0$P zw1VCX_UJ@#zv~IqchopNqjRfuC>QM3vob5s6MRtVxzBi0sh;eX<n7Ab(3h5akNW<h zqnis`xQQkC-I+yS64K+Vv!xo2KY}>dgV65N@FPjhlM_7ZG;DS>!HmDupsnY=;=83~ zK>oa`F{-lhl1Bc5>&sfg%ObqzWd;7S{pNM+zt?q**9D~4qlDMPp4ZKp*VCQXYxwI8 z_v@tw{Ff{IHt+Sm2Y&PhePr1T_+`Bc4MxJEmd()IlMctCk_;u)+Lw(c;(R{{nHwFB zbK?7iNS0*5lEkQ%D<E=KJf6aC(j01-R5F<^V40L1)lfQ}Rp9ZsiPp%hT*!ccxQm+) zV@^@n%J5>K0aB7^z>s@gfyFst*_^cB474yLjr{0WSqcH?nI@sFn*eqJmv^n+hwCLD z^|?*H1irjtjky=$^oC*S5IV{3nh(cO{TEItQfoGrO5r$^ZFp-log?uXnab#PB`GdG zc#V9wT!~eIBCJrlodvG{9n_wbqDuoqp6d#PBU2kgY$k@{xK&l}?{8wFNcbbDO&)&_ zN0pm?fCPLux^(K8d5IT(_PIEm`Y@gKsnh@JqOXGlCojPG{0_w2lJ_~o^X26QZaOUr zoQZvhBH)N$C4fXBQCJ`*w4o3b)nF^2LY;h<1xxVRDGs3dt(lZesYSzH_(_^aj!2)u z0ZQ_w|4Q!UKDkbw!ZlP8N|`Q`*!A~QEY9ddFoTC8y+mjzgJv%(G!#fe90H-&N1q~1 zPNMGOB{5}I6yxFpVG|fKc(g&9wTt*u8suizlN?IYIs$KEvKK~0uZ+28GJFPk<s})5 zerZUdyx?F_!O`Mk<>W}L8?_YPgb8R@<9g3&DC4L&#i|G&{)Wh~p8c+$k{7|%cu*z6 ze=Eu;n5es>+oUt2Yi)9;n<Bl$T}R{ArBTc0izKw#EqSPDV40AEscV&P?K3hMYS%2% zClJ@XZWpyRYUJFaHW}&MgCyK;I}qk><S|3l_|7|3uEj*E!&~^hU-A~}x*wME`O3$? zcULjqF^9st#{d3i%pe?M-_6h|xz@d(iHcR|5zM8RrVK2@ttMdz(*l+WF)I6(UlJ&S zx4vlD_*j0rmGj#-eIG7jlWAMpW|QSQEMlAU;i%0v?=!NfT|op>yIoO&yr_Lix=p)% zSzfs4X*!%<$8Tp)+@a09yyd9f@p})lm{Z*dQ-@Q-jC_Yp1rq)KZe_!=sB_zKX@^Tk zDmL;_=hab%YY#ll&pCemeFlBi9x<t%9*OO<a1lj>xW{y?WQoTF_lUUXl<;w<=gfa7 z5?*r(%w507b0pCT)Z=etjuvgzX#rFr5p<k<q@75&cqB1O_fO8-PwBh2Oyh5pVsViC z4%Ljhi;og)CH;>}B0l+_RgOsdoi_F4KAq?Nl?=G<!(sH@yOW0>?wO}`2L9FHg9qF# zr2l8559#T-dDd9#`8@HmvI9pXg@SKfVaOab0A4E;N$47et-6cANGgTSHS2MfWr}<j z(Ff1$Qnw*O?L`y6=R-y8MdWQjLIBr-zq-3QBr3&T>J5wSFkaeb2EE0$Ct`nh=cXsg zp!7`GA|bED2+*)Z>$(u2lm3$$aQVh4itE2>lGcHY+~>7a3uUX_+})+0*Irc>M6oi> zJQZj|4;^q}2s~iVP>3=$hyE}>GEH2n4E^y<q=J~gOM)e0@gZ=`zey$)u2*D^_4$L$ zsK}522zNlqs)(Ud02&R-4>nZA4+6Y;WivC28Qvnajqs`qsiFd)eA01E)qa5dD~w6) zCRG@*SCs)x3Yf)3hfvC;RdJy4P$9|ZA=P_*HnyaA@Ew`p-3Q1kU`L5#^1`|B{e;hx zn}Sciy&^6P8J1o{3z4i%($qKaU3Ct+!%-=zk_KZKK|=_ltXYDzLku<Ig-ZMRsZ1<# zX{z;D$_&3$+1*QX+*!vUet#rWVA5#?zARc+KWD>p2Mh45S(HPG#d&RNigr3T6{L)M zzv#siGRfH=sryH#)--z6k`_s$WcGQqbAI`my&}rruA?`mYb%aaQM`Y=kQpVA$TLN$ zEy%2ml;q{9#!02CBDyq=M`WwFbu!~%)EdA0`+aZGn_ueM6O7WolTSp($PsA@^Lg0R zkCbG9RR??lR2n5^Q5CgC(UnkQXMQ_hZBAy|D3sJar2?LFlR5@E-qBPBc$6B45;D&k zXfd_gpxqG-TnmtDe!-%c$EC!?h$u80!*unPq1VJfAK;pkiDywFl|(e)Y%6bWltVL{ z0#G1>eJ!fI9Pc<)@SFP67+_tMdN$#2GYs9zvvp37Zg638x|d*d8ab+Om0PE|!5!Nr zT)rJ2MJ|qlaKj+3wCWXG(z-6~7uDH5WWP*)8O3)WV8Q(6-bG5ce(Bx`{2n-<vV<`n z8-h}kiP52_$i7Nw_C7UTU1>jx*=;u!JPRcgh%z3eZXWn>hlq(z1H*#uDN!<^5go9? zP@qAqECpaNA}*MT(H@`YpPtF1x=tvz%fgvE_%4d>APJR>P(Tq51;}~Al6IGy8EK{1 z{8W?pVR|x&k>?Sq3>NrVkT%A>HAsl)k@=(3w`v-<uS=ar<?<w6lS33QK1@2uVvu*Z z@jUcnoySB?Zf(f%WO<)M#HC2Av-!5Nv=okyCWeB&qV)t$icc5kq-Kkp!ueNrow`Lm zm)`ltr-x#6(Mc<)M`q^QSAZf;>+6h`6g<6Of{D*Ey!}7mAPcr9%Ab|~@}K@L)R6uC z(YA-yAY?eLX)S<?--v)<4IP_(Hu2&(ONwH4gjlFHZrJ$U4DL!B6Ny3HOM`7P#qykw zQJdf@zxUbX`Vw_>^NhqL*7(NuUt;F=WHl!r_*a`P`GXdCA6CtKZs)bhVd170dEGGT zXIllB@1X7DrSHJUEp$_%A^4G7Oxeec*X_Tvz$f)&tjz;v1>#Q4ZjU6-;=WuPze($9 z*3_BJqaE~=ma72I+`j>4h&t&rVd|{;-zTyUL>FgMyMON!7M#dmgBMDs%h<$U7H*Xv z7n{28-g~oK8KZoRdnMu#vXVHrRS>iA$@OW5N6_OF7_6ym`<TbAUw#<*xP90CVK^}K z>hs@N_X94sb`*^32!()sq8{JQr<`B0B%Ny*GnFIy+c)VW0Y?}IzEignH=cRoHKPAL z=6fI!zUUruAowRKF+8w1<69g4w})I=wawDZ9C$f434hqjpuW@W3^Z&xcvN4Ozi0Wy zOUUDZPhiTM(JT_k7L@n(2TC5xTOT@t($0r{%ug2uC~22NJCf_!2VV|x<WewrUNpb$ z3Cxg4GQ4*qWd4>L{bL0F<jYO@JKaV`Mfblyo;?6GZlj~85D3GDpfi1|){G2gqJeEi zetV^lx*d>M5|h*<g(2pHgzt;xNrQ^=!58=9{RlnkV?BhreMDALdTTwzo8|b=-2|9K z(=39dluZb*ph*}Ql@vgWEY|c50r`etLjW`=CkCW{gS4N{xL;UPn!!pE6#_$HfeO<| z6Oh7CA-!}H_$Y3G8a^K$3&6w*O`)l0MFrrcc8DaAFc1xZW7n&Ri-3j;Al<_hA~`f7 zVfZZ30tW1b1_*S|us0l)Oqwu+6Mz*}ma?&vgd>{b9E({dib)X$g2BMQafPpeHP%Y3 zxiY{kxDXX@|1nYX8do461~P-;$;z1+$swE7C%J)<SNr)@u{bU8ey|{n74@mO51Ofd zIiwhlNn-J>XGzXynZ6H=;TxW&kvA6?SB%Y$h?bvAWTXp87MAL@jwSp-ieUOICp(8t z_+{8rRv}b*WNRYQ!+2ztN8vr;h&yG<hsF_UioA<2gM_>z9|;8<Qc^l;@)V?UJ9i}~ zPUL2bM#9e9zFLk(G`6|vDn=G7!c#m)qX$QWR1^s&N8_t#E3*_52$e!XO7ZtWUu4J9 zex(<xgrs;WCH(5H`#6?KNf!B&_%MGgJ3HfzX8QKrSY9z{JmPo(gUCnP@z?8-V%_l) ztMO8+@uC3KvXt@i;_-^cafQ(F@YeC_gYlZ*<KIKGs}_}O8B`R!ii=SDkI(v*D@uTj zp`?5eqgdq}DdS`YgV}r)8p}kNl~kP-YB%B}A!dp1*RpoZF#mnnM}J0!!lA!eSQ`XP zO^yE*x`C-WhI<DmM{Xy=Mkl9#PtG8!ecn_JL!FuzPvEbu1WQeEKVcDyp|O$zg1wcR zcA;E^SjvRh`sIAf#q1+|Q}7+DZ*!`s6o}LN9MPc7M0Qa=vUh+!0~#KC6sw)Az;B*a zgF51mb((g-F*_O&0YLl_tie+yB910_4{T}j;Ty#Lik)U~1ekcRcz8I78cJFMDk0`G zgpM#>FbI-}NV=*~yxPswP><YO{g6_I=q9(44L))LE5H~y`O*HVIX@a_w{g`&TW7Hj zXR+^Q|BTIs+|S}keCc_L3dD>HIM0<hQ^0?j#0{GxO`RhvnImtSqZpc_T$-agoTI** zdxJDjLo`pzI8P@yPcJvm@OGZjdY;L9o;hruC3T*)WS*^Qo_%PZV`-lAWi0e|o*QX_ zhiHM9ae+@zCm?1H&i{5n(0W10dqFsC0TS3GpvDvE*do@nAYLLYzNI5k-6Dy!_#ct3 zB$e)ejEgdYi?Ud{vL?E6oQv{diwdc_@;SN+C5tLei>h(Ds$05h)r;y#OBzIP)v4ZU zFfREN>4>~tdTYI;=e?vKwj`*wWKgnX)U@<&Xvui#?U#@_le;BTq-8UrWpktjL&jxG zxn--j%huL<MZ9{U7)v^WOZIVk4xCF4L(7g!diGO#E?dj#zYwtMkQ@(baQ1@;cZH=( za)3xOYBO59mt_~m6~ELK|G1Tpcgq1K`T<+|+JObQ&dV?&gN(i~O!F|)+7MtAhK&vo zL!xa((K#YB;YDr+Li4y$VPrVu1x7#tKng@+0kKm6mI#n2ftX<qL`ne2zGOJkNJKXV zk#7Orj8z~%#1?G0LAIL1xZLHZmy5J+Di~Cx2`l7WFUk-3I)s?n7gm(NW=dL+UWZiX zyapH;eQR1z_hXXj&6I?IGPV*cUyxKG=p`><s0T)wyod=?t5t#<`C;!&U)EYn-Wd#q z0A_|?X*U3fLDdu}lg!Agdc7wuv)6f}@-DxF3RY&lDw{|qN?PDO6*lmKG)e_Cip(?` zP2|YmY^mOuiCbzz+L~Kh`c^`=z__*e*5n(WNnn%y%Hhh&#mZXh)_UC52BU7il*x+w zJGfBT)=r7ZCf57iCX;=l?S1dX&r`EY*4szk+sA?L^Df?=lx&|iZJ$}|%?)i|ylBTK zFUBvlIzB-z8FzZ-wr}Ki8h*V`%n~ddYrIq2xwqc>In=t>WO^{P^JB^M$KlRX*Oq9B z@ULo!X9vXIv&D%(_xf(<b;=ZZdj~0e7x~YQDa7=l$t(b42Q*!g{p<aG*REwr7%uT% zo!0zdD=BT)Xc1;`Vs<A{u3{WstjV6XKW{K2={zBmG6}Kr^}-(6U^{89IeD`=q0L^V zS33!I7j?I24nLR-dp}k&mKIx^l6stedyj!@-)%0H`8ATIdym6MiT%%>>2DCvun3&y z$RhT7pUPw`NdO!;r^NeyKa9hYK{B0F-O_#!m33Q7m`PcrbX2r^Urhdocul0><s5^r zsN|~>G+a@N`iF0yrHr0fyxTst^AB$kgl}F45upbnE^TovU}ebz=~u1H11o;@4vl7h zdQ$6u#=Op}mK-sr{Hx_#c`>~|jr!q-kr@Xxci?zv$ke%2_~PL^g2VS|k*4zIdmJ{R z!`6;UnD6y$BFv5)ayxBHM=Wjjiw0~$TWv<o8r+$VJ%o-u<&VAeY{C54&eRGn*sYrn zHjc!xv^??N!^Z*3$AL%3pZ*;C#2?j$9BT>{`?*Atw%dNzI|;Kn3HLdPK(>R6adig0 z?)CB7g+ovFeNW<!PU8QZBp??@QXfQNpV*C^#HdFm*I*{v{7m!tnf~7HOZ)*rv7Mim zeabLNvyxrLu&rnkldE#+uL??u$RZtB5dix>ffoau1Wm350f{gdi_!=|qeLu#(2ez9 z1k=x;Mlzas)S*IXy^d>roYoNu*RiN6n|L-c;m!ed79n@qHWT^q1J_TRHv4R*$WCJ0 zw)e+Hvmw%uXpvq@r;6+XYgm!X>4agZgh$x0B%pl)B50><mJgbkW3m~~#%OgA?0?61 z!!*ZxKF(TzIqJ}}eEd}47~MGbW!WNU`7C7jYy|4;jqEg|$K;590e^C5!isW89WNRa zDjLT-AC*KRM1@h%<WC-D|3n8S#u7zGvrD!U%dugtF6Aj6Y)*U?(yO3po1)elXRr6p zkxmzx;pQ>%7ukBQ6Qr(Q-OiJH#b552v^5Jb?MiLQFJJoB02-&spRPZ-oLoK5Cs;#m zjX;xaL4C{gV4Mq;iBgo~H&c3ULjG5tLh%*JcI{$U?alV9@2|RuW79od7uMd$cU-Se zUrt9g&KUk8(s0ie!e(zht3JEd`(u->j)`yjla%|I7^fT!%s_*}N|#Xah0o)Sa1Pmb z_v#LJjS2UZ?O!>19^tu-%9S_t5nK~ezc@xH_04XuTsxQ*Y~b{}zi{(B;%Y9aNdXZ) zH*}QZCvY(_1SnuSg{R%Rj^93_Q+-*#O^R;(uO<5@z61AhHqVC(Ue}uxieI?gkpkTA zJ;Y8nUlG37{4@Tu<)A?bwO*3{g^8fT9>{C2z&yp5ln`ZyiOlmma-M7aJ2^L(S%>ey zK(@qj4V?V$x}E!h&6}Ma(fF$7iq63l#RpW$rKaGB)#hbV#$^Qm4Z8kr%<V<SjZIGC z*-Y=rBzb!m{+s$uIhXLUI8Tsmzbs*E(bH*=tu~AT*XieS4fQSqlEJx!!e4w*fB<$o z-WG)a*awg2E+xkBga5q@{#%p?qjD>!-u*xT`%aWm1=sEIwtwS$eHsMI`>XfeH>4-% zJjqvM#`l~2y+unl(e)}h^vv7!@3{Ltg74`m9a1t55R~Vu@z+sS;c9l`kFSuY0*QNi zk%y;`z!ch}4ypeH*<%692O0gxc$>yTSAn94$8nLzZ_NG`dH&^PkK=WIIAwj=%qPwX z7um_No<9Dc)IB^ezcu7lu;bjIKYGw=e5AE?Z!`6;{{BZUUG)3+lQ`gG7xB}mK|}FO zb|pN!{<A>CjvZY~V_D%x<o(ha^QVC~^!;T4l`R2PBLN*Pn2s7=P9&I&c8A?7?tQ-4 zt|$zBGmirN0nbuTEv5}aSDqXnKCXNS7%mf-(|Upv?)WdiKF=OM1l@mRFR>s$c+Se} zyhRSwAP8h-4&<VGCE)l}^Pkkg-<KVnSGK@U*D;^Ak0TGbZx4G;&dTP`ak?%dMhCAy zIm2IG%t$#I;SB@`!a}dLGVs%5zqA5vqd!0T*~gNfhaOQP&A}-69Cp_<{h{b2d`>5c z1z#fZs>Q49e$frbk_&sBpZua%jKimoN3*|S7*Ao-ua~v6W|+*tdpBQY&tHO{$-B0B z{`0nM^oueKUl1+XVy;*@ozIyK*G8#KyG&cHf}iP2g;9$TgQqvsO05N6Kc#5e>0E=u zO1(2$gX%`BN82YPvA<keIg-~mQ|yi0vyCtmIKg|2CZ7F4nl9tF=cHECUmU4*E)AON zl`~9vJTJ5TtaN7z*+;7Q9=-bc@U<F*eB18ir)q5%s8N$`FE*VOPF-G#{{CF)r5LAn z$-cSxfg{7~digB!`((aM=ex^`=%4fTN>|=_d$IfL{gGsD*H`h!-_xlpgwwBPzy97l zFy-ZGO1wTl{=L1rg8v5t-PrEf;%Ca`JJUOd(}XxIt?WX<$`INxA|qega58lib48vD zB=Z2uXvk6srGqbBG;2jGT?{z><Vyr)_&r^mUR-EaB<E=>eS*YehDBUm+;8&`eq_G` zHAd-s`sCxOdJ{k^n8qZ<RX{-oKvuokgi~m>_hp08IsQ#57_x>yrX^Reaq6reZZ9}N zK;$@7(SndZ5`Dd`OpRwwkvad>Z%r}9T>O~Piw1EPnhsLcGRc~yeN+U4VAo3dncz`d zIbY&(=CXp)gX5UhxI)&7W!iB{0uXMkHA|)FF&an<nJ1_MWWZ{lVgs9(0+2>C+3HTC zls6Okg8exfcy9C@>gIx(**){cae-P;z}O};7GiIZXELeTPp>c36=$B7vTLD@7r`r4 z(z$$g44rq9vZs-krxTmWdqLo6PvDr@&G+SUqo(VcF{?}#gXx*4zEbL=TRyT*z^^`B z0tW8j-ww~ebY_lXc*hvCI_cq~18%DMBdjv9uJOzyj`9F4>aL=vfDAr5iv=P~o`nau z_SVY|k%z-qV8U>CZgGw>YI3f$vp$fsBb#TENj~S49He-2g^cFgFECf28RQJO>6Qt2 zIv~y}dYU8hD6K&Fng24VPAD~GZiM&$*->-NIbFo~ynel;Z`*a?U4}iqPxd}SjElh@ z@@R}=q>KWY5ugE>iKc?2WlFHb$?vy=Lkc*L8BlqE%>)#qR$19;F?{2wkl5jUtnpW| z>%JZgzNK5L(x;Km7|Mq0DKWVC1>V{=@8u}-j#$WyV^7!l90jk$M84tox*Pn2Nr}gO zk?GCHpWjcqaL1Ji*Wven(p>dl1}WTSWfczKJ=$jY|Aosjd;px5Ut-;Q6NapUuvO<3 zk$oXa;@1XfRW!@B5q(%jOu;urG$?<IzaED1=wfluqKnY=;*j^jSe-PjPWkW`I&0;b zt7x&Q>ZQTtL7zk#6G*M>y5H!jMe@)h;3a?K!?~G_P!34I%~Q;$CB^%!UA2eJyxPyc zj)JCNKuZ$GEW;4W8)4YF^*qj!$2BS&x7UG=zjfcwugx9jVU>V<g-XfRtd+o8{DT7H zMB&hP4kLu4P<GUJ6d#QLg~phHfu6OPQ`sXVj<AS|-7wYEtv)&TnSn)ybzCc{KBZKg zkxi$3{B3=GY7IPqk;9VpUuv~6it-t`Jj*9cZtBy!pBZ^H){<4m6_mbuDf1+kPg?Ue zWKIV#2^6tT*=sj^U5-8E$^0fqNu|TK^2`JoV4ZePYREnkXBO?rREtu?jl<is5zb1Q z_M30W{j+J!Bbqt$@unf~Rrg4gK8c9BpFdaSfmxcMVm6Ggu>f1n4jRWZ>rB3wh110% z&tEYY=h0YH5PKrKWgi->*T_<|dCaX@p&eMClFaUHucAY~kUmaWDpbv?ZeOvGdGote z?9N`plYB7`o#>l9C!6{f2}>dV9Z3xYNw<h?sa(6MLa&QWuc2b8+M}uR{R^9chP!U* z9|2`1)LuBqY3`pt-Je`e3I*zC$A}Q2;KE{7W~p)Mq%=a7YF)N`8#DuW<CS>br0v^0 z^tVH~!FBO*r<NobYh%jI^>HQV)|?b;lO8?|xkKl+f*9*_(anuHIThS%<4S0VG)TF+ zoGb)*C5`Rc-w`j^bzVhRnF@ZVcF1X%-|?#qhc~qjOK^E4S8mpn3IWa+49ta#5vIM( z$zGB8Y@dQ6PD|&T35Tk+y`J8^xm!;Cfs{DZ&#zK}|Do+NkUQYV$IT<jzsUx*OP(*d zj548oC?HaRy&Xd;Dzq{F3enZq(C_^lG@m~4Xjb+H^7VzUKK;Z@oMHR{|5i?Y2gomZ zY$)Iuu@V0I#Q}1)YU<-UDF3Y{TXmI37Y>5-{etyBVGPkD;sPuJ3R*Zc236qvARv}T z)Rw{nK$Wld+=9p)zF6txu$flMvm)48Bfc$?MJ*==*N8=)8Zz=Mv6+fYfL8f*n*!bn zmOV@wTHmHLp&u4V`%aG!I!0lMYZGSa_OU1N#yOv7Q(m=>fbMzwCI`7rVEdTR_w}AM zIR&DXe8cPenF!$PAVpJhQ5Oh7RmM3Q)drR-I77B5W%K8WV!PRqAD_C0-_jJF{#3D9 zHCi#cZTYErvw_fUnkyB|Sb=D|gSsJWBlbv;S!~*HiLr{cYuxU$S1)*rJuixG8-7wO z40Q&}l?rcBDt#6;DEJgl!57Gc7g{hJTsmK&C3~T3^f(-f4l79G2xAch6WYdnNNl-7 zbjsuec+9XV3uSp)qoqWXBJt;qb8?wy#8NK2|I}dMm55~TuZl%#)2h#fSlR~spmG&5 zJ~LaAgLSS>mEKGYpvP29XIBWOI}G_nt=K2?%>-?FHh->nCj9BEKiT%78`OQ(^3bs~ z=ZDynrBfNMaJ(0+qUGm_J?^hihSt2E)(+lfKk20bz@%waP%RjXQlSW%hDWPSK&iW2 zIjBx$&aKSf{Vz2|g>Ws=*E3wkRGlUyEu+x-%E!MZ{Qct%60mAgTn`gC{4bE!(|Kqj z2~1jUuO;R%HZ@JF<cZ;*NL~FCVpM27MMlml(VtfHbpA9%fbm!Ai9l@D?9~6+;(Oo_ zZ;^O^APS>S<=EC5^1OT)<m!1C+3NThxb|-DN7C;M@#~*jpI3<9^vI31c&c@97r3ZI zJQnF*PJO`$tg6ZDa?h>RCHna5H^~ao?q_%IDY(@c$*ug_$}3yco0yC|784W-Oeh#S z0>bQVlNx!03F{CX`L_ZX<`q}HiaraFc-8)MgLcm_dyfnwhB`qAdMI~t@16{or{?nB z{_F#cdvy<`fM=s;sZ>n5Z7l6n%=f#yb*7PiOV~HNfLn&{7!B4ioCKu3FztsAm%>AP zF;&4dX_^HPopO<(K^+qPAh#@UaWllyNTeGxWS59jxe<h58ggs^$tHqCS^?i>%M&qu z4jK%Cfjl*XkP@eMP@x-PVDf8P7E-l0>QX>)Uw5k7Kb0K#z4zu4lL4_8qqC1fAc(3S z9i$1O)RY48NbPFE2)|8vlBx~zM$8#N3D2W3Z~@ZZzTPnGDFGO1s}usmE)}sw`4<a- z#$p;3;27U0=R?7y1V}qUM5Mr*ulXE)+gJ|97^`LgNAND~HmmFp0ZB_i<svIB`nPEB zk$(54RrdmuAlhdW99?>Z#UN@Z46L{`a@cnumnx(VPu<P26s3mh1{Fd600-ul0dWQb zoU|N*wA2!`gf*dr$XMCEP;wxXjM7r(j|IZ>J_ag1FBc8Ntm+%SKERBQh_bg(VuTzO zm_wzDm!hL=?IX~oBcKF`Izgnk0P}n-bMU^Wo4O|{7LsbvdTTFGWx>v;Z~#5{x@bYZ zX~AL;&jn`WE)3$Bx0tQ9qErpy{ZrtXO~Z1y;5}*1!UIAQhf$rHADoY`oySr?nscR< zc+SQe9PN9;z_c!742Up7)Y#rtE2H-&o+ojL#N?i#P%sR<i^%kTf1hQaZjR?)CV~M) zDbIUVZOIXePf2`6^tw}0Kz=VjI`!8$IOV>UrFcKR^*FsXpEM9ard!Y}>R>63zAYyI z7Tbm1TASYf>k+E~(|;a%x^*;qTgFzwJFIs$tOdHVv|+?VR?!cJ-q0Z6Ifgo|gnF3K zk}twivaIMC!#kAGvr1jN+uB$iWWpC=vTbdCYRxjpcoi0m`fSaTSf&>)eL!e)AYSUJ z9B(0S%K|B-*fw?ZNCIjUe~o>$Zp+jES$f-**Dz;f0J3G1D?LeFajQ>sUk;51rG5&4 z60}ND!umjV(9aeTtc<1+`#G+KNpDNc3^MJ4f{C6b^4y2|b^C%p#lK|%9q>u8;K;G4 zQCdanDTZ8pOCH0IF17POD%Y=u+r9Lq2TN0MuGzWov#6YWOHfu!P)2!>EB6;Td6-(q zK`+O#APt~Bi5eymm}3z#%)-MhQxy4`Ovn5LQAm|nAq$tz<|Ad}G?(16=Q*&?EltV& zQ=a$AnvYzOkIhy<Tv71Kns;fR$HbP)R*}ocR!m({%*4w4Agv*IT8QnS97kGsl>8rY zYKh+IpP_Zh)C#RkHuXRUwJ^4d@e}S)2epTy^6hd}Yqq>?2Oc1#Mp6eqiIs)d{%b|K zaw~o*n?tpFMczK!znANU9P5$URL~rXB^^q&&vM&S8rawi{Rvx|@ze0n1hr1Nqa3+d zS=!oH*+G@LXlJ$YY}(#%$Ck&_(0<39`8BOLR?ZyuF42X*ZEUPR&pP-DG7EpU*Rv~k z;`b)$^nXh3Y(MM2JmZ_9aO+<mP~PbLQ!!Mpog`G%LQUK{oz(uC-A7#|^7j0b&G}pZ z#bIfVlQ{PF_Z%f^c><YEvD4p19I7Dh=fOuyz0xP6UlDoc&Lg!eCbxB~N}RgYlc(tj zU*!yE*Q@5**(ZHC7U`UOshu^oE~azO7vFPEOrLRwI{kd%m<?W-H*)4va+(jmSpHhw zMfY~0n{%K-yZ`jfINSNwwqvVu)`G)D&%Cqq-FaLR=bq0n7EuiantU=H*AKSgJs~a< zR+n07u0!zf54{?ECAdqU1=sQT(4kKaSzIVB7S~DIrC~tL&)2znRhQFdm$&&fXC8@5 zm<PB+H5ae4c)D7$v6mOi8bl{GM63$bcU-@SBQc4%fwx*gb1v6(-*4lUO&I!aUo{Bv zP$@94e%oBhAJnKrV*eP;TnQlu8*@v2`u?D<{gC^8-%Ktf(e<K&`*}M`R?+o&8Rrjm z#FLQg%O$rAZV;X?H~dunK3egWO%r&-17_xtC#(e%gr-XJAS$@U_=Y0tC~EPzAz;WN zx$>ZVsQs*2ivk}(+Tnf<uSLt_LAOOgEpz)6>-KoVjiK-MH0g#}c8$Km<KKGyM8|`T zuneHWzySrG&u}+N9uzd>UUJzHf^P*KeMH7DE1#tR)L3)RXCA_=Euu36oQ@f+q7fXF zIxiRvOHw|-!0QDC5%5P4{Z|)X$Lj?FV=4B6P<ug&04Aw55keiV{x1MlNT8rZfxt&7 z7C}D>Lz?^rG61khP5e)4Uy-kgI}*};V_MzG=}C;&L;Ft=VOsU?JyWt66>fsPfBC7_ zm;M@OglDZgc`z4YcyCe=tynF_Wi@N^u?=i6HYfq#q+pPGkZmnXkw)<*#S)SsR|hkV z4Ayttf879-e?u9Rjm>#Wg9A3?5yoN78sSk;;{C{{$;4l&b&KR-(fbyKW#Og<mtXV; zpZ7O-A4W!0b!@L?QUtecEwX9DAK&^FPP(%psg&$v6hzo+D4*Bh;l`{-@}B3Tm8ajy z?Po(O`X_$VaA_!xfV4i!;>C?u%Eq;b0D^x5*BgFs-+qof1&NJ@au%;Km_Tb&6hm(+ zhJk03F-8p{nIHuewKGUChF`E!K<I<4vL%X2WmamZ7cl7MWiU~F;vub}K;H>P5O+uD zg!Y8p^0qXx?|69if(Sy@DE<SmSQ_eZk&qD@H1Y(EWN<Xg1bwm_4IA!uJ6Vlgd1Yqq z{1XMyD!&g3Mi_5+d-nDMy+C+j5GrP`-yhT|#9o3(Tb6&5dJ42j5r!m-GF2=^KM3!m zQ0)Wh@_7@c9cmtWg%*=Tr0Elz>34a(LmBLz?mjIFdjD?nmW?Oxm7+KHp+D#K@lr#G z2O|pfvbBQ<1ppD0NS75ft=L)YH$09{C@93Gh}bZJ^j<JxA#jdPiV52?{+sq(;BEQA zCoP{D`k^Ti3Z7TRBQZt@wq1Y*$!{FQiu8Fg{6X@8sqP$ahD!Smd}u<nSckw+7e8zm z=cAPNQAacS%Cz*}Pdac5e`*!_L>fD%c}p*zEs*?Sw~Fy?^uFEzfY^$TX@-7^TWUyd zf~J}OZv_}blg3L31r4*rQ1pY>WVsLF5b43)1E23_SU(CTfYlmApDl%k2?x;r@!!dc zULXh%9}l3m;R^0g;#V;2h5?#=Uo;;4>km`^D^)}GS^#{?bK=OLC{y30oCktDUWE%f z0m=*zTGdu<BRWAg17>K@d(nQ`|4<h0@9nSJk}drViA9JYV4{F&@gJ>zkXFCMyl|O_ zv#P=siD)xAwRG{m>jEk8Y%dukn4)pqLRhG|w~sJD{geSl+8acG2xCY0D$nyj2@O8e z^s7|7Eyl@1ebW+`_1$+=(1}9y``^cFx6n`L{xPApzD)iY8;=-Q{|9|Qg1>K2`#Q5X zd#wX|<D@l>-}?7DyR~1tg&_J|7X@-ZG7MuoxQBaxX#0czhm2ngw^O@4KmYF$w7a{n zdjQvXvctRi!Y;jMZ@2&Qz3;ER@4NHnyT9{qzXv?=%6oDXeD)4J!rLyuFTDCHyu)K| z5CAXsMSSbBk?x{_#hY#cAMeK7ZWVoe>lzXGh`i}~(N~nb$z$#h)WwOdeCJ}kOiTvM zr*6j|e9f0`ALabW!vqlUJn^FZ_W*tDwtU4Cz3sBm%Oic|@($BKJ=9123yC|`SH0Dv zFxg(c)^9!6?`YO{J=ll6*eli7TL%p{$Jw_j+B-+u%PHHx{o2R9+Rwe)%YEI`ecR_f z+~fV;-@V`Kz1;&o-v@r*3;y31KH?L;;txLKAO7Mye&ZXy<R^aQQ~y5XU;gAje&$!c z=3D;eW4`Bye&>%q=a)X{lm6+O{^zg0=&OF~r#|en{&ST5*w?=8-+t84es-i6?>|TH zyQ%L7KkyGfUkiWn6F<KgfAS-LDE$8MKmYPWfAcH<^fSNnM?dygzw}?f_Gdr$e?Rqu zzx9Vd`H#Q(Z-4niKcEr79#e}W=-7EGiUWW+bFg;+RANDsz_~%1#ZZf+oee+~2sLov zEP@3OhBA0?A;E?S876$FP-4Z17ady6h!NsOj~zi$<S6nZ$&eFKYCNgZWXqHzUzUuy z5+=);E^X$lxl?AsVLyQe6*`n?QKLtZCRMtWX;Y_9p+;?*kpF5`t5>mR)w-2ySFc~e zh7~)OY+18s(WWIEAb^`tpc(}DaFDHAs&3d8m_(I805f0fW(`b`ZDGR!Iy6$dm~msr zk0D2vJehJ@sh2Tl*1VZ>XV1ebhZa4WbZOJ4Q4?-^uo2rZp#~F_!d5Yr*r8|yXdpPi z8`XBN-o8z667AH-ktbKaoO$EV&!I<`KK*&viOsQR*S?***x>`46t+8tZJDYt0tk3? zaLRzf0}>Q4Ji?Re0R<2oNT7hfg5PulC?J6Z7D%8kwqWQ^!37y?(7~&yi%`M|DWp!V zn=sU=C!T29(8CTv#EC-@KO`~43`az<L={ieu*DQzZ2##&$XGPd#u{;qF-I7ATv5j# zdwkKyAa4Y6$RmXWslp|hY|=@jxEf`~DXFZ|$}3Tm63Z>Q?6S)z!3<MO3%xAU%rn1w zV}QLHQ<KfJ*a$$9tJdg1fdCZv0FAWJkdvxL4gjSrHUxNcAV>}vh>bPTY}C<5BO6oF zNhysA(n~Sjat#3>p^AnBz<2|S0l)}Fi~$5iV}Jz)g2F$l&fs()8U~;u4loXAB9ukv z48@ZH)(EAET5mmohEV!kFQGVAyUL6JD3Ah<P{LrM3^>%FV7F%z00WLE0+3>$XBiN~ zjRq1JHvnaw2;d29X?Vkt0A6_GjV4}$HGobJ>i@ITG6Fy#)M2LxWm5~JHI)W5;&9`E z-3%50VK~wlpx0m1$W-Hv8?4mhk3kM9vK^5ul1P%1G`VDyRZf}ZmyHb3;C&PFBmgJ~ z5&?mM9uXjf7knK+gt-V3RNYRCn*x-j6AIyj4?+-h5&^_b2w-Isnhm&tk`3iqWz`4( z4x^`77hvB8A|YL`*Hw4Dt3xSH*Q;hT)a``)MOJKrNMIFUe$@~F?NDa>mu9{<;GhJp zU_LqKmLYF^<;Nv=nexjWCo+_fIqzIdjzJGy^abHYQ{E0N7+v+%Q}f*Q*C}LO_StE# z-S*pYKMnTXd9N<_-+>Qa_~D5cz4zmhzyB;s8Zn<dbLXMA{CVl4kG%Pmi+Aig1uM6H zdhe_6Ui|C9r{4VX2})l5_1SOV{rBOIU;g>&uiyUr@y}oX{rT_T|Nj9PKmiVrfCV(* z0TGx$1ul?*4RqiGAs9gkPLP5XwBQ9Xm_ZG0kb@oc;0Hk%LJ^LTge5fL2~n6r6|Rtl zEp*`vVHiUh&X9&RwBZeLm_r@zkcU0=;SYfrL?I55h($Ew5s{cgB`%SPO?2WDp%_Ie zPLYaLwBi-9m_;pak&9jQ;upafMlp_&jAb<A8PS+VHLj73ZFJ)s;TT6b&XJCFwBsG| zm`6SCk&k`!;~xPTNI?#gkcBklA^#DXNCN(Xk&SfZBOw_{NlucIm9*p~F_}qCZjzIo z^yDW&8A?%(l9Z)1<tb5_N>#3sm92E;D`6Q+S<X_Df~4gwahXe9?vj_i^yM#s8BAdg zlbFRcW+!cVOl2;Unay<OGocwxX-<=x)eL1at(i@2Zj+nc^yW9g8BTF}5}V^R=Q+`t zPIa!6o$VZFIo%mgdCrrb^|a?b@%amQ=98cO^yfbT8c>0na-WS1hCva^$b%|0p}$zD zLmT=~iAI#747DgkFFMhTRurQh)u=}~`caXFl%yLqDM(K`(v+4Ir7cydOIi9-nZ}f+ zE43+1Z#vVQ))c2b)u~T;`u|g*29>BgH7Zb#I@F{V6{$^Cs#BTz)Tb77pjEZ%Rk4~? zt$LHHTlMN!!5UVvj+LN+B<oqxnpU;0b*o)v>s#R(SGmr$nq8G@RPnl0y+U=bckOFl z`5IWi3Kp<~HEdxK`&Y#hcCm+TY+@N3S;tBivXixJWm)Q0x^9-Uo%QTzS*cmjjy9cl zYJn@+f(b^tXA`Hq#T9zsNY;{;wptZ!ZE@Sp3k1MDSZHNxS-A<e<d(Quy=`%k8%-Gm zAP2vIKmhyzN!C`v1P3@k1`P4Y=~j0D892lvf%^-#wAPV$$iM*xzyK6vw~>p$!3EH( zfEAFJk%tLDeFKn*M*rfX2ND>-0VKc!Txd4{o2W$#(0hUCCYQn4v@2#G8)3>y__7p+ z@Psj3;S4wQ7jy`~2^g6R_n-p2Y+*qyet`=cu%!}>EX;{hd;=D{H~^{@Z;cx%fdCv} z!MR983R1yH9oQfdxnLwKOb`GFI8wOxrLk&r@mvXTf{~lhF$0W@-vF#Y7Qc{%juqfY z4UhT4WVY~`H;iU8r<u(Ub>wjy9A{!0LdlLy1#h#AUmG_v5yRE<Bl{eHEQdF|83=$4 zI62-%HrbKDH8c+($%6o7;K`26MR?_$X=cJ%)1B5OE9`5SC0Dw{<i#|NO^xFl+xXOv z%!Q!~W8FKc`u`V<u5_z^feAmay2N|-^sjm8W=;c}*spXCdmq_?50ko)bRGb+8R=|N zht~s#p5y@n;M-m=de^+h0COR^VoLwH(X=l1xpO&ebg#RVI)=0)BLMCjA9}#KSaE@A zOz&UVThZjk^llG;>_eEK55Lec3bLGtYGb+<Y)M3=bHM;5lQ$F3#WJ*c&2Ejy^1*5@ z^T$0N@-~Bf<RV}5FIEr$6HpQtY{A2-{cwQ+bob%q#zf3#o`ITA+uXmfLk8TV02D0v z7lzoal67E<U$7tmDPZz$8IWB}<01$CMY_^$zHKp+e9c|w`qxbk_L7hNr;t?l#?k)U zo<kDXY5#Y-RnPu*xs$T(S)cpe1sZp}-`&l7_xoJ+{&&G=weN#BJR>_!cCmXs?2T8v z;~D?>N4_+dALV4>AxZhIPcrhIU;O7G4|>Uaey?vf>)}z~Nz8*%^PFdCBrWgB)u;aN zfv5fLJ4(sfyK?ua>^<(!E$q_+U+}-*r16cf%H&IO`NY4w?VTU}U`wC+*BpN4MNj(C zXP^6__x|=L|9TF){-T<U{qZw-{+2So``~xK_Tk_D_@mkMfUN%gci;S;UQ+$B)c^f6 z4f+5u_5M%!bZ`7ZsQ?F%wiZeN7m&F6&-^e+0mE;WDDVM)%>glR14ZfgE|3G|PLZ7A z2>(cs1eHJpjiLlgkdKBy1&?5iT2KWus05AR2!a3wJ;w-iPzR9!2Z>?_caV>Q00@m> zjD`>hGl&Rp&<8_?2$O&bg@Oo+aF32K2*s!hbubBma0#K%V~DT^yYMHZPzZ_82+I(I zlrRjv5D0xh4ToV2sqhTL2n(n1g3{0pCxr;xPz~WwkA^@F!H5pEa0j^%55+_e-LMby zs0aY@iv$r3x6lwJ1rhnM5$}i*k?;yFaf0qp62pWN!%z|N2otSv4mVMPI?)rK1Qfea z6ff}<x5x)z5rR@t6`O<=q0klWh!nF>jAStr?JyE;aTVDx5ob}3c(D$_=od@Tg8yo9 z7%K!96G;lGQ5W4P8OMkjdodUZ5gMID8WHIWs&O34ppLN77mv|_p3xg61RN153C2+h zmtYsu@rtxj87pWV*^xTj5s~7t9@Xd^!{{CdQ3nfgAKS4QnNS@6(Fo4q6@hUX0dj%# z5h0_aAK&pG=Mf^C@rwu&5_fP2ERsShavI}t5hs$0K9U=Cun0zSLP`>mykHz3auic? zidNDYfzTyiGD2c9Bjr(#1X3a+G9P!cCw)>FL(v-NXed4MCJ~4Tc@in5<0r$B2+?4V zoYISO(kORuDyb4WtP&`VU?YVRDx;_?DM%{AvMQCb67kU{i;^qR(ty~qE&s*xEyHjo zvyzXtvWwJ`6OR%vpJOZ&=^#;ZE&;PH3+OHh(=!b7F}dh3xhODEaWEy5Ga@rHvxqWd zkueE~2#J6*HB&E1Q;a-Qi!3vOMDsK?V>3PD6l8NYX|pzM^EPoaH+6G2d9yct^EZJr zIE8aKiL*G3^Ei<+IhC_GpCmQ2Xf<gO2uIU3F#|R`V>Vp@JGE0bvy(fw^Ax%hJijwM z$#Xo-(>u{qJkzs0*YiBp^F7%UKHW1u>2p5qvpw-sKJ&9a_wzpW^FR3$K>ag733NaW zG(S(FIYG0Dp!0!RlR7WsL7QYbDYQZ@^g=N-Lp5|mIkZEGQ$ZE8GXED;fFu+`p`t{W z<Uj?qKUs7|U9>=36h>cEMP;-`Y4k>86h~(?M|pHdebh$NGeMoiIkBig)loW4R4P!k zLOirdo%BheG)kp(N}Uu$JCZI#lr@nwNl$c3C$vX_^hb3xOv!Xi%@j<}R7}xyP1Uqb z%alz6R7jhINbPY%187OPR4MRuLa4M){q#=(HBbe$LalTgiSkMXa|fq0Pn%*-B_vJX z)J-9EQsI<RCACs9^-?u8QaM#c<&;V2)QXI>fgF`li=tGiV^CFfRav!FUA0LIH7*x3 zOQTa!O|?<Ilu0bLQ!|xU#gi=#fDzi0EeJt2^?)t%;5%hZ0sk0bS(TM7g!MfO0b0S6 zSh+LQ0IUWIVLusR2hNKv6d(h3AX>vS)a*+(&GlTllMq?}0^9?@TA)~abyw+?O=C41 z?G%7e^;UyoU!~(!Rn;)+;5MywHskFAXp<DMtp#S&J$9fr7ojjRz&3ZQ24=HhPk~rT zfi~HdEg&FTX*1<iE)O>L6i6WtR=_<N_F@Bo5H_}CVb(TZmM!$aWNTB#0-y!9RW=LZ z2A)e^0X9(Y6&-2SL35Q~kHTN0!&8G6LuvN8Ou#m2wl;gfTB|kyc2+j4_5f;A$MPV_ z=72WyV8==}V*{XO(e-R`b8K67HX}9w9`-k<HaO?DHvj9kX<c<_!w3oT^?#I>U;p+w zh|^aIw_ek>SZiR%K-O&0mNpq-)>N)+XH(+h_7rv?08ro*7=bOyR>#7YWgGWyYx8m; zU^aEkVu4e1dsB5!fo&B)TXnN==XG}5R5tY%jQF-_kJMI?HYo!4Gnf`{E3{yzH2^-B zac`4t2VfCyvkrJmHaB+wN>;`)_Y~$J04l(4)i!M#*ER`(Em#(4XVU}}fC2hL0kSq- z3nMpKcQ*B)1t1r5nOAuK^me}}cM<h6dAE0y_Gp=ue)|+-Pa)o-7I|ya&>*0AQMWcL z_7n_lU?(>KlJ!oqmU}^$HpA0$mCSSl;0AEBWdAX?eRWfWZ?h02P603&fT7fWy$F8| z)hl&yQTg{&{g*<5w>HBQ7G_h2Ws`?b!H0o(hlRL@hxmt!IEaZjiH%r^kvM#BmbW%{ zd$Y56D>uoQwKj{lY73Y<kM#g9w|Z%_Zrk^JvDR(bqH+m#dkwfZyK`<cSU01%f>Ss> zo4AgT_>P$vkC%9l?KqG9n2%?Zg}cawWmSJ;c!v9T2d&^qRG3Nym}d>6aZ@f>Yx7u* zw>FcEb8Qm^3S)6C_>*U|5L&=JE<kc+Q)Dlo4umy3Pd1Z7SB?KuYGGM6Nnrq9R}VIJ zia9v|dH{zT8CIRd3i=j_2)Q7QK!y=H3jcv{k)7m*f4Mjd_KlxQZ5P2kR^WqmOaf^0 zZF^Z}*}{XjQ;h9v03<+Xcas#n6>=HC1jbc+)i(g<c#Sid5NhB86u>>mxd!I<nWOYc zgjsj5sF*?Wkdyfbmzj|%)Q9<bp&8mYyE8r&x}k;B75sUak4T_d@|X+SpcNURee^f` z7?A%sq)A$jLwZW%lS1EEO5-#+OM0YDI;LTIrbW7@KXpm|Ie)hZqjhqBHyS92keR<U zI9FPtC)$^T6iQP%b{*P3mvgD#)2J!5q5;~9cp8Q^`ltK#pqsfzY4fC|TB*OYLRY$| zHMFIhI;@YAs&!h6u6ixGTC2q{uK#satu@q#&Du%xI;oFZM{RSjaTBWf+OCI_tzWo> zEt-FVTCRbbu2a;j0lPMRI2MYSvX$7f_ZYJkdX!rr4+^0UP+$PA`LZj!v|Bd-_StcP zlN2hziwS|A2LOznH??QelYet;Y5Npro3A5Vw^2Je1v`0vJ2&%Sd7-y9HG4LbTQ-;b z6q@_FO*^xrd$OZDkb^m~i|DNrRR@Jyt{1zj`S}1=c5Mfs5F~(WMHvFDD+A`Yxa$DE z6rh{ORu5zj0?-z>XLAnRbpT92jx!dVY10HEKsKFs4k`do<a@Yx;GPu#jji{&4xqoy z7JO-Qww*T*cFVr=K*#J`Hvh+V4t6WP34FLM_k`niY%$!H^*|3eyn7eimciM1^#JHP z{8tO35LV#1_<Mc@cDQfgo+03Pi+jcopvIqBhYh=scN)9(=err($?N)~bu*$l6u)!R zdBM0gomW_$H)|2hx8=2Jx%{_Dp@VgEZ2fz;yL>iR0EK6JbC0)bXBNO`bGNk|wVhX9 zuXks!cg(Z4&3&7B;e0mbJkMqGdgr&#H8%ht_!J7gZ5=%TK-SJHT+#zQ&^NboQ2>Q~ zduPR*p_6=!wA+x4pu4pi${(AkH<Zfv*fzzxwhN&UE|+=jTwx(#2M9sdf1A?#+|KcP zx6xcTYnjev69u&S(*F-#(r0^Y>mb&hePfR`%}IPVaof(Veb-66*MFPYojuk`;o9dH z*crXsT^8Ky9JL=ezV(0*X8qEay^NE6%)@=!d6U)c{WkC2HuK#!LtTtUT}wNfvER_K z|5wV76SI|5*;c@_3t<kDjCrkmT6H!LPypMu)p-@54hTWUdfD9VJaKP;5Z<@ZyOR_$ zAifJ><3;=26<`i}mX|NR1_s~;QoaW+U}t5F=HEALznA9kd=bpu-SNcbIUd<%p5_a| z=0AJ5gZ}7i{^o=J6ncJaSD+9m-r}XcgO{FpQ?>_QzMG@|nfrZjnLK|`{in~~hBp-9 zr__{jlhSk3?f*9v?kQC6f1aQ1p0KUENpkwI2f6I=C+!Pb@E;YjIh5@?l<qq;uL}X& z9Q;WYU+?Q3Hxb`Y#~yb9|9%J`k%`a?JlZ%}UGjeut;ZTedt3BTfA5*3@0HxGGv9tT ze};+h3p`pzpZWBI*7gIt^i^8b&)Pl1`ttAh_3J10`FHj|fAotuH!HvL$y)iDx<%u; zuT$SRaUVE?n|_5Kv8$RQ34WuIAG~!R-vJh|v;R1+Kl%+mp3|Q<&;R+;I;tC*hqwRl zckl@Zy3_@J;CGPr!JAb9BG##a1PdBGNYE8Rg9;Z8Y<LQyM1&9>S}a)cqQ;FBIeOHX z(P2oABmXfb{D?B8N`k{$x_k*Urp%c%hgmU#6KBnxJbU{52{fqCp+t+uM3U1;5~EC; zI&GTNh?S>Qt6IH^HLKRGP?LV)y7S~iu@OzK94Ihl+Os9imOabxV_Ua#L6Y5AcdTBx zB<0@a3plVrur+TcC5$++V#G*uE?o?HYt*TcD_g#dIWy6yUo8tJ2utPKk84M#%sX-K z$h>wxuVhUS$q^&6kG%ftR^&q1CEJ>I4fnF)oSKUphuj$F<KxVCPHql8y7cKjIa9xm zJ$u)~+PiljuG72t>&calH~##*`t|I8T5k_O{^h7f<lA2izW)9FV9PJ(4_0~r4oIM8 z@BbBuV1hi+r(lCa<>z38KlvwNRRUIsVTSH`rD2EnG3a535QeBBg(MDj;fX3%c;JdI zUI*ff4UQ<If+p7JTvC+b$RmF(_6Ve9F$T#WjYRHu<B=|<sAQAb{pe(rR}Cp8dq!5d zUR3`z$t0Fu8pz?7Vj4x|nBPTZ=6PCH*=3q;2AEVCZ_b$`cXT%QgA(P@$0r+iHn*mf zZT?9pQ&GuTD4}I0Iv<~o;`9Tf#RVGWppss?U{YgXI_ILCDkjFGj(*yxV{Gb3YN~bO zw5h62<|nG1u4<)3tV#Jft74QoX=$#Q9_p)-N!W^Juv!sogb&6dwkwyYE~{!(t^Y#X zBeFOVLG4v!5SuMm%_`Yzw{%J?E{<MUTW(dgii&HxR(*S9xbB(>?7S`_YwuH{Dw{7= z@DeF+zgUth@QJo!TX0cjJesgm{{|Uw!_MY3t;89gE2_mrts7Ol8VmI>kP&|@a-1Y* znDNO$(Z{dKK!sdwQeL?1CBZa1=x7x;`?RpEJFjY<pke+zF{?x?2&;Za*R(`V9xp8u z%sfH~HIDUGJ>alDV+|9eT+bx6)kA+>V^nC64Pa6_qYcx-Y<Hd1mf(*4wu)xgZQpQs z?;TUvWz)@fhj$0w-mrud?zfCoA1>kGScU?5<dRQLdF7U0j(O&qZ_at=p8sbq#}=QD zPI~F4pN@L!s;|!a<g+IJ;^K_soYdJ~wvK!5y5|nc?!NyHeDJ~#5BckHpPEx=v!h)5 zm&890ee}{#Pkr^)Uv9jqLMOkxhK^TxefZ*!Pk#C46Q4a!OCXPv^4&My{O#w@Pk;UP z-!FdpMy$Vm`|o4;Jt^UDfCMa{0T0+Y{qe6-fcsy90vII(N^pV{tl;<*$UY;u&w&bp zppz^J!VrpZgsa0~|1`+K2zjtcBn;swB=^F|#ju4m6rl+j$h{OcXoX6up${iFfB`6A z5|#@h93c0G0SI6Xm4kv1JrN2e20#D-7(f7~Sj8&}0CGx<L*+;y#Q#V9aE!%sRa6$p zs|M;YZSi~D=4MF70$%ZoVyN5|-ypdM1b_pQ1BC(t00YZ`;)-tQBjoNlxeElq0h8!m z9DjJjH0E%P2r8ER9@#=dHXr~Wpd2D4M};dM5e!#!1m*~7#{l3l6qA5J06G9gOpY;< zMMEJaE4j4@%5s9UNaY(q(S!gHAeM(zCFLfOfH`(RbEx#BD&bIo0K8zAairzkCV9&N zS<;Qv4B;mmam6r1?vs-{gBByf%m5V9nOD?6GrL(sYsO2B*_6*V!3R$ek`okq>|`j& z8MzJwpaF28A`LS4PRU(y43P80CL2J+e3DR}0HbF;;d4&`O8>Ni01ZVj2QUeM#^H)k zh};JPkN{#jbDfh*=o_dgf{ohHj7dRbEjM^k`(#v?GL>LQLjle?t}+xP2tWZM8aXvw z5e$|~=s49$IVgm)rxm0q#4MWAEamcpZ=`DZei{l;H~^87u%ZhbIXQj?U;?RRsY0Pj zIZ#-@sF3g~0<BsyY-ZJ-TV<hL{|Z=m;x%S^-77}>+QYyqcCoXhX-;f<P5&8Ir-(fg zV=s%@nMSLo8N}&iwMrc4Wp=crHQ->UhSkq@XQx~(?f81>+SrzHvybhpYU9INzkUw3 zk>jmwIS1P`2tWWOja(W6APG=Nf&e9m90W8_xkfZ14*ydKKpLjoh|jGd0O&*mcPS@{ z$ZZ#?zm?u;#a7tcjwiQ?)f^nlt2%Q&q5%(Zq!|KGSICLL0HG8o=E@KNF-EQl3>W|e zm>Rh!C}02)K=6IV=v^^7lmwyhE;|1?NBEl8vFfv}dfCHX%W4>U=7a<&q9A}m0yw{r z6X+8(_h86{bP8bw1ql)m3Qq(;3Xv-Tjw2k3`@X>eB5)*-D;!|W`F6yrJMZ7p`{C7A zmPkx~-f{CQi2{UR#gKCZAVWcc27Cf@F%E@NvkSQ}1Yi=!MRO?BEC~RM5x^w4aV*D> z<RIs{%ENQA;!+#s>4ccdd=}o7B^QD#))fW<F#jdwLV1SE9hs;C00SI?Nn;xefC`OZ zLI7wi=TL;Y5d(NJo(24d06d`)Xf3qw{2aTakRj0O8FY|bO}$qC4isqRb>v#zJ6+?t z&m7)g1}jEuDTnrwyT#m+hYfAT!unpCO15~|U~3>nd)wTm+_YD8HEU-F+f%-ESG!Hs zXQLZ)-?m$|#jPE3FPodHQ}?>>-OY9z?A`Fjj=aOeY<vUuy#mjizDX4BeoyD$N~3q@ z><!$4R}SJ5x8K1-WHW^?Jlj30xW{FyKOr1j<JV!hm_8moiuZPMaBMjYUygFtg*=0Z zBDr)-Zu9OOVdp&0`In+1@)IK4=f=S~(f_YAn{prh$v6o*4vn_-;}|{a(eV`3QJWK| zOA;qFzdB~7?)BqXJ?yd0`pC(C8L*>0Gh<)-zRfOlw^v5(a<5F=>n^yYXuXzQ$2(!@ z?sr{rJn*!G`_qjubizBO3|?rw<9`s9AvoUgiYLt7D_{7gpB?l5vevvgKc&HgUYmNS z`RJb#D$k!jE0<qA=?%Yi#Jj#J9JAHhX1^KF<3tI#$0h7*nfTssh+D!R$`Ewl@Z#?W z=%!b`P_|_&=cCB;vzGqyOCNXZ1EuzSy1n+RgDl>EpR&J?tn9}ReukmnC&wrL`VU+F zdFG_=@0Up!)L;Kh#j5)G2d(C_-~WFzu_rj;eE|qIqJjhl=zm7Acjgy-3dko4xD)L+ zDiWwB*mrpJXMtTHdinP#XJCOB7=IN-F(DWe95XW}NE3XLfGX%6%m;ujI1HaBgDydV zG+2XzhJmrCfg$(>$(MsmVlqL99WZ!!4`_k>M}#kt6XLgo)M13NhlEckgY8F!FtUSu zcZFMM1U<NglahtzXFGNG3uS1AXNZPrsD^9EhHdDEZwQBRD2H=MhjnO&cZi31sE2#V zhk8f}eF%twD2Rhdh=pi~hlq%AxEN7bOJgW^i3o|2D2bCuiIr%Hmxzg(sEM1%iJhp2 zix`IThZBzIcAjX8r-+KFsQ-$q$cnA#imzyjpg4k8l@p}6cCd(xxu}b~$cw$`i@ykr zW+;pQcX+mlc5E07W|)j+xQxHhjL)cy(a4O_=#10|jnjyY)tHUfsEysojo)aE;kb?B z=#AtEj^l`q<(Q7=sE+N(j_+uW@wkri=#KQrj&2B#^Qe#YxR3eBkN@b80cno|*^dMX zkOnD`1*wn+nT^9}1VfNP#z=O-NRbt3kr#=P8L5%E=#U6gjDEL~At{n0S%}R@k|&9h zp4gEQ36d%4k}nC9F)5QX35hFtLJ}EvG^vw2nTy=WlRpWRbZC<wiFe3|kVm<Y3CWO4 zsgzBLluY@QPMMTZN&l5oxsP-xl~8GwTFI4J>6KO4m0<amTbY$*IFzx6lU^5;Ysr>v z>6UMqhE{X{xUhy+v<YR130GtYYS;q-zyNfqh=P|B9*LGM373aihB1dbd<Yzk>6niR znJHn2a})r6poUk331?UV0pI~=hzkr505}kb%XpTJXqbozmx|dsj2W4&>6)+En3EX* zm9Uv9kcOCvhInvAcd45JfC_b3nqqjGa;TcDvxmV@a0J&nCV7Xj0h`YWozUqDz)*;| zc?AJ*0JU(2xQT|JIY%dOhrua|Mv#_QXO!buoU2ool;d(T1apwnp78mep%9<+IiK~3 zpZBSs?#Z9>+5eyR**W?7pKxT7N*SF8il7Nf5NTMJWyqbJa7C8spaGDXX?O@%Gyt;D zhCcZV;z@#|IGk~qo~px#BbqwQX@?4`qAS{(vRR>JC;<V00u%b8W@rKd5CNQEMLb}K z9!iTKT9kEYqNsD6LwY(WT8AvEq)W;d4Izll$em`01=v{&QThw0a7A=rhAH5efcb`` zDVW#7l0iy`Mrt}GI-lL9a-@T#bjYM{3a2RHqG<@BbM&GzfStC0hKX=ReK3bUnpZ$d zhC*tlq=TlGvt)@nIf^PdjJk4-x~P!~sgwGsl?pkIda06XsiCl@n}eyGDmiTmhs)@k zacZh7>i-IJs)jL2p}$ZI2M_=@z=kn;0dfeage9ntxQ5`!a)r7%%$bk^*QrN}hW==V zrFyE#ilD{%l$Gd{w~BSST8f0~tDYmO#5q1nga9ffIZAXyp-@l)fCiQG1OlJ{v7|%- z5Cxax2E(;Qk>jnG6R+aKnq+~j8zGmBun<;62m?U~SCj_`aRULM0HiPwa%r##!LJ0d zu=^SS{d%wudl3zrpc@IT=q0VUNUhb%IoCR><U>VtR5?^MRH2|pd=xpKfB;|iR89ps zpb)YF@Kz-|IV3widAN+wNttzk5LX1T13{|=K?<<i0tK<NJu9&T;j<30v`U+_O#8G4 zI{%%M=&^u!u}nvvAqt1)qpjQuuLAI`FD0(zDgY@ZIgaoG6mS3nZ~ztn1K--M0zk8I zJGa(TwQop1gfv$EG_#XKN&(<Sq10%twp3R%W|QMie~VUNRZMj|Jq((p&v`|9;7TTN z5KT)EeJQbhIRJ%V5R+TEm;1DsE4n{Rx=8!8%c_xA`)9SNwRrngb5uvpG*oJZvXG;) z0YC$26$MuW1E$nFaS#QYRI-eVVU9~Zck70Et4g5YX#_xCKZQ)n<V&Pv0h8ltQ;=!_ zu(-z5RNfmt%G-wbdKQy=3IjU;`brSyYY>d^M^|J532U?gpa<uRo$Bkf^_#y?tN*{J zz`p#eps9L^%8R5P%erNkvB$Wp;b=a3%Sp8Bw^tOnQ{)J(Mn!7CImT<e(^J6qIC0bS zO(NU4m19m*6kZTqRDlFJZt%b?%)L*Ayc-NXUrLU@K)x%%zJ+i_bI=g~TM&6LM~i^8 z`m4hMz{C5C#BZ^_^t;6UyAc0-!*Efc2FZsUI;zrmz|`itWIBfp3{}q?z2F-;(|bkB zL^&m#089Y4-y6eX9KOt2rk*N1Hv6)BJHnGAPz?}NOaQ^4ut{bR3ZEbV2GBb$+`Vm# zy!B?S3mk`W0hvA=0RdpS{>#J$kpTe!0YzK`qU*$wJjws-!=F34l?=cN+W&{*JBO%@ zhFJ`5ZKSJl{GT8US3%`p$4kOmbi$US1}~6Ib0h*RcE`R{K8H#=pK8oC>&C%E0FnSu zK~-F#a8hOq!;r(wYc^NkYRHk}P83!-g8Oiq+H91n%FJpJBe52taS-Ty3hJE11A)Gb z;KN0{0|arS3V^?q?8Nq)zW=L8D{vQ_JHPoX7Ep{E>kJwT!OjOw5rl}M;|#gk$cC)! zZd*L4uslBRBvub>%XmCcd)zs2FjhD=&1_sg9gMBwL&uU6ROD1tM>RQ06#xjf(RxNw zk(13YJ68fA1+fGQU;wKLKwj75u~n<Hq)ZS+{J$%3zXqWPJKV$vf&bJ-y_o^90|`qC zJpilr9MBgL%F*f2iTKsR7^X%*n5N0aC+#`IS~^bkQPo_s&TLXB<+YX*QUTy*+iW@B zT+(`ooM{R@DcwhUWK3lh0B2P>YBd4915hyVN|Lj^!d3<!(8~qD0aS3f<g<)nUDN_S z5U#|;i(p0mybzHr0qtB6o-NRIU;^)Z02j~$NK2Wqy~MFinXvh!_*lbgIL;FNb_qO@ zj9iXh>{gJo(%{?DK@HOg_6Y>A05sqRm+c56a79$mYdO8sFYD7N71VEx+v&)$iwwtS zIK^ie7zu3<=FOr}{Fv&D-t4W=1|1RMZLEPf)Zu-Gyp3?KJpZj0jnZ(HR)UR3gl*Vy zrAKT9IdH%P8;}50L;w#!1IcAMX7B+kYgCne*?X;r=%&^uD&BUO8cJLc?v2oosou&8 z9AVwz3>}_hUDm>R)*|}d9n04-F5_~Dq^PkH=)D(GThJHr;b)=aQjCk^O^qGO;$vFT zU3@v8npqpJIt|U=0P1X+rJTVds>&OkK@J$|{o{ghuObfLVb0EoXvK$!-x#Og8q42R z9^(YehO6V`RrYM-%$$x4;!9fMc8(HVuB5kp#p$?*XYL^#m~-bD+_=W(R^HwAy*bAf z0OJ}tVlZ5}Tsdwq04JP8o}gURb6?jL2h!CDb3Hn2u>WS1b6jcQ2&t~>pTh>1o;mf( z7dj5aRQ<yNAjAt%2ey6+xqj;fk?VO-2*Dog_v{yA0mQvd5Wg<$!rm9W4w(<Vl)BB= zc_`?4hl2_n<uqP7sNB$v9spDz0FLAd10V(X6=WcVL<0atXCMIi6|$4QsFof}Zg2n* z#Rd;B00+<kZY2c}FaQkjVxh2Iac}_zKsjY5IYL(Ok>dmfc3_aRU2fn30ssL+MVaMf z?v&H&Z}0&JAOSSn1PX8f93Tblo;fI9hIyXO1Odc_AORAPu)OZ<r*Q1MuIn>j>&VXX z4=Vu!Fc3BHM-cGZG*7>mtN>12+rF;r2LZ%-aR12=;KVI(00VFVJFxUSe%|j5<^ur> zfavCRShXfu?cSqwOJ|3b0|5(QX>I@o4RBC0RyvkW>EdHf*98ZTaQE9yI&2^S+bvvb zpz5pMIdV@qDE|waQ(`b+#v3pNTn1n#Yz8KOU-`9S-Zl53!0!2VU*SdSV&H3$Gw!t< zN}u3eArRrT9bf=v`VF;Xk#l2uwo0KCQ4ywVB^=vnAZp%A1?V1D126@SBnHTJ@?ejK zcCPX@Z}s&n^GomS&42aDj`~8J>nJb~@I3UVumTET^AOvY_*?S^k?XV_u({6t0idte zPY`qP{J@cl^$pSYJ=QxCdx3ZMlLH3<(EkL&R$&4VUTZJ_91jo!9=r)vFjSKS2R=|4 zFbRzSNCv4$IM6_fL5!i?9GFy)jew4!)<_U=po1HOQW^|k@TB0H0C6r9$XL)!fJZgY z1b{=~KtU%A20#E~kWGL$9t1={Sx`U#s2R}&kW@1in*nb=9C*;QU=su;r9iCt%k0@- z!O*TXs}`+QodF^)hysN}s4{Z#>fKv4FC<WVA^k1rD9+)$RRtTIBql_F5Cz=?Km*6J z<xgU8!o8U@W8O#x(*$T_Fbvhao;w#z9XDc4!hIzRaAYtsT!U`ewmqvGt=dz;g%2kl zJeF`+#gh}y6JSyBMFUXOaZdgDDgW!(ool~7JbUr)%?k;i6M)h8@7%#}Uw=Kjc;V@b z&!=C1_kH~N*ZS7KzyI!G0u*pS0t+<oKmv_WP(dpYbnrn4Bb0DL3M(9DK?N<;a6=9| z^zcIvLlkkuVg6$aE;wLlAb<j1_{1iv_97@0hC1?OfGG?T1ESk*6vLn?1_&&pH3U$M zu*t&6$ddq+EQpE#KAB1c+-`#EN}O(@GL%UI$gv<27AR<{roadwq^VxRXeulP5CDx( z%n;y>z=E_9M;&9#h(G`O!wsXIB60*OPZpCTfDYo20s*~ZgCl?^q~Hr9Nd)Ksjz#sF zM1(TpaH9hQhGZfDC@iCbga1b~^Q@-TGHNvxP)HB}3^+#3vDH@JfV7bzVN}BrV1orE zw%9@;VE`%`p`w6E;o{Row1jh|K5DByrMd1-F#)PY76~AOLUvGKyX@o(4%_+CLt%g( z3b`SG9n_Qe6hZ>HVLa~w$fFQ``<3@Q6b@*&hXdHNR=DGgs}@>@8P@GtwjgGUL<li7 zqCtu?*7!q<H}?2rkV6)E<N)z|xVK;aOzF%}(p)Ug7}cO{$TX1*pwq(+3(T;?U_Nrv zNy2z6veCx43^P@$-0ZWZN8`1i(>iMH<zfwT88*J;j7a9%U{nmFhVQd#7M063yI0)M zHX9?g*Zvc2xYq_{ZvVRJhShDeBi@Zq-Rhh6V8DwbC2+zEH(a>EPf7f6#sTj$EtGka zT<^)lwtOv;FT@bz%sbz>W6whueRR@Cw7jM@7NB7bN8F$xfF@Ye>+0BKO?FwiVxvI- zDB^g7iVeD^)KW|h(3De8IWXYGQA>s6)Kr(Y>Q#eYwY?ErVf1WjU7={?MXLiyBUoXH z<?GnnnN>5lhWW(%efZ;-e}4Mwe_vu~3tx`D{TuiHe*gwhfR}sRfAE)|17eP37UNv$ z9B3iXJy3!Zq~PdIH@~)71xg)h+mJG7zk+=5Y*v{Y+j=F!jMS}e@5^8U{RBc7#!!Yc zq@h(@Sh;9POaFfYEZpDd<3k<>QHb=pApyfy#QbEAffZyTf+E;NC`M6=9J=5P!N37# z6@UaGsbLqr_(k^pCUP$XV;RkOMi5Huh63!LwS4$S!@-d_KrD_N>nKDz9xh?0*duX( zVMG%lQH=dLnOT&$xhY2RiHT%nBOO^qG)7XAlXMm!Q$|TlW-^j4#2?}I*G4?*@Qy<y zCE@bOI7<?+kf}V&As5s@M?P?ov7}`!C1|oSswE?%&}1)t2}8FekZ+g#WigF8KmHt$ zPjf8g{{Ci1#+~vM(j3kyp;=16fs#IygWTj+`8Ywg4?nJCkS%42A#<ivouPx|G2Qvj zKZWx|@c)b?FX<USd9Fo>+Ki?s{fW&`0(3a}<R&gH_st|O5RvN?-7FdUP>6=8o%j5r zJt>Me{JHR=GqmWRI=a!C5cDiSq$YAq3c!*EP@30FsX$L!oIWBfI0$8>!)i*-i$%0^ z4%KN-eHx*Of>fxO6scK;dQ^{sF{A%!DdS?Q9BQ$2K27}}Ri`>iPadqO-K;5BFNafD z{`7O`6l+<{YM`JZwTvIVD8x9~Rk+4gu5+d9-s*Z+yyjJ}d$lVLjp!Dzp4DSK6>MQ4 zYEZ7~Qmyr4t3k+yw~j^@BOQHg7YE5#%w|@zbKUA@J^NYAu9Bvg?JPI}q|jFyHe-ZU zZU1X+30m03R<?v3<7{nv+r5@nuA?nzVr%P7{m^un!1XI`#d%PM1=h79V(oIBn@HnE zSGue$s&1!?+pRu}pw?AoAb)#Z1m@C!(5miVQ>onNdZ@YSWp4$+`(F57SG3|Ku5ar* zU-|a6n}U4n5qtYx&2o3Py!9%8Z5mwvS`NMK)zEqw{9w}U7On)2Z-pg%Sqt0th5{~d zac|3E{VEfX+chqQ$%~c+LwG_CR&k3-hFBAan7$K+@r*BQUmPR1zTVC7d-0275Jxx2 zJqE3a?~7m^-)FQbcJYH)++-+kEUrVo9Cx*A+L}^%yb12{kG+i7rP`RwSyu9lNB<k+ z8q+q-YeqAX4-73PN7+D6mUEpY+Fitw+0FU&@Rs)sX6b5q%t=OahYM}p^7eVei#~3l z6FRab+S!R@m2{=0Ox;wr+0cLfucrTdV>JWW%%eWCqCZ<iLGxI@A2x8FS?$*^GuqXD zPA+Q8Y3Tyd8P~f8>Xd!m)l_r(#CR5VXj>iLL;E?LS5~!~6J2ai|0m9t)-|uKeIPbl z^2f@~w3r($<5E}I+o4vq8jEe-a0h#{>ZUba+09u}JDS|{Hl(d{dTq@u2;ckG5U^K$ zS7ysP+Irr!yN`YDc*k0=0T<@52i<5?A3VUw7B#{R{)=f>y4w84cemR;asPnNTEpX} zczlmwvAn+f<C%SSjN3f$f}6VB^tNz}GcM_kb6n>;=XuCZPU)TpUFac;^tE$7bfhO; z=?Aiy5tjaRs5f|_MhAM-t$uZ=Hy!I+=X$<xO?7>DUF>7ux7Nvi_MsQu+DAuw+ud$f zv%g*LVE_8st3G$U=l!g4*L&Zitae_r-S2}Z`~>-4c*LjIVqYlx-4p+K$W!p}k*7S| zF~oR$3%>H3=RAid-+9olbMcK2d+1Gndgf{#^{Wrv=riwl*2iA<MQD2Mo9+eK=U#$n zu-FhtpCR1`KlZjKz7dijeB_I)_{7Jx>XZL`v@iej(5F6#q;D}IH2)v=)#rZSX@7kq z;J*9g_fQqU4}5BGpZx1@JNS>!e)w1D{DD`0{O!N>>)&7h6_bAUam@zj+dl#1H6mC( z@f$z{3=s2MK3?O!`b$6v+_~a=zX(J?25i6ptUwKHG3MJq3$#7|+cgI)Jr68Fek;JH z!#oqzzXhB=I~zgtTR|D5KMbM38MMFJ!#5aox*P1l^dmtZgg@-l!3+#SBkU;@Gy)Yo z!u4xG9=x_4WI`$AK;xT2A&fz5i$W{hLiTz>E*w82r~-b|!Y?dCGdx2F62mbpLNtt! z#d<?Hj6*q`LprR(i~tck%tQJa9Wrb~k<mjy3`9X3L_#b?-2cEsLrg@2;6pa_LkCer zNQ^{DoJ2}IBSfskKxD)RbVL!sL{I!gPz*&+yhKr)LrnxiPTZJMTt!xFMOQp3QhY_E zIz=o@MU9a~T+BsX+{G`7MP8&RTJ%C&yv1KEMq@liWL(4#Nyd8$#$o)JwUI1?kj8?b z#!#?EY@94@oW^ae#%{dEZ_Gw+97k^?M{qPpaV$r5JjZoRM|ONicZ|nyoJVtX8+k-W zdThshgvWinM}5Rcfc!^+<i~&{$bs}ngG@+-T*z<qMYv$df`rI}>_>`>$cmiEfON)Z zR7Ga&NRRx;QCvolG$xJQ$c!0DluSvLv_pqn$w(?mlm8?Umt4uG2!IcOi>H{8P<R~! z;G%-i74b0$s33p@Pyhu;00Ov@4k#3%3;+XAfCVthqKrzYoXM1IN&2bDo3sk3&`F;3 z$xr}FuYiiDoJs{SfT$D`j2HndF@Ty3021IzsMyMy=*ohi%Bh5k0)Wc1RLh-g%eRC8 zodhA6jLA-fpUNtT#0-VSY|M;sOpJg`$9hc4jLgcMOv}tn%-l@Hyv)wj%+KUZ#`Mh5 z1kKVEP00*R)jZABOwCY$3JwSW0$@svfC{e&g+U<|gZO{|Z~*Wr2;0;kr>xBYxXrS0 zP2?oa<TTCYL`~&<PUeJ8=ZsG3oKEX(P3gqW>i;YVto)PIgiYC`&8ECfM|cV-FbELn z&EI^@;w&2ykWJ&13}zXDi~!HstjqS4%lHh11%RCnI)j>MPSq?-!|YD0JVx7W1gQ8C z;*8JqYyhDAk_NSk_nd$UJx~la(D+Hv1+CBg#E1utQ2g9ajDUdvcmNclfB<-b2361i zV9@b|i{PvY2SAkd^dbT+P!GY-kqk~ySP{Bp&;6VX76D7(#1bU!fYKn&0!V-aSO6%E zQorQUj?_^2@lhbX(2O9`0x(h`RhgtT1C_Z60hrJqwMi}YP!e^6712u(2m|qqp&Zpw z4v9u8mBkr72-ysYJT(YUNJ^-%&=F;uM*naDs5sB@RG}5R(<&9ovS}<C{m>@Z(<6<~ zKfMw`^-uyp00T&XPW99Th=L;((?3yzsEE<8pwutb&$0o9M}Ptg7)lbApE;#d4Pn%d z>{Az2l0FRuNg)jy>D68>h%N!vBOOd!9Z4&FA6<nCUj5L5_|?*Y5@=;lWUUDkwE&gb zfB=AjG<DIU7}iRCpGSa-B_&MJ=|fxXkYr89UIm2*K$JZFgcZ39#xNcbNK=Dwf&dVJ zUa`w|MagBwn|F=Z4w%<^#fVA3SK_?Zns@;gSrv?MgmGa}eT7$ftyWach;yxpNi6^r zdY@WdR|<)r#SB<U6xT_e(J_FEGXJm&6BPi@&`T#>fCLzTEAdt)wb>_iQU>T*lr6@A zHBB|Oij~dJmc1F6?bn$_3bXkHh`kb|yb=;9A$?6%aa~o6hy)415~9QsM3vKYZN!)i z+LW}~5K@^FQdALQTSYZnUL0B&LfgA}8-t)*yb0N~O&b*I+q><>vE4+HeGnNEP}V$L z!%f`mMBK$y-0fuC$93H6gj~@CM9J08$-P|4#azzaT+h{9&~04Njog}$Te#)iksVw& zJYCjpT`DzQ*M*DJRb9e08%T{^+|AumT-Mtq+IF2?+C>oE9p3rrUE&=?*gan04PFB| zUSDE^4^V&sSbz{<gQ0?n4gVmL81Vq#G>AtSfUpgpD;a<WpaH$LijVNpEgb;%ZQlX- z3AcHJhHzd?N?zYp8JIv)%9x=~fB~T(fD3p6_07Z4DFd=KN&3YkhA_@JSRabI3En){ z)c^&}5YrbJfY4wS=?T_2HJhvXlOlPI^VJEmNMK2_U;5bziA~`E$Y6ue6*yp<8wDen zaA7;$L(v(71KvmzmZa~U)lh(e0RV$IXo4Yb837;)H+TT@MFTcfOEj2XFj(Ryeqw{5 zfdc@8H-Lg8E|LWhgEwdZ1b~aFcmxHdfiaODPe_0O0D%u`6;MC}EeZ@VpaC<012uR6 z2iRBGfdkihgTI)B2>*ynGS(AU5r75|11l~F7|7z^8GsV*VM}z>NK#>|Z~+3Kl_v-Q zDu9_pX43?~h$#@Cjt$}fNB|g6gY~?L4Bm;*n2H3@<N&ycn}}sN*yM`{1sTZXTjpdS zA!QIcS=kjG0~TE7B@jtQqd1ro+;9Wh&=HWh2}uZyhj@)LAPYHBjA~{LvfvtMo`jpQ z=4J^W&(MGb@Pw9Kl~F#}Qm&o=FoQRE12<>_0dRqWc!UvP<15JtQ;h?r>CfAA-!wi0 zILMheD3sfX6S620;rZZX1|t-npPhhb%XowDG1YU8nljcNcV6L)c!W{WfHYQ(&6t`{ zI1NcKX_Piq;s1#mj<yQpH5*|r;2nNOFbZAL&FRb?-JRCy&UH<LFk*kE6oROfunmDw zHlK(XmKafLSh<ZuIqETXYSfV)GkFZpZ~znyg+~woi*=O^mK0AgRh=B=oL~|rkP4jm z1PAB<rEy@{5$CGtl3Wf2Gx-|0!0Dde>!0T7zV_+Q^=r@NPD(~2OU{U>HVC8!1zeFH z>Vb<*evzA)5h%%tywFJ!NNT4AlTc3Vf)IgFerfp;W|bKo9X94;7LXf$==uQz3t-;@ z=m0V36&gSQ0a$=erW(E=462R|P^j(O&h6N6XoEOxVr7;`FjWaHhz>{qyoMPpS%4=P zk||*02LE6J1ucpvsZj#>063T$DA`Xo(chHbZMg^xP=J8~5P%JUf^lZ;8sc3U3KSBm z?Et`S*&%6(m6ZWFS5L4DW(fcdfKgCb76A|eGqG$=j@JbElDwb-2A9y^w(jLN76IsQ zG@@zLPVHfUZx8?QI*e#NG-=z|;29$A_|b4w<nTuXaTkAaSS)O}L2*GGVP7)snjS_N z-*FzNClSY86|Y4W7v3H(awFHIAGb;xALh_0<`p0E<~{QIS#l|_a>CxxWTtT(-|*D7 zaxee#8A@{34RT?G@&j4z8q({(=Ig))Y&CCl%RR<7pL4;cb2qQ^#g*>_CUY}~5HK&r z#s5UeKhH!N|02?+a(n#5Er0SpZ*&An0!TjsNq2NgM-V3$@=DM208x;iI|5Dr^kKO4 zG6(facR^BT@zZAXQ#W%{U-e@abywH)R*!Ysg>_n|^jW`kl1+6?*Y(uSbzi4bTMu?9 z2X<mN%wa!v4mWmX-$-5`^=4OHW{-ATOm=Fg-D$seNBn{u*LD-+_VZg1H1Kvu1i*0b zb#gyLBsg~;NOwp4fpcdAcOS-cpLa(L_aCr#TkL}K8+Uz2Lvzo+e@{gvxW0BDcr=7} z>63Sa=R|>T_%oEggNJxO1b5;~1BySxfVaJj=frily@~JmFI4#2V|bBo!wx+8GXJza zAW(Tf<oBjCd6(b9jaT)VpTdt{kdVK5D<pXZk$Ik9c`gt762y>}C;Bslc_RRNq-Vl_ zZ+bLb_k4%?ErfTbr+O=dcB~Hp&;~F0LLu0Cum5_m4|}m6`xP8?vp;*ZzsfC4d$w<T zx7S53e0#Z{d%Ca0xUYM>&wIUR$+h2mzyEu{zo@$pe8Mk$!=I$VKYYbse8xvtD{Oqo zk9^55o5Y`d%fEcauYAn^a7b2w4lW4xjp49_<TbDgF82Hsk^&D<fD2au50HWmhUB5f zjnKykNDcs;?bo3I0XW%w7}xxV^!?+-k};6W!HidX4WV(-S%Zk$4p8NS@Psrdfv5lY zYHL*)fE`zbrGlhne&L62;QxL}w#_W{P-Lan7&emt5S~yt6y0>2?2pvJjDLeL)c_EG z4-bF*PvEWug-Im<fS43&V5k5A-Vh`>DS^QN9TE<t5P%6Nh!!ClM0k;4#)KUSc5?IK z<HnLEPohkzawW@_E?>foDRU;xnl^9ZEIDi^&z?Si0u3s3DAA%uk0MQ~bScxONpnJt zDs?K=s#dRJ&C2p)BZFc%9=v$Qpnymg4Z5-TVFBB=almRUNwQ!70tgHwC?LRKfhk)5 z0uC&AFyX?0ogz-GcroL~jvo&*EO|2J%9bxrB?-zwfDZ%b4(t%10i3-wAWr`X(BvYh z)}YYBJvkS2C{RrT2*9j+H}BrQ1w#%ld^qvq!G9x9u6#LjxnUFD9w2FM9D`5@j!fW* z;Pe1~ou~c$+<9EO<rNxi)O<br_U;24k1u~dedF)%<Ik@jChe{b<B||S0RknYhCyH? z6kq@wjIrH7pO`UH0O6S@+jtcw1j!2qIkBIIAA*=)eIt@sqKQPQG)jmove@EawAIF0 zSdt77fD08_1j+*eOaRd&Q*>YeSqpp+g(Mg?lw?D(fu&>s288eijxJJJrIm-Bn5C9m z7I&qWUxFE?m}8PzW=>q9nWmaenc1eBZ^9X;oO52brk!`<*%O_6^4b5VpML@xXP$!+ zx@Dk;BATe8i!xegp^rj3U!#*!iqkA!s#vL}o0=4<r=K3@(xnNF%BiWCts%gXQKh<S zO=Cf_(S|Rm0S6i(1VDmKW&{wcMXtsKt3?Ewq3Wr}0t%|K%OaK{vd{X~>P1jMaKHm! zh4O-D108T$D31*Ah(*#4M1=$cG$6%5By2lS2qBaU0lMmjf<~_w9q>Yq1g#N392XQ2 zN+U5iFaQA_#M&<!6b!(?ccJjA1_$VdXRlcUfgwQv3Vh&5y&4}(VM6x$N)Q{ymJxs$ z3^zc<KyD1+$OQ^~OM?Ul9Pq)aZ^S%v2<?Uv!V1t5-5#??BW?dw(MvaXhOr5OG621x zkdOc<o(!-?&`k{R)&}~HYb@5-hC;;v6*b^(6Agqi$pB<aA;2doiwjY|b#KIL2va5$ zMgWu88<z_-*LzS!U<7a^ui|<Vz!RSo7yyDMkqnWr_QFBX3kN_ffCw9jF~D|ccur8- z1JS@X)2kzwwCk_y$-3;k83=4BY6#%*Kw=0W5EKuj!S>2$oIQ{uaU2ivy=eqcMjX#S zzn$A_5HFB{&O;B!+yUU75CPtX;t3pZM8SP1WSAem0S!#y1{_duzc@jD3naht;?jM4 z0GSUP1_%Mb%OaIah_F&tGBNxuWvc?k`l#TBI7lIJp-}%IL9m8~&^c&!8ng`TI+(N# zf{-%(N(1s7;fPp~U;tETL=yz?um%VqJRA@J82CmIUipd!0)Rps-T;OT=*|rSh#^6A z2!%KJ5QzD^$c9K@hDN|a45Bg15*-nM7r?;`Bq#v)QkDQQz`+RtaM}F^lD{S1rU`Ix z0}R422@#B;5pLjs0c;qGv8169CTs*G&KQ6MgaHmu7~=%*6$&f9AP!pOqQ?xFkVXvg zEg_s_VLWKbWl=JdgQ*DQYEzYpv?e8?B#0eLVnaK+#*<5gNGVy;N>aKemN**azD!vX zPZWS`n%pH;F6m28!K73d5hgE-=_dPu2owttzy|(oXUu1w>6g+Z6f~=8&1+(lO4HmX zo}87<Z-O(N;v5V&%c&+yjWeC<Tqip(V$OFOs-5zjCq3)gDR|<uL@yy`OZaKee*!e1 zh{`8H>m$&ER>q$QU8t1`>d^QwG@{DM)Ica&6^klVq8h#DLp$oxkAgI$A{{A7OKQ@S zqBNx{T`5aj>e83OG^R40DNSo?)0^Tnr#js!PkZXqp8_?gLLDkmi)z%PA~mT>T`E(X z>eQz~HL6mbDpjj$)vIDPt6JSESG(%fuYxtKVjU}4%WBrMqBX5*T`ODL>ejcyHLh}< zD_!eq*Sq31uX^1pU;FCUzXCR}f)#8)001HX3sY1<Qbb8sAT=&92?1bj000P50000x D`J+Oc literal 0 HcmV?d00001 diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index e333675e9a..4481149fa7 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -497,7 +497,11 @@ <td><br></td> <td> <p> - <li>Graphics library and tiny windowing system under development.</li> + <li> + NX: A graphics library, tiny windowing system and tiny font support. + Documented in the <a href="NXGraphicsSubsystem.html">NX Graphics Subsystem</a> + manual. + </li> </p> </tr> </table></center> @@ -574,8 +578,8 @@ Using a variety of technologies, NuttX can scale from the very tiny to the moderate-size system. I have executed NuttX with some simple applications in as little as 32Kb <i>total</i> memory (code and data). - On the other hand, I often run richly featured NuttX builds that require - memory up to 100Kb. + On the other hand, typical, richly featured NuttX builds require more like 64Kb + (and if all of the features are used, this can push 100Kb). </p> </td> </tr> @@ -1373,6 +1377,10 @@ buildroot-0.1.3 2008-xx-xx &lt;spudmonkey@racsa.co.cr&gt; <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> <td><a href="NuttShell.html">NuttShell (NSH)</a></td> </tr> +<tr> + <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> + <td><a href="NXGraphicsSubsystem.html">NX Graphics Subsystem</a></td> +</tr> <tr> <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> <td><a href="ChangeLog.txt">Change Log</a></td> diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index e40a8d4e2b..b47cd99ded 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -1,99 +1,114 @@ <html> - <head> -<title>NuttX Porting Manual</title> +<title>NuttX Porting Guide</title> <meta name="author" content="Gregory Nutt"> </head> <body background="backgd.gif"> <hr><hr> -<center><h1><i>Under Construction</i></h1></center> +<table width ="100%"> + <tr align="center" bgcolor="#e4e4e4"> + <td> + <h1><big><font color="#3c34ec"> + <i>NuttX RTOS Porting Guide</i> + </font></big></h1> + <p>Last Updated: December 5, 2008</p> + </td> + </tr> +</table> <hr><hr> -<center> - <h1><big><b> - <p>NuttX Operating System</br> - Porting Guide</p> - </b></big></h1> - <p><small>by</small></p> - <p>Gregory Nutt</p> - <p><small>Last Update: December 5, 2008</small></p> -</center> -<center><h1>Table of Contents</h1></center> -<li><a href="#Introduction">1.0 Introduction</a></li> -<li><a href="#DirectoryStructure">2.0 Directory Structure</a></li> +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <h1>Table of Contents</h1> + </td> + </tr> +</table> + <ul> - <li><a href="#DirStructDocumentation">2.1 Documentation</a></li> - <l1><a href="#DirStructArch">2.2 arch/</a></li> + <a href="#Introduction">1.0 Introduction</a><br> + <a href="#DirectoryStructure">2.0 Directory Structure</a> <ul> - <li><a href="#archdirectorystructure">2.2.1 Subdirectory Structure</a></li> - <li><a href="#summaryofarchfiles">2.2.2 Summary of Files</a></li> - <li><a href="#supportedarchitectures">2.2.3 Supported Architectures</a></li> - </ul> - <li><a href="#DirStructConfigs">2.3 configs/</a></li> - <ul> - <li><a href="#configsdirectorystructure">2.3.1 Subdirectory Structure</a></li> - <li><a href="#summaryofconfigfiles">2.3.2 Summary of Files</a></li> + <a href="#DirStructDocumentation">2.1 Documentation</a></br> + <a href="#DirStructArch">2.2 arch/</a> <ul> - <li><a href="#boardlogic">2.3.2.1 Board Specific Logic</a></li> - <li><a href="#boardconfigsubdirs">2.3.2.2 Board Specific Configuration Sub-Directories</a></li> + <a href="#archdirectorystructure">2.2.1 Subdirectory Structure</a><br> + <a href="#summaryofarchfiles">2.2.2 Summary of Files</a><br> + <a href="#supportedarchitectures">2.2.3 Supported Architectures</a> </ul> - <li><a href="#supportedboards">2.3.3 Supported Boards</a></li> + <a href="#DirStructConfigs">2.3 configs/</a> + <ul> + <a href="#configsdirectorystructure">2.3.1 Subdirectory Structure</a><br> + <a href="#summaryofconfigfiles">2.3.2 Summary of Files</a> + <ul> + <a href="#boardlogic">2.3.2.1 Board Specific Logic</a><br> + <a href="#boardconfigsubdirs">2.3.2.2 Board Specific Configuration Sub-Directories</a> + </ul> + <a href="#supportedboards">2.3.3 Supported Boards</a> + </ul> + <a href="#DirStructDrivers">2.4 drivers/</a><br> + <a href="#DirStructExamples">2.5 examples/</a><br> + <a href="#DirStructFs">2.6 fs/</a><br> + <a href="#DirStructGraphics">2.7 graphics/</a><br> + <a href="#DirStructInclude">2.8 include/</a><br> + <a href="#DirStructLib">2.9 lib/</a><br> + <a href="#DirStructMm">2.10 mm/</a><br> + <a href="#DirStructNet">2.11 net</a><br> + <a href="#DirStructNetUtils">2.12 netutils</a><br> + <a href="#DirStructSched">2.13 sched/</a><br> + <a href="#DirStructTools">2.14 tools/</a><br> + <a href="#topmakefile">2.15 Makefile</a> </ul> - <li><a href="#DirStructDrivers">2.4 drivers/</a></li> - <li><a href="#DirStructExamples">2.5 examples/</a></li> - <li><a href="#DirStructFs">2.6 fs/</a></li> - <li><a href="#DirStructGraphics">2.7 graphics/</a></li> - <li><a href="#DirStructInclude">2.8 include/</a></li> - <li><a href="#DirStructLib">2.9 lib/</a></li> - <li><a href="#DirStructMm">2.10 mm/</a></li> - <li><a href="#DirStructNet">2.11 net</a></li> - <li><a href="#DirStructNetUtils">2.12 netutils</a></li> - <li><a href="#DirStructSched">2.13 sched/</a></li> - <li><a href="#DirStructTools">2.14 tools/</a></li> - <li><a href="#topmakefile">2.15 Makefile</a></li> -</ul> -<li><a href="#configandbuild">3.0 Configuring and Building</a></li> -<ul> - <li><a href="#configuringnuttx">3.1 Configuring NuttX</a></li> - <li><a href="#buildingnuttx">3.2 Building NuttX</a></li> -</ul> -<li><a href="#ArchAPIs">4.0 Architecture APIs</a></li> -<ul> - <li><a href="#imports">4.1 APIs Exported by Architecture-Specific Logic to NuttX</a></li> + <a href="#configandbuild">3.0 Configuring and Building</a> <ul> - <li><a href="#upinitialize">4.1.1 <code>up_initialize()</code></a></li> - <li><a href="#upidle">4.1.2 <code>up_idle()</code></a></li> - <li><a href="#upinitialstate">4.1.3 <code>up_initial_state()</code></a></li> - <li><a href="#upcreatestack">4.1.4 <code>up_create_stack()</code></a></li> - <li><a href="#upusestack">4.1.5 <code>up_use_stack()</code></a></li> - <li><a href="#upreleasestack">4.1.6 <code>up_release_stack()</code></a></li> - <li><a href="#upunblocktask">4.1.7 <code>up_unblock_task()</code></a></li> - <li><a href="#upblocktask">4.1.8 <code>up_block_task()</code></a></li> - <li><a href="#upreleasepending">4.1.9 <code>up_release_pending()</code></a></li> - <li><a href="#upreprioritizertr">4.1.10 <code>up_reprioritize_rtr()</code></a></li> - <li><a href="#_exit">4.1.11 <code>_exit()</code></a></li> - <li><a href="#upassert">4.1.12 <code>up_assert()</code></a></li> - <li><a href="#upschedulesigaction">4.1.13 <code>up_schedule_sigaction()</code></a></li> - <li><a href="#upallocateheap">4.1.14 <code>up_allocate_heap()</code></a></li> - <li><a href="#upinterruptcontext">4.1.15 <code>up_interrupt_context()</code></a></li> - <li><a href="#updisableirq">4.1.16 <code>up_disable_irq()</code></a></li> - <li><a href="#upenableirq">4.1.17 <code>up_enable_irq()</code></a></li> - <li><a href="#upputc">4.1.18 <code>up_putc()</code></a></li> + <a href="#configuringnuttx">3.1 Configuring NuttX</a><br> + <a href="#buildingnuttx">3.2 Building NuttX</a> </ul> - <li><a href="#exports">4.2 APIs Exported by NuttX to Architecture-Specific Logic</a></li> + <a href="#ArchAPIs">4.0 Architecture APIs</a> <ul> - <li><a href="#osstart">4.2.1 <code>os_start()</code></a></li> - <li><a href="#listmgmt">4.2.2 OS List Management APIs</a></li></li> - <li><a href="#schedprocesstimer">4.2.3 <code>sched_process_timer()</code></a></li> - <li><a href="#irqdispatch">4.2.4 <code>irq_dispatch()</code></a></li> + <a href="#imports">4.1 APIs Exported by Architecture-Specific Logic to NuttX</a> + <ul> + <a href="#upinitialize">4.1.1 <code>up_initialize()</code></a><br> + <a href="#upidle">4.1.2 <code>up_idle()</code></a><br> + <a href="#upinitialstate">4.1.3 <code>up_initial_state()</code></a><br> + <a href="#upcreatestack">4.1.4 <code>up_create_stack()</code></a><br> + <a href="#upusestack">4.1.5 <code>up_use_stack()</code></a><br> + <a href="#upreleasestack">4.1.6 <code>up_release_stack()</code></a><br> + <a href="#upunblocktask">4.1.7 <code>up_unblock_task()</code></a><br> + <a href="#upblocktask">4.1.8 <code>up_block_task()</code></a><br> + <a href="#upreleasepending">4.1.9 <code>up_release_pending()</code></a><br> + <a href="#upreprioritizertr">4.1.10 <code>up_reprioritize_rtr()</code></a><br> + <a href="#_exit">4.1.11 <code>_exit()</code></a><br> + <a href="#upassert">4.1.12 <code>up_assert()</code></a><br> + <a href="#upschedulesigaction">4.1.13 <code>up_schedule_sigaction()</code></a><br> + <a href="#upallocateheap">4.1.14 <code>up_allocate_heap()</code></a><br> + <a href="#upinterruptcontext">4.1.15 <code>up_interrupt_context()</code></a><br> + <a href="#updisableirq">4.1.16 <code>up_disable_irq()</code></a><br> + <a href="#upenableirq">4.1.17 <code>up_enable_irq()</code></a><br> + <a href="#upprioritizeirq">4.1.18 <code>up_prioritize_irq()</code></a></br> + <a href="#upputc">4.1.19 <code>up_putc()</code></a> + </ul> + <a href="#exports">4.2 APIs Exported by NuttX to Architecture-Specific Logic</a> + <ul> + <a href="#osstart">4.2.1 <code>os_start()</code></a><br> + <a href="#listmgmt">4.2.2 OS List Management APIs</a><br><br> + <a href="#schedprocesstimer">4.2.3 <code>sched_process_timer()</code></a><br> + <a href="#irqdispatch">4.2.4 <code>irq_dispatch()</code></a> + </ul> </ul> + <a href="#NxFileSystem">5.0 NuttX File System</a><br> + <a href="#apndxconfigs">Appendix A: NuttX Configuration Settings</a><br> + <a href="#apndxtrademarks">Appendix B: Trademarks</a> </ul> -<li><a href="#NxFileSystem">5.0 NuttX File System</a></li> -<li><a href="#apndxconfigs">Appendix A: NuttX Configuration Settings</a></li> -<li><a href="#apndxtrademarks">Appendix B: Trademarks</a></li> -<hr> -<h1>1.0 <a name="Introduction">Introduction</a></h1> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <h1>1.0 <a name="Introduction">Introduction</a></h1> + </td> + </tr> +</table> <p><b>Overview</b> This document provides and overview of the NuttX build and configuration @@ -104,10 +119,13 @@ See also <code>arch/README.txt</code> and <code>configs/README.txt</code>. </p> -<p><b>General Philosophy</b>. - -<hr> -<h1>2.0 <a name="DirectoryStructure">Directory Structure</a></h1> +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <h1>2.0 <a name="DirectoryStructure">Directory Structure</a></h1> + </td> + </tr> +</table> <p> <b>Directory Structure</b>. @@ -868,8 +886,14 @@ tools/ Use of this <code>Makefile</code> to build NuttX is described <a href="#buildingnuttx">below</a>. </p> -<hr> -<h1>3.0 <a name="configandbuild">Configuring and Building</a></h1> +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <h1>3.0 <a name="configandbuild">Configuring and Building</a></h1> + </td> + </tr> +</table> + <h2><a name="configuringnuttx">3.1 Configuring NuttX</a></h2> <p> <b>Manual Configuration</b>. @@ -948,7 +972,13 @@ The system can be re-made subsequently by just typing <code>make</code>. <li>Creating make dependencies. </ul> -<h1>4.0 <a name="ArchAPIs">Architecture APIs</a></h1> +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <h1>4.0 <a name="ArchAPIs">Architecture APIs</a></h1> + </td> + </tr> +</table> <p> The file <code>include/nuttx/arch.h</code> identifies by prototype all of the APIs that must @@ -1285,28 +1315,76 @@ The system can be re-made subsequently by just typing <code>make</code>. </p> <h3><a name="updisableirq">4.1.16 <code>up_disable_irq()</code></a></h3> -<p><b>Prototype</b>: <code>void up_disable_irq(int irq);</code></p> +<p><b>Prototype</b>:</p> +<ul><pre> +#ifndef CONFIG_ARCH_NOINTC + void up_disable_irq(int irq); +#endf +</pre></ul> <p><b>Description</b>. Disable the IRQ specified by 'irq' + On many architectures, there are three levels of interrupt enabling: (1) + at the global level, (2) at the level of the interrupt controller, + and (3) at the device level. In order to receive interrupts, they + must be enabled at all three levels. +</p> +<p> + This function implements enabling of the device specified by 'irq' + at the interrupt controller level if supported by the architecture + (irqsave() supports the global level, the device level is hardware + specific). +<p> + If the architecture does not support <code>up_disable_irq</code>, + <code>CONFIG_ARCH_NOINTC</code> should be defined in the NuttX configuration file. + Since this API cannot be supported on all architectures, it should be + avoided in common implementations where possible. </p> <h3><a name="upenableirq">4.1.17 <code>up_enable_irq()</code></a></h3> -<p><b>Prototype</b>: <code>void up_enable_irq(int irq);</code></p> +<p><b>Prototype</b>:</p> +<ul><pre> +#ifndef CONFIG_ARCH_NOINTC + void up_enable_irq(int irq); +#endf +</pre></ul> <p><b>Description</b>. - Enable the IRQ specified by 'irq' + This function implements disabling of the device specified by 'irq' + at the interrupt controller level if supported by the architecture + (irqrestore() supports the global level, the device level is hardware + specific). +</p> +<p> + If the architecture does not support <code>up_disable_irq</code>, + <code>CONFIG_ARCH_NOINTC</code> should be defined in the NuttX configuration file. + Since this API cannot be supported on all architectures, it should be + avoided in common implementations where possible. </p> -<h3><a name="upputc">4.1.18 <code>up_putc()</code></a></h3> +<h3><a name="upprioritizeirq">4.1.18 <code>up_prioritize_irq()</code></a></h3> +<p><b>Prototype</b>:</p> +<ul><pre> +#ifdef CONFIG_ARCH_IRQPRIO + void up_enable_irq(int irq); +#endf +</pre></ul> +<p><b>Description</b>. + Set the priority of an IRQ. +</p> +<p> + If the architecture supports <code>up_enable_irq</code>, + <code>CONFIG_ARCH_IRQPRIO</code> should be defined in the NuttX configuration file. + Since this API cannot be supported on all architectures, it should be + avoided in common implementations where possible. +</p> + +<h3><a name="upputc">4.1.19 <code>up_putc()</code></a></h3> <p><b>Prototype</b>: <code>int up_putc(int ch);</code></p> <p><b>Description</b>. This is a debug interface exported by the architecture-specific logic. Output one character on the console -<p> - This API is <i>NOT</i> required if <code>CONFIG_HEAP_BASE</code> - is defined. </p> <h2><a name="exports">4.2 APIs Exported by NuttX to Architecture-Specific Logic</a></h2> @@ -1345,7 +1423,13 @@ The system can be re-made subsequently by just typing <code>make</code>. the appropriate, registered handling logic. </p> -<h1><a name="NxFileSystem">5.0 NuttX File System</a></h1> +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <h1><a name="NxFileSystem">5.0 NuttX File System</a></h1> + </td> + </tr> +</table> <p><b>Overview</b>. NuttX includes an optional, scalable file system. @@ -1395,7 +1479,13 @@ The system can be re-made subsequently by just typing <code>make</code>. from the very tiny platform to the moderate platform. </p> -<h1><a name="apndxconfigs">Appendix A: NuttX Configuration Settings</a></h1> +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <h1><a name="apndxconfigs">Appendix A: NuttX Configuration Settings</a></h1> + </td> + </tr> +</table> <p> The following variables are recognized by the build (you may @@ -1977,7 +2067,13 @@ The system can be re-made subsequently by just typing <code>make</code>. </li> </ul> -<h1><a name="apndxtrademarks">Appendix B: Trademarks</a></h1> +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <h1><a name="apndxtrademarks">Appendix B: Trademarks</a></h1> + </td> + </tr> +</table> <li>ARM, ARM7 ARM7TDMI, ARM9, ARM926EJS are trademarks of Advanced RISC Machines, Limited.</li> <li>Cygwin is a trademark of Red Hat, Incorporated.</li> From 418938e51cae8c5d2800e7d7ccefcfd92c982ab4 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 6 Dec 2008 15:42:22 +0000 Subject: [PATCH 0367/1518] Add test matrix git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1426 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NXGraphicsSubsystem.html | 565 ++++++++++++++++++++++++- 1 file changed, 546 insertions(+), 19 deletions(-) diff --git a/Documentation/NXGraphicsSubsystem.html b/Documentation/NXGraphicsSubsystem.html index cfe66daaea..9450b897ca 100644 --- a/Documentation/NXGraphicsSubsystem.html +++ b/Documentation/NXGraphicsSubsystem.html @@ -148,7 +148,7 @@ </ul> </p> <p> - <i><b>2.5</b> <a href="#nxfonts2">NX Fonts Support (<code>NXFONTS</code>)</a></i><br> + <i><b>2.5</b> <a href="#nxfonts2">NX Fonts Support (<code>NXFONTS</code>)</a></i> </p> <p> <ul> @@ -158,6 +158,9 @@ <i>2.5.4 <a href="#nxfconvertbpp"><code>nxf_convert_*bpp()</code></a></i> </ul> </p> + <p> + <i><b>2.6</b> <a href="#samplecode">Sample Code</a></i> + </p> </ul> <p> <big><b>Appendix A</b> <a href="#grapicsdirs"><code>graphics/</code> Directory Structure</a></big><br> @@ -176,6 +179,13 @@ <p> <big><b>Appendix C</b> <a href="#testcoverage">NX Test Coverage</a></big> </p> + <ul> + <i><b>Table C.1:</b> <a href="#nxglibcoverage">NXGLIB API Test Coverage</a></i><br> + <i><b>Table C.2:</b> <a href="#nxcbcoverage">NX Server Callbacks Test Coverage</a></i><br> + <i><b>Table C.3:</b> <a href="#nxcoverage">NX API Test Coverage</a></i><br> + <i><b>Table C.4:</b> <a href="#nxtkcoverage">NXTK API Test Coverage</a></i><br> + <i><b>Table C.5:</b> <a href="#nxfontscoverage">NXFONTS API Test Coverage</a></i><br> + </ul> </td> </tr> </table> @@ -1714,6 +1724,43 @@ int nx_mousein(NXHANDLE handle, nxgl_coord_t x, nxgl_coord_t y, ubyte buttons); <h2>2.4 <a name="nxtk2">NX Tool Kit (<code>NXTK</code>)</a></h2> +<p> + NXTK implements where the <i>framed window</i>. + NX framed windows consist of three components within one NX window: +</p> +<ol> + <li>The window <i>border</i>,</li> + <li>The main <i>client window</i> area, and</li> + <li>A <i>toolbar</i> area</li> +</ol> + +<p> + Each sub-window represents a region within one window. + <a href="#screenshot">Figure 1</a> shows some simple NX framed windows. + NXTK allows these sub-windows to be managed more-or-less independently: +</p> +<ul> + <li> + Each component has its own callbacks for redraw and position events + as well as mouse and keyboard inputs. + The client sub-window callbacks are registered when the framed window is + created with a call to <a href="#nxtkopenwindow"><code>nxtk_openwindow()</code></a>; + Separate toolbar sub-window callbakcs are reigistered when the toolbar + is added using <a href="#nxtkopentoolbar"><code>nxtk_opentoolbar()</code></a>. + (NOTES: (1) only the client sub-window receives keyboard input and, + (2) border callbacks are not currently accessible by the user). + <li> + </li> + All position informational provided within the callback is relative + to the specific sub-window. + That is, the origin (0,0) of the coordinate system for each sub-window + begins at the top left corner of the subwindow. + This means that toolbar logic need not be concerned about client window + geometry (and vice versa) and, for example, common toolbar logic can + be used with different windows. + </li> +</ul> + <h3>2.4.1 <a name="nxtktypes"><code>NXTK Types()</code></a></h3> <p> @@ -2103,9 +2150,9 @@ int nxtk_opentoolbar(NXTKWINDOW hfwnd, nxgl_coord_t height, <a href="#nxtkopenwindow"><code>nxtk_openwindow()</code></a>. <dt><code>height</code> <dd>The requested height of the toolbar in pixels. - <dt><code></code> + <dt><code>cb</code> <dd>Callbacks used to process toolbar events. - <dt><code></code> + <dt><code>arg</code> <dd>User provided value that will be returned with toolbar callbacks. </dl> </p> @@ -2392,22 +2439,28 @@ FAR const struct nx_fontbitmap_s *nxf_getbitmap(uint16 ch); #include &lt;nuttx/nxfonts.h&gt; int nxf_convert_2bpp(FAR ubyte *dest, uint16 height, - uint16 width, uint16 stride, uint16 ch, + uint16 width, uint16 stride, + FAR const struct nx_fontbitmap_s *bm, nxgl_mxpixel_t color); int nxf_convert_4bpp(FAR ubyte *dest, uint16 height, - uint16 width, uint16 stride, uint16 ch, + uint16 width, uint16 stride, + FAR const struct nx_fontbitmap_s *bm, nxgl_mxpixel_t color); int nxf_convert_8bpp(FAR ubyte *dest, uint16 height, - uint16 width, uint16 stride, uint16 ch, + uint16 width, uint16 stride, + FAR const struct nx_fontbitmap_s *bm, nxgl_mxpixel_t color); int nxf_convert_16bpp(FAR uint16 *dest, uint16 height, - uint16 width, uint16 stride, uint16 ch, + uint16 width, uint16 stride, + FAR const struct nx_fontbitmap_s *bm, nxgl_mxpixel_t color); int nxf_convert_24bpp(FAR uint32 *dest, uint16 height, - uint16 width, uint16 stride, uint16 ch, + uint16 width, uint16 stride, + FAR const struct nx_fontbitmap_s *bm, nxgl_mxpixel_t color); int nxf_convert_32bpp(FAR uint32 *dest, uint16 height, - uint16 width, uint16 stride, uint16 ch, + uint16 width, uint16 stride, + FAR const struct nx_fontbitmap_s *bm, nxgl_mxpixel_t color); </pre></ul> <p> @@ -2424,16 +2477,39 @@ int nxf_convert_32bpp(FAR uint32 *dest, uint16 height, <dd>The max width of the returned char in pixels. <dt><code>stride</code> <dd>The width of the destination buffer in bytes. - <dt><code>ch</code> - <dd>The character code to convert. + <dt><code>bm</code> + <dd>Describes the character glyph to convert <dt><code>color</code> <dd>The color to use for '1' bits in the font bitmap (0 bits are transparent). </dl></ul> </p> <p> <b>Returned Value:</b> - On Success, these functions returns the actual width of the font in bytes. - on failed, a negated <code>errno</code> is retured. + <code>OK</code> on success; + <code>ERROR</code> on failure with <code>errno</code> set appropriately. +</p> + +<h2>2.6 <a name="samplecode">Sample Code</a></h2> + +<p><b><code>examples/nx</code></b>. + No sample code is provided in this document. + However, an example can be found in the NuttX source tree at <code>examples/nx</code>. + That code is intended to test NX. + Since it is test code, it is designed to exercise functionality and does not necessarily + represent best NX coding practices. +</p> + +<p> + In its current form, the NX graphics system provides a low level of graphics and window + support. + Most of the complexity of manage redrawing and handling mouse and keyboard events must + be implemented by the NX client code. +</p> + +<p><b>Building <code>examples/nx</code></b>. + Testing was performed using the Linux/Cygwin-based NuttX simulator. + Instructions are provided for building that simulation are provided in + <a href="#testcoverage">Appendix C</a> of this document. </p> <table width ="100%"> @@ -2602,17 +2678,468 @@ int nxf_convert_32bpp(FAR uint32 *dest, uint16 height, </tr> </table> -<p> +<p><b><code>examples/nx</code></b>. The primary test tool for debugging NX resides at <code>examples/nx</code>. - At present, that test only exercises a subset of NX; the remainder is essentially - untested. +</p> +<p><b>Building <code>examples/nx</code></b>. + NX testing was performed using <code>examples/nx</code> with the + Linux/Cygwin-based NuttX simulator. + Configuration files for building this test can be found in <code>configs/sim/nx</code>. + There are two alternative configurations for building the simulation: +</p> +<ol> + <li> + The default configuration using the configuration file at + <code>configs/sim/nx/defconfig</code>. + This default configuration exercises the NX logic a 8 BPP but provides no visual feedback. + In this configuration, a very simple, simulated framebuffer driver is used that is + based upon a simple region of memory posing as video memory. + That default configuration can be built as follows: +<ul><pre> +cd &lt;NuttX-Directory&gt;/tools +./configure sim/nx +cd &lt;NuttX-Directory&gt; +make +./nuttx +</pre></ul> + </li> + <li> + A preferred configuration extends the test with a simulated framebuffer driver + that uses an X window as a framebuffer. + This configuration uses the configuration file at <code>configs/sim/nx/defconfig-x11</code>. + This is a superior test configuration because the X window appears at your desktop + and you can see the NX output. + This preferred configuration can be built as follows: +<ul><pre> +cd &lt;NuttX-Directory&gt;/tools +./configure sim/nx +cd &lt;NuttX-Directory&gt; +cp &lt;NuttX-Directory&gt;/configs/sim/nx/defconfig-x11 .config +make +./nuttx +</pre></ul> + </li> +</ol> +<p> + Why isn't this configuration the default? Because not all systems the use NX support X. +</p> + +<p><b>Test Coverage</b>. + At present, <code>examples/nx</code>t only exercises a subset of NX; + the remainder is essentially untested. The following table describes the testing performed on each NX API: </p> -<center><h1>Table C.1: NX Test Coverage</h1></center> +<center><h2>Table C.1: <a name="nxglibcoverage">NXGLIB API Test Coverage</a></h2></center> +<center><table border="1" width="80%"> +<tr> + <th width="40%">Function</th> + <th width="60%">Special Setup/Notes</th> + <th width="5%">Verified</th></tr> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxglrgb2yuv"><code>nxgl_rgb2yuv()</code></a></td> + <td><br></td> + <td align="center" bgcolor="lightgrey">NO</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxglyuv2rgb"><code>nxgl_yuv2rgb()</code></a></td> + <td><br></td> + <td align="center" bgcolor="lightgrey">NO</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxglrectcopy"><code>nxgl_rectcopy()</code></a></td> + <td><br></td> + <td align="center" bgcolor="skyblue">YES</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxglrectoffset"><code>nxgl_rectoffset()</code></a></td> + <td><br></td> + <td align="center" bgcolor="skyblue">YES</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxglvectoradd"><code>nxgl_vectoradd()</code></a></td> + <td><br></td> + <td align="center" bgcolor="skyblue">YES</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxglvectorsubtract"><code>nxgl_vectorsubtract()</code></a></td> + <td><br></td> + <td align="center" bgcolor="skyblue">YES</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxglrectintersect"><code>nxgl_rectintersect()</code></a></td> + <td><br></td> + <td align="center" bgcolor="skyblue">YES</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxglrectunion"><code>nxgl_rectunion()</code></a></td> + <td><br></td> + <td align="center" bgcolor="skyblue">YES</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxglnonintersecting"><code>nxgl_nonintersecting()</code></a></td> + <td><br></td> + <td align="center" bgcolor="skyblue">YES</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxglrectoverlap"><code>nxgl_rectoverlap()</code></a></td> + <td><br></td> + <td align="center" bgcolor="skyblue">YES</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxglrectinside"><code>nxgl_rectinside()</code></a></td> + <td><br></td> + <td align="center" bgcolor="skyblue">YES</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxglrectsize"><code>nxgl_rectsize()</code></a></td> + <td><br></td> + <td align="center" bgcolor="skyblue">YES</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxglnullrect"><code>nxgl_nullrect()</code></a></td> + <td><br></td> + <td align="center" bgcolor="skyblue">YES</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxglrunoffset"><code>nxgl_runoffset()</code></a></td> + <td><br></td> + <td align="center" bgcolor="lightgrey">NO</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxglruncopy"><code>nxgl_runcopy()</code></a></td> + <td><br></td> + <td align="center" bgcolor="lightgrey">NO</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxgltrapoffset"><code>nxgl_trapoffset()</code></a></td> + <td><br></td> + <td align="center" bgcolor="lightgrey">NO</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxgltrapcopy"><code>nxgl_trapcopy()</code></a></td> + <td><br></td> + <td align="center" bgcolor="lightgrey">NO</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxglcolorcopy"><code>nxgl_colorcopy</code></a></td> + <td><br></td> + <td align="center" bgcolor="skyblue">YES</td> +</tr> +</table></center> -<center><table border="1" width="50%"> - <tr><th><i>To be provided</i></th></tr> + +<center><h2>Table C.2: <a name="nxcbcoverage">NX Server Callbacks Test Coverage</a></h2></center> +<center><table border="1" width="80%"> +<tr> + <th width="40%">Function</th> + <th width="60%">Special Setup/Notes</th> + <th width="5%">Verified</th></tr> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxcbredraw"><code>redraw()</code></a></td> + <td><br></td> + <td align="center" bgcolor="skyblue">YES</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxcbposition"><code>position()</code></a></td> + <td><br></td> + <td align="center" bgcolor="skyblue">YES</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxcbmousein"><code>mousein()</code></a></td> + <td><br></td> + <td align="center" bgcolor="skyblue">YES</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxcbkbdin"><code>kbdin()</code></a></td> + <td><br></td> + <td align="center" bgcolor="skyblue">YES</td> +</tr> +</table></center> + +<center><h2>Table C.3: <a name="nxcoverage">NX API Test Coverage</a></h2></center> +<center><table border="1" width="80%"> +<tr> + <th width="40%">Function</th> + <th width="60%">Special Setup/Notes</th> + <th width="5%">Verified</th></tr> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxruninstance"><code>nx_runinstance()</code></a></td> + <td>Change to <code>CONFIG_NX_MULTIUSER=y</code> in the + <code>&lt;NuttX-Directory&gt;/.config</code> file </td> + <td align="center" bgcolor="skyblue">YES</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxconnectinstance"><code>nx_connectinstance()</code></a></td> + <td>Change to <code>CONFIG_NX_MULTIUSER=y</code> in the + <code>&lt;NuttX-Directory&gt;/.config</code> file </td> + <td align="center" bgcolor="skyblue">YES</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxopen"><code>nx_open()</code></a></td> + <td><br></td> + <td align="center" bgcolor="skyblue">YES</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxdisconnect"><code>nx_disconnect()</code></a></td> + <td>Change to <code>CONFIG_NX_MULTIUSER=y</code> in the + <code>&lt;NuttX-Directory&gt;/.config</code> file </td> + <td align="center" bgcolor="skyblue">YES</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxclose"><code>nx_close()</code></a></td> + <td><br></td> + <td align="center" bgcolor="skyblue">YES</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxeventhandler"><code>nx_eventhandler()</code></a></td> + <td>Change to <code>CONFIG_NX_MULTIUSER=y</code> in the + <code>&lt;NuttX-Directory&gt;/.config</code> file</td> + <td align="center" bgcolor="skyblue">YES</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxeventnotify"><code>nx_eventnotify()</code></a></td> + <td>This is not used in the current version of <code>examples/nx</code>, + was tested in a previous version)</td> + <td align="center" bgcolor="lightgrey">NO</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxopenwindow"><code>nx_openwindow()</code></a></td> + <td>Change to <code>CONFIG_EXAMPLES_NX_RAWWINDOWS=y</code> in the + <code>&lt;NuttX-Directory&gt;/.config</code> file</td> +</td> + <td align="center" bgcolor="skyblue">YES</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxclosewindow"><code>nx_closewindow()</code></a></td> + <td>Change to <code>CONFIG_EXAMPLES_NX_RAWWINDOWS=y</code> in the + <code>&lt;NuttX-Directory&gt;/.config</code> file</td> + <td align="center" bgcolor="skyblue">YES</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxrequestbkgd"><code>nx_requestbkgd()</code></a></td> + <td><br></td> + <td align="center" bgcolor="lightgrey">NO</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxreleasebkgd"><code>nx_releasebkgd()</code></a></td> + <td><br></td> + <td align="center" bgcolor="lightgrey">NO</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxgetposition"><code>nx_getposition()</code></a></td> + <td><br></td> + <td align="center" bgcolor="lightgrey">NO</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxsetposition"><code>nx_setposition()</code></a></td> + <td>Change to <code>CONFIG_EXAMPLES_NX_RAWWINDOWS=y</code> in the + <code>&lt;NuttX-Directory&gt;/.config</code> file</td> + <td align="center" bgcolor="skyblue">YES</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxsetsize"><code>nx_setsize()</code></a></td> + <td>Change to <code>CONFIG_EXAMPLES_NX_RAWWINDOWS=y</code> in the + <code>&lt;NuttX-Directory&gt;/.config</code> file</td> + <td align="center" bgcolor="skyblue">YES</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxraise"><code>nx_raise()</code></a></td> + <td>Change to <code>CONFIG_EXAMPLES_NX_RAWWINDOWS=y</code> in the + <code>&lt;NuttX-Directory&gt;/.config</code> file</td> + <td align="center" bgcolor="skyblue">YES</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxlower"><code>nx_lower()</code></a></td> + <td>Change to <code>CONFIG_EXAMPLES_NX_RAWWINDOWS=y</code> in the + <code>&lt;NuttX-Directory&gt;/.config</code> file</td> + <td align="center" bgcolor="skyblue">YES</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxfill"><code>nx_fill()</code></a></td> + <td>Change to <code>CONFIG_EXAMPLES_NX_RAWWINDOWS=y</code> in the + <code>&lt;NuttX-Directory&gt;/.config</code> file</td> + <td align="center" bgcolor="skyblue">YES</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxfilltrapezoid"><code>nx_filltrapezoid()</code></a></td> + <td><br></td> + <td align="center" bgcolor="lightgrey">NO</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxglrgb2yuv"><code>nx_setbgcolor()</code></a></td> + <td><br></td> + <td align="center" bgcolor="skyblue">YES</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxmove"><code>nx_move()</code></a></td> + <td>Change to <code>CONFIG_EXAMPLES_NX_RAWWINDOWS=y</code> in the + <code>&lt;NuttX-Directory&gt;/.config</code> file</td> + <td align="center" bgcolor="lightgrey">NO</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxbitmap"><code>nx_bitmap()</code></a></td> + <td>Change to <code>CONFIG_EXAMPLES_NX_RAWWINDOWS=y</code> in the + <code>&lt;NuttX-Directory&gt;/.config</code> file.</td> + <td align="center" bgcolor="skyblue">YES</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxkbdin"><code>nx_kbdin()</code></a></td> + <td><br></td> + <td align="center" bgcolor="skyblue">YES</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxmousein"><code>nx_mousein()</code></a></td> + <td><br></td> + <td align="center" bgcolor="skyblue">YES</td> +</tr> +</table></center> + + +<center><h2>Table C.4: <a name="nxtkcoverage">NXTK API Test Coverage</a></h2></center> +<center><table border="1" width="80%"> +<tr> + <th width="40%">Function</th> + <th width="60%">Special Setup/Notes</th> + <th width="5%">Verified</th></tr> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxtkopenwindow"><code>nxtk_openwindow()</code></a></td> + <td><br></td> + <td align="center" bgcolor="skyblue">YES</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxtkclosewindow"><code>nxtk_closewindow()</code></a></td> + <td><br></td> + <td align="center" bgcolor="skyblue">YES</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxtkgetposition"><code>nxtk_getposition()</code></a></td> + <td><br></td> + <td align="center" bgcolor="lightgrey">NO</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxtksetposition"><code>nxtk_setposition()</code></a></td> + <td><br></td> + <td align="center" bgcolor="skyblue">YES</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxtksetsize"><code>nxtk_setsize()</code></a></td> + <td><br></td> + <td align="center" bgcolor="skyblue">YES</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxtkraise"><code>nxtk_raise()</code></a></td> + <td><br></td> + <td align="center" bgcolor="skyblue">YES</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxtklower"><code>nxtk_lower()</code></a></td> + <td><br></td> + <td align="center" bgcolor="skyblue">YES</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxtkfillwindow"><code>nxtk_fillwindow()</code></a></td> + <td><br></td> + <td align="center" bgcolor="skyblue">YES</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxtkfilltrapwindow"><code>nxtk_filltrapwindow()</code></a></td> + <td><br></td> + <td align="center" bgcolor="lightgrey">NO</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxtkmovewindow"><code>nxtk_movewindow()</code></a></td> + <td><br></td> + <td align="center" bgcolor="lightgrey">NO</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxtkbitmapwindow"><code>nxtk_bitmapwindow()</code></a></td> + <td><br></td> + <td align="center" bgcolor="skyblue">YES</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxtkopentoolbar"><code>nxtk_opentoolbar()</code></a></td> + <td><br></td> + <td align="center" bgcolor="skyblue">YES</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxtkclosetoolbar"><code>nxtk_closetoolbar()</code></a></td> + <td><br></td> + <td align="center" bgcolor="skyblue">YES</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxtkfilltoolbar"><code>nxtk_filltoolbar()</code></a></td> + <td><br></td> + <td align="center" bgcolor="skyblue">YES</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxtkfilltraptoolbar"><code>nxtk_filltraptoolbar()</code></a></td> + <td><br></td> + <td align="center" bgcolor="lightgrey">NO</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxtkmovetoolbar"><code>nxtk_movetoolbar()</code></a></td> + <td><br></td> + <td align="center" bgcolor="lightgrey">NO</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxtkbitmaptoolbar"><code>nxtk_bitmaptoolbar()</code></a></td> + <td><br></td> + <td align="center" bgcolor="lightgrey">NO</td> +</tr> +</table></center> + +<center><h2>Table C.5: <a name="nxfontscoverage">NXFONTS API Test Coverage</a></h2></center> +<center><table border="1" width="80%"> +<tr> + <th width="40%">Function</th> + <th width="60%">Special Setup/Notes</th> + <th width="5%">Verified</th></tr> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxfgetfontset"><code>nxf_getfontset()</code></a></td> + <td><br></td> + <td align="center" bgcolor="skyblue">YES</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxfgetbitmap"><code>nxf_getbitmap()</code></a></td> + <td><br></td> + <td align="center" bgcolor="skyblue">YES</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxfconvertbpp"><code>nxf_convert_2bpp()</code></a></td> + <td><br></td> + <td align="center" bgcolor="lightgrey">NO</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxfconvertbpp"><code>nxf_convert_4bpp()</code></a></td> + <td><br></td> + <td align="center" bgcolor="lightgrey">NO</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxfconvertbpp"><code>nxf_convert_8bpp()</code></a></td> + <td>Use <code>defconfig</code> when building.</td> + <td align="center" bgcolor="skyblue">YES</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxfconvertbpp"><code>nxf_convert_16bpp()</code></a></td> + <td><br></td> + <td align="center" bgcolor="lightgrey">NO</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxfconvertbpp"><code>nxf_convert_24bpp()</code></a></td> + <td><br></td> + <td align="center" bgcolor="lightgrey">NO</td> +</tr> +<tr> + <td align="left" valign="top"><a href="#nxfconvertbpp"><code>nxf_convert_32bpp()</code></a></td> + <td>Use <code>defconfig-x11</code> when building.</td> + <td align="center" bgcolor="skyblue">YES</td> +</tr> </table></center> </body> From 268d24a3394943604332dc5826283e08c5c48568 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 6 Dec 2008 16:08:07 +0000 Subject: [PATCH 0368/1518] Prep for 0.4.0 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1427 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 98 +++++++++++----------------------------- 1 file changed, 26 insertions(+), 72 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 4481149fa7..c2e619f20c 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: December 4, 2008</p> + <p>Last Updated: December 6, 2008</p> </td> </tr> </table> @@ -671,52 +671,28 @@ </tr> </table> -<p><b>nuttx-0.3.19</b>. - The 31<sup>st</sup> release of NuttX (nuttx-0.3.19) is available for download +<p><b>nuttx-0.4.0</b>. + The 32<sup>nd</sup> release of NuttX (nuttx-0.4.10) is available for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. The change log associated with the release is available <a href="#currentrelease">here</a>. Unreleased changes after this release are available in CVS. These unreleased changes are listed <a href="#pendingchanges">here</a>. </p> -<p> - This release includes the following new feature: -<p> -<ul> - <li>Add <code>poll()</code> and <code>select()</code> APIs that may be used to monitor for data - availability on character devices or TCP/IP sockets. - </li> - <li>Implemented support TCP/IP connection backlog. - This allows <code>poll()</code>/<code>select()</code> to wake-up on new connections to a listener socket. - </li> - <li>Added definition of a framebuffer driver and implement framebuffer drivers for the - simulated platform and the TI DM320 (untested as of the initial check-in). - </li> - <li>Partially developed a graphics framework based on the framebuffer drivers, however, - this will not be ready for use for a few more release. - Currently this includes only a few color conversion routines and some rasterizing functions. - A tiny windowing system is under development but not ready for check-in yet. - <li>Added support for fixed precision math. - </li> - <li>Added support for outgoing multicast packets. - </li> -</ul> -<p> - Several bugs were fixed, the most important of which are: + This release adds graphics support and a tiny windowing subsystem. + That new graphics subystem is documented in a <a href="NXGraphicsSubsystem.html">user manual</a>. + No other substantial changes were made. </p> - <li>Fixed an important bug in the TCP/IP buffering logic. - When TCP/IP read-ahead is enabled and not recv() is in-place when a TCP/IP packet is received, - the packet is placed into a read-ahead buffer. - However, the old contents of the read-ahead buffer were not being cleared and old data would - contaminate the newly received buffer. - </li> - <li>Changed the behavior of the serial driver read. - It now returns data as it is available rather than waiting for the full requested read size. - This makes functions like <code>fgetc()</code> work much more smoothly. - </li> <p> - These changes were verified only on the Neuros OSD (ARM) and the Linux simulator using a - Linux development environment. + The version number was bumped up to 0.4.0 in part to reflect the new graphics subsystem, + but also to recognize the NuttX is approaching complete functionality. In the 0.3.x + versions, network support was added, Pascal P-code runtime support was added, FAT and + ROMFS filesystems were added, MMC/SD and USB device support were added. There were + also numerous extensions to the NuttShell, NuttX APIs, and architecture ports. +</p> +<p> + These changes were verified only on the NuttX simulation platform with X11 windows + simulating a device framebuffer. Please report any errors to me. </p> @@ -1274,30 +1250,16 @@ Other memory: </table> <pre><ul> -nuttx-0.3.19 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - * Add poll() and select() APIs (in the initial check-in, these work only with character devices) - * Add poll() methods to /dev/null, /dev/zero, pipes, fifos, and serial drivers. - * Add examples/poll for testing poll() and select() - * Fix hostile behavior of getc, fgetc, getchar, etc.: the serial driver was waiting for a - full buffer of read data before return. This means that getc would stall when it needed - to refill the input buffer. The old behavior (read full blocks) might be useful in other - contexts, so it is still available within the driver as a configuration option. - * Implement poll() and select() support for TCP/IP sockets - * Fixed an important bug in the TCP/IP buffering logic. When TCP/IP read-ahead is enabled - and not recv() is in-place when a TCP/IP packet is received, the packet is placed into - a read-ahead buffer. However, the old contents of the read-ahead buffer were not being - cleared and old data would contaminate the newly received buffer. - * Implemented support for connection backlog. The size of the backlog is specified by the - second argument of the standard listen() API. Hooks are provided to support poll()/select() - waiting for connections, with a subsequent call to accept() to use the backlogged connection. - * Fixed a minor bug in accept(). It should allow the address and addresslen values to be NULL - * Added first-cut definition for a framebuffer interface (and simulated framebuffer for testing - purposes only) - * Added fixed precision math support - * Added some color converson routines into what may become a real graphics library someday. - * Added a framebuffer driver for the DM320 (untested on initial check-in) - * Network: add support for outgoing multicast addresses - * Added some rasterizers to the graphics library +nuttx-0.4.0 2008-12-06 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + * Initial release of a tiny windowing system for NuttX + * Add fixed precision sin() and cos() (not well tested at initial check-in) + * Add an X11-based simulated framebuffer driver + * The simulated target now has an option (CONFIG_SIM_WALLTIME) that will let the simulation + run in more-or-less realtime. + * Added more more extensive window support: frames, toolbars, etc. + * Added support for bitmap fonts + * Integrated the new font support with a font test in examples/nx + * Add documentation for NX graphics subsystem pascal-0.1.2 2008-02-10 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; @@ -1325,15 +1287,7 @@ buildroot-0.1.2 2007-11-06 &lt;spudmonkey@racsa.co.cr&gt </table> <pre><ul> -nuttx-0.3.20 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - * Initial release of a tiny windowing system for NuttX - * Add fixed precision sin() and cos() (not well tested at initial check-in) - * Add an X11-based simulated framebuffer driver - * The simulated target now has an option (CONFIG_SIM_WALLTIME) that will let the simulation - run in more-or-less realtime. - * Added more more extensive window support: frames, toolbars, etc. - * Added support for bitmap fonts - * Integrated the new font support with a font test in examples/nx +nuttx-0.4.1 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 20ce363c569849b11eb9e43c34988209df7a4532 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 7 Dec 2008 15:46:06 +0000 Subject: [PATCH 0369/1518] Add ez80f910200zco board config git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1429 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index c2e619f20c..0b9764209d 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1288,6 +1288,7 @@ buildroot-0.1.2 2007-11-06 &lt;spudmonkey@racsa.co.cr&gt <pre><ul> nuttx-0.4.1 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + * Added board support fot the ZiLog ez80Acclaim! ez80f910200zco Development Kit. pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 07204e7dc12c22d2bd854c1f4a049a355abfb77a Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 8 Dec 2008 16:59:46 +0000 Subject: [PATCH 0370/1518] Add LED support git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1434 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 0b9764209d..8f816601ad 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: December 6, 2008</p> + <p>Last Updated: December 7 2008</p> </td> </tr> </table> @@ -1289,6 +1289,9 @@ buildroot-0.1.2 2007-11-06 &lt;spudmonkey@racsa.co.cr&gt <pre><ul> nuttx-0.4.1 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Added board support fot the ZiLog ez80Acclaim! ez80f910200zco Development Kit. + * Fixed several compilation errors in fixed precision math library when built + against toolchains that do not support 64-bit type 'long long'. + * Fix errors in some function prototypes in dirent.h pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 576388709cef2b59650da4bcc3edc79e20222194 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 12 Dec 2008 16:57:52 +0000 Subject: [PATCH 0371/1518] Add eZ80F91 EMAC driver git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1450 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 8f816601ad..bb3284f603 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: December 7 2008</p> + <p>Last Updated: December 12, 2008</p> </td> </tr> </table> @@ -1292,6 +1292,8 @@ nuttx-0.4.1 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Fixed several compilation errors in fixed precision math library when built against toolchains that do not support 64-bit type 'long long'. * Fix errors in some function prototypes in dirent.h + * Add eZ80F91 EMAC driver + * Fix recvfrom() compilation error -- only noted under ZDS pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From b43572f9ee85eb300d043a74f240754bfa9452d4 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 4 Jan 2009 16:09:38 +0000 Subject: [PATCH 0372/1518] bad hyperlink git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1455 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NXGraphicsSubsystem.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NXGraphicsSubsystem.html b/Documentation/NXGraphicsSubsystem.html index 9450b897ca..6374c3ca78 100644 --- a/Documentation/NXGraphicsSubsystem.html +++ b/Documentation/NXGraphicsSubsystem.html @@ -342,7 +342,7 @@ </p> <p> However, the same end result can be obtained by using the - <a href="nxrequestbkgd"><code>nx_requestbkgd()</code></a> API. + <a href="#nxrequestbkgd"><code>nx_requestbkgd()</code></a> API. It still may be possible to reduce the footprint in this usage case by developing and even thinner NXNULL front-end. That is a possible future development. From a32c95d15815161fd4bf99910282849a3159f1ef Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 6 Jan 2009 14:34:33 +0000 Subject: [PATCH 0373/1518] Add support for gcc 2.4.2 toolchain git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1466 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index bb3284f603..88143d061e 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: December 12, 2008</p> + <p>Last Updated: January 6, 2009</p> </td> </tr> </table> @@ -1294,12 +1294,18 @@ nuttx-0.4.1 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Fix errors in some function prototypes in dirent.h * Add eZ80F91 EMAC driver * Fix recvfrom() compilation error -- only noted under ZDS + * Updated all ARM Make.def files to work with gcc 2.4.2 (However, there are + still some build issues associated with that toolchain in use of arm-elf-objcopy + -- see the TODO.txt list for details) pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; buildroot-0.1.3 2008-xx-xx &lt;spudmonkey@racsa.co.cr&gt; * Add support for H8/300 toolchain + * Add support for GCC 4.2.4 and binutils 2.19 + * New ARM configuration using GCC 4.2.4 and binutils 2.19 + (Note: this doesn't work with NuttX yet... to nuttx TODO.txt list). </pre></ul> <table width ="100%"> From 8331e550891a810f25a2ddd18efdabfcf80cda45 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 21 Jan 2009 21:56:52 +0000 Subject: [PATCH 0374/1518] update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1470 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 88143d061e..3a465989e3 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1304,8 +1304,11 @@ buildroot-0.1.3 2008-xx-xx &lt;spudmonkey@racsa.co.cr&gt; * Add support for H8/300 toolchain * Add support for GCC 4.2.4 and binutils 2.19 + * Various fixes for newer Linux environments * New ARM configuration using GCC 4.2.4 and binutils 2.19 (Note: this doesn't work with NuttX yet... to nuttx TODO.txt list). + * Add Renesas R8C/M16C/M32C configuration using GCC 4.2.4 and binutils 2.19 + </pre></ul> <table width ="100%"> From 16f24844753b306b6207b0a5b5930c8cab944fb9 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 7 Feb 2009 02:07:42 +0000 Subject: [PATCH 0375/1518] Fixes for z16f compile git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1472 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 3a465989e3..d19308721b 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: January 6, 2009</p> + <p>Last Updated: February 6, 2009</p> </td> </tr> </table> @@ -1105,7 +1105,7 @@ m68k, m68hc11, m68hc12, and SuperH ports.</blockquote> </p> </ul> <p> - At present, on the Zilog Z16F port uses a native Windows toolchain + At present, only the Zilog Z16F, z8Encore, and ez80Acclaim ports use a native Windows toolchain (the Zilog ZDS-II toolchain). </p. </td> @@ -1297,6 +1297,7 @@ nuttx-0.4.1 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Updated all ARM Make.def files to work with gcc 2.4.2 (However, there are still some build issues associated with that toolchain in use of arm-elf-objcopy -- see the TODO.txt list for details) + * Fix problems with Z16F compilation introduced with recent changes. pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 1900b8624a009d59f17e640fd5d45da99114c097 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 7 Feb 2009 02:46:14 +0000 Subject: [PATCH 0376/1518] Fix compilation problems with eZ80 targets git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1473 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index d19308721b..4ae19800c9 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1297,7 +1297,7 @@ nuttx-0.4.1 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Updated all ARM Make.def files to work with gcc 2.4.2 (However, there are still some build issues associated with that toolchain in use of arm-elf-objcopy -- see the TODO.txt list for details) - * Fix problems with Z16F compilation introduced with recent changes. + * Fix problems with Z16F and eZ80 compilation introduced with recent changes. pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 482069db9d69a0cad4bfde9258076df0eb5bca31 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 7 Feb 2009 03:23:50 +0000 Subject: [PATCH 0377/1518] Prep for 0.4.1 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1475 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 65 +++++++++++++++++----------------------- 1 file changed, 27 insertions(+), 38 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 4ae19800c9..55589dba57 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -671,29 +671,26 @@ </tr> </table> -<p><b>nuttx-0.4.0</b>. - The 32<sup>nd</sup> release of NuttX (nuttx-0.4.10) is available for download +<p><b>nuttx-0.4.1</b>. + The 33<sup>rd</sup> release of NuttX (nuttx-0.4.1) is available for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. The change log associated with the release is available <a href="#currentrelease">here</a>. Unreleased changes after this release are available in CVS. These unreleased changes are listed <a href="#pendingchanges">here</a>. </p> - This release adds graphics support and a tiny windowing subsystem. - That new graphics subystem is documented in a <a href="NXGraphicsSubsystem.html">user manual</a>. - No other substantial changes were made. +<p> + This is a minor bugfix release. + The primary reason for this release is to correct numerous build errors that have accumulated for the ZiLOG ZDS-II based targets. + All ZDS-II targets now build correctly (but have not been re-tested). + In addition to platform-specific build failures, release also adds the following features which were not tested as of the time of the release: + <ul> + <li>Board support fot the ZiLog ez80Acclaim! ez80f910200zco Development Kit,</li> + <li>ZiLOG eZ80F91 EMAC driver</li> + </ul> </p> <p> - The version number was bumped up to 0.4.0 in part to reflect the new graphics subsystem, - but also to recognize the NuttX is approaching complete functionality. In the 0.3.x - versions, network support was added, Pascal P-code runtime support was added, FAT and - ROMFS filesystems were added, MMC/SD and USB device support were added. There were - also numerous extensions to the NuttShell, NuttX APIs, and architecture ports. -</p> -<p> - These changes were verified only on the NuttX simulation platform with X11 windows - simulating a device framebuffer. - Please report any errors to me. + These changes were verified only on the NuttX simulation platform. Please report any errors to me. </p> <table width ="100%"> @@ -1250,16 +1247,18 @@ Other memory: </table> <pre><ul> -nuttx-0.4.0 2008-12-06 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - * Initial release of a tiny windowing system for NuttX - * Add fixed precision sin() and cos() (not well tested at initial check-in) - * Add an X11-based simulated framebuffer driver - * The simulated target now has an option (CONFIG_SIM_WALLTIME) that will let the simulation - run in more-or-less realtime. - * Added more more extensive window support: frames, toolbars, etc. - * Added support for bitmap fonts - * Integrated the new font support with a font test in examples/nx - * Add documentation for NX graphics subsystem +nuttx-0.4.1 2009-02-06 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + + * Added board support fot the ZiLog ez80Acclaim! ez80f910200zco Development Kit. + * Fixed several compilation errors in fixed precision math library when built + against toolchains that do not support 64-bit type 'long long'. + * Fix errors in some function prototypes in dirent.h + * Add eZ80F91 EMAC driver + * Fix recvfrom() compilation error -- only noted under ZDS + * Updated all ARM Make.def files to work with gcc 2.4.2 (However, there are + still some build issues associated with that toolchain in use of arm-elf-objcopy + -- see the TODO.txt list for details) + * Fix problems with Z16F and eZ80 compilation introduced with recent changes. pascal-0.1.2 2008-02-10 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; @@ -1287,21 +1286,11 @@ buildroot-0.1.2 2007-11-06 &lt;spudmonkey@racsa.co.cr&gt </table> <pre><ul> -nuttx-0.4.1 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - * Added board support fot the ZiLog ez80Acclaim! ez80f910200zco Development Kit. - * Fixed several compilation errors in fixed precision math library when built - against toolchains that do not support 64-bit type 'long long'. - * Fix errors in some function prototypes in dirent.h - * Add eZ80F91 EMAC driver - * Fix recvfrom() compilation error -- only noted under ZDS - * Updated all ARM Make.def files to work with gcc 2.4.2 (However, there are - still some build issues associated with that toolchain in use of arm-elf-objcopy - -- see the TODO.txt list for details) - * Fix problems with Z16F and eZ80 compilation introduced with recent changes. +nuttx-0.4.2 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; -pascal-0.1.3 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; +pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; -buildroot-0.1.3 2008-xx-xx &lt;spudmonkey@racsa.co.cr&gt; +buildroot-0.1.3 2009-xx-xx &lt;spudmonkey@racsa.co.cr&gt; * Add support for H8/300 toolchain * Add support for GCC 4.2.4 and binutils 2.19 From 228120f0c28b899420a690616865f472217f6006 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 14 Feb 2009 22:12:57 +0000 Subject: [PATCH 0378/1518] Change updates git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1499 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 55589dba57..95e153125a 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: February 6, 2009</p> + <p>Last Updated: February 13, 2009</p> </td> </tr> </table> @@ -1288,6 +1288,8 @@ buildroot-0.1.2 2007-11-06 &lt;spudmonkey@racsa.co.cr&gt <pre><ul> nuttx-0.4.2 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + * Add support for the Renesas M16C MCU and the SKP16C26 StarterKit. + pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; buildroot-0.1.3 2009-xx-xx &lt;spudmonkey@racsa.co.cr&gt; From 5d1fe3e123c2b1d1b0dd2d503dbd785f519e4ef0 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 14 Feb 2009 23:57:26 +0000 Subject: [PATCH 0379/1518] ez80Acclaim fixes from Kevin Franzen git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1500 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 95e153125a..8b42c48a20 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: February 13, 2009</p> + <p>Last Updated: February 14, 2009</p> </td> </tr> </table> @@ -898,7 +898,13 @@ </p> <p> <b>STATUS:</b> - This is a work in progress. Verified ez80 support will be announced in a future NuttX release. + Kevin Franzen has integrated and verified the ez80Acclaim! port and he has + graciously provided the changes that he made. So I do not have first hand + experience, but the ez80Acclaim! port should be functional. + Kevin's changes were released in NuttX version 0.4.2. + </p> + <p> + The EMAC driver has not yet been verified. </p> </td> </tr> @@ -1289,6 +1295,13 @@ buildroot-0.1.2 2007-11-06 &lt;spudmonkey@racsa.co.cr&gt nuttx-0.4.2 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Add support for the Renesas M16C MCU and the SKP16C26 StarterKit. + * Kevin Franzen has integrated and verified the ez80Acclaim! port and he has + graciously provided the following critical changes: + - Fix interrupt vectors positioning; they were being positioned wrong by + 64 bytes. + - Corrected some stack handling errors during interrupt handling contextg + save and restore. + - Corrected vector intialization logic pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From daf45000369bd49d369913c40435e8a372d56f69 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 17 Feb 2009 02:53:24 +0000 Subject: [PATCH 0380/1518] Complete coding of M16C port git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1510 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 8b42c48a20..163e461e47 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: February 14, 2009</p> + <p>Last Updated: February 16, 2009</p> </td> </tr> </table> @@ -860,6 +860,28 @@ </p> </td> </tr> +<tr> + <td valign="top"><img height="20" width="20" src="favicon.ico"></td> + <td bgcolor="#5eaee1"> + <b>Renesas M16C/26</b> + </td> +</tr> +<tr> + <td><br></td> + <td> + <p> + <b>Renesas M16C/26 Microncontroller</b>. + This port uses the Renesas SKP16C26 Starter kit and the GNU M32C toolchain. + The development environment is either Linux or Cygwin under WinXP. + </p> + <p> + <b>STATUS:</b> + Initial source files released in nuttx-0.4.2. + At this point, the port has not been integrated; + That milestone will be announced in NuttX release notes when it is achieved. + </p> + </td> +</tr> <tr> <td valign="top"><img height="20" width="20" src="favicon.ico"></td> <td bgcolor="#5eaee1"> From bbdd6788ab3d57ffe403ca666a9cef7093a71c65 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 21 Feb 2009 00:49:52 +0000 Subject: [PATCH 0381/1518] update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1521 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 163e461e47..2cb682e199 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: February 16, 2009</p> + <p>Last Updated: February 20, 2009</p> </td> </tr> </table> @@ -877,8 +877,21 @@ <p> <b>STATUS:</b> Initial source files released in nuttx-0.4.2. - At this point, the port has not been integrated; - That milestone will be announced in NuttX release notes when it is achieved. + At this point, the port has not been integrated; the target cannot be built + because the GNU <code>m16c-elf-ld</code> link fails with the following message: + </p> + <ul> + <code>m32c-elf-ld: BFD (GNU Binutils) 2.19 assertion fail /home/Owner/projects/nuttx/buildroot/toolchain_build_m32c/binutils-2.19/bfd/elf32-m32c.c:482</code> + </ul> + <p>Where the reference line is:</p> + <ul><pre> +/* If the symbol is out of range for a 16-bit address, + we must have allocated a plt entry. */ +BFD_ASSERT (*plt_offset != (bfd_vma) -1); +</pre></ul> + <p> + No workaround is known at this time. This is a show stopper for M16C for + the time being. </p> </td> </tr> @@ -1316,7 +1329,19 @@ buildroot-0.1.2 2007-11-06 &lt;spudmonkey@racsa.co.cr&gt <pre><ul> nuttx-0.4.2 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - * Add support for the Renesas M16C MCU and the SKP16C26 StarterKit. + * Add support for the Renesas M16C MCU and the SKP16C26 StarterKit. However, + the target cannot be built because the GNU m16c-elf-ld link fails with + the following message: + + m32c-elf-ld: BFD (GNU Binutils) 2.19 assertion fail /home/Owner/projects/nuttx/buildroot/toolchain_build_m32c/binutils-2.19/bfd/elf32-m32c.c:482 + + Where the reference line is: + + /* If the symbol is out of range for a 16-bit address, + we must have allocated a plt entry. */ + BFD_ASSERT (*plt_offset != (bfd_vma) -1); + + No workaround is known at this time. This is a show stopper for M16C. * Kevin Franzen has integrated and verified the ez80Acclaim! port and he has graciously provided the following critical changes: - Fix interrupt vectors positioning; they were being positioned wrong by From eeb234bca8e7f23c2046c76b1a8b4dfc7e2f022e Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 26 Feb 2009 00:47:30 +0000 Subject: [PATCH 0382/1518] Fix error in calculating baud rate generation value git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1527 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 2cb682e199..84e0483d65 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: February 20, 2009</p> + <p>Last Updated: February 25, 2009</p> </td> </tr> </table> @@ -1349,6 +1349,7 @@ nuttx-0.4.2 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - Corrected some stack handling errors during interrupt handling contextg save and restore. - Corrected vector intialization logic + * ez80Acclaim!: Corrected overflow problem in calculation of baud rate divisor pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From e42298d18fcd719f29d050bb2bb69cdbbd6225af Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 28 Feb 2009 01:27:30 +0000 Subject: [PATCH 0383/1518] Fixe ez80 serial setup git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1531 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 84e0483d65..81a9f19197 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: February 25, 2009</p> + <p>Last Updated: February 27, 2009</p> </td> </tr> </table> @@ -1350,6 +1350,7 @@ nuttx-0.4.2 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; save and restore. - Corrected vector intialization logic * ez80Acclaim!: Corrected overflow problem in calculation of baud rate divisor + * ez80Acclaim!: Fixed GPIO pin configuration get serial output pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 155a264260e8c6bfab6a3cc398dfb1c0abd867e1 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 28 Feb 2009 14:26:27 +0000 Subject: [PATCH 0384/1518] upate git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1536 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 41 ++++++++++++++++++++++------------------ 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 81a9f19197..fa59f1d80e 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: February 27, 2009</p> + <p>Last Updated: February 28, 2009</p> </td> </tr> </table> @@ -927,19 +927,24 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1); <td> <p> <b>Zilog eZ80Acclaim! Microncontroller</b>. - This port uses the ZiLOG ez80f0910200kitg development kit, eZ80F091 part - and the Zilog ZDS-II Windows command line tools. + There are two eZ80Acclaim! ports: + </p> + <ul> + <li>One uses the ZiLOG ez80f0910200kitg development kit, and + <li>The other uses the ZiLOG ez80f0910200zcog-d development kit. + </ul> + <p> + Both boards are based on the eZ80F091 part and both use the Zilog ZDS-II + Windows command line tools. The development environment is Cygwin under WinXP. </p> <p> <b>STATUS:</b> - Kevin Franzen has integrated and verified the ez80Acclaim! port and he has - graciously provided the changes that he made. So I do not have first hand - experience, but the ez80Acclaim! port should be functional. - Kevin's changes were released in NuttX version 0.4.2. - </p> - <p> - The EMAC driver has not yet been verified. + Testing with the ZiLOG ez80f0910200kitg has been performed only on the on the ZDS-II simulator. + However, support with the ZiLOG ez80f0910200zcog-d is complete. + The first integrated version was released in NuttX version 0.4.2. + As of this writing, that port provides basic board support with a serial console. + An eZ80F09 EMAC driver has been developed, but not fully tested as of that releas. </p> </td> </tr> @@ -1329,7 +1334,7 @@ buildroot-0.1.2 2007-11-06 &lt;spudmonkey@racsa.co.cr&gt <pre><ul> nuttx-0.4.2 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - * Add support for the Renesas M16C MCU and the SKP16C26 StarterKit. However, + * M16C: Add support for the Renesas M16C MCU and the SKP16C26 StarterKit. However, the target cannot be built because the GNU m16c-elf-ld link fails with the following message: @@ -1342,15 +1347,15 @@ nuttx-0.4.2 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; BFD_ASSERT (*plt_offset != (bfd_vma) -1); No workaround is known at this time. This is a show stopper for M16C. - * Kevin Franzen has integrated and verified the ez80Acclaim! port and he has - graciously provided the following critical changes: - - Fix interrupt vectors positioning; they were being positioned wrong by - 64 bytes. - - Corrected some stack handling errors during interrupt handling contextg - save and restore. - - Corrected vector intialization logic + + * ez80Acclaim!: Fix interrupt vectors positioning; they were being positioned + wrong by 64 bytes (Kevin Franzen). + * ez80Acclaim!: Corrected some stack handling errors during interrupt handling + context save and restore (Kevin Franzen). + * ez80Acclaim!:Corrected vector intialization logic (Kevin Franzen). * ez80Acclaim!: Corrected overflow problem in calculation of baud rate divisor * ez80Acclaim!: Fixed GPIO pin configuration get serial output + * ez80Acclaim!: Correct stack overflow in ostest example configuration pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 51281cbbea02b752743c556f1a1efd3351390869 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 28 Feb 2009 18:50:44 +0000 Subject: [PATCH 0385/1518] Fix more overflow/truncation problems in timer setups git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1537 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index fa59f1d80e..cd078a89ae 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1352,8 +1352,9 @@ nuttx-0.4.2 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; wrong by 64 bytes (Kevin Franzen). * ez80Acclaim!: Corrected some stack handling errors during interrupt handling context save and restore (Kevin Franzen). - * ez80Acclaim!:Corrected vector intialization logic (Kevin Franzen). - * ez80Acclaim!: Corrected overflow problem in calculation of baud rate divisor + * ez80Acclaim!: Corrected vector intialization logic (Kevin Franzen). + * ez80Acclaim!: Corrected overflow problem in the calculation of UART baud rate + divisor, the system timer divisor, and the EMAC poll timer. * ez80Acclaim!: Fixed GPIO pin configuration get serial output * ez80Acclaim!: Correct stack overflow in ostest example configuration From 3281759c5bcd6c5b53db809df177a2098365ca91 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 28 Feb 2009 22:12:29 +0000 Subject: [PATCH 0386/1518] prep for 0.4.2 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1542 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 95 ++++++++++++++++++++-------------------- 1 file changed, 47 insertions(+), 48 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index cd078a89ae..49908bb664 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -671,8 +671,8 @@ </tr> </table> -<p><b>nuttx-0.4.1</b>. - The 33<sup>rd</sup> release of NuttX (nuttx-0.4.1) is available for download +<p><b>nuttx-0.4.2</b>. + The 34<sup>th</sup> release of NuttX (nuttx-0.4.2) is available for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. The change log associated with the release is available <a href="#currentrelease">here</a>. @@ -680,17 +680,27 @@ These unreleased changes are listed <a href="#pendingchanges">here</a>. </p> <p> - This is a minor bugfix release. - The primary reason for this release is to correct numerous build errors that have accumulated for the ZiLOG ZDS-II based targets. - All ZDS-II targets now build correctly (but have not been re-tested). - In addition to platform-specific build failures, release also adds the following features which were not tested as of the time of the release: + This release adds no new OS features but does include support for two new architectures: <ul> - <li>Board support fot the ZiLog ez80Acclaim! ez80f910200zco Development Kit,</li> - <li>ZiLOG eZ80F91 EMAC driver</li> - </ul> + <li> + <b>ez80Acclaim!</b> + Basic support has been integrated and verified for the ez80f910200zcog-d board (eZ80F91-based). + That basic support includes timer interrupts and serial console. + Ongoing work includes an EMAC driver that should be integrated for the next release nuttx-0.4.2. + </p> + <p> + eZ80Acclaim! support has been in the code base for some time, but has only just + been integrated due to toolchain issues. + </p> + <li> + <p>Renesas M16C/20</b>. + Support for the Renesas SKP16C20 board has been included in the NuttX source tree. + However, as was with the eZ80Acclaim!, testing and integration of that port is stalled due to toolchain issues. + </p> + </li> </p> <p> - These changes were verified only on the NuttX simulation platform. Please report any errors to me. + These changes were verified only on the ZiLOG ez80f910200zcog-d platform. Please report any errors to me. </p> <table width ="100%"> @@ -941,10 +951,10 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1); <p> <b>STATUS:</b> Testing with the ZiLOG ez80f0910200kitg has been performed only on the on the ZDS-II simulator. - However, support with the ZiLOG ez80f0910200zcog-d is complete. + However, support for the ZiLOG ez80f0910200zcog-d is complete. The first integrated version was released in NuttX version 0.4.2. As of this writing, that port provides basic board support with a serial console. - An eZ80F09 EMAC driver has been developed, but not fully tested as of that releas. + An eZ80F09 EMAC driver has been developed, but not fully tested as of that release. </p> </td> </tr> @@ -1293,18 +1303,31 @@ Other memory: </table> <pre><ul> -nuttx-0.4.1 2009-02-06 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; +nuttx-0.4.2 2009-02-28 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - * Added board support fot the ZiLog ez80Acclaim! ez80f910200zco Development Kit. - * Fixed several compilation errors in fixed precision math library when built - against toolchains that do not support 64-bit type 'long long'. - * Fix errors in some function prototypes in dirent.h - * Add eZ80F91 EMAC driver - * Fix recvfrom() compilation error -- only noted under ZDS - * Updated all ARM Make.def files to work with gcc 2.4.2 (However, there are - still some build issues associated with that toolchain in use of arm-elf-objcopy - -- see the TODO.txt list for details) - * Fix problems with Z16F and eZ80 compilation introduced with recent changes. + * M16C: Add support for the Renesas M16C MCU and the SKP16C26 StarterKit. However, + the target cannot be built because the GNU m16c-elf-ld link fails with + the following message: + + m32c-elf-ld: BFD (GNU Binutils) 2.19 assertion fail /home/Owner/projects/nuttx/buildroot/toolchain_build_m32c/binutils-2.19/bfd/elf32-m32c.c:482 + + Where the reference line is: + + /* If the symbol is out of range for a 16-bit address, + we must have allocated a plt entry. */ + BFD_ASSERT (*plt_offset != (bfd_vma) -1); + + No workaround is known at this time. This is a show stopper for M16C. + + * ez80Acclaim!: Fix interrupt vectors positioning; they were being positioned + wrong by 64 bytes (Kevin Franzen). + * ez80Acclaim!: Corrected some stack handling errors during interrupt handling + context save and restore (Kevin Franzen). + * ez80Acclaim!: Corrected vector intialization logic (Kevin Franzen). + * ez80Acclaim!: Corrected overflow problem in the calculation of UART baud rate + divisor, the system timer divisor, and the EMAC poll timer. + * ez80Acclaim!: Fixed GPIO pin configuration get serial output + * ez80Acclaim!: Correct stack overflow in ostest example configuration pascal-0.1.2 2008-02-10 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; @@ -1332,31 +1355,7 @@ buildroot-0.1.2 2007-11-06 &lt;spudmonkey@racsa.co.cr&gt </table> <pre><ul> -nuttx-0.4.2 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - - * M16C: Add support for the Renesas M16C MCU and the SKP16C26 StarterKit. However, - the target cannot be built because the GNU m16c-elf-ld link fails with - the following message: - - m32c-elf-ld: BFD (GNU Binutils) 2.19 assertion fail /home/Owner/projects/nuttx/buildroot/toolchain_build_m32c/binutils-2.19/bfd/elf32-m32c.c:482 - - Where the reference line is: - - /* If the symbol is out of range for a 16-bit address, - we must have allocated a plt entry. */ - BFD_ASSERT (*plt_offset != (bfd_vma) -1); - - No workaround is known at this time. This is a show stopper for M16C. - - * ez80Acclaim!: Fix interrupt vectors positioning; they were being positioned - wrong by 64 bytes (Kevin Franzen). - * ez80Acclaim!: Corrected some stack handling errors during interrupt handling - context save and restore (Kevin Franzen). - * ez80Acclaim!: Corrected vector intialization logic (Kevin Franzen). - * ez80Acclaim!: Corrected overflow problem in the calculation of UART baud rate - divisor, the system timer divisor, and the EMAC poll timer. - * ez80Acclaim!: Fixed GPIO pin configuration get serial output - * ez80Acclaim!: Correct stack overflow in ostest example configuration +nuttx-0.4.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From e0733c86e9dcad3930c52bc34f2cdf1596d50abc Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 1 Mar 2009 18:00:58 +0000 Subject: [PATCH 0387/1518] update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1558 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 49908bb664..c8fd71652a 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: February 28, 2009</p> + <p>Last Updated: March 1, 2009</p> </td> </tr> </table> @@ -683,7 +683,7 @@ This release adds no new OS features but does include support for two new architectures: <ul> <li> - <b>ez80Acclaim!</b> + <b>eZ80Acclaim!</b> Basic support has been integrated and verified for the ez80f910200zcog-d board (eZ80F91-based). That basic support includes timer interrupts and serial console. Ongoing work includes an EMAC driver that should be integrated for the next release nuttx-0.4.2. @@ -698,6 +698,7 @@ However, as was with the eZ80Acclaim!, testing and integration of that port is stalled due to toolchain issues. </p> </li> + </ul> </p> <p> These changes were verified only on the ZiLOG ez80f910200zcog-d platform. Please report any errors to me. @@ -1158,7 +1159,7 @@ m68k, m68hc11, m68hc12, and SuperH ports.</blockquote> </p> </ul> <p> - At present, only the Zilog Z16F, z8Encore, and ez80Acclaim ports use a native Windows toolchain + At present, only the Zilog Z16F, z8Encore, and eZ80Acclaim ports use a native Windows toolchain (the Zilog ZDS-II toolchain). </p. </td> @@ -1319,15 +1320,15 @@ nuttx-0.4.2 2009-02-28 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; No workaround is known at this time. This is a show stopper for M16C. - * ez80Acclaim!: Fix interrupt vectors positioning; they were being positioned + * eZ80Acclaim!: Fix interrupt vectors positioning; they were being positioned wrong by 64 bytes (Kevin Franzen). - * ez80Acclaim!: Corrected some stack handling errors during interrupt handling + * eZ80Acclaim!: Corrected some stack handling errors during interrupt handling context save and restore (Kevin Franzen). - * ez80Acclaim!: Corrected vector intialization logic (Kevin Franzen). - * ez80Acclaim!: Corrected overflow problem in the calculation of UART baud rate + * eZ80Acclaim!: Corrected vector intialization logic (Kevin Franzen). + * eZ80Acclaim!: Corrected overflow problem in the calculation of UART baud rate divisor, the system timer divisor, and the EMAC poll timer. - * ez80Acclaim!: Fixed GPIO pin configuration get serial output - * ez80Acclaim!: Correct stack overflow in ostest example configuration + * eZ80Acclaim!: Fixed GPIO pin configuration get serial output + * eZ80Acclaim!: Correct stack overflow in ostest example configuration pascal-0.1.2 2008-02-10 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; @@ -1357,6 +1358,13 @@ buildroot-0.1.2 2007-11-06 &lt;spudmonkey@racsa.co.cr&gt <pre><ul> nuttx-0.4.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + * z8Encore! and eZ80Acclaim!: Fixed the serial driver initialization sequence + * eZ80Acclaim!: Fixed error in vector table: Missing space set aside for the + &quot;unused&quot; vectors. As a result, all vectors above timer4 were skewed. + * eZ80Acclaim!: Fixed logic error in UART interrupt handler. + * Many fixes in FAT file system and in NSH for correct compilation with ZDS-II + * eZ80Acclaim!: Added and verified a NuttShell (NSH) configuration. + pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; buildroot-0.1.3 2009-xx-xx &lt;spudmonkey@racsa.co.cr&gt; From 25eb2afd9c62379e2793a4e4b875f95fbd9f032c Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 3 Mar 2009 12:06:51 +0000 Subject: [PATCH 0388/1518] Update for buildroot release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1562 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index c8fd71652a..634196c4af 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: March 1, 2009</p> + <p>Last Updated: March 3, 2009</p> </td> </tr> </table> @@ -1340,11 +1340,14 @@ pascal-0.1.2 2008-02-10 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; and eliminate a compiler bug * Changes so that runtime compiles with SDCC. -buildroot-0.1.2 2007-11-06 &lt;spudmonkey@racsa.co.cr&gt +buildroot-0.1.3 2009-02-28 &lt;spudmonkey@racsa.co.cr&gt; - * Support for m68k-elf and m68hc11 toolchain - * Add patch to build older binutils with newer Texinfo version - * Add support for SH-1 toolchain + * Add support for H8/300 toolchain + * Add support for GCC 4.2.4 and binutils 2.19 + * Various fixes for newer Linux environments + * New ARM configuration using GCC 4.2.4 and binutils 2.19 + (Note: this doesn't work with NuttX yet... to nuttx TODO.txt list). + * Add Renesas R8C/M16C/M32C configuration using GCC 4.2.4 and binutils 2.19 </pre></ul> <table width ="100%"> @@ -1367,14 +1370,7 @@ nuttx-0.4.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; -buildroot-0.1.3 2009-xx-xx &lt;spudmonkey@racsa.co.cr&gt; - - * Add support for H8/300 toolchain - * Add support for GCC 4.2.4 and binutils 2.19 - * Various fixes for newer Linux environments - * New ARM configuration using GCC 4.2.4 and binutils 2.19 - (Note: this doesn't work with NuttX yet... to nuttx TODO.txt list). - * Add Renesas R8C/M16C/M32C configuration using GCC 4.2.4 and binutils 2.19 +buildroot-0.1.4 2009-xx-xx &lt;spudmonkey@racsa.co.cr&gt; </pre></ul> From 7b21f7225487f2d23f9d9b490a2371415003b13b Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 7 Mar 2009 23:30:19 +0000 Subject: [PATCH 0389/1518] update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1574 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 634196c4af..3aed92f81b 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: March 3, 2009</p> + <p>Last Updated: March 7, 2009</p> </td> </tr> </table> @@ -1367,6 +1367,7 @@ nuttx-0.4.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * eZ80Acclaim!: Fixed logic error in UART interrupt handler. * Many fixes in FAT file system and in NSH for correct compilation with ZDS-II * eZ80Acclaim!: Added and verified a NuttShell (NSH) configuration. + * eZ80Acclaim!: Correct endian-ness; defconfig files said BIG endian. pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From d2561348cd7e90613982fa4059a64680b1f9559e Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 8 Mar 2009 19:42:15 +0000 Subject: [PATCH 0390/1518] update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1580 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 3aed92f81b..fef9520a39 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: March 7, 2009</p> + <p>Last Updated: March 8, 2009</p> </td> </tr> </table> @@ -1368,6 +1368,9 @@ nuttx-0.4.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Many fixes in FAT file system and in NSH for correct compilation with ZDS-II * eZ80Acclaim!: Added and verified a NuttShell (NSH) configuration. * eZ80Acclaim!: Correct endian-ness; defconfig files said BIG endian. + * Restructured parts of the uIP port for correct compilation with ZDS-II + * eZ80Acclaim!: Complete basic integration of the eZ80F91 EMAC driver. The + driver is basically functional and should mature prior to the 0.4.3 release. pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 40f902d7629c5dac007d07a49ccfc40624d03be5 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 8 Mar 2009 23:33:41 +0000 Subject: [PATCH 0391/1518] Add support for priority inheritance git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1581 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 +++- Documentation/NuttxPortingGuide.html | 9 +++++++-- Documentation/NuttxUserGuide.html | 10 ++++++---- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index fef9520a39..f500035997 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -285,7 +285,7 @@ <td><br></td> <td> <p> - <li>Realtime, deterministic.</li> + <li>Realtime, deterministic, with support for priority inheritance</li> </p> </tr> @@ -1371,6 +1371,8 @@ nuttx-0.4.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Restructured parts of the uIP port for correct compilation with ZDS-II * eZ80Acclaim!: Complete basic integration of the eZ80F91 EMAC driver. The driver is basically functional and should mature prior to the 0.4.3 release. + * Implemented priority inheritance logic for POSIX semaphores. Because the pthread + mutexes are built on semaphores, they will have this property as well. pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index b47cd99ded..4c3f3ff79d 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@ <h1><big><font color="#3c34ec"> <i>NuttX RTOS Porting Guide</i> </font></big></h1> - <p>Last Updated: December 5, 2008</p> + <p>Last Updated: March 8, 2009</p> </td> </tr> </table> @@ -1623,8 +1623,13 @@ The system can be re-made subsequently by just typing <code>make</code>. provides /dev/console. Enables stdout, stderr, stdin. </li> <li> - <code>CONFIG_MUTEX_TYPES</code>: Set to enabled support for recursive and + <code>CONFIG_MUTEX_TYPES</code>: Set to enable support for recursive and errorcheck mutexes. Enables <code>pthread_mutexattr_settype()</code>. + </li> + <li> + <code>CONFIG_PRIORITY_INHERITANCE </code>: Set to enable support for + priority inheritance on mutexes and semaphores. + </li> </ul> <p> diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 0dfa64a87b..5869beedf9 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -13,7 +13,7 @@ <h1><big><font color="#3c34ec"><i>NuttX Operating System<p>User's Manual</i></font></big></h1> <p><small>by</small></p> <p>Gregory Nutt<p> - <p>Last Updated: November 18, 2008</p> + <p>Last Updated: March 8, 2009</p> </td> </tr> </table> @@ -1718,9 +1718,11 @@ interface of the same name. <p> Some operating systems avoid priority inversion by <I>automatically</I> increasing the priority of the low-priority <I>Task C</I> (the operable - buzz-word for this behavior is <I>priority inheritance</I>). NuttX does not - support this behavior. As a consequence, it is left to the designer to - provide implementations that will not suffer from priority inversion. + buzz-word for this behavior is <I>priority inheritance</I>). NuttX + supports this behavior, but only if <code>CONFIG_PRIORITY_INHERITANCE</code> + is defined in your OS configuration file. If <code>CONFIG_PRIORITY_INHERITANCE</code> + is not defined, then it is left to the designer to provide implementations + that will not suffer from priority inversion. The designer may, as examples: </p> <ul> From c2798e97697e8621856cb42e1f6b2bfa93b2919b Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 10 Mar 2009 03:33:33 +0000 Subject: [PATCH 0392/1518] Use new sourceforge logo git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1589 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttXBanner.html | 37 +++++++++++++++------------------- 1 file changed, 16 insertions(+), 21 deletions(-) diff --git a/Documentation/NuttXBanner.html b/Documentation/NuttXBanner.html index 7b83f46ad5..baff6dd1bd 100644 --- a/Documentation/NuttXBanner.html +++ b/Documentation/NuttXBanner.html @@ -5,37 +5,32 @@ <body background="backgd.gif"> <table width="100%"> <tr> - <td width="210" valign="top"> - <a href="http://sourceforge.net/"> - <img src="http://sflogo.sourceforge.net/sflogo.php?group_id=235&amp;type=5" width="210" height="62" border="0" alt="SourceForge"/> - </a> - </td> <td> <table width="100%"> <tr> - <td bgcolor="#e4e4e4" colspan="2"> - <big><b><i><font color="#3c34ec">NuttX RTOS</font></i></b></big> + <td bgcolor="#e4e4e4"> + <big><b><i><font color="#3c34ec">NuttX RTOS</font></i></b></big> ... + <a href="http://nuttx.sourceforge.net" target="_top">Home</a> ... + <a href="freeports.html">Free Ports</a><br> + </td> + <td width="100" align="center"> + <a href="http://sourceforge.net/projects/nuttx" target="_top"> + <img src="http://sflogo.sourceforge.net/sflogo.php?group_id=189573&type=8" width="80" height="15" border="0" alt="Get NuttX at SourceForge.net. Fast, secure and Free Open Source software downloads" /> + </a> </td> </tr> <tr> - <td valign="top"> - <a href="http://sourceforge.net/projects/nuttx" target="_top">Project</a><br> - <a href="http://nuttx.sourceforge.net" target="_top">Home</a> - </td> - <td valign="top"> - <a href="http://tech.groups.yahoo.com/group/nuttx" target="_top">Yahoo! Groups</a><br> - <a href="freeports.html">Free Ports</a><br> + <td><br></td> + <td width="100" align="center"> + <a href="http://groups.yahoo.com/group/nuttx/join" target="_top"> + <img src="http://us.i1.yimg.com/us.yimg.com/i/yg/img/i/us/ui/join.gif" + style="border: 0px;" + alt="Click to join nuttx"/> + </a> </td> </tr> </table> </td> - <td width="100" valign="top"> - <a href="http://groups.yahoo.com/group/nuttx/join" target="_top"> - <img src="http://us.i1.yimg.com/us.yimg.com/i/yg/img/i/us/ui/join.gif" - style="border: 0px;" - alt="Click to join nuttx"/> - </a> - </td> </tr> </body> </html> From c6295b90667dcc68ea1f933ea7a1d45fd39b7475 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 13 Mar 2009 00:25:05 +0000 Subject: [PATCH 0393/1518] Add test for CONFIG_SEM_PREALLOCHOLDERS > 0 git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1596 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 4c3f3ff79d..a381c6a673 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -1627,9 +1627,18 @@ The system can be re-made subsequently by just typing <code>make</code>. errorcheck mutexes. Enables <code>pthread_mutexattr_settype()</code>. </li> <li> - <code>CONFIG_PRIORITY_INHERITANCE </code>: Set to enable support for + <code>CONFIG_PRIORITY_INHERITANCE</code>: Set to enable support for priority inheritance on mutexes and semaphores. </li> + <li> + <code>CONFIG_SEM_PREALLOCHOLDERS: </code>: This setting is only used + if priority inheritance is enabled. + It defines the maximum number of different threads (minus one) that + can take counts on a semaphore with priority inheritance support. + This may be set to zero if priority inheritance is disabled OR if you + are only using semaphores as mutexes (only one holder) OR if no more + than two threads participate using a counting semaphore. + </li> </ul> <p> From 59d74d99a736d5414d2a9042914b65803b8966d0 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 13 Mar 2009 00:54:10 +0000 Subject: [PATCH 0394/1518] Add test for CONFIG_SEM_PREALLOCHOLDERS > 0 git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1597 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index a381c6a673..4c730524ab 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -1639,6 +1639,13 @@ The system can be re-made subsequently by just typing <code>make</code>. are only using semaphores as mutexes (only one holder) OR if no more than two threads participate using a counting semaphore. </li> + <li> + <code>CONFIG_SEM_NNESTPRIO. </code>: If priority inheritance is enabled, + then this setting is the maximum number of higher priority threads (minus + 1) than can be waiting for another thread to release a count on a semaphore. + This value may be set to zero if no more than one thread is expected to + wait for a semaphore. + </li> </ul> <p> From 4c019163ac4ffcb3e0f29320be525c6148246cd7 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 14 Mar 2009 01:18:07 +0000 Subject: [PATCH 0395/1518] Finishes initial verification of priority inheritance logic git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1601 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 10 ++-- Documentation/NuttxUserGuide.html | 78 ++++++++++++++++++++++++++-- 2 files changed, 82 insertions(+), 6 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 4c730524ab..93a2e3b2ee 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@ <h1><big><font color="#3c34ec"> <i>NuttX RTOS Porting Guide</i> </font></big></h1> - <p>Last Updated: March 8, 2009</p> + <p>Last Updated: March 13, 2009</p> </td> </tr> </table> @@ -1629,9 +1629,13 @@ The system can be re-made subsequently by just typing <code>make</code>. <li> <code>CONFIG_PRIORITY_INHERITANCE</code>: Set to enable support for priority inheritance on mutexes and semaphores. + Priority inheritance is a strategy of addessing + <a href="NuttxUserGuide.html#priorityinversion"><i>priority inversion</i></a>. + Details of the NuttX implementation of priority inheritance is + discussed <a href="NuttxUserGuide.html#priorityinheritance">elsewhere</a>. </li> <li> - <code>CONFIG_SEM_PREALLOCHOLDERS: </code>: This setting is only used + <code>CONFIG_SEM_PREALLOCHOLDERS</code>: This setting is only used if priority inheritance is enabled. It defines the maximum number of different threads (minus one) that can take counts on a semaphore with priority inheritance support. @@ -1640,7 +1644,7 @@ The system can be re-made subsequently by just typing <code>make</code>. than two threads participate using a counting semaphore. </li> <li> - <code>CONFIG_SEM_NNESTPRIO. </code>: If priority inheritance is enabled, + <code>CONFIG_SEM_NNESTPRIO</code>: If priority inheritance is enabled, then this setting is the maximum number of higher priority threads (minus 1) than can be waiting for another thread to release a count on a semaphore. This value may be set to zero if no more than one thread is expected to diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 5869beedf9..de3e370b87 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -13,7 +13,7 @@ <h1><big><font color="#3c34ec"><i>NuttX Operating System<p>User's Manual</i></font></big></h1> <p><small>by</small></p> <p>Gregory Nutt<p> - <p>Last Updated: March 8, 2009</p> + <p>Last Updated: March 13, 2009</p> </td> </tr> </table> @@ -1695,8 +1695,9 @@ interface of the same name. and, as a result, can adversely affect system response times. </p> <p> - <b>Priority Inversion</b>. Proper use of semaphores avoids the issues of - sched_lock(). However, consider the following example: + <a name="priorityinversion"><b>Priority Inversion</b></a>. + Proper use of semaphores avoids the issues of <code>sched_lock()</code>. + However, consider the following example: <OL> <li>Some low-priority task, <I>Task C</I>, acquires a semphore in order to get exclusive access to a protected resource.</li> @@ -1732,6 +1733,77 @@ interface of the same name. acquired, or</li> <li>Use sched_lock() in the low-priority task.</li> </ul> +<p> + <a name="priorityinheritance"><b>Priority Inheritance</b></a>. + As mentioned, NuttX does support <i>priority inheritance</i> provided that + <code>CONFIG_PRIORITY_INHERITANCE</code> is defined in your OS configuration file. + However, the implementation and configuration of the priority inheritance feature + is sufficiently complex that more needs to be said. + How can a feature that can be described by a single, simple sentence require such + a complex implementation: +</p> +<ul> + <li> + <b><code>CONFIG_SEM_PREALLOCHOLDERS</code>.</b> + First of all, in NuttX priority inheritance is implement on POSIX counting + semaphores. The reason for this is that these semaphores are the most + primitive waiting mechanism in NuttX; Most other waiting facilities are + based on semaphores. So if priority inheritance is implemented for POSIX + counting semaphores, then most NuttX waiting mechanisms will have this + capability. + <p> + Complexity arises because counting semaphores can have numerous + holders of semaphore counts. Therefore, in order to implement + priority inheritance across all holders, then internal data + structures must be allocated to manage the various holders associated + with a semaphore. + The setting <code>CONFIG_SEM_PREALLOCHOLDERS</code> defines the maximum + number of different threads (minus one per semaphore instance) that can + take counts on a semaphore with priority inheritance support. + This setting defines the size of a single pool of preallocated structures. + It may be set to zero if priority inheritance is disabled OR if you + are only using semaphores as mutexes (only one holder) OR if no more + than two threads participate using a counting semaphore. + </p> + <p> + The cost associated with setting <code>CONFIG_SEM_PREALLOCHOLDERS</code> + is slightly increased code size and around 6-12 bytes times the value + of <code>CONFIG_SEM_PREALLOCHOLDERS</code>. + </p> + </li> + <li> + <b><code>CONFIG_SEM_NNESTPRIO</code>:</b> + In addition, there may be multiple threads of various priorities that + need to wait for a count from the semaphore. + These, the lower priority thread holding the semaphore may have to + be boosted numerous time and, to make things more complex, will have + to keep track of all of the boost priorities values in in order to + correctly restore the priorities after a count has been handed out + to the higher priority thread. + The <code>CONFIG_SEM_NNESTPRIO</code> defines the size of an array, + one array per active thread. + This setting is the maximum number of higher priority threads (minus + 1) than can be waiting for another thread to release a count on a semaphore. + This value may be set to zero if no more than one thread is expected to + wait for a semaphore. + <p> + The cost associated with setting <code>CONFIG_SEM_NNESTPRIO</code> + is slightly increased code size and (<code>CONFIG_SEM_PREALLOCHOLDERS</code> + 1) + times the maximum number of active threads. + </p> + </li> + <li> + <b>Increased Susceptibility to Bad Thread Behavior</b>. + These various structures tie the semaphore implementation more tightly to + the behavior of the implementation. For examples, if a thread executes while + holding counts on a semaphore, or if a thread exits without call <code>sem_destroy()</code> + then. Or what if the thread with the boosted priority reprioritizes itself? + The NuttX implement of priority inheritance attempts to handle all of these + types of corner cases, but it is very likely that some are missed. + The worst case result is that memory could by stranded within the priority + inheritance logic. + </li> +</ul> <p> POSIX semaphore interfaces: </p> From b1d97324e3653c147df9a251000c075c1d6bbff8 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 14 Mar 2009 22:18:23 +0000 Subject: [PATCH 0396/1518] Prep for 0.4.3 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1611 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 92 ++++++++++++++-------------------------- 1 file changed, 32 insertions(+), 60 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index f500035997..5008ab67c1 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -671,8 +671,8 @@ </tr> </table> -<p><b>nuttx-0.4.2</b>. - The 34<sup>th</sup> release of NuttX (nuttx-0.4.2) is available for download +<p><b>nuttx-0.4.3</b>. + The 35<sup>th</sup> release of NuttX (nuttx-0.4.3) is available for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. The change log associated with the release is available <a href="#currentrelease">here</a>. @@ -680,28 +680,25 @@ These unreleased changes are listed <a href="#pendingchanges">here</a>. </p> <p> - This release adds no new OS features but does include support for two new architectures: + This release one important new OS feature and corrects and extends the eZ80 port: <ul> - <li> - <b>eZ80Acclaim!</b> - Basic support has been integrated and verified for the ez80f910200zcog-d board (eZ80F91-based). - That basic support includes timer interrupts and serial console. - Ongoing work includes an EMAC driver that should be integrated for the next release nuttx-0.4.2. - </p> - <p> - eZ80Acclaim! support has been in the code base for some time, but has only just - been integrated due to toolchain issues. - </p> - <li> - <p>Renesas M16C/20</b>. - Support for the Renesas SKP16C20 board has been included in the NuttX source tree. - However, as was with the eZ80Acclaim!, testing and integration of that port is stalled due to toolchain issues. - </p> - </li> + <li>Priority Inheritance. + The basic NuttX waiting logic was extended to support priority inheritance. + See the NuttX <a href="NuttxUserGuide.html#priorityinheritance">User Manual</a> + for further information. + </li> + <li>ez80Acclaim! + Corrected several critical, show-stopping bugs on that platform including: + errors in the serial driver intrrupts and an error in the ez80 vector table,. + </li> + <li>eZ80Acclaim!: + Completed integration of the eZ80F91 EMAC driver. + </li> </ul> </p> <p> - These changes were verified only on the ZiLOG ez80f910200zcog-d platform. Please report any errors to me. + These changes were verified only on the ZiLOG eZ80910200zcog-d board and on Cygwin-based + simulation platform in various configurations. Please report any errors to me. </p> <table width ="100%"> @@ -954,8 +951,7 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1); Testing with the ZiLOG ez80f0910200kitg has been performed only on the on the ZDS-II simulator. However, support for the ZiLOG ez80f0910200zcog-d is complete. The first integrated version was released in NuttX version 0.4.2. - As of this writing, that port provides basic board support with a serial console. - An eZ80F09 EMAC driver has been developed, but not fully tested as of that release. + As of this writing, that port provides basic board support with a serial console and eZ80F91 EMAC driver. </p> </td> </tr> @@ -1304,31 +1300,20 @@ Other memory: </table> <pre><ul> -nuttx-0.4.2 2009-02-28 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; +nuttx-0.4.3 2009-03-04 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - * M16C: Add support for the Renesas M16C MCU and the SKP16C26 StarterKit. However, - the target cannot be built because the GNU m16c-elf-ld link fails with - the following message: - - m32c-elf-ld: BFD (GNU Binutils) 2.19 assertion fail /home/Owner/projects/nuttx/buildroot/toolchain_build_m32c/binutils-2.19/bfd/elf32-m32c.c:482 - - Where the reference line is: - - /* If the symbol is out of range for a 16-bit address, - we must have allocated a plt entry. */ - BFD_ASSERT (*plt_offset != (bfd_vma) -1); - - No workaround is known at this time. This is a show stopper for M16C. - - * eZ80Acclaim!: Fix interrupt vectors positioning; they were being positioned - wrong by 64 bytes (Kevin Franzen). - * eZ80Acclaim!: Corrected some stack handling errors during interrupt handling - context save and restore (Kevin Franzen). - * eZ80Acclaim!: Corrected vector intialization logic (Kevin Franzen). - * eZ80Acclaim!: Corrected overflow problem in the calculation of UART baud rate - divisor, the system timer divisor, and the EMAC poll timer. - * eZ80Acclaim!: Fixed GPIO pin configuration get serial output - * eZ80Acclaim!: Correct stack overflow in ostest example configuration + * z8Encore! and eZ80Acclaim!: Fixed the serial driver initialization sequence + * eZ80Acclaim!: Fixed error in vector table: Missing space set aside for the + &quot;unused&quot; vectors. As a result, all vectors above timer4 were skewed. + * eZ80Acclaim!: Fixed logic error in UART interrupt handler. + * Many fixes in FAT file system and in NSH for correct compilation with ZDS-II + * eZ80Acclaim!: Added and verified a NuttShell (NSH) configuration. + * eZ80Acclaim!: Correct endian-ness; defconfig files said BIG endian. + * Restructured parts of the uIP port for correct compilation with ZDS-II + * eZ80Acclaim!: Complete basic integration of the eZ80F91 EMAC driver. The + driver is basically functional and should mature prior to the 0.4.3 release. + * Implemented priority inheritance logic for POSIX semaphores. Because the pthread + mutexes are built on semaphores, they will have this property as well. pascal-0.1.2 2008-02-10 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; @@ -1359,20 +1344,7 @@ buildroot-0.1.3 2009-02-28 &lt;spudmonkey@racsa.co.cr&gt; </table> <pre><ul> -nuttx-0.4.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - - * z8Encore! and eZ80Acclaim!: Fixed the serial driver initialization sequence - * eZ80Acclaim!: Fixed error in vector table: Missing space set aside for the - &quot;unused&quot; vectors. As a result, all vectors above timer4 were skewed. - * eZ80Acclaim!: Fixed logic error in UART interrupt handler. - * Many fixes in FAT file system and in NSH for correct compilation with ZDS-II - * eZ80Acclaim!: Added and verified a NuttShell (NSH) configuration. - * eZ80Acclaim!: Correct endian-ness; defconfig files said BIG endian. - * Restructured parts of the uIP port for correct compilation with ZDS-II - * eZ80Acclaim!: Complete basic integration of the eZ80F91 EMAC driver. The - driver is basically functional and should mature prior to the 0.4.3 release. - * Implemented priority inheritance logic for POSIX semaphores. Because the pthread - mutexes are built on semaphores, they will have this property as well. +nuttx-0.4.4 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 9cb9b0ee8136a690a359591813da87f70af3cefb Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 15 Mar 2009 21:44:58 +0000 Subject: [PATCH 0397/1518] Turn off NSH debug option that was causing a crash git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1614 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 5008ab67c1..7d565de74b 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: March 8, 2009</p> + <p>Last Updated: March 14, 2009</p> </td> </tr> </table> @@ -1346,6 +1346,9 @@ buildroot-0.1.3 2009-02-28 &lt;spudmonkey@racsa.co.cr&gt; <pre><ul> nuttx-0.4.4 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + * examples/nsh: A debug option was left on that can (and does) cause + infinite loops and stack overflows. + pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; buildroot-0.1.4 2009-xx-xx &lt;spudmonkey@racsa.co.cr&gt; From 33cc19898f1d15b884eee16e336e51916145f902 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 16 Mar 2009 00:09:31 +0000 Subject: [PATCH 0398/1518] Fix calculation of checksum on outgoing ping responses git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1617 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 7d565de74b..ff04cad7f7 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1348,6 +1348,7 @@ nuttx-0.4.4 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * examples/nsh: A debug option was left on that can (and does) cause infinite loops and stack overflows. + * net/uip: Correct calculation of checksum on ICMP ping response. pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 5e7e2219bd80d825400f32ce468df440916f486f Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 17 Mar 2009 23:45:41 +0000 Subject: [PATCH 0399/1518] Add examples/dhcpd git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1621 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index ff04cad7f7..f5ef8fd232 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: March 14, 2009</p> + <p>Last Updated: March 17, 2009</p> </td> </tr> </table> @@ -1349,6 +1349,7 @@ nuttx-0.4.4 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * examples/nsh: A debug option was left on that can (and does) cause infinite loops and stack overflows. * net/uip: Correct calculation of checksum on ICMP ping response. + * examples/dchpd: Added a tiny DHCP server example pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From a90b919d8129c0cb59a20daa8729b47533b319fe Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 19 Mar 2009 00:22:57 +0000 Subject: [PATCH 0400/1518] updated git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1631 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index f5ef8fd232..57281a258d 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: March 17, 2009</p> + <p>Last Updated: March 18, 2009</p> </td> </tr> </table> @@ -1350,6 +1350,10 @@ nuttx-0.4.4 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; infinite loops and stack overflows. * net/uip: Correct calculation of checksum on ICMP ping response. * examples/dchpd: Added a tiny DHCP server example + * net/uip: Correct UDP bind behavior. It should select a valid port number + if it receives a port number of zero. + * netutils/dhcpd: Corrrect for ZDS compiler. Fix issue with re-use of a + port number. Fix a number of broadcast-related problems. pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From f1209c6c705ae47e596ee6752d5d905fa2163667 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 21 Mar 2009 19:56:54 +0000 Subject: [PATCH 0401/1518] Changes for clean build on ZDS git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1637 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 57281a258d..4f1e88a663 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: March 18, 2009</p> + <p>Last Updated: March 21, 2009</p> </td> </tr> </table> @@ -1354,6 +1354,7 @@ nuttx-0.4.4 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; if it receives a port number of zero. * netutils/dhcpd: Corrrect for ZDS compiler. Fix issue with re-use of a port number. Fix a number of broadcast-related problems. + * eZ80Acclaim!: Add a tiny webserver configuration pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 70609ec0797ab98feaec5fad0727c39b8b0ca1c9 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 22 Mar 2009 17:13:51 +0000 Subject: [PATCH 0402/1518] Fix an error that was causing Tx to timeout improperly git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1639 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 4f1e88a663..08d056b73c 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: March 21, 2009</p> + <p>Last Updated: March 22, 2009</p> </td> </tr> </table> @@ -1353,8 +1353,12 @@ nuttx-0.4.4 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * net/uip: Correct UDP bind behavior. It should select a valid port number if it receives a port number of zero. * netutils/dhcpd: Corrrect for ZDS compiler. Fix issue with re-use of a - port number. Fix a number of broadcast-related problems. + port number. Fixed a number of broadcast-related problems. * eZ80Acclaim!: Add a tiny webserver configuration + * eZ80Acclaim!: Fixed an important bug in the EMAC Tx timeout logic. It was + always timing out when the load was heavy and worse, for some reason, + resetting the Tx function caused unexpected registers to be reset in + the Rcv function was well. pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 3f14a4346c620e34aacefe53b7f17db0f085c903 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 22 Mar 2009 21:25:34 +0000 Subject: [PATCH 0403/1518] Patch [2696648] Z80: interrupt flag stored in parity bit git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1641 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 08d056b73c..086552061a 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1359,6 +1359,9 @@ nuttx-0.4.4 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; always timing out when the load was heavy and worse, for some reason, resetting the Tx function caused unexpected registers to be reset in the Rcv function was well. + * Z80: Patch incorported: &quot;[2696648] Z80: interrupt flag stored in parity bit&quot; + (submitted by JPelletier). The is the same fix that was needed for the + eZ80 and fixed in 0.4.2. pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 30385ada3f8dca0fe13ee081fa9424d356e5ef44 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 26 Mar 2009 02:38:07 +0000 Subject: [PATCH 0404/1518] Add host based test for wget() git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1644 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 086552061a..59e40d1d67 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: March 22, 2009</p> + <p>Last Updated: March 25, 2009</p> </td> </tr> </table> @@ -1362,6 +1362,8 @@ nuttx-0.4.4 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Z80: Patch incorported: &quot;[2696648] Z80: interrupt flag stored in parity bit&quot; (submitted by JPelletier). The is the same fix that was needed for the eZ80 and fixed in 0.4.2. + * netutils: Added logic to support a simple wget() function + * examples/wget: Added a test for wget() pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 8007999a39567184eddd516dbdc21f4ed388e9f6 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 28 Mar 2009 13:14:13 +0000 Subject: [PATCH 0405/1518] Fix examples/wget build git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1649 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 59e40d1d67..a592cf57a5 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: March 25, 2009</p> + <p>Last Updated: March 28, 2009</p> </td> </tr> </table> @@ -1363,7 +1363,9 @@ nuttx-0.4.4 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; (submitted by JPelletier). The is the same fix that was needed for the eZ80 and fixed in 0.4.2. * netutils: Added logic to support a simple wget() function - * examples/wget: Added a test for wget() + * examples/wget: Added a test for wget() (Not yet tested because of + some current networking limitations). + * lib/strncasecmp: Fix cut'n'paste error in function name. pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 9a6234f5dc06b57dbb7863bc7f2cda7cab1d7b65 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 28 Mar 2009 19:49:28 +0000 Subject: [PATCH 0406/1518] Add wget command to NSH git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1657 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttShell.html | 46 ++++++++++++++++++++++++++-- Documentation/NuttX.html | 8 +++-- Documentation/NuttxPortingGuide.html | 2 +- 3 files changed, 50 insertions(+), 6 deletions(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index c5c5c921be..2ebad0a744 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttShell (NSH)</i></font></big></h1> - <p>Last Updated: November 15, 2008</p> + <p>Last Updated: March 28, 2009</p> </td> </tr> </table> @@ -275,7 +275,13 @@ <tr> <td><br></td> <td> - <a href="#cmdxd">2.33 Hexadecimal Dump (xd)</a> + <a href="#cmdwget">2.33 Get File Via HTTP (wget)</a> + </td> +</tr> +<tr> + <td><br></td> + <td> + <a href="#cmdxd">2.34 Hexadecimal Dump (xd)</a> </td> </tr> <tr> @@ -1673,7 +1679,34 @@ usleep &lt;usec&gt; <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="cmdxd"><h2>2.33 Hexadecimal dump (xd)</h2></a> + <a name="cmdwget">2.33 Get File Via HTTP (wget)</a> + </td> + </tr> +</table> + +<a <p><b>Command Syntax:</b></p> +<ul><pre> +wget [-o &lt;local-path&gt;] &lt;url&gt; +</pre></ul> +<p> + <b>Synopsis</b>. + Use HTTP to copy the file at <code>&lt;url&gt;</code> to the current directory. +</p> +<p><b>Options:</b></p> +<ul><table> + <tr> + <td><b><code>-o &lt;local-path&gt;</code></b></td> + <td> + The file will be saved relative to the current working directory + and with the same name as on the HTTP server unless <code>&lt;local-path&gt;</code> is provided. + </td> + </tr> +</table></ul> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="cmdxd"><h2>2.34 Hexadecimal dump (xd)</h2></a> </td> </tr> </table> @@ -1909,6 +1942,12 @@ nsh> <td>!<code>CONFIG_DISABLE_SIGNALS</code></td> <td><code>CONFIG_EXAMPLES_NSH_DISABLE_USLEEP</code></td> </tr> + <tr> + <td><b><code>wget</code></b></td> + <td><code>CONFIG_NET</code> &amp;&amp; <code>CONFIG_NET_TCP</code> &amp;&amp; + <code>CONFIG_NFILE_DESCRIPTORS</code> &gt; 0</td> + <td><code>CONFIG_EXAMPLES_NSH_DISABLE_WGET</code></td> + </tr> <tr> <td><b><code>xd</code></b></td> <td><br></td> @@ -2255,6 +2294,7 @@ nsh> <li><a href="#cmdunmount"><code>umount</code></a></li> <li><a href="#cmdunset"><code>unset</code></a></li> <li><a href="#cmdusleep"><code>usleep</code></a></li> + <li><a href="#cmdwget"><code>wget</code></a></li> <li><a href="#cmdxd"><code>xd</code></a></li> </ul></td> </tr></table> diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index a592cf57a5..382c2d3ad4 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1363,9 +1363,13 @@ nuttx-0.4.4 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; (submitted by JPelletier). The is the same fix that was needed for the eZ80 and fixed in 0.4.2. * netutils: Added logic to support a simple wget() function - * examples/wget: Added a test for wget() (Not yet tested because of - some current networking limitations). + * examples/wget: Added a test for wget() -- NOTE * lib/strncasecmp: Fix cut'n'paste error in function name. + * NSH: Added wget command (untested and temorarily disabled)-- see NOTE. + + NOTE: Features related to wget are not tested on the target platform in this + release and, hence, most likely have problems. I don't have the correct network + settup to perform that testing now (I'm in a hotel). pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 93a2e3b2ee..1d790ee25d 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -817,7 +817,7 @@ include/ <h2>2.12 <a name="DirStructNetUtils">netutils</a></h2> <p> This directory contains most of the network applications. - Some of these are original with NuttX (like tftpc) and others were leveraged from the uIP-1.0 apps directory. + Some of these are original with NuttX (like tftpc and dhcpd) and others were leveraged from the uIP-1.0 apps directory. As the uIP apps/README says, these applications &quot;are not all heavily tested.&quot; </p> <ul><pre> From 7de87cc8c33cdc0da849335d0c2ba11149121ed5 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 29 Mar 2009 13:31:11 +0000 Subject: [PATCH 0407/1518] Prep for 0.4.4 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1665 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 101 +++++++++++++++++---------------------- 1 file changed, 43 insertions(+), 58 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 382c2d3ad4..2daaf864db 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: March 28, 2009</p> + <p>Last Updated: March 29, 2009</p> </td> </tr> </table> @@ -671,8 +671,8 @@ </tr> </table> -<p><b>nuttx-0.4.3</b>. - The 35<sup>th</sup> release of NuttX (nuttx-0.4.3) is available for download +<p><b>nuttx-0.4.4</b>. + The 36<sup>th</sup> release of NuttX (nuttx-0.4.4) is available for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. The change log associated with the release is available <a href="#currentrelease">here</a>. @@ -680,25 +680,22 @@ These unreleased changes are listed <a href="#pendingchanges">here</a>. </p> <p> - This release one important new OS feature and corrects and extends the eZ80 port: + This release focuses on bugfixes and extending and verifying certain networking features: <ul> - <li>Priority Inheritance. - The basic NuttX waiting logic was extended to support priority inheritance. - See the NuttX <a href="NuttxUserGuide.html#priorityinheritance">User Manual</a> - for further information. + <li> + Important bugs were fixed in NSH, UDP checksum calculation, UDP bind() + behavior for port==0, the eZ80Acclaim! EMAC driver, Z80 interrupt handling, + and in the C libraries. </li> - <li>ez80Acclaim! - Corrected several critical, show-stopping bugs on that platform including: - errors in the serial driver intrrupts and an error in the ez80 vector table,. - </li> - <li>eZ80Acclaim!: - Completed integration of the eZ80F91 EMAC driver. + <li> + Testing was extended to further verify the tiny webserver, DHCPD, wget(), + and sendmail. </li> </ul> </p> <p> - These changes were verified only on the ZiLOG eZ80910200zcog-d board and on Cygwin-based - simulation platform in various configurations. Please report any errors to me. + These changes were verified only on the ZiLOG eZ80910200zcog-d board using the + ZDS-II toolchain in Cygwin-based environment. Please report any errors to me. </p> <table width ="100%"> @@ -948,9 +945,9 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1); </p> <p> <b>STATUS:</b> - Testing with the ZiLOG ez80f0910200kitg has been performed only on the on the ZDS-II simulator. - However, support for the ZiLOG ez80f0910200zcog-d is complete. - The first integrated version was released in NuttX version 0.4.2. + Integration and testing of NuttX on the ZiLOG ez80f0910200zcog-d is complete. + The first integrated version was released in NuttX version 0.4.2 (with important early bugfixes + in 0.4.3 and 0.4.4). As of this writing, that port provides basic board support with a serial console and eZ80F91 EMAC driver. </p> </td> @@ -1300,20 +1297,33 @@ Other memory: </table> <pre><ul> -nuttx-0.4.3 2009-03-04 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; +nuttx-0.4.4 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - * z8Encore! and eZ80Acclaim!: Fixed the serial driver initialization sequence - * eZ80Acclaim!: Fixed error in vector table: Missing space set aside for the - &quot;unused&quot; vectors. As a result, all vectors above timer4 were skewed. - * eZ80Acclaim!: Fixed logic error in UART interrupt handler. - * Many fixes in FAT file system and in NSH for correct compilation with ZDS-II - * eZ80Acclaim!: Added and verified a NuttShell (NSH) configuration. - * eZ80Acclaim!: Correct endian-ness; defconfig files said BIG endian. - * Restructured parts of the uIP port for correct compilation with ZDS-II - * eZ80Acclaim!: Complete basic integration of the eZ80F91 EMAC driver. The - driver is basically functional and should mature prior to the 0.4.3 release. - * Implemented priority inheritance logic for POSIX semaphores. Because the pthread - mutexes are built on semaphores, they will have this property as well. + * examples/nsh: A debug option was left on that can (and does) cause + infinite loops and stack overflows. + * net/uip: Correct calculation of checksum on ICMP ping response. + * examples/dchpd: Added a tiny DHCP server example + * net/uip: Correct UDP bind behavior. It should select a valid port number + if it receives a port number of zero. + * netutils/dhcpd: Corrrect for ZDS compiler. Fix issue with re-use of a + port number. Fixed a number of broadcast-related problems. + * eZ80Acclaim!: Add a tiny webserver configuration + * eZ80Acclaim!: Fixed an important bug in the EMAC Tx timeout logic. It was + always timing out when the load was heavy and worse, for some reason, + resetting the Tx function caused unexpected registers to be reset in + the Rcv function was well. + * Z80: Patch incorported: &quot;[2696648] Z80: interrupt flag stored in parity bit&quot; + (submitted by JPelletier). The is the same fix that was needed for the + eZ80 and fixed in 0.4.2. + * netutils: Added logic to support a simple wget() function + * examples/wget: Added a test for wget() (untested -- see NOTE) + * lib/strncasecmp: Fix cut'n'paste error in function name. + * NSH: Added wget command (untested -- see NOTE). + * examples/sendmail: A simple sendmail example (untested -- see NOTE) + + NOTE: Features related to wget and sendmail are not tested on the target platform + in this release and, hence, most likely have problems. I don't have the correct network + network setup to perform that testing now (I'm in a hotel). pascal-0.1.2 2008-02-10 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; @@ -1344,32 +1354,7 @@ buildroot-0.1.3 2009-02-28 &lt;spudmonkey@racsa.co.cr&gt; </table> <pre><ul> -nuttx-0.4.4 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - - * examples/nsh: A debug option was left on that can (and does) cause - infinite loops and stack overflows. - * net/uip: Correct calculation of checksum on ICMP ping response. - * examples/dchpd: Added a tiny DHCP server example - * net/uip: Correct UDP bind behavior. It should select a valid port number - if it receives a port number of zero. - * netutils/dhcpd: Corrrect for ZDS compiler. Fix issue with re-use of a - port number. Fixed a number of broadcast-related problems. - * eZ80Acclaim!: Add a tiny webserver configuration - * eZ80Acclaim!: Fixed an important bug in the EMAC Tx timeout logic. It was - always timing out when the load was heavy and worse, for some reason, - resetting the Tx function caused unexpected registers to be reset in - the Rcv function was well. - * Z80: Patch incorported: &quot;[2696648] Z80: interrupt flag stored in parity bit&quot; - (submitted by JPelletier). The is the same fix that was needed for the - eZ80 and fixed in 0.4.2. - * netutils: Added logic to support a simple wget() function - * examples/wget: Added a test for wget() -- NOTE - * lib/strncasecmp: Fix cut'n'paste error in function name. - * NSH: Added wget command (untested and temorarily disabled)-- see NOTE. - - NOTE: Features related to wget are not tested on the target platform in this - release and, hence, most likely have problems. I don't have the correct network - settup to perform that testing now (I'm in a hotel). +nuttx-0.4.5 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From c06e6c1f8642121a3ad31a00c246aa4567e7a3df Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 29 Mar 2009 20:34:58 +0000 Subject: [PATCH 0408/1518] Add eZ80 SPI driver git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1668 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 2daaf864db..db4da8152e 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1356,6 +1356,10 @@ buildroot-0.1.3 2009-02-28 &lt;spudmonkey@racsa.co.cr&gt; <pre><ul> nuttx-0.4.5 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + * Add an enumeration argument to the SPI chip select and status methods so + that the interface can handle more than one device. + * eZ80Acclaim!: Add a generic SPI driver for all eZ80 boards. + pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; buildroot-0.1.4 2009-xx-xx &lt;spudmonkey@racsa.co.cr&gt; From f763d0f2118f189f9c4870315065b707353b0f41 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 29 Mar 2009 21:14:34 +0000 Subject: [PATCH 0409/1518] Add SPI method to set SCLK mode git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1669 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index db4da8152e..e8e9e3e622 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1359,6 +1359,8 @@ nuttx-0.4.5 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Add an enumeration argument to the SPI chip select and status methods so that the interface can handle more than one device. * eZ80Acclaim!: Add a generic SPI driver for all eZ80 boards. + * Add a setmode() method to the SPI interface to handle parts with differing + mode requirements. pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 952fbcc26a25b3a6e92f065aec16b922e10943d4 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 4 Apr 2009 20:53:06 +0000 Subject: [PATCH 0410/1518] Add z8 I2C driver git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1680 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index e8e9e3e622..ff562da0de 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: March 29, 2009</p> + <p>Last Updated: April 4, 2009</p> </td> </tr> </table> @@ -948,7 +948,7 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1); Integration and testing of NuttX on the ZiLOG ez80f0910200zcog-d is complete. The first integrated version was released in NuttX version 0.4.2 (with important early bugfixes in 0.4.3 and 0.4.4). - As of this writing, that port provides basic board support with a serial console and eZ80F91 EMAC driver. + As of this writing, that port provides basic board support with a serial console, SPI, and eZ80F91 EMAC driver. </p> </td> </tr> @@ -1361,11 +1361,16 @@ nuttx-0.4.5 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * eZ80Acclaim!: Add a generic SPI driver for all eZ80 boards. * Add a setmode() method to the SPI interface to handle parts with differing mode requirements. + * include/nuttx/i2c.h: Defined a standard I2C interface + * eZ80Acclaim!: Add an I2C driver. + * eZ8Encore!: Add an I2C driver. pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; buildroot-0.1.4 2009-xx-xx &lt;spudmonkey@racsa.co.cr&gt; + * Add support for a blackfin toolchain using GCC 4.2.4 and binutils 2.19 + </pre></ul> <table width ="100%"> From 758c8f7a9fb76bfcdec1a349e0521e4175d088dc Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 8 Apr 2009 23:24:59 +0000 Subject: [PATCH 0411/1518] Add option to copy to RAM git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1689 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 1d790ee25d..e4e9fea33e 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@ <h1><big><font color="#3c34ec"> <i>NuttX RTOS Porting Guide</i> </font></big></h1> - <p>Last Updated: March 13, 2009</p> + <p>Last Updated: April 8, 2009</p> </td> </tr> </table> @@ -2061,8 +2061,12 @@ The system can be re-made subsequently by just typing <code>make</code>. <ul> <li> - <code>CONFIG_BOOT_FROM_FLASH</code>: Some configurations support XIP - operation from FLASH. + <code>CONFIG_BOOT_RUNFROMFLASH</code>: Some configurations support XIP + operation from FLASH but must copy initialized .data sections to RAM. + </li> + <li> + <code>CONFIG_BOOT_COPYTORAM</code>: Some configurations boot in FLASH + but copy themselves entirely into RAM for better performance. </li> <li> <code>CONFIG_STACK_POINTER</code>: The initial stack pointer From 92c53dc1114014cde9e5eab6fca67b7ab90add86 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 12 Apr 2009 19:58:58 +0000 Subject: [PATCH 0412/1518] upate git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1699 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index ff562da0de..17f79e23ca 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: April 4, 2009</p> + <p>Last Updated: April 12, 2009</p> </td> </tr> </table> @@ -1364,6 +1364,8 @@ nuttx-0.4.5 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * include/nuttx/i2c.h: Defined a standard I2C interface * eZ80Acclaim!: Add an I2C driver. * eZ8Encore!: Add an I2C driver. + * Add support for the Freescale i.MX1/L architecture and a configuration for + the Freescale MX1ADS development board. pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From dced887fd4f2af1e8da6d01530e50e2d6fb18697 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 13 Apr 2009 23:24:37 +0000 Subject: [PATCH 0413/1518] Add interrupt decode logic for i.MX git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1701 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 17f79e23ca..bb5c3eac7a 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -790,6 +790,27 @@ </p> </td> </tr> +<tr> + <td valign="top"><img height="20" width="20" src="favicon.ico"></td> + <td bgcolor="#5eaee1"> + <b>ARM920T</b>. + </td> +</tr> +<tr> + <td><br></td> + <td> + <p> + <b>Freescale MC9328MX1</b> or <b>i.MX1</b>. + This port uses the Freescale MX1ADS development board with a GNU arm-elf toolchain* + under either Linux or Cygwin. + </p> + <p> + <b>STATUS:</b> + This port is in progress. Coding is complete on the basic port (timer, serial console). + Verified support for the i.MX1 will be announced in a future release of NuttX. + </p> + </td> +</tr> <tr> <td valign="top"><img height="20" width="20" src="favicon.ico"></td> <td bgcolor="#5eaee1"> @@ -1433,7 +1454,7 @@ buildroot-0.1.4 2009-xx-xx &lt;spudmonkey@racsa.co.cr&gt; </tr> </table> <ul> - <li>ARM, ARM7 ARM7TDMI, ARM9, ARM926EJS are trademarks of Advanced RISC Machines, Limited.</li> + <li>ARM, ARM7 ARM7TDMI, ARM9, ARM920T, ARM926EJS are trademarks of Advanced RISC Machines, Limited.</li> <li>Cygwin is a trademark of Red Hat, Incorporated.</li> <li>Linux is a registered trademark of Linus Torvalds.</li> <li>LPC2148 is a trademark of NXP Semiconductors.</li> From 9e346bb4ef867dbf9a15b0aafe6e7b36eb972cba Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 19 Apr 2009 13:05:39 +0000 Subject: [PATCH 0414/1518] Add C++ HelloWorld example git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1706 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index bb5c3eac7a..0edf2ebd15 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: April 12, 2009</p> + <p>Last Updated: April 19, 2009</p> </td> </tr> </table> @@ -1387,12 +1387,18 @@ nuttx-0.4.5 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * eZ8Encore!: Add an I2C driver. * Add support for the Freescale i.MX1/L architecture and a configuration for the Freescale MX1ADS development board. + * examples/helloxx: Added a simple C++ hello world example pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; buildroot-0.1.4 2009-xx-xx &lt;spudmonkey@racsa.co.cr&gt; * Add support for a blackfin toolchain using GCC 4.2.4 and binutils 2.19 + * GCC 4.2.4 no longer attempts to build libstdc++. Now we can build g++! + * The ARM GCC-4.2.4 configuration was changed so that it now builds g++. + * Removed building of initial and final GCC. that is not necessary because + we do not build a libc. Now it builds almost twice as fast. + * Removed logic to build the target GCC. That is never used. </pre></ul> From fdee85a5d51c5ca7359189233122a73ce388d96f Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 19 Apr 2009 16:08:52 +0000 Subject: [PATCH 0415/1518] Prep vor 0.4.5 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1714 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 78 +++++++++++++++------------------------- 1 file changed, 29 insertions(+), 49 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 0edf2ebd15..a35dcf871c 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -671,8 +671,8 @@ </tr> </table> -<p><b>nuttx-0.4.4</b>. - The 36<sup>th</sup> release of NuttX (nuttx-0.4.4) is available for download +<p><b>nuttx-0.4.5</b>. + The 37<sup>th</sup> release of NuttX (nuttx-0.4.5) is available for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. The change log associated with the release is available <a href="#currentrelease">here</a>. @@ -680,22 +680,26 @@ These unreleased changes are listed <a href="#pendingchanges">here</a>. </p> <p> - This release focuses on bugfixes and extending and verifying certain networking features: + This release focuses on a few new features. <ul> <li> - Important bugs were fixed in NSH, UDP checksum calculation, UDP bind() - behavior for port==0, the eZ80Acclaim! EMAC driver, Z80 interrupt handling, - and in the C libraries. + The basic port for the FreeScale ARM920T i.MX1 processor on the + Freescale MX1ADS board. Coding is complete for this port, but it is + has not yet fully integrated. </li> <li> - Testing was extended to further verify the tiny webserver, DHCPD, wget(), - and sendmail. + Extended I2C and SPI interface definitions + </li> + <li> + Add basic support for C++ applications. Very simple C++ applications + can now be built against NuttX without any external libraries. At + present, only the most primitive C++ programs are supported, but it + is hoped that this support will be extended in future releases. </li> </ul> </p> <p> - These changes were verified only on the ZiLOG eZ80910200zcog-d board using the - ZDS-II toolchain in Cygwin-based environment. Please report any errors to me. + See the Changelog for a detailed description of these changes. </p> <table width ="100%"> @@ -1318,33 +1322,21 @@ Other memory: </table> <pre><ul> -nuttx-0.4.4 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; +nuttx-0.4.5 2009-04-19 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - * examples/nsh: A debug option was left on that can (and does) cause - infinite loops and stack overflows. - * net/uip: Correct calculation of checksum on ICMP ping response. - * examples/dchpd: Added a tiny DHCP server example - * net/uip: Correct UDP bind behavior. It should select a valid port number - if it receives a port number of zero. - * netutils/dhcpd: Corrrect for ZDS compiler. Fix issue with re-use of a - port number. Fixed a number of broadcast-related problems. - * eZ80Acclaim!: Add a tiny webserver configuration - * eZ80Acclaim!: Fixed an important bug in the EMAC Tx timeout logic. It was - always timing out when the load was heavy and worse, for some reason, - resetting the Tx function caused unexpected registers to be reset in - the Rcv function was well. - * Z80: Patch incorported: &quot;[2696648] Z80: interrupt flag stored in parity bit&quot; - (submitted by JPelletier). The is the same fix that was needed for the - eZ80 and fixed in 0.4.2. - * netutils: Added logic to support a simple wget() function - * examples/wget: Added a test for wget() (untested -- see NOTE) - * lib/strncasecmp: Fix cut'n'paste error in function name. - * NSH: Added wget command (untested -- see NOTE). - * examples/sendmail: A simple sendmail example (untested -- see NOTE) - - NOTE: Features related to wget and sendmail are not tested on the target platform - in this release and, hence, most likely have problems. I don't have the correct network - network setup to perform that testing now (I'm in a hotel). + * Add an enumeration argument to the SPI chip select and status methods so + that the interface can handle more than one device. + * eZ80Acclaim!: Add a generic SPI driver for all eZ80 boards. + * Add a setmode() method to the SPI interface to handle parts with differing + mode requirements. + * include/nuttx/i2c.h: Defined a standard I2C interface + * eZ80Acclaim!: Add an I2C driver. + * eZ8Encore!: Add an I2C driver. + * Add support for the Freescale i.MX1/L architecture and a configuration for + the Freescale MX1ADS development board. + * examples/helloxx: Added a simple C++ hello world example + * include/css: Added std header files + * libxx: New C++-only directory provides support for minimal C++ applications pascal-0.1.2 2008-02-10 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; @@ -1375,19 +1367,7 @@ buildroot-0.1.3 2009-02-28 &lt;spudmonkey@racsa.co.cr&gt; </table> <pre><ul> -nuttx-0.4.5 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - - * Add an enumeration argument to the SPI chip select and status methods so - that the interface can handle more than one device. - * eZ80Acclaim!: Add a generic SPI driver for all eZ80 boards. - * Add a setmode() method to the SPI interface to handle parts with differing - mode requirements. - * include/nuttx/i2c.h: Defined a standard I2C interface - * eZ80Acclaim!: Add an I2C driver. - * eZ8Encore!: Add an I2C driver. - * Add support for the Freescale i.MX1/L architecture and a configuration for - the Freescale MX1ADS development board. - * examples/helloxx: Added a simple C++ hello world example +nuttx-0.4.6 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 0cf9520f00ec8312b35f846e48021e96387958f0 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 19 Apr 2009 16:52:56 +0000 Subject: [PATCH 0416/1518] Need more positive control over C++ git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1716 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index e4e9fea33e..692c365805 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@ <h1><big><font color="#3c34ec"> <i>NuttX RTOS Porting Guide</i> </font></big></h1> - <p>Last Updated: April 8, 2009</p> + <p>Last Updated: April 19, 2009</p> </td> </tr> </table> @@ -1539,18 +1539,27 @@ The system can be re-made subsequently by just typing <code>make</code>. <ul> <li><code>CONFIG_RRLOAD_BINARY</code>: Make the rrload binary format used with BSPs from <a href="www.ridgerun.com">ridgerun.com</a> - using the <code>tools/mkimage.sh</code> script.</li> + using the <code>tools/mkimage.sh</code> script. + </li> <li><code>CONFIG_INTELHEX_BINARY</code>: Make the Intel HEX binary format used with many different loaders using the GNU objcopy program - This option hould not be selected if you are not using the GNU toolchain.</li> + This option hould not be selected if you are not using the GNU toolchain. + </li> <li><code>CONFIG_MOTOROLA_SREC</code>: Make the Motorola S-Record binary format used with many different loaders using the GNU objcopy program - Should not be selected if you are not using the GNU toolchain.</li> + Should not be selected if you are not using the GNU toolchain. + </li> <li><code>CONFIG_RAW_BINARY</code>: mmke a raw binary format file used with many different loaders using the GNU objcopy program. - This option should not be selected if you are not using the GNU toolchain.</li> + This option should not be selected if you are not using the GNU toolchain. + </li> <li><code>CONFIG_HAVE_LIBM</code>: - Toolchain supports libm.a</li> + Toolchain supports libm.a + </li> + <li><code>CONFIG_HAVE_CXX</code>: + Toolchain supports C++ and <code>CXX</code>, <code>CXXFLAGS</code>, and <code>COMPILEXX</code> + have been defined in the configuratins <code>Make.defs</code> file. + </li> </ul> <h2>General OS setup</h2> From b216307f6745b8f7bd3b713e5edb5b956b30699c Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 25 Apr 2009 21:18:19 +0000 Subject: [PATCH 0417/1518] imx update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1738 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 42 ++++++++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 17 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index a35dcf871c..0f600f2e1c 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: April 19, 2009</p> + <p>Last Updated: April 25, 2009</p> </td> </tr> </table> @@ -217,6 +217,22 @@ Non-restrictive BSD license. </p> </tr> +<tr> + <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> + <td bgcolor="#5eaee1"> + <b>GNU Toolchains</b> + </td> +</tr> +<tr> + <td><br></td> + <td> + <p> + Compatible GNU toolchains based on <a href="http://buildroot.uclibc.org/">buildroot</a> + available for + <a href="https://sourceforge.net/project/showfiles.php?group_id=189573&package_id=224585">download</a> + to provide a complete development environment for many architectures. + </p> +</tr> </table></center> <p> @@ -1348,14 +1364,14 @@ pascal-0.1.2 2008-02-10 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; and eliminate a compiler bug * Changes so that runtime compiles with SDCC. -buildroot-0.1.3 2009-02-28 &lt;spudmonkey@racsa.co.cr&gt; +buildroot-0.1.5 2009-04-25 &lt;spudmonkey@racsa.co.cr&gt; - * Add support for H8/300 toolchain - * Add support for GCC 4.2.4 and binutils 2.19 - * Various fixes for newer Linux environments - * New ARM configuration using GCC 4.2.4 and binutils 2.19 - (Note: this doesn't work with NuttX yet... to nuttx TODO.txt list). - * Add Renesas R8C/M16C/M32C configuration using GCC 4.2.4 and binutils 2.19 + * Replaced config/arm-defconfig-4.2.4 with config/arm920t-defconfig-4.2.4 + and config/arm926t-defconfig-4.2.4 because of differences in the + way that soft floating point is handled between these two + architectures. + * Add support for gcc-4.3.3 and the ARM Cortex-M3 processor (thumb2) + * Add support for binutils 2.19.1 </pre></ul> <table width ="100%"> @@ -1371,15 +1387,7 @@ nuttx-0.4.6 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; -buildroot-0.1.4 2009-xx-xx &lt;spudmonkey@racsa.co.cr&gt; - - * Add support for a blackfin toolchain using GCC 4.2.4 and binutils 2.19 - * GCC 4.2.4 no longer attempts to build libstdc++. Now we can build g++! - * The ARM GCC-4.2.4 configuration was changed so that it now builds g++. - * Removed building of initial and final GCC. that is not necessary because - we do not build a libc. Now it builds almost twice as fast. - * Removed logic to build the target GCC. That is never used. - +buildroot-0.1.6 2009-xx-xx &lt;spudmonkey@racsa.co.cr&gt; </pre></ul> <table width ="100%"> From 8aff33e0de655639ae3c88b3377a81373f2ce6c1 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 26 Apr 2009 16:06:29 +0000 Subject: [PATCH 0418/1518] Extend SPI interface for word sizes >8bits git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1740 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 0f600f2e1c..15977d93da 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: April 25, 2009</p> + <p>Last Updated: April 26, 2009</p> </td> </tr> </table> @@ -1385,6 +1385,11 @@ buildroot-0.1.5 2009-04-25 &lt;spudmonkey@racsa.co.cr&gt; <pre><ul> nuttx-0.4.6 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + * Change SPI interface so that is can accomodate interfaces where the + number of bits per word is greater an 8 (such as with many 9-bit display + interfaces). -- this might have broken a few things which will need to + be retested! + pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; buildroot-0.1.6 2009-xx-xx &lt;spudmonkey@racsa.co.cr&gt; From 8229eb89e83112066c652af4d41c746e45a7f888 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 26 Apr 2009 18:58:49 +0000 Subject: [PATCH 0419/1518] Extend SPI interface so that we can set number of bits per word git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1742 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 15977d93da..b48a764edc 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1389,6 +1389,10 @@ nuttx-0.4.6 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; number of bits per word is greater an 8 (such as with many 9-bit display interfaces). -- this might have broken a few things which will need to be retested! + * arch/arm/src/imx: Added i.MX SPI driver + * SPI: Add a method to set the number of bits per word. Also add an + alternative interface for so that (eventually) I can phase the sndblock + and recvblock methods and replace them with a single exchange method pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 5f4ce7198fbe17e985ca0a8a481e8e0bd2157fa3 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 29 Apr 2009 01:04:45 +0000 Subject: [PATCH 0420/1518] buildroot changes git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1745 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index b48a764edc..d20111112d 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: April 26, 2009</p> + <p>Last Updated: April 28, 2009</p> </td> </tr> </table> @@ -826,7 +826,7 @@ </p> <p> <b>STATUS:</b> - This port is in progress. Coding is complete on the basic port (timer, serial console). + This port is in progress. Coding is complete on the basic port (timer, serial console, SPI). Verified support for the i.MX1 will be announced in a future release of NuttX. </p> </td> @@ -1397,6 +1397,8 @@ nuttx-0.4.6 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; buildroot-0.1.6 2009-xx-xx &lt;spudmonkey@racsa.co.cr&gt; + + * Added config/arm7tdmi-defconfig-4.2.4 </pre></ul> <table width ="100%"> From 628b7a8e4268b86ecf7d782741efb38e936cf116 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 29 Apr 2009 23:17:39 +0000 Subject: [PATCH 0421/1518] Fix objcopy problem with newer toolchains git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1746 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index d20111112d..d779698a2e 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1393,6 +1393,11 @@ nuttx-0.4.6 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * SPI: Add a method to set the number of bits per word. Also add an alternative interface for so that (eventually) I can phase the sndblock and recvblock methods and replace them with a single exchange method + * Build: objcopy fails with toolchains that use newer GCC and binutils. The + following arguments need to be included in the objcopy command line "-R .note + -R .note.gnu.build-id -R .comment" This has bin fixed in arch/arm/src/Makefile, + but other architectures may have the same problem. Thanks to Dave Marples + for verifying this. pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 94b6a8bc0d97039204770974d68c591430da832c Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 8 May 2009 00:13:50 +0000 Subject: [PATCH 0422/1518] framework for interrupt handling git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1761 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index d779698a2e..b71e005ddf 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: April 28, 2009</p> + <p>Last Updated: May 7, 2009</p> </td> </tr> </table> @@ -1398,12 +1398,19 @@ nuttx-0.4.6 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; -R .note.gnu.build-id -R .comment" This has bin fixed in arch/arm/src/Makefile, but other architectures may have the same problem. Thanks to Dave Marples for verifying this. + * Began adding support for the MicroMint Eagle100 board. This board has a + Luminary LM3S6918 Cortex-M3. pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; buildroot-0.1.6 2009-xx-xx &lt;spudmonkey@racsa.co.cr&gt; * Added config/arm7tdmi-defconfig-4.2.4 + * Added config/arm920t-defconfig-4.3.3 + * Correct error in arm-defconfig gcc-3.4.6 build. The gcc-3.4.6 configuration + does not not take --with-abi + * Correct error in gcc-3.4.6/gcc/collect.c. Calls open with O_CREAT but + does not specify mode. Newer host compilers can error out on this. </pre></ul> <table width ="100%"> From a7d37cffded537ff40f0b49491e43195ca3a9093 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 9 May 2009 13:11:12 +0000 Subject: [PATCH 0423/1518] fix typos git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1765 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxUserGuide.html | 112 +++++++++++++++--------------- 1 file changed, 56 insertions(+), 56 deletions(-) diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index de3e370b87..63a54e7159 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -13,7 +13,7 @@ <h1><big><font color="#3c34ec"><i>NuttX Operating System<p>User's Manual</i></font></big></h1> <p><small>by</small></p> <p>Gregory Nutt<p> - <p>Last Updated: March 13, 2009</p> + <p>Last Updated: May 9, 2009</p> </td> </tr> </table> @@ -184,7 +184,7 @@ paragraphs. were started from the same parent thread. </p> <p> - The following task control interfaces are provided by Nuttx: + The following task control interfaces are provided by NuttX: </p> <ul> <li><a href="#taskcreate">2.1.1 task_create</a></li> @@ -231,7 +231,7 @@ paragraphs. The newly created task does not inherit scheduler characteristics from the parent task: The new task is started at the default system priority and with the SCHED_FIFO scheduling - policy. These characteristcs may be modified after the new + policy. These characteristics may be modified after the new task has been started. </p> <p> @@ -281,7 +281,7 @@ VxWorks provides the following similar interface: <ul> <li>Interface name <li>Various differences in types of arguments -<li>There is no options arguement. +<li>There is no options argument. <li>A variable number of parameters can be passed to a task (VxWorks supports ten). </ul> @@ -472,7 +472,7 @@ VxWorks provides the following similar interface: <p> <b>Description:</b> This function causes the calling task to cease to exist -- its stack and TCB will be deallocated. exit differs from -_exit in that it flushs streams, closes file descriptors and will +_exit in that it flushes streams, closes file descriptors and will execute any function registered with atexit(). <p> <b>Input Parameters:</b> @@ -491,7 +491,7 @@ execute any function registered with atexit(). <pre> void exit( int code ); </pre> -And the unix interface: +And the UNIX interface: <pre> void _exit( int code ); </pre> @@ -1065,7 +1065,7 @@ on this thread of execution. </table> <p> - NuttX supports POSIX named message queues for intertask communication. + NuttX supports POSIX named message queues for inter-task communication. Any task may send or receive messages on named message queues. Interrupt handlers may send messages via named message queues. </p> @@ -1699,7 +1699,7 @@ interface of the same name. Proper use of semaphores avoids the issues of <code>sched_lock()</code>. However, consider the following example: <OL> - <li>Some low-priority task, <I>Task C</I>, acquires a semphore in order to + <li>Some low-priority task, <I>Task C</I>, acquires a semaphore in order to get exclusive access to a protected resource.</li> <li><I>Task C</I> is suspended to allow some high-priority task,</li> <I>Task A</I>, to execute.</li> @@ -1727,7 +1727,7 @@ interface of the same name. The designer may, as examples: </p> <ul> - <li>Implement all tasks that need the semphore-managed resources at the + <li>Implement all tasks that need the semaphore-managed resources at the same priority level,</li> <li>Boost the priority of the low-priority task before the semaphore is acquired, or</li> @@ -1760,7 +1760,7 @@ interface of the same name. The setting <code>CONFIG_SEM_PREALLOCHOLDERS</code> defines the maximum number of different threads (minus one per semaphore instance) that can take counts on a semaphore with priority inheritance support. - This setting defines the size of a single pool of preallocated structures. + This setting defines the size of a single pool of pre-allocated structures. It may be set to zero if priority inheritance is disabled OR if you are only using semaphores as mutexes (only one holder) OR if no more than two threads participate using a counting semaphore. @@ -1797,7 +1797,7 @@ interface of the same name. These various structures tie the semaphore implementation more tightly to the behavior of the implementation. For examples, if a thread executes while holding counts on a semaphore, or if a thread exits without call <code>sem_destroy()</code> - then. Or what if the thread with the boosted priority reprioritizes itself? + then. Or what if the thread with the boosted priority re-prioritizes itself? The NuttX implement of priority inheritance attempts to handle all of these types of corner cases, but it is very likely that some are missed. The worst case result is that memory could by stranded within the priority @@ -2022,7 +2022,7 @@ interface of the same name. <p> <b>Description:</b> This function will remove the semaphore named by the input name parameter. If one or more tasks have the semaphore named by -name oepn when sem_unlink() is called, destruction of the semaphore will +name open when sem_unlink() is called, destruction of the semaphore will be postponed until all references have been destroyed by calls to sem_close(). <p> @@ -2326,7 +2326,7 @@ VxWorks provides the following comparable interface: Differences from the VxWorks interface include: <ul> <li>Does not make any checks to see if the watchdog is being used -before de-allocating it (i.e., never returns ERROR). +before deallocating it (i.e., never returns ERROR). </ul> <H3><a name="wdstart">2.6.3 wd_start</a></H3> @@ -2779,7 +2779,7 @@ VxWorks provides the following comparable interface: </p> <ul> <li><code>timerid</code>. The pre-thread timer, previously created by the call to timer_create(), to be be set.</li> - <li><code>flags</code>. Specifie characteristics of the timer (see above)</li> + <li><code>flags</code>. Specify characteristics of the timer (see above)</li> <li><code>value</code>. Specifies the timer value to set</li> <li><code>ovalue</code>. A location in which to return the time remaining from the previous timer setting (ignored).</li> </ul> @@ -3145,7 +3145,7 @@ action to be associated with the specified signal. If the argument oact is not NULL, the action previously associated with the signal is stored in the location pointed to by the argument oact. If the argument act is NULL, signal handling is unchanged by this function call; thus, the call -can be used to enquire about the current handling of a given signal. +can be used to inquire about the current handling of a given signal. <p> When a signal is caught by a signal-catching function installed by the sigaction() function, a new signal mask is calculated and installed for @@ -3384,7 +3384,7 @@ for si_code are defined in signal.h: <li><I>SI_USER</I>. Signal sent from kill, raise, or abort <li><I>SI_QUEUE</I>. Signal sent from sigqueue <li><I>SI_TIMER</I>. Signal is result of timer expiration - <li><I>SI_ASYNCIO</I>. Signal is the result of asynch IO completion + <li><I>SI_ASYNCIO</I>. Signal is the result of asynchronous IO completion <li><I>SI_MESGQ</I>. Signal generated by arrival of a message on an empty message queue. </ul> @@ -4121,7 +4121,7 @@ Identifies the thread to be canceled.</li> <p> <b>Returned Values:</b> <p> -If successful, the <I>ptnread_cancel()</I> function will return zero (<I>OK</I>). +If successful, the <I>pthread_cancel()</I> function will return zero (<I>OK</I>). Otherwise, an error number will be returned to indicate the error: <p> <ul> @@ -4136,8 +4136,8 @@ interface of the same name. Except:</p> <li>The thread-specific data destructor functions shall be called for thread. However, these destructors are not currently supported.</li> <li>Cancellation types are not supported. The thread will be canceled -at the time that pthread_cancel() is called or, if cancelation is disabled, at -the time when cancelation is re-enabled.</li> +at the time that pthread_cancel() is called or, if cancellation is disabled, at +the time when cancellation is re-enabled.</li> <li><tt>pthread_testcancel()</tt> is not supported.</li> <li>Thread cancellation at <i>cancellation points</i> is not supported.</li> </ul> @@ -4158,16 +4158,16 @@ state and returns the previous cancelability state at the location referenced by oldstate. Legal values for state are PTHREAD_CANCEL_ENABLE and PTHREAD_CANCEL_DISABLE.<.li> -<p>Any pending thread cancelation may occur at the time that the -cancelation state is set to PTHREAD_CANCEL_ENABLE.</p> +<p>Any pending thread cancellation may occur at the time that the +cancellation state is set to PTHREAD_CANCEL_ENABLE.</p> <b>Input Parameters:</b> <p> <ul> <li><I>state</I> -New cancelation state. One of PTHREAD_CANCEL_ENABLE or PTHREAD_CANCEL_DISABLE.<.li> +New cancellation state. One of PTHREAD_CANCEL_ENABLE or PTHREAD_CANCEL_DISABLE.<.li> <li><I>oldstate</I>. -Location to return the previous cancelation state. +Location to return the previous cancellation state. </ul> <p> <b>Returned Values:</b> @@ -4682,7 +4682,7 @@ interface of the same name. <H3><a name="pthreadmutexattrdestroy">2.9.27 pthread_mutexattr_destroy</a></H3> <p> -<b>Function Protoype:</b> +<b>Function Prototype:</b> <p> <pre> #include &lt;pthread.h&gt; @@ -4830,15 +4830,15 @@ returned to indicate the error: <li><code>type</code>. The mutex type value to set. The following values are supported: <ul> <li><code>PTHREAD_MUTEX_NORMAL</code>. This type of mutex does not detect deadlock. A thread - attempting to relock this mutex without first unlocking it will deadlock. + attempting to re-lock this mutex without first unlocking it will deadlock. Attempting to unlock a mutex locked by a different thread results in undefined behavior. Attempting to unlock an unlocked mutex results in undefined behavior. </li> <li><code>PTHREAD_MUTEX_ERRORCHECK</code>. This type of mutex provides error checking. - A thread attempting to relock this mutex without first unlocking it will return with an error. + A thread attempting to re-lock this mutex without first unlocking it will return with an error. A thread attempting to unlock a mutex which another thread has locked will return with an error. A thread attempting to unlock an unlocked mutex will return with an error.</li> - <li><code>PTHREAD_MUTEX_RECURSIVE</code>. A thread attempting to relock this mutex without first - unlocking it will succeed in locking the mutex. The relocking deadlock which can occur with mutexes + <li><code>PTHREAD_MUTEX_RECURSIVE</code>. A thread attempting to re-lock this mutex without first + unlocking it will succeed in locking the mutex. The re-locking deadlock which can occur with mutexes of type PTHREAD_MUTEX_NORMAL cannot occur with this type of mutex. Multiple locks of this mutex require the same number of unlocks to release the mutex before another thread can acquire the mutex. A thread attempting to unlock a mutex which another thread has locked will return with an error. @@ -4944,7 +4944,7 @@ interface of the same name. </p> <p> If the mutex type is <code>PTHREAD_MUTEX_NORMAL</code>, deadlock detection is not provided. - Attempting to relock the mutex causes deadlock. If a thread attempts to unlock + Attempting to re-lock the mutex causes deadlock. If a thread attempts to unlock a mutex that it has not locked or a mutex which is unlocked, undefined behavior results. </p> @@ -4954,14 +4954,14 @@ interface of the same name. </p> <p> If the mutex type is <code>PTHREAD_MUTEX_ERRORCHECK</code>, then error checking is provided. - If a thread attempts to relock a mutex that it has already locked, an error + If a thread attempts to re-lock a mutex that it has already locked, an error will be returned. If a thread attempts to unlock a mutex that it has not locked or a mutex which is unlocked, an error will be returned. </p> <p> If the mutex type is <code>PTHREAD_MUTEX_RECURSIVE</code>, then the mutex maintains the concept of a lock count. When a thread successfully acquires a mutex for the first time, - the lock count is set to one. Every time a thread relocks this mutex, the lock count + the lock count is set to one. Every time a thread re-locks this mutex, the lock count is incremented by one. Each time the thread unlocks the mutex, the lock count is decremented by one. When the lock count reaches zero, the mutex becomes available for other threads to acquire. If a thread attempts to unlock a mutex that it has @@ -5592,7 +5592,7 @@ interface of the same name. </pre> <p> <b>Description:</b> - The <code>pthread_barrier_wait()</code> function synchronizse participating + The <code>pthread_barrier_wait()</code> function synchronizes participating threads at the barrier referenced by <code>barrier</code>. The calling thread is blocked until the required number of threads have called <code>pthread_barrier_wait()</code> specifying the same <code>barrier</code>. @@ -5665,7 +5665,7 @@ interface of the same name. <li> <code>once_control</code>. Determines if <code>init_routine()</code> should be called. - <code>once_control</code> should be declared and intialized as follows: + <code>once_control</code> should be declared and initialized as follows: <ul><pre>pthread_once_t once_control = PTHREAD_ONCE_INIT; </pre></ul> <code>PTHREAD_ONCE_INIT</code> is defined in <code>pthread.h</code>. @@ -5795,7 +5795,7 @@ interface of the same name. <b>Returned Values:</b> </p> <p> - 0 (OK) on succes or EINVAL if <code>how</code> is invalid. + 0 (OK) on success or EINVAL if <code>how</code> is invalid. </p> <p> <b>Assumptions/Limitations:</b> @@ -5815,7 +5815,7 @@ interface of the same name. <p><b>Overview</b>. NuttX supports environment variables that can be used to control the behavior of programs. In the spirit of NuttX the environment variable behavior attempts to emulate the behavior of - environment variables in the mulit-processing OS: + environment variables in the multi-processing OS: </p> <ul> <li><b>Task environments</b>. @@ -5828,10 +5828,10 @@ interface of the same name. </li> <li><b>Thread environments</b>. When a pthread is created using <a href="#pthreadcreate">pthread_create</a>, the child - thread also inherits that envirnment of the parent. - However, the child does not recieve a copy of the environment but, rather, shares the same + thread also inherits that environment of the parent. + However, the child does not receive a copy of the environment but, rather, shares the same environment. - Changes to the environment are visiable to all threads with the same parentage. + Changes to the environment are visible to all threads with the same parentage. </li> </ul> <p><b>Programming Interfaces</b>. @@ -5875,7 +5875,7 @@ interface of the same name. </ul> <p> <b>Returned Values:</b> - The value of the valiable (read-only) or NULL on failure. + The value of the variable (read-only) or NULL on failure. </p> <h3><a name="putenv">2.10.2 <code>putenv</code></a></h3> @@ -5906,7 +5906,7 @@ interface of the same name. </ul> <p> <b>Returned Values:</b> - Zero on sucess. + Zero on success. </p> <h3><a name="clearenv">2.10.3 <code>clearenv</code></a></h3> @@ -6018,27 +6018,27 @@ interface of the same name. <p><b>Overview</b>. NuttX includes an optional, scalable file system. - This file-system may be omitted altogther; NuttX does not depend on the presence + This file-system may be omitted altogether; NuttX does not depend on the presence of any file system. </p> <p><b>Pseudo Root File System</b>. - Or, a simple <i>in-memory</i>, <i>psuedo</i> file system can be enabled. + Or, a simple <i>in-memory</i>, <i>pseudo</i> file system can be enabled. This simple file system can be enabled setting the CONFIG_NFILE_DESCRIPTORS option to a non-zero value. This is an <i>in-memory</i> file system because it does not require any storage medium or block driver support. Rather, file system contents are generated on-the-fly as referenced via standard file system operations (open, close, read, write, etc.). - In this sense, the file system is <i>psuedo</i> file system (in the + In this sense, the file system is <i>pseudo</i> file system (in the same sense that the Linux <code>/proc</code> file system is also - referred to as a psuedo file system). + referred to as a pseudo file system). </p> <p> - Any user supplied data or logic can be accessed via the psuedo-file system. + Any user supplied data or logic can be accessed via the pseudo-file system. Built in support is provided for character and block drivers in the - <code>/dev</code> psuedo file system directory. + <code>/dev</code> pseudo file system directory. </p> <p><b>Mounted File Systems</b> @@ -6046,7 +6046,7 @@ interface of the same name. devices that provide access to true file systems backed up via some mass storage device. NuttX supports the standard <code>mount()</code> command that allows - a block driver to be bound to a mountpoint within the psuedo file system + a block driver to be bound to a mount-point within the pseudo file system and to a a file system. At present, NuttX supports only the VFAT file system. </p> @@ -6055,10 +6055,10 @@ interface of the same name. From a programming perspective, the NuttX file system appears very similar to a Linux file system. However, there is a fundamental difference: - The NuttX root file system is a psuedo file system and true file systems may be - mounted in the psuedo file system. + The NuttX root file system is a pseudo file system and true file systems may be + mounted in the pseudo file system. In the typical Linux installation by comparison, the Linux root file system - is a true file system and psuedo file systems may be mounted in the true, + is a true file system and pseudo file systems may be mounted in the true, root file system. The approach selected by NuttX is intended to support greater scalability from the very tiny platform to the moderate platform. @@ -6165,7 +6165,7 @@ interface of the same name. <b>Returned Values:</b> </p> <p> - On success, the number of structures that have nonzero <cod>revents</code> fields. + On success, the number of structures that have nonzero <code>revents</code> fields. A value of 0 indicates that the call timed out and no file descriptors were ready. On error, -1 is returned, and <code>errno</code> is set appropriately: </p> @@ -6432,7 +6432,7 @@ struct fat_format_s bad FAT size in <code>fmt</code>, bad cluster size in <code>fmt</code> </li> <li><code>ENOENT</code> - - <code>pathname</code> does not refer to anything in the filesystem. + <code>pathname</code> does not refer to anything in the file-system. </li> <li><code>ENOTBLK</code> - <code>pathname</code> does not refer to a block driver @@ -6454,14 +6454,14 @@ struct fat_format_s access media under the following very restrictive conditions: <ol> <li> - The filesystem supports the <code>FIOC_MMAP</code> ioctl command. + The file-system supports the <code>FIOC_MMAP</code> ioctl command. Any file system that maps files contiguously on the media should support this <code>ioctl</code> command. By comparison, most file system scatter files over the media in non-contiguous sectors. As of this writing, ROMFS is the only file system that meets this requirement. </li> <li> - The underly block driver supports the <code>BIOC_XIPBASE</code> <code>ioctl</code> command + The underlying block driver supports the <code>BIOC_XIPBASE</code> <code>ioctl</code> command that maps the underlying media to a randomly accessible address. At present, only the RAM/ROM disk driver does this. </li> @@ -6588,7 +6588,7 @@ FAR void *mmap(FAR void *start, size_t length, int prot, int flags, int fd, off_ contained both of these values. </li> <li><code>ENODEV</code> - - The underlying filesystem of the specified file does not support memory mapping. + The underlying file-system of the specified file does not support memory mapping. </li> </ul> </p> @@ -7172,7 +7172,7 @@ Those socket APIs are discussed in the following paragraphs.</p> </pre> <p> <b>Description:</b> - <code>getsockopt()</code> retrieve thse value for the option specified by the + <code>getsockopt()</code> retrieve those value for the option specified by the <code>option</code> argument for the socket specified by the <code>sockfd</code> argument. If the size of the option value is greater than <code>value_len</code>, the value stored in the object pointed to by the <code>value</code> argument will be silently From ee9d904536aad946d9e1d86aefcd9737787e8acf Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 9 May 2009 15:18:14 +0000 Subject: [PATCH 0424/1518] Add support for fast GPIO on lpc214x git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1766 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index b71e005ddf..4909faec8c 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: May 7, 2009</p> + <p>Last Updated: May 9, 2009</p> </td> </tr> </table> @@ -1400,6 +1400,8 @@ nuttx-0.4.6 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; for verifying this. * Began adding support for the MicroMint Eagle100 board. This board has a Luminary LM3S6918 Cortex-M3. + * Add configuration option to enable fast GPIO (vs. legacy, "slow" GPIO) for + LPC214x. pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 5ea2767852c6697acdf5918b774c9d8a794ddfae Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 9 May 2009 22:43:49 +0000 Subject: [PATCH 0425/1518] Add description of LED support git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1767 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 146 ++++++++++++++++++++++++++- 1 file changed, 144 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 692c365805..1934e9bb6f 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@ <h1><big><font color="#3c34ec"> <i>NuttX RTOS Porting Guide</i> </font></big></h1> - <p>Last Updated: April 19, 2009</p> + <p>Last Updated: May 9, 2009</p> </td> </tr> </table> @@ -92,10 +92,16 @@ <a href="#exports">4.2 APIs Exported by NuttX to Architecture-Specific Logic</a> <ul> <a href="#osstart">4.2.1 <code>os_start()</code></a><br> - <a href="#listmgmt">4.2.2 OS List Management APIs</a><br><br> + <a href="#listmgmt">4.2.2 OS List Management APIs</a><br> <a href="#schedprocesstimer">4.2.3 <code>sched_process_timer()</code></a><br> <a href="#irqdispatch">4.2.4 <code>irq_dispatch()</code></a> </ul> + <a href="#ledsupport">4.3 LED Support</a> + <ul> + <a href="#ledheaders">4.3.1 Header Files</a><br> + <a href="#leddefinitions">4.3.2 LED Definitions</a><br> + <a href="#ledapis">4.3.3 Common LED interfaces</a> + </ul> </ul> <a href="#NxFileSystem">5.0 NuttX File System</a><br> <a href="#apndxconfigs">Appendix A: NuttX Configuration Settings</a><br> @@ -1423,6 +1429,142 @@ The system can be re-made subsequently by just typing <code>make</code>. the appropriate, registered handling logic. </p> +<h2><a name="ledsupport">4.3 LED Support</a></h2> + +<p> + A board architecture may or may not have LEDs. + If the board does have LEDs, then most architectures provide similar LED support that is enabled when <code>CONFIG_ARCH_LEDS</code> + is selected in the NuttX configuration file. + This LED support is part of architecture-specific logic and is not managed by the core NuttX logic. + However, the support provided by each architecture is sufficiently similar that it can be documented here. +</p> + +<h3><a name="ledheaders">4.3.1 Header Files</a></h3> + +<p> + LED-related definitions are provided in two header files: + <ul> + <li> + LED definitions are provided for each board in the <code>board.h</code> that resides + in the <code><i>&lt;board-name&gt;</i>/include/board.h</code> file (which is also + linked to <code>include/arch/board/board.h</code> when the RTOS is configured). + Those definitions are discussed <a href="#leddefinitions">below</a>. + </li> + <li> + The board-specific logic provides unique instances of the LED interfaces. + This is because the implementation of LED support may be very different + on different boards. + Prototypes for these board-specific implementations are, however, provided + in architecture-common header files. + That header file is usually at <code><i>&lt;arch-name&gt;</i>/src/common/up_internal.h</code>, + but could be at other locations in particular architectures. + These prototypes are discussed <a href="#ledapis">below</a>. + </li> + </ul> +</p> + +<h3><a name="leddefinitions">4.3.2 LED Definitions</a></h3> + +<p> + The implementation of LED support is very specific to a board architecture. + Some boards have several LEDS, others have only one or two. + Some have none. + Others LED matrices and show alphnumeric data, etc. + The NuttX logic does not refer to specific LEDS, rather, it refers to an event to be shown on the LEDS + in whatever manner is appropriate for the board; + the way that this event is presented depends upon the hardware available on the board. +</p> +<p> + The model used by NuttX is that the board can show 8 events defined as follows in <code><i>&lt;board-name&gt;</i>/include/board.h</code>: +</p> +<ul><pre> +#define LED_STARTED ?? +#define LED_HEAPALLOCATE ?? +#define LED_IRQSENABLED ?? +#define LED_STACKCREATED ?? +#define LED_INIRQ ?? +#define LED_SIGNAL ?? +#define LED_ASSERTION ?? +#define LED_PANIC ?? +</pre></ul> +<p> + The specific value assigned to each pre-processor variable can be whatever makes the implementation easiest for the board logic. + The <i>meaning</i> associated with each definition is as follows: +</p> +<ul> + <li> + <code>LED_STARTED</code> is the value that describes the setting of the LEDs when the LED logic is first initialized. + This LED value is set but never cleared. + </li> + <li> + <code>LED_HEAPALLOCATE</code> indicates that the NuttX heap has been configured. + This is an important place in the boot sequence because if the memory is configured wrong, it will probably crash leaving this LED setting. + This LED value is set but never cleared. + </li> + <li> + <code>LED_IRQSENABLED</code> indicates that interrupts have been enabled. + Again, during bring-up (or if there are hardware problems), it is very likely that the system may crash just when interrupts are enabled, leaving this setting on the LEDs. + This LED value is set but never cleared. + </li> + <li> + <code>LED_STACKCREATED</code> is set each time a new stack is created. + If set, it means that the system attempted to start at least one new thread. + This LED value is set but never cleared. + </li> + <li> + <code>LED_INIRQ</code> is set and cleared on entry and exit from each interrupt. + If interrupts are working okay, this LED will have a dull glow. + </li> + <li> + <code>LED_SIGNAL</code> is set and cleared on entry and exit from a signal handler. + Signal handlers are tricky so this is especially useful during bring-up or a new architecture. + </li> + <li> + <code>LED_ASSERTION</code> is set if an assertion occurs. + </li> + <li> + <code>LED_PANIC</code> will blink at around 1Hz if the system panics and hangs. + </li> +</ul> + +<h3><a name="ledapis">4.3.3 Common LED interfaces</a></h3> + +<p> + The <code><i>&lt;arch-name&gt;</i>/src/common/up_internal.h</code> probably has definitions + like: +</p> +<ul><pre> +/* Defined in board/up_leds.c */ + +#ifdef CONFIG_ARCH_LEDS +extern void up_ledinit(void); +extern void up_ledon(int led); +extern void up_ledoff(int led); +#else +# define up_ledinit() +# define up_ledon(led) +# define up_ledoff(led) +#endif +</pre></ul> +<p> + Where: +<p> +<ul> + <li> + <code>void up_ledinit(void)</code> is called early in power-up initialization to initialize the LED hardware. + </li> + <li> + <code>up_ledon(int led)</code> is called to instantiate the LED presentation of the event. + The <code>led</code> argument is one of the definitions provided in <code><i>&lt;board-name&gt;</i>/include/board.h</code>. + </li> + <li> + <code>up_ledoff(int led</code>is called to terminate the LED presentation of the event. + The <code>led</code> argument is one of the definitions provided in <code><i>&lt;board-name&gt;</i>/include/board.h</code>. + Note that only <code>LED_INIRQ</code>, <code>LED_SIGNAL</code>, <code>LED_ASSERTION</code>, and <code>LED_PANIC</code> + indications are terminated. + </li> +</ul> + <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> From 1d1a2bed7b1235211ebb833db18a4c2b372e5863 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 14 May 2009 18:55:22 +0000 Subject: [PATCH 0426/1518] Add basic lm3s6918 gpio support git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1778 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 4909faec8c..268184ee6b 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -827,7 +827,8 @@ <p> <b>STATUS:</b> This port is in progress. Coding is complete on the basic port (timer, serial console, SPI). - Verified support for the i.MX1 will be announced in a future release of NuttX. + Verified support for the i.MX1 will be announced in a future release of NuttX (work has + been temporarily stopped to support the Luminary LM3S6918). </p> </td> </tr> @@ -851,10 +852,32 @@ <b>STATUS:</b> The basic port (timer interrupts, serial ports, network, framebuffer, etc.) is complete. All implemented features have been verified with the exception of the USB device-side - driver; that implementation is complete but completely untested. + driver; that implementation is complete but untested. </p> </td> </tr> +<tr> + <td valign="top"><img height="20" width="20" src="favicon.ico"></td> + <td bgcolor="#5eaee1"> + <b>ARM Cortex-M3</b>. + </td> +</tr> +<tr> + <td><br></td> + <td> + <p> + <b>Luminary LM3S6918</b>. + This port uses theMicromint Eagle-10 development board with a GNU arm-elf toolchain* + under either Linux or Cygwin. + </p> + <p> + <b>STATUS:</b> + This port is in progress. Coding is complete on the basic port (timer, serial console, SPI). + Verified support for the Cortex-M3 will be announced in a future release of NuttX. + </p> + </td> +</tr> + <tr> <td valign="top"><img height="20" width="20" src="favicon.ico"></td> <td bgcolor="#5eaee1"> From e96683494760c957236dcce48f9610933e01aead Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 19 May 2009 20:14:44 +0000 Subject: [PATCH 0427/1518] lm3s6918 passes OS test git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1801 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 268184ee6b..f936a8df0a 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1421,10 +1421,13 @@ nuttx-0.4.6 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; -R .note.gnu.build-id -R .comment" This has bin fixed in arch/arm/src/Makefile, but other architectures may have the same problem. Thanks to Dave Marples for verifying this. - * Began adding support for the MicroMint Eagle100 board. This board has a - Luminary LM3S6918 Cortex-M3. + * Added support for the MicroMint Eagle100 board. This board has a + Luminary LM3S6918 Cortex-M3. Added a configuration to build examples/ostest. * Add configuration option to enable fast GPIO (vs. legacy, "slow" GPIO) for LPC214x. + * Restructured the arch/arm directory structure to better suppor ARM and + Cortex-M3. + * pthread_create() must return a (non-negated) errno value on failure. pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 5f98af28b39fc38c7979c70f988e3dd2579fcd52 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 19 May 2009 22:14:36 +0000 Subject: [PATCH 0428/1518] NSH integration, fix serial interrupt handling git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1803 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index f936a8df0a..2e2bf262ef 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1421,13 +1421,15 @@ nuttx-0.4.6 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; -R .note.gnu.build-id -R .comment" This has bin fixed in arch/arm/src/Makefile, but other architectures may have the same problem. Thanks to Dave Marples for verifying this. - * Added support for the MicroMint Eagle100 board. This board has a - Luminary LM3S6918 Cortex-M3. Added a configuration to build examples/ostest. - * Add configuration option to enable fast GPIO (vs. legacy, "slow" GPIO) for - LPC214x. - * Restructured the arch/arm directory structure to better suppor ARM and - Cortex-M3. - * pthread_create() must return a (non-negated) errno value on failure. + * configs/eagle100/ostest: Added support for the MicroMint Eagle100 board. + This board has a Luminary LM3S6918 Cortex-M3. Added a configuration to build + examples/ostest. + * arch/arm/src/lpc214x: Add configuration option to enable fast GPIO (vs. + legacy, "slow" GPIO) for LPC214x. + * arch/arm: Restructured the arch/arm directory structure to better suppor ARM + and Cortex-M3. + * sched/: pthread_create() must return a (non-negated) errno value on failure. + * configs/eagle100/nsh: Add a NuttShell (NSH) configuration for the Eagle-100 pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From ff0214a14e344c0700d2bef0536b2f3b6bf024c7 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 19 May 2009 23:45:09 +0000 Subject: [PATCH 0429/1518] Prep for 0.4.6 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1806 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 106 ++++++++++++++++----------------------- 1 file changed, 44 insertions(+), 62 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 2e2bf262ef..4f3d339ce0 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: May 9, 2009</p> + <p>Last Updated: May 19, 2009</p> </td> </tr> </table> @@ -687,8 +687,8 @@ </tr> </table> -<p><b>nuttx-0.4.5</b>. - The 37<sup>th</sup> release of NuttX (nuttx-0.4.5) is available for download +<p><b>nuttx-0.4.6</b>. + The 38<sup>th</sup> release of NuttX (nuttx-0.4.6) is available for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. The change log associated with the release is available <a href="#currentrelease">here</a>. @@ -696,26 +696,19 @@ These unreleased changes are listed <a href="#pendingchanges">here</a>. </p> <p> - This release focuses on a few new features. - <ul> - <li> - The basic port for the FreeScale ARM920T i.MX1 processor on the - Freescale MX1ADS board. Coding is complete for this port, but it is - has not yet fully integrated. - </li> - <li> - Extended I2C and SPI interface definitions - </li> - <li> - Add basic support for C++ applications. Very simple C++ applications - can now be built against NuttX without any external libraries. At - present, only the most primitive C++ programs are supported, but it - is hoped that this support will be extended in future releases. - </li> - </ul> + The release features support for the Micromint Eagle-100 development board. + This board is based around, the Luminary LM3S6918 MCU. + This is the first ARM Cortex-M3 architecture supported by Nuttx. + This initial, basic port includes timer and serial console with configurations to execute the NuttX OS test and to run the <a href="NuttShell.html">NuttShell (NSH)</a>. + Work is still underway on this port and current plans are to have I2C, SSI, MMC/SD, and and Ethernet driver in the 0.4.7 release. </p> <p> - See the Changelog for a detailed description of these changes. + Additional work was done on the MXADS i.MX1 port, however, that work has been set aside + until I complete work on the Eagle-100 (I also need to come up with a 3V power supply). +</p> +<p> + Other changes in this release include: Extensions to the SPI interface definition in order to handle 9-bit interfaces to displays. + Several bugs were fixed (see the <a href="#currentrelease">ChangeLog</a> for a complete list of changes). </p> <table width ="100%"> @@ -867,13 +860,16 @@ <td> <p> <b>Luminary LM3S6918</b>. - This port uses theMicromint Eagle-10 development board with a GNU arm-elf toolchain* + This port uses the Micromint Eagle-100 development board with a GNU arm-elf toolchain* under either Linux or Cygwin. </p> <p> <b>STATUS:</b> - This port is in progress. Coding is complete on the basic port (timer, serial console, SPI). - Verified support for the Cortex-M3 will be announced in a future release of NuttX. + This initial, basic release of this port has been verifed and included in NuttX + version 0.4.6. The basic port includes timer and serial console with configurations + to execute the NuttX OS test and to run the <a href="NuttShell.html">NuttShell (NSH)</a>. + Work is still underway on this port and current plans are to have I2C, SSI, MMC/SD, and + and Ethernet driver in the 0.4.7 release. </p> </td> </tr> @@ -1361,21 +1357,30 @@ Other memory: </table> <pre><ul> -nuttx-0.4.5 2009-04-19 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; +nuttx-0.4.6 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - * Add an enumeration argument to the SPI chip select and status methods so - that the interface can handle more than one device. - * eZ80Acclaim!: Add a generic SPI driver for all eZ80 boards. - * Add a setmode() method to the SPI interface to handle parts with differing - mode requirements. - * include/nuttx/i2c.h: Defined a standard I2C interface - * eZ80Acclaim!: Add an I2C driver. - * eZ8Encore!: Add an I2C driver. - * Add support for the Freescale i.MX1/L architecture and a configuration for - the Freescale MX1ADS development board. - * examples/helloxx: Added a simple C++ hello world example - * include/css: Added std header files - * libxx: New C++-only directory provides support for minimal C++ applications + * Change SPI interface so that is can accomodate interfaces where the + number of bits per word is greater an 8 (such as with many 9-bit display + interfaces). -- this might have broken a few things which will need to + be retested! + * arch/arm/src/imx: Added i.MX SPI driver + * SPI: Add a method to set the number of bits per word. Also add an + alternative interface for so that (eventually) I can phase the sndblock + and recvblock methods and replace them with a single exchange method + * Build: objcopy fails with toolchains that use newer GCC and binutils. The + following arguments need to be included in the objcopy command line "-R .note + -R .note.gnu.build-id -R .comment" This has bin fixed in arch/arm/src/Makefile, + but other architectures may have the same problem. Thanks to Dave Marples + for verifying this. + * configs/eagle100/ostest: Added support for the MicroMint Eagle100 board. + This board has a Luminary LM3S6918 Cortex-M3. Added a configuration to build + examples/ostest. + * arch/arm/src/lpc214x: Add configuration option to enable fast GPIO (vs. + legacy, "slow" GPIO) for LPC214x. + * arch/arm: Restructured the arch/arm directory structure to better suppor ARM + and Cortex-M3. + * sched/: pthread_create() must return a (non-negated) errno value on failure. + * configs/eagle100/nsh: Add a NuttShell (NSH) configuration for the Eagle-100 pascal-0.1.2 2008-02-10 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; @@ -1406,30 +1411,7 @@ buildroot-0.1.5 2009-04-25 &lt;spudmonkey@racsa.co.cr&gt; </table> <pre><ul> -nuttx-0.4.6 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - - * Change SPI interface so that is can accomodate interfaces where the - number of bits per word is greater an 8 (such as with many 9-bit display - interfaces). -- this might have broken a few things which will need to - be retested! - * arch/arm/src/imx: Added i.MX SPI driver - * SPI: Add a method to set the number of bits per word. Also add an - alternative interface for so that (eventually) I can phase the sndblock - and recvblock methods and replace them with a single exchange method - * Build: objcopy fails with toolchains that use newer GCC and binutils. The - following arguments need to be included in the objcopy command line "-R .note - -R .note.gnu.build-id -R .comment" This has bin fixed in arch/arm/src/Makefile, - but other architectures may have the same problem. Thanks to Dave Marples - for verifying this. - * configs/eagle100/ostest: Added support for the MicroMint Eagle100 board. - This board has a Luminary LM3S6918 Cortex-M3. Added a configuration to build - examples/ostest. - * arch/arm/src/lpc214x: Add configuration option to enable fast GPIO (vs. - legacy, "slow" GPIO) for LPC214x. - * arch/arm: Restructured the arch/arm directory structure to better suppor ARM - and Cortex-M3. - * sched/: pthread_create() must return a (non-negated) errno value on failure. - * configs/eagle100/nsh: Add a NuttShell (NSH) configuration for the Eagle-100 +nuttx-0.4.7 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 1d419f40fa41c90479d7ed3fc174f9547ce07944 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 21 May 2009 00:23:53 +0000 Subject: [PATCH 0430/1518] LM3S ethernet driver development git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1811 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 4f3d339ce0..6bc942e939 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1413,6 +1413,10 @@ buildroot-0.1.5 2009-04-25 &lt;spudmonkey@racsa.co.cr&gt; <pre><ul> nuttx-0.4.7 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + * arch/arm/src/lm2s: Added an Ethernet driver for the LM3S6918 + * configs/eagle100/nettest: Added an examples/nettest configuration for the + Micromint Eagle100 board. + pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; buildroot-0.1.6 2009-xx-xx &lt;spudmonkey@racsa.co.cr&gt; From 33e14596ba19d6686b08e608208182f220be4e45 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 21 May 2009 17:42:14 +0000 Subject: [PATCH 0431/1518] Complete Rx side of ethernet driver git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1812 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 13 +- Documentation/NuttxPortingGuide.html | 254 ++++++++++++++++++++++++++- 2 files changed, 260 insertions(+), 7 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 6bc942e939..f2717ad04a 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: May 19, 2009</p> + <p>Last Updated: May 21, 2009</p> </td> </tr> </table> @@ -696,7 +696,8 @@ These unreleased changes are listed <a href="#pendingchanges">here</a>. </p> <p> - The release features support for the Micromint Eagle-100 development board. + The release features support for the <a href=" http://www.micromint.com/">Micromint</a> + Eagle-100 development board. This board is based around, the Luminary LM3S6918 MCU. This is the first ARM Cortex-M3 architecture supported by Nuttx. This initial, basic port includes timer and serial console with configurations to execute the NuttX OS test and to run the <a href="NuttShell.html">NuttShell (NSH)</a>. @@ -860,8 +861,8 @@ <td> <p> <b>Luminary LM3S6918</b>. - This port uses the Micromint Eagle-100 development board with a GNU arm-elf toolchain* - under either Linux or Cygwin. + This port uses the <a href=" http://www.micromint.com/">Micromint</a> Eagle-100 development + board with a GNU arm-elf toolchain* under either Linux or Cygwin. </p> <p> <b>STATUS:</b> @@ -1416,6 +1417,7 @@ nuttx-0.4.7 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * arch/arm/src/lm2s: Added an Ethernet driver for the LM3S6918 * configs/eagle100/nettest: Added an examples/nettest configuration for the Micromint Eagle100 board. + * Documentation/NuttxPortingGuide.html: Added a section on NuttX device drivers. pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; @@ -1487,9 +1489,10 @@ buildroot-0.1.6 2009-xx-xx &lt;spudmonkey@racsa.co.cr&gt; </tr> </table> <ul> - <li>ARM, ARM7 ARM7TDMI, ARM9, ARM920T, ARM926EJS are trademarks of Advanced RISC Machines, Limited.</li> + <li>ARM, ARM7 ARM7TDMI, ARM9, ARM920T, ARM926EJS Cortex-M3 are trademarks of Advanced RISC Machines, Limited.</li> <li>Cygwin is a trademark of Red Hat, Incorporated.</li> <li>Linux is a registered trademark of Linus Torvalds.</li> + <li>Eagle-100 is a trademark of <a href=" http://www.micromint.com/">Micromint USA, LLC</a>. <li>LPC2148 is a trademark of NXP Semiconductors.</li> <li>TI is a tradename of Texas Instruments Incorporated.</li> <li>UNIX is a registered trademark of The Open Group.</li> diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 1934e9bb6f..eea76434f1 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@ <h1><big><font color="#3c34ec"> <i>NuttX RTOS Porting Guide</i> </font></big></h1> - <p>Last Updated: May 9, 2009</p> + <p>Last Updated: May 21, 2009</p> </td> </tr> </table> @@ -104,6 +104,18 @@ </ul> </ul> <a href="#NxFileSystem">5.0 NuttX File System</a><br> + <a href="#DeviceDrivers">6.0 NuttX Device Drivers</a><br> + <ul> + <a href="#chardrivers">6.1 Character Device Drivers</a><br> + <a href="#blockdrivers">6.2 Block Device Drivers</a><br> + <a href="#blockdrivers">6.3 Specialized Device Drivers</a> + <ul> + <a href="#ethdrivers">6.3.1 Ethernet Device Drivers</a><br> + <a href="#spidrivers">6.3.2 SPI Device Drivers</a><br> + <a href="#i2cdrivers">6.3.3 I2C Device Drivers</a><br> + <a href="#serialdrivers">6.3.4 Serial Device Drivers</a> + </ul> + </ul> <a href="#apndxconfigs">Appendix A: NuttX Configuration Settings</a><br> <a href="#apndxtrademarks">Appendix B: Trademarks</a> </ul> @@ -1621,6 +1633,243 @@ extern void up_ledoff(int led); from the very tiny platform to the moderate platform. </p> +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <h1><a name="DeviceDrivers">6.0 NuttX Device Drivers</a></h1> + </td> + </tr> +</table> + +<p> + NuttX supports a variety of device drivers including: + <ul> + <li><i>Character</i> Device Drivers,</li> + <li><i>Block</i> Device Drivers, and</li> + <li>Other <i>Specialized</i> Drivers.</li> + </ul> + As discussed in the following paragraphs. +</p> + +<h2><a name="chardrivers">6.1 Character Device Drivers</a></h2> + +<p> + Character device drivers have these properties: +</p> +<ul> + <li> + <b><code>include/nuttx/fs.h</code></b>. + All structures and APIs needed to work with character drivers are provided in this header file. + </li> + <li> + <b><code>struct file_operations</code></b>. + Each character device driver must implement an instance of <code>struct file_operations</code>. + That structure defines a call table with the following methods: + <ul> + <p><code>int open(FAR struct file *filp);</code></p> + <p><code>int close(FAR struct file *filp);</code></p> + <p><code>ssize_t read(FAR struct file *filp, FAR char *buffer, size_t buflen);</code></p> + <p><code>ssize_t write(FAR struct file *filp, FAR const char *buffer, size_t buflen);</code></p> + <p><code>off_t seek(FAR struct file *filp, off_t offset, int whence);</code></p> + <p><code>int ioctl(FAR struct file *filp, int cmd, unsigned long arg);</code></p> + <p><code>int poll(FAR struct file *filp, struct pollfd *fds, boolean setup);</code></p> + </ul> + </li> + <li> + <b><code>int register_driver(const char *path, const struct file_operations *fops, mode_t mode, void *priv);</code></b>. + Each character driver registers itself by calling <code>register_driver()</code>, passing it the + <code>path</code> where it will appear in the <a href="#NxFileSystem">pseudo-file-system</a> and it's + initialized instance of <code>struct file_operations</code>. + </li> + <li> + <b>User Access</b>. + After it has been registered, the character driver can be accessed by user code using the standard functions <code>open()</code>, <code>close()</code>, <code>read()</code>, <code>write()</code>, etc. + </li> + <li> + <b>Examples</b>. + <code>drivers/dev_null.c</code>, <code>drivers/fifo.c</code>, <code>drivers/serial.c</code>, etc. + </li> +</ul> + +<h2><a name="blockdrivers">6.2 Block Device Drivers</a></h2> + +<p> + Block device drivers have these properties: +</p> +<ul> + <li> + <b><code>include/nuttx/fs.h</code></b>. + All structures and APIs needed to work with block drivers are provided in this header file. + </li> + <li> + <b><code>struct block_operations</code></b>. + Each block device driver must implement an instance of <code>struct block_operations</code>. + That structure defines a call table with the following methods: + <ul> + <p><code>int open(FAR struct inode *inode);</code></p> + <p><code>int close(FAR struct inode *inode);</code></p> + <p><code>ssize_t read(FAR struct inode *inode, FAR unsigned char *buffer, size_t start_sector, unsigned int nsectors);</code></p> + <p><code>ssize_t write(FAR struct inode *inode, FAR const unsigned char *buffer, size_t start_sector, unsigned int nsectors);</code></p> + <p><code>int geometry(FAR struct inode *inode, FAR struct geometry *geometry);</code></p> + <p><code>int ioctl(FAR struct inode *inode, int cmd, unsigned long arg);</code></p> + </ul> + </li> + <li> + <b><code>int register_blockdriver(const char *path, const struct block_operations *bops, mode_t mode, void *priv);</code></b>. + Each block driver registers itself by calling <code>register_blockdriver()</code>, passing it the + <code>path</code> where it will appear in the <a href="#NxFileSystem">pseudo-file-system</a> and it's + initialized instance of <code>struct block_operations</code>. + </li> + <li> + <b>User Access</b>. + Users do not normally access block drivers directly, rather, they access block drivers + indirectly through the <code>mount()</code> API. + The <code>mount()</code> API binds a block driver instance with a file system and with a mountpoint. + Then the user may use the block driver to access the file system on the underlying media. + <b>Example:</b> See the <code>cmd_mount()</code> implementation in <code>examples/nsh/nsh_fscmds.c</code>. + </li> + <li> + <b>Accessing a Character Driver as a Block Device</b>. + See the loop device at <code>drivers/loop.c</code>. + <b>Example:</b> See the <code>cmd_losetup()</code> implementation in <code>examples/nsh/nsh_fscmds.c</code>. + </li> + <li> + <b>Accessing a Block Driver as Character Device</b>. + See the Block-to-Character (BCH) conversion logic in <code>drivers/bch/</code>. + <b>Example:</b> See the <code>cmd_dd()</code> implementation in <code>examples/nsh/nsh_ddcmd.c</code>. + </li> + <li> + <b>Examples</b>. + <code>drivers/loop.c</code>, <code>drivers/mmcds/mmcsd_spi.c</code>, <code>drivers/ramdisk.c</code>, etc. + </li> +</ul> + +<h2><a name="blockdrivers">6.3 Specialized Device Drivers</a></h2> + +<h3><a name="ethdrivers">6.3.1 Ethernet Device Drivers</a></h3> + +<ul> + <li> + <b><code>include/net/uip/uip-arch.h</code></b>. + All structures and APIs needed to work with Ethernet drivers are provided in this header file. + The structure <code>struct uip_driver_s</code> defines the interface and is passed to uIP via + <code>netdev_register()</code>. + </li> + <li> + <b><code>int netdev_register(FAR struct uip_driver_s *dev);</code></b>. + Each Eterhenet driver registers itself by calling <code>netdev_register()</code>. + </li> + <li> + <b>Examples</b>. + <code>drivers/net/dm90x0.c</code>, <code>arch/drivers/arm/src/c5471/c5471_ethernet.c</code>, <code>arch/z80/src/ez80/ez80_emac.c</code>, etc. + </li> +</ul> + +<h3><a name="spidrivers">6.3.2 SPI Device Drivers</a></h3> + +<ul> + <li> + <b><code>include/nuttx/spi.h</code></b>. + All structures and APIs needed to work with SPI drivers are provided in this header file. + </li> + <li> + <b><code>struct spi_ops_s</code></b>. + Each SPI device driver must implement an instance of <code>struct spi_ops_s</code>. + That structure defines a call table with the following methods: + <ul> + <p><code>void select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, boolean selected);</code></p> + <p><code>uint32 setfrequency(FAR struct spi_dev_s *dev, uint32 frequency);</code></p> + <p><code>void setmode(FAR struct spi_dev_s *dev, enum spi_mode_e mode);</code></p> + <p><code>void setbits(FAR struct spi_dev_s *dev, int nbits);</code></p> + <p><code>ubyte status(FAR struct spi_dev_s *dev, enum spi_dev_e devid);</code></p> + <p><code>uint16 send(FAR struct spi_dev_s *dev, uint16 wd);</code></p> + <p><code>void exchange(FAR struct spi_dev_s *dev, FAR const void *txbuffer, FAR void *rxbuffer, size_t nwords);</code></p> + <p><codei>nt registercallback(FAR struct spi_dev_s *dev, mediachange_t callback, void *arg);</code></p> + </ul> + <li> + <b>Binding SPI Drivers</b>. + SPI drivers are not normally directly accessed by user code, but are usually bound to another, + higher level device driver. + See for example, <code>int mmcsd_spislotinitialize(int minor, int slotno, FAR struct spi_dev_s *spi)</code> in <code>drivers/mmcsd/mmcsd_spi.c</code>. + </li> + <li> + <b>Examples</b>. + <code>drivers/loop.c</code>, <code>drivers/mmcds/mmcsd_spi.c</code>, <code>drivers/ramdisk.c</code>, etc. + </li> +</ul> + +<h3><a name="i2cdrivers">6.3.3 I2C Device Drivers</a></h3> + +<ul> + <li> + <b><code>include/nuttx/i2c.h</code></b>. + All structures and APIs needed to work with I2C drivers are provided in this header file. + </li> + <li> + <b><code>struct i2c_ops_s</code></b>. + Each I2C device driver must implement an instance of <code>struct i2c_ops_s</code>. + That structure defines a call table with the following methods: + <ul> + <p><code>uint32 setfrequency(FAR struct i2c_dev_s *dev, uint32 frequency);</code></p> + <p><code>int setaddress(FAR struct i2c_dev_s *dev, int addr, int nbits);</code></p> + <p><code>int write(FAR struct i2c_dev_s *dev, const ubyte *buffer, int buflen);</code></p> + <p><code>int read(FAR struct i2c_dev_s *dev, ubyte *buffer, int buflen);</code></p> + </ul> + <li> + <b>Binding I2C Drivers</b>. + SPI drivers are not normally directly accessed by user code, but are usually bound to another, + higher level device driver. + </li> + <li> + <b>Examples</b>. + <code>arch/z80/src/ez80/ez80_i2c.c</code>, <code>arch/z80/src/z8/z8_i2c.c</code>, etc. + </li> +</ul> + +<h3><a name="serialdrivers">6.3.4 Serial Device Drivers</a></h3> + +<ul> + <li> + <b><code>include/nuttx/serial.h</code></b>. + All structures and APIs needed to work with serial drivers are provided in this header file. + </li> + <li> + <b><code>struct uart_ops_s</code></b>. + Each serial device driver must implement an instance of <code>struct uart_ops_s</code>. + That structure defines a call table with the following methods: + <ul> + <p><code>int setup(FAR struct uart_dev_s *dev);</code></p> + <p><code>void shutdown(FAR struct uart_dev_s *dev);</code></p> + <p><code>int attach(FAR struct uart_dev_s *dev);</code></p> + <p><code>void detach(FAR struct uart_dev_s *dev);</code></p> + <p><code>int ioctl(FAR struct file *filep, int cmd, unsigned long arg);</code></p> + <p><code>int receive(FAR struct uart_dev_s *dev, unsigned int *status);</code></p> + <p><code>void rxint(FAR struct uart_dev_s *dev, boolean enable);</code></p> + <p><code>boolean rxavailable(FAR struct uart_dev_s *dev);</code></p> + <p><code>void send(FAR struct uart_dev_s *dev, int ch);</code></p> + <p><code>void txint(FAR struct uart_dev_s *dev, boolean enable);</code></p> + <p><code>boolean txready(FAR struct uart_dev_s *dev);</code></p> + <p><code>boolean txempty(FAR struct uart_dev_s *dev);</code></p> + </ul> + </li> + <li> + <b><code>int uart_register(FAR const char *path, FAR uart_dev_t *dev);</code></b>. + A serial driver may register itself by calling <code>uart_register()</code>, passing it the + <code>path</code> where it will appear in the <a href="#NxFileSystem">pseudo-file-system</a> and it's + initialized instance of <code>struct uart_ops_s</code>. + By convention, serial device drivers are registered at pathes like <code>/dev/ttyS0</code>, <code>/dev/ttyS1</code>, etc. + See the <code>uart_register()</code> implementation in <code>drivers/serial.c</code>. + </li> + <li> + <b>User Access</b>. + Serial drivers are, ultimately, normal <a href="#chardrivers">character drivers</a> and are accessed as other character drivers. + </li> + <li> + <b>Examples</b>. + <code>arch/arm/src/chip/lm3s_serial.c</code>, <code>arch/arm/src/lpc214x/lpc214x_serial.c</code>, <code>arch/z16/src/z16f/z16f_serial.c</code>, etc. + </li> +</ul> + <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> @@ -2255,9 +2504,10 @@ extern void up_ledoff(int led); </tr> </table> - <li>ARM, ARM7 ARM7TDMI, ARM9, ARM926EJS are trademarks of Advanced RISC Machines, Limited.</li> + <li>ARM, ARM7 ARM7TDMI, ARM9, ARM920T, ARM926EJS, Cortex-M3 are trademarks of Advanced RISC Machines, Limited.</li> <li>Cygwin is a trademark of Red Hat, Incorporated.</li> <li>Linux is a registered trademark of Linus Torvalds.</li> + <li>Eagle-100 is a trademark of <a href=" http://www.micromint.com/">Micromint USA, LLC</a>. <li>LPC2148 is a trademark of NXP Semiconductors.</li> <li>TI is a tradename of Texas Instruments Incorporated.</li> <li>UNIX is a registered trademark of The Open Group.</li> From f00a7fe324ba8fc11cd2caa6db70d100025f2290 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 22 May 2009 12:48:05 +0000 Subject: [PATCH 0432/1518] update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1814 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 105 ++++++++++++++------------- Documentation/NuttxUserGuide.html | 9 ++- 2 files changed, 61 insertions(+), 53 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index eea76434f1..d78be1b141 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@ <h1><big><font color="#3c34ec"> <i>NuttX RTOS Porting Guide</i> </font></big></h1> - <p>Last Updated: May 21, 2009</p> + <p>Last Updated: May 22, 2009</p> </td> </tr> </table> @@ -1017,7 +1017,7 @@ The system can be re-made subsequently by just typing <code>make</code>. initialized. The architecture specific details of initializing the OS will be handled here. Such things as setting up interrupt service routines, starting the - clock, and registering device drivers are some of the + clock, and registering <a href="#DeviceDrivers">device drivers</a> are some of the things that are different for each processor and hardware platform. </p> @@ -1606,7 +1606,7 @@ extern void up_ledoff(int led); <p> Any user supplied data or logic can be accessed via the psuedo-file system. - Built in support is provided for character and block drivers in the + Built in support is provided for character and block <a href="#DeviceDrivers">drivers</a> in the <code>/dev</code> psuedo file system directory. </p> @@ -1616,7 +1616,7 @@ extern void up_ledoff(int led); mass storage device. NuttX supports the standard <code>mount()</code> command that allows a block driver to be bound to a mountpoint within the psuedo file system - and to a a file system. + and to a file system. At present, NuttX supports only the VFAT file system. </p> @@ -1648,7 +1648,10 @@ extern void up_ledoff(int led); <li><i>Block</i> Device Drivers, and</li> <li>Other <i>Specialized</i> Drivers.</li> </ul> - As discussed in the following paragraphs. + These different device driver types are discussed in the following paragraphs. + Note: device driver support requires that the <i>in-memory</i>, <i>psuedo</i> file system + is enabled by setting the CONFIG_NFILE_DESCRIPTORS in the NuttX configuration file to a + non-zero value. </p> <h2><a name="chardrivers">6.1 Character Device Drivers</a></h2> @@ -1666,13 +1669,13 @@ extern void up_ledoff(int led); Each character device driver must implement an instance of <code>struct file_operations</code>. That structure defines a call table with the following methods: <ul> - <p><code>int open(FAR struct file *filp);</code></p> - <p><code>int close(FAR struct file *filp);</code></p> - <p><code>ssize_t read(FAR struct file *filp, FAR char *buffer, size_t buflen);</code></p> - <p><code>ssize_t write(FAR struct file *filp, FAR const char *buffer, size_t buflen);</code></p> - <p><code>off_t seek(FAR struct file *filp, off_t offset, int whence);</code></p> - <p><code>int ioctl(FAR struct file *filp, int cmd, unsigned long arg);</code></p> - <p><code>int poll(FAR struct file *filp, struct pollfd *fds, boolean setup);</code></p> + <p><code>int open(FAR struct file *filp);</code><br> + <code>int close(FAR struct file *filp);</code><br> + <code>ssize_t read(FAR struct file *filp, FAR char *buffer, size_t buflen);</code><br> + <code>ssize_t write(FAR struct file *filp, FAR const char *buffer, size_t buflen);</code><br> + <code>off_t seek(FAR struct file *filp, off_t offset, int whence);</code><br> + <code>int ioctl(FAR struct file *filp, int cmd, unsigned long arg);</code><br> + <code>int poll(FAR struct file *filp, struct pollfd *fds, boolean setup);</code></p> </ul> </li> <li> @@ -1683,10 +1686,12 @@ extern void up_ledoff(int led); </li> <li> <b>User Access</b>. - After it has been registered, the character driver can be accessed by user code using the standard functions <code>open()</code>, <code>close()</code>, <code>read()</code>, <code>write()</code>, etc. + After it has been registered, the character driver can be accessed by user code using the standard + <a href="NuttxUserGuide.html#driveroperations">driver operations</a> including + <code>open()</code>, <code>close()</code>, <code>read()</code>, <code>write()</code>, etc. </li> <li> - <b>Examples</b>. + <b>Examples</b>: <code>drivers/dev_null.c</code>, <code>drivers/fifo.c</code>, <code>drivers/serial.c</code>, etc. </li> </ul> @@ -1706,12 +1711,12 @@ extern void up_ledoff(int led); Each block device driver must implement an instance of <code>struct block_operations</code>. That structure defines a call table with the following methods: <ul> - <p><code>int open(FAR struct inode *inode);</code></p> - <p><code>int close(FAR struct inode *inode);</code></p> - <p><code>ssize_t read(FAR struct inode *inode, FAR unsigned char *buffer, size_t start_sector, unsigned int nsectors);</code></p> - <p><code>ssize_t write(FAR struct inode *inode, FAR const unsigned char *buffer, size_t start_sector, unsigned int nsectors);</code></p> - <p><code>int geometry(FAR struct inode *inode, FAR struct geometry *geometry);</code></p> - <p><code>int ioctl(FAR struct inode *inode, int cmd, unsigned long arg);</code></p> + <p><code>int open(FAR struct inode *inode);</code><br> + <code>int close(FAR struct inode *inode);</code><br> + <code>ssize_t read(FAR struct inode *inode, FAR unsigned char *buffer, size_t start_sector, unsigned int nsectors);</code><br> + <code>ssize_t write(FAR struct inode *inode, FAR const unsigned char *buffer, size_t start_sector, unsigned int nsectors);</code><br> + <code>int geometry(FAR struct inode *inode, FAR struct geometry *geometry);</code><br> + <code>int ioctl(FAR struct inode *inode, int cmd, unsigned long arg);</code></p> </ul> </li> <li> @@ -1726,17 +1731,17 @@ extern void up_ledoff(int led); indirectly through the <code>mount()</code> API. The <code>mount()</code> API binds a block driver instance with a file system and with a mountpoint. Then the user may use the block driver to access the file system on the underlying media. - <b>Example:</b> See the <code>cmd_mount()</code> implementation in <code>examples/nsh/nsh_fscmds.c</code>. + <i>Example</i>: See the <code>cmd_mount()</code> implementation in <code>examples/nsh/nsh_fscmds.c</code>. </li> <li> <b>Accessing a Character Driver as a Block Device</b>. See the loop device at <code>drivers/loop.c</code>. - <b>Example:</b> See the <code>cmd_losetup()</code> implementation in <code>examples/nsh/nsh_fscmds.c</code>. + <i>Example</i>: See the <code>cmd_losetup()</code> implementation in <code>examples/nsh/nsh_fscmds.c</code>. </li> <li> <b>Accessing a Block Driver as Character Device</b>. See the Block-to-Character (BCH) conversion logic in <code>drivers/bch/</code>. - <b>Example:</b> See the <code>cmd_dd()</code> implementation in <code>examples/nsh/nsh_ddcmd.c</code>. + <i>Example</i>: See the <code>cmd_dd()</code> implementation in <code>examples/nsh/nsh_ddcmd.c</code>. </li> <li> <b>Examples</b>. @@ -1760,7 +1765,7 @@ extern void up_ledoff(int led); Each Eterhenet driver registers itself by calling <code>netdev_register()</code>. </li> <li> - <b>Examples</b>. + <b>Examples</b>: <code>drivers/net/dm90x0.c</code>, <code>arch/drivers/arm/src/c5471/c5471_ethernet.c</code>, <code>arch/z80/src/ez80/ez80_emac.c</code>, etc. </li> </ul> @@ -1777,13 +1782,13 @@ extern void up_ledoff(int led); Each SPI device driver must implement an instance of <code>struct spi_ops_s</code>. That structure defines a call table with the following methods: <ul> - <p><code>void select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, boolean selected);</code></p> - <p><code>uint32 setfrequency(FAR struct spi_dev_s *dev, uint32 frequency);</code></p> - <p><code>void setmode(FAR struct spi_dev_s *dev, enum spi_mode_e mode);</code></p> - <p><code>void setbits(FAR struct spi_dev_s *dev, int nbits);</code></p> - <p><code>ubyte status(FAR struct spi_dev_s *dev, enum spi_dev_e devid);</code></p> - <p><code>uint16 send(FAR struct spi_dev_s *dev, uint16 wd);</code></p> - <p><code>void exchange(FAR struct spi_dev_s *dev, FAR const void *txbuffer, FAR void *rxbuffer, size_t nwords);</code></p> + <p><code>void select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, boolean selected);</code><br> + <code>uint32 setfrequency(FAR struct spi_dev_s *dev, uint32 frequency);</code><br> + <code>void setmode(FAR struct spi_dev_s *dev, enum spi_mode_e mode);</code><br> + <code>void setbits(FAR struct spi_dev_s *dev, int nbits);</code><br> + <code>ubyte status(FAR struct spi_dev_s *dev, enum spi_dev_e devid);</code><br> + <code>uint16 send(FAR struct spi_dev_s *dev, uint16 wd);</code><br> + <code>void exchange(FAR struct spi_dev_s *dev, FAR const void *txbuffer, FAR void *rxbuffer, size_t nwords);</code><br> <p><codei>nt registercallback(FAR struct spi_dev_s *dev, mediachange_t callback, void *arg);</code></p> </ul> <li> @@ -1793,7 +1798,7 @@ extern void up_ledoff(int led); See for example, <code>int mmcsd_spislotinitialize(int minor, int slotno, FAR struct spi_dev_s *spi)</code> in <code>drivers/mmcsd/mmcsd_spi.c</code>. </li> <li> - <b>Examples</b>. + <b>Examples</b>: <code>drivers/loop.c</code>, <code>drivers/mmcds/mmcsd_spi.c</code>, <code>drivers/ramdisk.c</code>, etc. </li> </ul> @@ -1810,10 +1815,10 @@ extern void up_ledoff(int led); Each I2C device driver must implement an instance of <code>struct i2c_ops_s</code>. That structure defines a call table with the following methods: <ul> - <p><code>uint32 setfrequency(FAR struct i2c_dev_s *dev, uint32 frequency);</code></p> - <p><code>int setaddress(FAR struct i2c_dev_s *dev, int addr, int nbits);</code></p> - <p><code>int write(FAR struct i2c_dev_s *dev, const ubyte *buffer, int buflen);</code></p> - <p><code>int read(FAR struct i2c_dev_s *dev, ubyte *buffer, int buflen);</code></p> + <p><code>uint32 setfrequency(FAR struct i2c_dev_s *dev, uint32 frequency);</code><br> + <code>int setaddress(FAR struct i2c_dev_s *dev, int addr, int nbits);</code><br> + <code>int write(FAR struct i2c_dev_s *dev, const ubyte *buffer, int buflen);</code><br> + <code>int read(FAR struct i2c_dev_s *dev, ubyte *buffer, int buflen);</code></p> </ul> <li> <b>Binding I2C Drivers</b>. @@ -1821,7 +1826,7 @@ extern void up_ledoff(int led); higher level device driver. </li> <li> - <b>Examples</b>. + <b>Examples</b>: <code>arch/z80/src/ez80/ez80_i2c.c</code>, <code>arch/z80/src/z8/z8_i2c.c</code>, etc. </li> </ul> @@ -1838,18 +1843,18 @@ extern void up_ledoff(int led); Each serial device driver must implement an instance of <code>struct uart_ops_s</code>. That structure defines a call table with the following methods: <ul> - <p><code>int setup(FAR struct uart_dev_s *dev);</code></p> - <p><code>void shutdown(FAR struct uart_dev_s *dev);</code></p> - <p><code>int attach(FAR struct uart_dev_s *dev);</code></p> - <p><code>void detach(FAR struct uart_dev_s *dev);</code></p> - <p><code>int ioctl(FAR struct file *filep, int cmd, unsigned long arg);</code></p> - <p><code>int receive(FAR struct uart_dev_s *dev, unsigned int *status);</code></p> - <p><code>void rxint(FAR struct uart_dev_s *dev, boolean enable);</code></p> - <p><code>boolean rxavailable(FAR struct uart_dev_s *dev);</code></p> - <p><code>void send(FAR struct uart_dev_s *dev, int ch);</code></p> - <p><code>void txint(FAR struct uart_dev_s *dev, boolean enable);</code></p> - <p><code>boolean txready(FAR struct uart_dev_s *dev);</code></p> - <p><code>boolean txempty(FAR struct uart_dev_s *dev);</code></p> + <p><code>int setup(FAR struct uart_dev_s *dev);</code><br> + <code>void shutdown(FAR struct uart_dev_s *dev);</code><br> + <code>int attach(FAR struct uart_dev_s *dev);</code><br> + <code>void detach(FAR struct uart_dev_s *dev);</code><br> + <code>int ioctl(FAR struct file *filep, int cmd, unsigned long arg);</code><br> + <code>int receive(FAR struct uart_dev_s *dev, unsigned int *status);</code><br> + <code>void rxint(FAR struct uart_dev_s *dev, boolean enable);</code><br> + <code>boolean rxavailable(FAR struct uart_dev_s *dev);</code><br> + <code>void send(FAR struct uart_dev_s *dev, int ch);</code><br> + <code>void txint(FAR struct uart_dev_s *dev, boolean enable);</code><br> + <code>boolean txready(FAR struct uart_dev_s *dev);</code><br> + <code>boolean txempty(FAR struct uart_dev_s *dev);</code></p> </ul> </li> <li> @@ -1865,7 +1870,7 @@ extern void up_ledoff(int led); Serial drivers are, ultimately, normal <a href="#chardrivers">character drivers</a> and are accessed as other character drivers. </li> <li> - <b>Examples</b>. + <b>Examples</b>: <code>arch/arm/src/chip/lm3s_serial.c</code>, <code>arch/arm/src/lpc214x/lpc214x_serial.c</code>, <code>arch/z16/src/z16f/z16f_serial.c</code>, etc. </li> </ul> diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 63a54e7159..6a8ee1847c 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -13,7 +13,7 @@ <h1><big><font color="#3c34ec"><i>NuttX Operating System<p>User's Manual</i></font></big></h1> <p><small>by</small></p> <p>Gregory Nutt<p> - <p>Last Updated: May 9, 2009</p> + <p>Last Updated: May 22, 2009</p> </td> </tr> </table> @@ -6037,8 +6037,11 @@ interface of the same name. <p> Any user supplied data or logic can be accessed via the pseudo-file system. - Built in support is provided for character and block drivers in the - <code>/dev</code> pseudo file system directory. + Built in support is provided for character and block + <a href="NuttxPortingGuide.html#DeviceDrivers">driver</a> <i>nodes</i> in the any + pseudo file system directory. + (By convention, however, all driver nodes should be in the <code>/dev</code> + pseudo file system directory). </p> <p><b>Mounted File Systems</b> From 720bbb63786f2c603cbe50be12a43559dbabbe59 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 23 May 2009 14:26:22 +0000 Subject: [PATCH 0433/1518] Add LM3S SSI driver git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1818 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index f2717ad04a..4c67353fb7 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: May 21, 2009</p> + <p>Last Updated: May 23, 2009</p> </td> </tr> </table> @@ -1414,10 +1414,11 @@ buildroot-0.1.5 2009-04-25 &lt;spudmonkey@racsa.co.cr&gt; <pre><ul> nuttx-0.4.7 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - * arch/arm/src/lm2s: Added an Ethernet driver for the LM3S6918 + * arch/arm/src/lm3s: Added an Ethernet driver for the LM3S6918 * configs/eagle100/nettest: Added an examples/nettest configuration for the Micromint Eagle100 board. * Documentation/NuttxPortingGuide.html: Added a section on NuttX device drivers. + * arch/arm/src/lm3s: Added an SSI driver for the LM3S6918 pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 45440826729f6e0d219ecc0db498a7e1363f5c91 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 23 May 2009 23:37:25 +0000 Subject: [PATCH 0434/1518] Add SPI-based MMC/SD support for lm3s git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1820 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 4c67353fb7..8f4d62a083 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1419,6 +1419,7 @@ nuttx-0.4.7 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; Micromint Eagle100 board. * Documentation/NuttxPortingGuide.html: Added a section on NuttX device drivers. * arch/arm/src/lm3s: Added an SSI driver for the LM3S6918 + * examples/nsh: Added MMC/SD support for the LM3S6918 pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From f0fc621537ea3d31d2f663e898bf4aa19b0f6906 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 23 May 2009 23:53:03 +0000 Subject: [PATCH 0435/1518] Resolve merge conflicts git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1821 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 8f4d62a083..432ba4e7a5 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1418,6 +1418,8 @@ nuttx-0.4.7 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * configs/eagle100/nettest: Added an examples/nettest configuration for the Micromint Eagle100 board. * Documentation/NuttxPortingGuide.html: Added a section on NuttX device drivers. + * configs/eagle100/httpd: Added an examples/uip configuration for the + Micromint Eagle100 board. * arch/arm/src/lm3s: Added an SSI driver for the LM3S6918 * examples/nsh: Added MMC/SD support for the LM3S6918 From c12de99e021bbadd8e446ce630933b4a7ca26517 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 24 May 2009 16:03:08 +0000 Subject: [PATCH 0436/1518] Fixe LM3S GPIO output settings; fix Eagle-100 LEDs git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1823 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 432ba4e7a5..828a759b22 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1422,6 +1422,8 @@ nuttx-0.4.7 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; Micromint Eagle100 board. * arch/arm/src/lm3s: Added an SSI driver for the LM3S6918 * examples/nsh: Added MMC/SD support for the LM3S6918 + * arch/arm/src/lm3s: Fix logic for setting and clearing output GPIOs (critical + fix!). pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 40e96b18a9f491802bd15dd7a7d1f3efbbc77981 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 25 May 2009 21:40:51 +0000 Subject: [PATCH 0437/1518] Fix SD frequency calculation git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1825 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 828a759b22..2fb6c734d6 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1424,6 +1424,7 @@ nuttx-0.4.7 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * examples/nsh: Added MMC/SD support for the LM3S6918 * arch/arm/src/lm3s: Fix logic for setting and clearing output GPIOs (critical fix!). + * drivers/mmcsd: Correct frequency calculation based on CSD settings. pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 9a6912449ce6a20fee07e8da96b6a43ba8fa6a06 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 26 May 2009 16:07:25 +0000 Subject: [PATCH 0438/1518] Updated MMC/SD SPI driver git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1826 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 2fb6c734d6..7c22f7ea05 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: May 23, 2009</p> + <p>Last Updated: May 26, 2009</p> </td> </tr> </table> @@ -1424,7 +1424,10 @@ nuttx-0.4.7 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * examples/nsh: Added MMC/SD support for the LM3S6918 * arch/arm/src/lm3s: Fix logic for setting and clearing output GPIOs (critical fix!). - * drivers/mmcsd: Correct frequency calculation based on CSD settings. + * drivers/mmcsd: Found numerous errors in current MMC/SD SPI driver. Bad frequency + calculation based on CSD settings, inappropriate timeouts, odd code that looks like + a bad search and replace. Also needs support for SDHC ver 2.x. New MMC/SD is + largely redesigned and probably non-functional in the first check-in. pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From da2053aac422a207f7d885fd0103406c26035894 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 27 May 2009 21:44:20 +0000 Subject: [PATCH 0439/1518] Fix FAT32 bug git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1829 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 7c22f7ea05..05a6ca3779 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: May 26, 2009</p> + <p>Last Updated: May 27, 2009</p> </td> </tr> </table> @@ -1424,10 +1424,15 @@ nuttx-0.4.7 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * examples/nsh: Added MMC/SD support for the LM3S6918 * arch/arm/src/lm3s: Fix logic for setting and clearing output GPIOs (critical fix!). - * drivers/mmcsd: Found numerous errors in current MMC/SD SPI driver. Bad frequency + * drivers/mmcsd: Found numerous errors in current MMC/SD SPI driver. Bad frequency calculation based on CSD settings, inappropriate timeouts, odd code that looks like a bad search and replace. Also needs support for SDHC ver 2.x. New MMC/SD is largely redesigned and probably non-functional in the first check-in. + * drivers/mmcsd: Changes verified on 4Gb Kingston SHDC card. Still having + issues with 2Gb SanDisk SDC card. + * fs/fat: With the 4Gb card, the first tests of FAT32 were (finally) performed. + Found a correct a problem that prevented use of FAT32: It was not updating + the sector cache before checking the FAT32 FSINFO sector. pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 070238c4e0b03b204390d0063af38a0f000c4518 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 28 May 2009 20:36:04 +0000 Subject: [PATCH 0440/1518] Add support for CodeSourcery and devkitARM toolchains git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1832 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 05a6ca3779..107e2d7746 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1428,11 +1428,14 @@ nuttx-0.4.7 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; calculation based on CSD settings, inappropriate timeouts, odd code that looks like a bad search and replace. Also needs support for SDHC ver 2.x. New MMC/SD is largely redesigned and probably non-functional in the first check-in. - * drivers/mmcsd: Changes verified on 4Gb Kingston SHDC card. Still having - issues with 2Gb SanDisk SDC card. + * drivers/mmcsd: Changes verified on 4Gb Kingston microSHDC card and on a 2Gb + SanDisk microSDC card on the Eagle100 platform. * fs/fat: With the 4Gb card, the first tests of FAT32 were (finally) performed. - Found a correct a problem that prevented use of FAT32: It was not updating + Found and corrected a problem that prevented use of FAT32: It was not updating the sector cache before checking the FAT32 FSINFO sector. + * configs/eagle100/*/Make.defs: Added configuration options that should make + it possible to build NuttX for the Eagle100 using CodeSourcery 2009q1 toolchain + and the devkitARM GNU toolchain. pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From ea63ade4c64dcd22fb53ba875b661456613d86e8 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 28 May 2009 23:14:27 +0000 Subject: [PATCH 0441/1518] Fix to lpc214x MMC/SD due to lm3s changes git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1833 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 5 ++++- Documentation/NuttxPortingGuide.html | 8 +++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 107e2d7746..035d5d084f 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: May 27, 2009</p> + <p>Last Updated: May 28, 2009</p> </td> </tr> </table> @@ -1436,6 +1436,9 @@ nuttx-0.4.7 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * configs/eagle100/*/Make.defs: Added configuration options that should make it possible to build NuttX for the Eagle100 using CodeSourcery 2009q1 toolchain and the devkitARM GNU toolchain. + * configs/mcu123-lpc214x/src: Corrected some logic in the LPC2148 SPI receive block + logic. Re-verified SDC ver1.x support with 1Gb Toshiba SDC, 1Gb PNY SDC, 2Gb SanDisk SDC, + and 4Gb Kingston SDHC. pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index d78be1b141..6ab70d9610 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@ <h1><big><font color="#3c34ec"> <i>NuttX RTOS Porting Guide</i> </font></big></h1> - <p>Last Updated: May 22, 2009</p> + <p>Last Updated: May 28, 2009</p> </td> </tr> </table> @@ -2180,6 +2180,12 @@ extern void up_ledoff(int led); <li> <code>CONFIG_MMCSD_READONLY</code>: Provide read-only access. Default is Read/Write </li> + <li> + <code>CONFIG_MMCSD_SPICLOCK</code>: Maximum SPI clock to drive MMC/SD card. Default is 20MHz. + </li> + <li> + <code>CONFIG_MMCSD_SYNCHRONIZE</code>: Special synchronization logic needed + </li> </ul> <h2>Network Support</h2> From 21e45f1af547e059dab72ca81d434acd99f04fd5 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 29 May 2009 13:32:00 +0000 Subject: [PATCH 0442/1518] Fix mount problem git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1835 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 035d5d084f..4e651caa4a 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: May 28, 2009</p> + <p>Last Updated: May 29, 2009</p> </td> </tr> </table> @@ -1439,6 +1439,8 @@ nuttx-0.4.7 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * configs/mcu123-lpc214x/src: Corrected some logic in the LPC2148 SPI receive block logic. Re-verified SDC ver1.x support with 1Gb Toshiba SDC, 1Gb PNY SDC, 2Gb SanDisk SDC, and 4Gb Kingston SDHC. + * fs/fs_mount.c: Corrected error handling that could cause a deadlock on certain + mount() failures. pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From ea5bddd9f8040d328d93aaee7cb3a54078e83fb5 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 29 May 2009 15:36:48 +0000 Subject: [PATCH 0443/1518] Prep for 0.4.7 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1837 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 122 +++++++++++---------------- Documentation/NuttxPortingGuide.html | 3 - 2 files changed, 50 insertions(+), 75 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 4e651caa4a..41f583fa5f 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -401,7 +401,7 @@ <td><br></td> <td> <p> - <li>Generic driver for SPI-based MMC/SD cards.</li> + <li>Generic driver for SPI-based MMC/SD/SDH cards.</li> </p> </tr> <tr> @@ -687,8 +687,8 @@ </tr> </table> -<p><b>nuttx-0.4.6</b>. - The 38<sup>th</sup> release of NuttX (nuttx-0.4.6) is available for download +<p><b>nuttx-0.4.7</b>. + The 39<sup>th</sup> release of NuttX (nuttx-0.4.7) was made on May 29, 2009 and is available for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. The change log associated with the release is available <a href="#currentrelease">here</a>. @@ -696,20 +696,22 @@ These unreleased changes are listed <a href="#pendingchanges">here</a>. </p> <p> - The release features support for the <a href=" http://www.micromint.com/">Micromint</a> - Eagle-100 development board. - This board is based around, the Luminary LM3S6918 MCU. - This is the first ARM Cortex-M3 architecture supported by Nuttx. - This initial, basic port includes timer and serial console with configurations to execute the NuttX OS test and to run the <a href="NuttShell.html">NuttShell (NSH)</a>. - Work is still underway on this port and current plans are to have I2C, SSI, MMC/SD, and and Ethernet driver in the 0.4.7 release. + This release focuses on cleaning up and extending the Eagle100/LM3S6918 port released + in nuttx-0.4.6 and on improved MMC/SD support. New features include: + <ul> + <li> + Improved reliably and additional drivers for the Eagle-100 board (LM3S6918 + ARM Cortex-M3). Additional drivers include Ethernet, SSI, and support for + the on-board LEDs and microSD cards. + </li> + <li> + The SPI-based MMC/SD driver was extended to support SDHC Version 2.xx cards. + </li> + </ul> </p> <p> - Additional work was done on the MXADS i.MX1 port, however, that work has been set aside - until I complete work on the Eagle-100 (I also need to come up with a 3V power supply). -</p> -<p> - Other changes in this release include: Extensions to the SPI interface definition in order to handle 9-bit interfaces to displays. - Several bugs were fixed (see the <a href="#currentrelease">ChangeLog</a> for a complete list of changes). + In addition, this release includes several important bugfixes for the LM3S6918, the LPC2148, + the SPI-based MMC/SD driver, and to FAT32. See the ChangeLog for details of these bugfixes. </p> <table width ="100%"> @@ -866,11 +868,10 @@ </p> <p> <b>STATUS:</b> - This initial, basic release of this port has been verifed and included in NuttX - version 0.4.6. The basic port includes timer and serial console with configurations - to execute the NuttX OS test and to run the <a href="NuttShell.html">NuttShell (NSH)</a>. - Work is still underway on this port and current plans are to have I2C, SSI, MMC/SD, and - and Ethernet driver in the 0.4.7 release. + The initial, release of this port was included in NuttX version 0.4.6. + The current port includes timer, serial console, Ethernet, SSI, and microSD support. + There are working configurations the NuttX OS test, to run the <a href="NuttShell.html">NuttShell + (NSH)</a>, the NuttX networking test, and the uIP web server. </p> </td> </tr> @@ -1358,30 +1359,35 @@ Other memory: </table> <pre><ul> -nuttx-0.4.6 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; +nuttx-0.4.7 2009-05-29 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - * Change SPI interface so that is can accomodate interfaces where the - number of bits per word is greater an 8 (such as with many 9-bit display - interfaces). -- this might have broken a few things which will need to - be retested! - * arch/arm/src/imx: Added i.MX SPI driver - * SPI: Add a method to set the number of bits per word. Also add an - alternative interface for so that (eventually) I can phase the sndblock - and recvblock methods and replace them with a single exchange method - * Build: objcopy fails with toolchains that use newer GCC and binutils. The - following arguments need to be included in the objcopy command line "-R .note - -R .note.gnu.build-id -R .comment" This has bin fixed in arch/arm/src/Makefile, - but other architectures may have the same problem. Thanks to Dave Marples - for verifying this. - * configs/eagle100/ostest: Added support for the MicroMint Eagle100 board. - This board has a Luminary LM3S6918 Cortex-M3. Added a configuration to build - examples/ostest. - * arch/arm/src/lpc214x: Add configuration option to enable fast GPIO (vs. - legacy, "slow" GPIO) for LPC214x. - * arch/arm: Restructured the arch/arm directory structure to better suppor ARM - and Cortex-M3. - * sched/: pthread_create() must return a (non-negated) errno value on failure. - * configs/eagle100/nsh: Add a NuttShell (NSH) configuration for the Eagle-100 + * arch/arm/src/lm3s: Added an Ethernet driver for the LM3S6918 + * configs/eagle100/nettest: Added an examples/nettest configuration for the + Micromint Eagle100 board. + * Documentation/NuttxPortingGuide.html: Added a section on NuttX device drivers. + * configs/eagle100/httpd: Added an examples/uip configuration for the + Micromint Eagle100 board. + * arch/arm/src/lm3s: Added an SSI driver for the LM3S6918 + * examples/nsh: Added MMC/SD support for the LM3S6918 + * arch/arm/src/lm3s: Fix logic for setting and clearing output GPIOs (critical + fix!). + * drivers/mmcsd: Found numerous errors in current MMC/SD SPI driver. Bad frequency + calculation based on CSD settings, inappropriate timeouts, odd code that looks like + a bad search and replace. Also needs support for SDHC ver 2.x. New MMC/SD is + largely redesigned and probably non-functional in the first check-in. + * drivers/mmcsd: Changes verified on 4Gb Kingston microSHDC card and on a 2Gb + SanDisk microSDC card on the Eagle100 platform. + * fs/fat: With the 4Gb card, the first tests of FAT32 were (finally) performed. + Found and corrected a problem that prevented use of FAT32: It was not updating + the sector cache before checking the FAT32 FSINFO sector. + * configs/eagle100/*/Make.defs: Added configuration options that should make + it possible to build NuttX for the Eagle100 using CodeSourcery 2009q1 toolchain + and the devkitARM GNU toolchain. + * configs/mcu123-lpc214x/src: Corrected some logic in the LPC2148 SPI receive block + logic. Re-verified SDC ver1.x support with 1Gb Toshiba SDC, 1Gb PNY SDC, and + 4Gb Kingston SDHC. There are CMD0 issues with the 2Gb SanDisk SDC on this board. + * fs/fs_mount.c: Corrected error handling that could cause a deadlock on certain + mount() failures. pascal-0.1.2 2008-02-10 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; @@ -1412,35 +1418,7 @@ buildroot-0.1.5 2009-04-25 &lt;spudmonkey@racsa.co.cr&gt; </table> <pre><ul> -nuttx-0.4.7 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - - * arch/arm/src/lm3s: Added an Ethernet driver for the LM3S6918 - * configs/eagle100/nettest: Added an examples/nettest configuration for the - Micromint Eagle100 board. - * Documentation/NuttxPortingGuide.html: Added a section on NuttX device drivers. - * configs/eagle100/httpd: Added an examples/uip configuration for the - Micromint Eagle100 board. - * arch/arm/src/lm3s: Added an SSI driver for the LM3S6918 - * examples/nsh: Added MMC/SD support for the LM3S6918 - * arch/arm/src/lm3s: Fix logic for setting and clearing output GPIOs (critical - fix!). - * drivers/mmcsd: Found numerous errors in current MMC/SD SPI driver. Bad frequency - calculation based on CSD settings, inappropriate timeouts, odd code that looks like - a bad search and replace. Also needs support for SDHC ver 2.x. New MMC/SD is - largely redesigned and probably non-functional in the first check-in. - * drivers/mmcsd: Changes verified on 4Gb Kingston microSHDC card and on a 2Gb - SanDisk microSDC card on the Eagle100 platform. - * fs/fat: With the 4Gb card, the first tests of FAT32 were (finally) performed. - Found and corrected a problem that prevented use of FAT32: It was not updating - the sector cache before checking the FAT32 FSINFO sector. - * configs/eagle100/*/Make.defs: Added configuration options that should make - it possible to build NuttX for the Eagle100 using CodeSourcery 2009q1 toolchain - and the devkitARM GNU toolchain. - * configs/mcu123-lpc214x/src: Corrected some logic in the LPC2148 SPI receive block - logic. Re-verified SDC ver1.x support with 1Gb Toshiba SDC, 1Gb PNY SDC, 2Gb SanDisk SDC, - and 4Gb Kingston SDHC. - * fs/fs_mount.c: Corrected error handling that could cause a deadlock on certain - mount() failures. +nuttx-0.4.8 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 6ab70d9610..b2eb55d047 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -2183,9 +2183,6 @@ extern void up_ledoff(int led); <li> <code>CONFIG_MMCSD_SPICLOCK</code>: Maximum SPI clock to drive MMC/SD card. Default is 20MHz. </li> - <li> - <code>CONFIG_MMCSD_SYNCHRONIZE</code>: Special synchronization logic needed - </li> </ul> <h2>Network Support</h2> From 387115ec6568ebaa3692ce387bdc3fb2efb84379 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 29 May 2009 19:57:20 +0000 Subject: [PATCH 0444/1518] Update for buildroot changes git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1839 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 41f583fa5f..a175a2d15e 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1399,14 +1399,14 @@ pascal-0.1.2 2008-02-10 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; and eliminate a compiler bug * Changes so that runtime compiles with SDCC. -buildroot-0.1.5 2009-04-25 &lt;spudmonkey@racsa.co.cr&gt; +buildroot-0.1.6 2009-xx-xx &lt;spudmonkey@racsa.co.cr&gt; - * Replaced config/arm-defconfig-4.2.4 with config/arm920t-defconfig-4.2.4 - and config/arm926t-defconfig-4.2.4 because of differences in the - way that soft floating point is handled between these two - architectures. - * Add support for gcc-4.3.3 and the ARM Cortex-M3 processor (thumb2) - * Add support for binutils 2.19.1 + * Added config/arm7tdmi-defconfig-4.2.4 + * Added config/arm920t-defconfig-4.3.3 + * Correct error in arm-defconfig gcc-3.4.6 build. The gcc-3.4.6 configuration + does not not take --with-abi + * Correct error in gcc-3.4.6/gcc/collect.c. Calls open with O_CREAT but + does not specify mode. Newer host compilers can error out on this. </pre></ul> <table width ="100%"> @@ -1422,14 +1422,10 @@ nuttx-0.4.8 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; -buildroot-0.1.6 2009-xx-xx &lt;spudmonkey@racsa.co.cr&gt; +buildroot-0.1.7 2009-xx-xx &lt;spudmonkey@racsa.co.cr&gt; - * Added config/arm7tdmi-defconfig-4.2.4 - * Added config/arm920t-defconfig-4.3.3 - * Correct error in arm-defconfig gcc-3.4.6 build. The gcc-3.4.6 configuration - does not not take --with-abi - * Correct error in gcc-3.4.6/gcc/collect.c. Calls open with O_CREAT but - does not specify mode. Newer host compilers can error out on this. + * configs/avr-defconfig-4.3.3: Added support for AVR to support a NuttX + port of the ATmega128. </pre></ul> <table width ="100%"> From 55774ed82bf00583ffda45abcf94da2d30c25616 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 30 May 2009 20:06:24 +0000 Subject: [PATCH 0445/1518] Extend lib to handle incoming streams git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1840 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index a175a2d15e..172f27998c 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: May 29, 2009</p> + <p>Last Updated: May 30, 2009</p> </td> </tr> </table> @@ -1420,6 +1420,8 @@ buildroot-0.1.6 2009-xx-xx &lt;spudmonkey@racsa.co.cr&gt; <pre><ul> nuttx-0.4.8 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + * lib/lib_*stream.c: Extend internal stream logic to support incoming streams. + pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; buildroot-0.1.7 2009-xx-xx &lt;spudmonkey@racsa.co.cr&gt; From fb57b0cd3056c27805bcf19ddbc4a1163020fc35 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 1 Jun 2009 19:29:14 +0000 Subject: [PATCH 0446/1518] Fix UART configuration issues git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1843 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 172f27998c..632acf17ea 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: May 30, 2009</p> + <p>Last Updated: June 01, 2009</p> </td> </tr> </table> @@ -1421,6 +1421,9 @@ buildroot-0.1.6 2009-xx-xx &lt;spudmonkey@racsa.co.cr&gt; nuttx-0.4.8 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * lib/lib_*stream.c: Extend internal stream logic to support incoming streams. + * arch/arm/src/str71x: Made some progress with the Olimex STR-P711 before my + emulator stopped working. Serial output is now correct. I don't think it + would take much more to get it working! pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 6eaf18f56565ec6857943c8aaca849905f7ce583 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 1 Jun 2009 19:31:52 +0000 Subject: [PATCH 0447/1518] update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1844 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 632acf17ea..5070ab98bb 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -801,8 +801,10 @@ <p> <b>STATUS:</b> Coding is complete on the basic port (boot logic, system time, serial console), - but no testing has been performed due to some problems I am having with my - JTAG wiggler and OpenOCD on Linux. + and some testing has been performed. The board boots and console output is + visible on UART0. However, due to problems I am having with my J-TAG debug + environment, testing is incomplete. If you have a good development environemnt, + it should not take too much more effort to get this port up and running. </p> </td> </tr> From 866a7e78cecb28ad38a8c6e1f0a90b50ce32a820 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 4 Jun 2009 19:45:33 +0000 Subject: [PATCH 0448/1518] spell checked git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1846 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 116 +++++++++++++++------------ 1 file changed, 63 insertions(+), 53 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index b2eb55d047..02155fe126 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -383,7 +383,7 @@ <h3><a name="supportedarchitectures">2.2.3 Supported Architectures</a></h3> <p> - <b>Archictecture- and Chip-Specific Directories</b>. + <b>Architecture- and Chip-Specific Directories</b>. All processor architecture-specific directories are maintained in sub-directories of the <code>arch/</code> directory. Different chips or SoC's may implement the same processor core. @@ -394,7 +394,7 @@ <ul> <li><code>arch/sim</code>: A user-mode port of NuttX to the x86 Linux platform is available. - The purpose of this port is primarily to support OS feature developement. + The purpose of this port is primarily to support OS feature development. This port does not support interrupts or a real timer (and hence no round robin scheduler) Otherwise, it is complete. </li> @@ -565,7 +565,7 @@ <h4><a name="boardconfigsubdirs">2.3.2.2 Board Specific Configuration Sub-Directories</a></h4> <p> The <code>configs/</code><i>&lt;board-name&gt;</i><code>/</code> sub-directory holds all of the - files that are necessary to configure Nuttx for the particular board. + files that are necessary to configure NuttX for the particular board. A board may have various different configurations using the common source files. Each board configuration is described by three files: <code>Make.defs</code>, <code>defconfig</code>, and <code>setenv.sh</code>. Typically, each set of configuration files is retained in a separate configuration sub-directory @@ -610,7 +610,7 @@ </li> <li> <code>setenv.sh</code>: This is a script that you can include that will be installed at - the toplevel of the directory structure and can be sourced to set any + the top level of the directory structure and can be sourced to set any necessary environment variables. </li> </ul> @@ -651,7 +651,7 @@ <li><code>configs/ntosd-dm320</code>: This port uses the Neuros OSD with a GNU arm-elf toolchain* under Linux or Cygwin. See <a href="http://wiki.neurostechnology.com/index.php/Developer_Welcome">Neuros Wiki</a> - for futher information. + for further information. NuttX operates on the ARM9EJS of this dual core processor. STATUS: This port is code complete, verified, and included in the NuttX 0.2.1 release. @@ -660,7 +660,7 @@ <li><code>configs/olimex-strp711</code>: This port uses the Olimex STR-P711 board arm-elf toolchain* under Linux or Cygwin. See the <a href="http://www.olimex.com/dev/str-p711.html">Olimex</a> web site - for futher information. + for further information. STATUS: Coding for the basic port -- serial console and system timer -- is complete but untested to problems I am having using OpenOCD with a wiggler clone JTAG. </li> @@ -673,7 +673,7 @@ <li><code>configs/sim</code>: A user-mode port of NuttX to the x86 Linux platform is available. - The purpose of this port is primarily to support OS feature developement. + The purpose of this port is primarily to support OS feature development. This port does not support interrupts or a real timer (and hence no round robin scheduler) Otherwise, it is complete. </li> @@ -686,7 +686,7 @@ <li><code>configs/xtrs</code>: TRS80 Model 3. This port uses a vintage computer based on the Z80. An emulator for this computer is available to run TRS80 programs on a - linux platform (http://www.tim-mann.org/xtrs.html). + Linux platform (http://www.tim-mann.org/xtrs.html). </li> <li><code>configs/z16f2800100zcog</code> @@ -701,7 +701,7 @@ That simulator can be found in the NuttX CVS <a href="http://nuttx.cvs.sourceforge.net/nuttx/misc/sims/z80sim/">here</a>. This port also the <a href="http://sdcc.sourceforge.net/">SDCC</a> toolchain - under Linux or Cygwin(verfied with version 2.6.0). + under Linux or Cygwin(verified with version 2.6.0). </li> <li><code>configs/z8encore000zco</code> @@ -782,7 +782,7 @@ graphics/ | `-- <i>(NuttX graphics library source files)</i> |-- nx/ | |-- Make.defs -| `-- <i>(Nuttx X-server source files)</i> +| `-- <i>(NuttX X-server source files)</i> `-- <i>(common file system source files)</i> </pre></ul> @@ -818,7 +818,7 @@ include/ <h2>2.9 <a name="DirStructLib">lib</a></h2> <p> This directory holds a collection of standard libc-like functions with custom - interfaces into Nuttx. + interfaces into NuttX. </p> <h2>2.10 <a name="DirStructMm">mm</a></h2> @@ -829,7 +829,7 @@ include/ <h2>2.11 <a name="DirStructNet">net</a></h2> <p> This directory contains the implementation of the socket APIs. - The subdirectory, <code>uip</code> contians the uIP port. + The subdirectory, <code>uip</code> contains the uIP port. </P> <h2>2.12 <a name="DirStructNetUtils">netutils</a></h2> @@ -968,7 +968,7 @@ make </p> <ul> <li>The makefile fragment <a href="#boardconfigsubdirs"><code>.config</code></a> that describes the current configuration.</li> - <li>The makefile fragment <a href="#boardconfigsubdirs"><code>Make.defs</code></a> that provides customized build targers, and</li> + <li>The makefile fragment <a href="#boardconfigsubdirs"><code>Make.defs</code></a> that provides customized build targets, and</li> <li>The shell script <a href="#boardconfigsubdirs"><code>setenv.sh</code></a> that sets up the configuration environment for the build.</li> </ul> <p> @@ -1051,7 +1051,7 @@ The system can be re-made subsequently by just typing <code>make</code>. the processor specific portions of the new TCB. </p> <p> - This function must setup the intial architecture registers + This function must setup the initial architecture registers and/or stack so that execution will begin at tcb->start on the next context switch. </p> @@ -1156,7 +1156,7 @@ The system can be re-made subsequently by just typing <code>make</code>. <li><code>tcb</code>: Refers to the tcb to be unblocked. This tcb is in one of the waiting tasks lists. It must be moved to the ready-to-run list and, if it is the highest priority - ready to run taks, executed. + ready to run tasks, executed. </li> </ul> @@ -1248,7 +1248,7 @@ The system can be re-made subsequently by just typing <code>make</code>. <p> Unlike other UP APIs, this function may be called directly from user programs in various states. The - implementation of this function should diable interrupts + implementation of this function should disable interrupts before performing scheduling operations. </p> @@ -1272,7 +1272,7 @@ The system can be re-made subsequently by just typing <code>make</code>. This function is called by the OS when one or more signal handling actions have been queued for execution. The architecture specific code must configure things so - that the 'igdeliver' callback is executed on the thread + that the 'sigdeliver' callback is executed on the thread specified by 'tcb' as soon as possible. </p> <p> @@ -1337,7 +1337,7 @@ The system can be re-made subsequently by just typing <code>make</code>. <ul><pre> #ifndef CONFIG_ARCH_NOINTC void up_disable_irq(int irq); -#endf +#endif </pre></ul> <p><b>Description</b>. @@ -1364,7 +1364,7 @@ The system can be re-made subsequently by just typing <code>make</code>. <ul><pre> #ifndef CONFIG_ARCH_NOINTC void up_enable_irq(int irq); -#endf +#endif </pre></ul> <p><b>Description</b>. @@ -1385,7 +1385,7 @@ The system can be re-made subsequently by just typing <code>make</code>. <ul><pre> #ifdef CONFIG_ARCH_IRQPRIO void up_enable_irq(int irq); -#endf +#endif </pre></ul> <p><b>Description</b>. Set the priority of an IRQ. @@ -1436,8 +1436,8 @@ The system can be re-made subsequently by just typing <code>make</code>. <p><b>Prototype</b>: <code>void irq_dispatch(int irq, FAR void *context);</code></p> <p><b>Description</b>. - This function must be called from the achitecture- - specific logic in order to dispaly an interrupt to + This function must be called from the architecture- + specific logic in order to display an interrupt to the appropriate, registered handling logic. </p> @@ -1481,7 +1481,7 @@ The system can be re-made subsequently by just typing <code>make</code>. The implementation of LED support is very specific to a board architecture. Some boards have several LEDS, others have only one or two. Some have none. - Others LED matrices and show alphnumeric data, etc. + Others LED matrices and show alphanumeric data, etc. The NuttX logic does not refer to specific LEDS, rather, it refers to an event to be shown on the LEDS in whatever manner is appropriate for the board; the way that this event is presented depends upon the hardware available on the board. @@ -1587,27 +1587,27 @@ extern void up_ledoff(int led); <p><b>Overview</b>. NuttX includes an optional, scalable file system. - This file-system may be omitted altogther; NuttX does not depend on the presence + This file-system may be omitted altogether; NuttX does not depend on the presence of any file system. </p> <p><b>Pseudo Root File System</b>. - Or, a simple <i>in-memory</i>, <i>psuedo</i> file system can be enabled. + Or, a simple <i>in-memory</i>, <i>pseudo</i> file system can be enabled. This simple file system can be enabled setting the CONFIG_NFILE_DESCRIPTORS option to a non-zero value (see <a href="#apndxconfigs">Appendix A</a>). This is an <i>in-memory</i> file system because it does not require any storage medium or block driver support. Rather, file system contents are generated on-the-fly as referenced via standard file system operations (open, close, read, write, etc.). - In this sense, the file system is <i>psuedo</i> file system (in the + In this sense, the file system is <i>pseudo</i> file system (in the same sense that the Linux <code>/proc</code> file system is also - referred to as a psuedo file system). + referred to as a pseudo file system). </p> <p> - Any user supplied data or logic can be accessed via the psuedo-file system. + Any user supplied data or logic can be accessed via the pseudo-file system. Built in support is provided for character and block <a href="#DeviceDrivers">drivers</a> in the - <code>/dev</code> psuedo file system directory. + <code>/dev</code> pseudo file system directory. </p> <p><b>Mounted File Systems</b> @@ -1615,7 +1615,7 @@ extern void up_ledoff(int led); devices that provide access to true file systems backed up via some mass storage device. NuttX supports the standard <code>mount()</code> command that allows - a block driver to be bound to a mountpoint within the psuedo file system + a block driver to be bound to a mountpoint within the pseudo file system and to a file system. At present, NuttX supports only the VFAT file system. </p> @@ -1624,10 +1624,10 @@ extern void up_ledoff(int led); From a programming perspective, the NuttX file system appears very similar to a Linux file system. However, there is a fundamental difference: - The NuttX root file system is a psuedo file system and true file systems may be - mounted in the psuedo file system. + The NuttX root file system is a pseudo file system and true file systems may be + mounted in the pseudo file system. In the typical Linux installation by comparison, the Linux root file system - is a true file system and psuedo file systems may be mounted in the true, + is a true file system and pseudo file systems may be mounted in the true, root file system. The approach selected by NuttX is intended to support greater scalability from the very tiny platform to the moderate platform. @@ -1649,7 +1649,7 @@ extern void up_ledoff(int led); <li>Other <i>Specialized</i> Drivers.</li> </ul> These different device driver types are discussed in the following paragraphs. - Note: device driver support requires that the <i>in-memory</i>, <i>psuedo</i> file system + Note: device driver support requires that the <i>in-memory</i>, <i>pseudo</i> file system is enabled by setting the CONFIG_NFILE_DESCRIPTORS in the NuttX configuration file to a non-zero value. </p> @@ -1745,7 +1745,7 @@ extern void up_ledoff(int led); </li> <li> <b>Examples</b>. - <code>drivers/loop.c</code>, <code>drivers/mmcds/mmcsd_spi.c</code>, <code>drivers/ramdisk.c</code>, etc. + <code>drivers/loop.c</code>, <code>drivers/mmcsd/mmcsd_spi.c</code>, <code>drivers/ramdisk.c</code>, etc. </li> </ul> @@ -1762,7 +1762,7 @@ extern void up_ledoff(int led); </li> <li> <b><code>int netdev_register(FAR struct uip_driver_s *dev);</code></b>. - Each Eterhenet driver registers itself by calling <code>netdev_register()</code>. + Each Ethernet driver registers itself by calling <code>netdev_register()</code>. </li> <li> <b>Examples</b>: @@ -1789,17 +1789,22 @@ extern void up_ledoff(int led); <code>ubyte status(FAR struct spi_dev_s *dev, enum spi_dev_e devid);</code><br> <code>uint16 send(FAR struct spi_dev_s *dev, uint16 wd);</code><br> <code>void exchange(FAR struct spi_dev_s *dev, FAR const void *txbuffer, FAR void *rxbuffer, size_t nwords);</code><br> - <p><codei>nt registercallback(FAR struct spi_dev_s *dev, mediachange_t callback, void *arg);</code></p> + <p><code>int registercallback(FAR struct spi_dev_s *dev, mediachange_t callback, void *arg);</code></p> </ul> <li> <b>Binding SPI Drivers</b>. SPI drivers are not normally directly accessed by user code, but are usually bound to another, higher level device driver. See for example, <code>int mmcsd_spislotinitialize(int minor, int slotno, FAR struct spi_dev_s *spi)</code> in <code>drivers/mmcsd/mmcsd_spi.c</code>. + In general, the binding sequence is: + <ul> + <li>Get an instance of <code>struct spi_dev_s</code> from the hardware-specific SPI device driver, and </li> + <li>Provide that instance to the initialization method of the higher level device driver.</li> + </ul> </li> <li> <b>Examples</b>: - <code>drivers/loop.c</code>, <code>drivers/mmcds/mmcsd_spi.c</code>, <code>drivers/ramdisk.c</code>, etc. + <code>drivers/loop.c</code>, <code>drivers/mmcsd/mmcsd_spi.c</code>, <code>drivers/ramdisk.c</code>, etc. </li> </ul> @@ -1822,8 +1827,13 @@ extern void up_ledoff(int led); </ul> <li> <b>Binding I2C Drivers</b>. - SPI drivers are not normally directly accessed by user code, but are usually bound to another, + I2C drivers are not normally directly accessed by user code, but are usually bound to another, higher level device driver. + In general, the binding sequence is: + <ul> + <li>Get an instance of <code>struct i2c_dev_s</code> from the hardware-specific I2C device driver, and </li> + <li>Provide that instance to the initialization method of the higher level device driver.</li> + </ul> </li> <li> <b>Examples</b>: @@ -1862,7 +1872,7 @@ extern void up_ledoff(int led); A serial driver may register itself by calling <code>uart_register()</code>, passing it the <code>path</code> where it will appear in the <a href="#NxFileSystem">pseudo-file-system</a> and it's initialized instance of <code>struct uart_ops_s</code>. - By convention, serial device drivers are registered at pathes like <code>/dev/ttyS0</code>, <code>/dev/ttyS1</code>, etc. + By convention, serial device drivers are registered at paths like <code>/dev/ttyS0</code>, <code>/dev/ttyS1</code>, etc. See the <code>uart_register()</code> implementation in <code>drivers/serial.c</code>. </li> <li> @@ -1890,7 +1900,7 @@ extern void up_ledoff(int led); <h2>Architecture selection</h2> <p> - The following configuration itemes select the architecture, chip, and + The following configuration items select the architecture, chip, and board configuration for the build. </p> <ul> @@ -1913,7 +1923,7 @@ extern void up_ledoff(int led); Define if the architecture does not support an interrupt controller or otherwise cannot support APIs like up_enable_irq() and up_disable_irq().</li> <li><code>CONFIG_ARCH_IRQPRIO</code>: - Define if the architecture suports prioritizaton of interrupts and the + Define if the architecture supports prioritization of interrupts and the up_prioritize_irq() API.</li> </ul> @@ -1939,14 +1949,14 @@ extern void up_ledoff(int led); </li> <li><code>CONFIG_INTELHEX_BINARY</code>: Make the Intel HEX binary format used with many different loaders using the GNU objcopy program - This option hould not be selected if you are not using the GNU toolchain. + This option should not be selected if you are not using the GNU toolchain. </li> <li><code>CONFIG_MOTOROLA_SREC</code>: Make the Motorola S-Record binary format used with many different loaders using the GNU objcopy program Should not be selected if you are not using the GNU toolchain. </li> <li><code>CONFIG_RAW_BINARY</code>: - mmke a raw binary format file used with many different loaders using the GNU objcopy program. + Make a raw binary format file used with many different loaders using the GNU objcopy program. This option should not be selected if you are not using the GNU toolchain. </li> <li><code>CONFIG_HAVE_LIBM</code>: @@ -1954,7 +1964,7 @@ extern void up_ledoff(int led); </li> <li><code>CONFIG_HAVE_CXX</code>: Toolchain supports C++ and <code>CXX</code>, <code>CXXFLAGS</code>, and <code>COMPILEXX</code> - have been defined in the configuratins <code>Make.defs</code> file. + have been defined in the configurations <code>Make.defs</code> file. </li> </ul> @@ -1975,7 +1985,7 @@ extern void up_ledoff(int led); <code>CONFIG_DEBUG_SCHED</code>: enable OS debug output (disabled by default) </li> <li> - <code>CONFIG_DEBUG_MM</code>: enable memory management debug output (disabld by default) + <code>CONFIG_DEBUG_MM</code>: enable memory management debug output (disabled by default) </li> <li> <code>CONFIG_DEBUG_NET</code>: enable network debug output (disabled by default) @@ -2003,7 +2013,7 @@ extern void up_ledoff(int led); interval other than 10 msec. </li> <li> - <code>CONFIG_RR_INTERVAL</code>: The round robin timeslice will be set + <code>CONFIG_RR_INTERVAL</code>: The round robin time slice will be set this number of milliseconds; Round robin scheduling can be disabled by setting this value to zero. </li> @@ -2012,7 +2022,7 @@ extern void up_ledoff(int led); scheduler to monitor system performance </li> <li> - <code>CONFIG_TASK_NAME_SIZE</code>: Spcifies that maximum size of a + <code>CONFIG_TASK_NAME_SIZE</code>: Specifies that maximum size of a task name to save in the TCB. Useful if scheduler instrumentation is selected. Set to zero to disable. </li> @@ -2034,7 +2044,7 @@ extern void up_ledoff(int led); <li> <code>CONFIG_PRIORITY_INHERITANCE</code>: Set to enable support for priority inheritance on mutexes and semaphores. - Priority inheritance is a strategy of addessing + Priority inheritance is a strategy of addressing <a href="NuttxUserGuide.html#priorityinversion"><i>priority inversion</i></a>. Details of the NuttX implementation of priority inheritance is discussed <a href="NuttxUserGuide.html#priorityinheritance">elsewhere</a>. @@ -2096,7 +2106,7 @@ extern void up_ledoff(int led); <p> The architecture can provide optimized versions of the - following to improve sysem performance. + following to improve system performance. </p> <ul> @@ -2145,7 +2155,7 @@ extern void up_ledoff(int led); </li> <li> <code>CONFIG_MQ_MAXMSGSIZE</code>: Message structures are allocated with - a fixed payload size given by this settin (does not include + a fixed payload size given by this setting (does not include other message structure overhead. </li> <li> @@ -2481,7 +2491,7 @@ extern void up_ledoff(int led); </li> <li> <code>CONFIG_IDLETHREAD_STACKSIZE</code>: The size of the initial stack. - This is the thread that (1) performs the inital boot of the system up + This is the thread that (1) performs the initial boot of the system up to the point where user_start() is spawned, and (2) there after is the IDLE thread that executes only when there is no other thread ready to run. @@ -2517,7 +2527,7 @@ extern void up_ledoff(int led); <li>Linux is a registered trademark of Linus Torvalds.</li> <li>Eagle-100 is a trademark of <a href=" http://www.micromint.com/">Micromint USA, LLC</a>. <li>LPC2148 is a trademark of NXP Semiconductors.</li> - <li>TI is a tradename of Texas Instruments Incorporated.</li> + <li>TI is a trade name of Texas Instruments Incorporated.</li> <li>UNIX is a registered trademark of The Open Group.</li> <li>VxWorks is a registered trademark of Wind River Systems, Incorporated.</li> <li>ZDS, ZNEO, Z16F, Z80, and Zilog are a registered trademark of Zilog, Inc.</li> From b685dd131a5242111e57f54ecbdeab7cc7a42910 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 5 Jun 2009 01:42:15 +0000 Subject: [PATCH 0449/1518] Timer interrupts work; examples/ostest passes git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1849 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 5070ab98bb..253328243d 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: June 01, 2009</p> + <p>Last Updated: June 04, 2009</p> </td> </tr> </table> @@ -1423,9 +1423,9 @@ buildroot-0.1.6 2009-xx-xx &lt;spudmonkey@racsa.co.cr&gt; nuttx-0.4.8 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * lib/lib_*stream.c: Extend internal stream logic to support incoming streams. - * arch/arm/src/str71x: Made some progress with the Olimex STR-P711 before my - emulator stopped working. Serial output is now correct. I don't think it - would take much more to get it working! + * arch/arm/src/str71x: Serial output is now correct and timer interrupts are + working. The test at configs/olimex-strp711/ostest passes. This means that + the basic STR-P711 port is complete. pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From d8f5a958504f7f8801a233e31a01042f7f3fcf4e Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 5 Jun 2009 13:59:46 +0000 Subject: [PATCH 0450/1518] Added STR-P711 NSH configuration git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1850 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 253328243d..bd9aced781 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: June 04, 2009</p> + <p>Last Updated: June 05, 2009</p> </td> </tr> </table> @@ -800,11 +800,10 @@ </p> <p> <b>STATUS:</b> - Coding is complete on the basic port (boot logic, system time, serial console), - and some testing has been performed. The board boots and console output is - visible on UART0. However, due to problems I am having with my J-TAG debug - environment, testing is incomplete. If you have a good development environemnt, - it should not take too much more effort to get this port up and running. + Integration is complete on the basic port (boot logic, system time, serial console), + The board boots and passes the OS test with console output visible on UART0. + Additional drivers are needed: SPI, USB, to name two. It should not take too much + more effort to get this port up and running. </p> </td> </tr> @@ -1426,6 +1425,8 @@ nuttx-0.4.8 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * arch/arm/src/str71x: Serial output is now correct and timer interrupts are working. The test at configs/olimex-strp711/ostest passes. This means that the basic STR-P711 port is complete. + * configs/olimex-strp711/nsh: Add a NuttShell (NSH) configuration for the + STR-P711. pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From c72594d3dc1191aabca65d29a9cc9df40d6ec6e8 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 7 Jun 2009 15:48:01 +0000 Subject: [PATCH 0451/1518] Drastic measures to work around missed interrupts -- must be a better way git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1860 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index bd9aced781..13ff8a3735 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: June 05, 2009</p> + <p>Last Updated: June 07, 2009</p> </td> </tr> </table> @@ -781,7 +781,8 @@ This port boots and passes the OS test (examples/ostest). The port is complete and verified. As of NuttX 0.3.17, the port includes: timer interrupts, serial console, USB driver, and SPI-based MMC/SD card - support. A verified NuttShell (NSH) configuration is also available. + support. A verified NuttShell <a href="NuttShell.html">(NSH)</a> + configuration is also available. </p> </td> </tr> @@ -800,10 +801,11 @@ </p> <p> <b>STATUS:</b> - Integration is complete on the basic port (boot logic, system time, serial console), - The board boots and passes the OS test with console output visible on UART0. - Additional drivers are needed: SPI, USB, to name two. It should not take too much - more effort to get this port up and running. + Integration is complete on the basic port (boot logic, system time, serial console). + Two configurations have been verified: (1) The board boots and passes the OS test + with console output visible on UART0, and the NuttShell <a href="NuttShell.html">(NSH)</a> + is fully functional with interrupt driven serial console. An SPI driver is available + but untested. Additional features are needed: USB driver, MMC/SD support, to name two. </p> </td> </tr> @@ -1425,8 +1427,11 @@ nuttx-0.4.8 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * arch/arm/src/str71x: Serial output is now correct and timer interrupts are working. The test at configs/olimex-strp711/ostest passes. This means that the basic STR-P711 port is complete. - * configs/olimex-strp711/nsh: Add a NuttShell (NSH) configuration for the - STR-P711. + * configs/olimex-strp711/nsh: Add and verifed a NuttShell (NSH) configuration + for the STR-P711. + * arch/arm/str71x/str71x_serial.c: The STR711 interrupt driven serial driver + finally works after some extradinary measures to handle missed interrupts. + NSH is fully functional on the Olimex STR-P711 board. pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 3df4e1a441fcd469715e37d57ef6df60d025d283 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 8 Jun 2009 13:24:26 +0000 Subject: [PATCH 0452/1518] Move board specific files from examples/nsh to board source directories git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1861 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttShell.html | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index 2ebad0a744..788e9ab004 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttShell (NSH)</i></font></big></h1> - <p>Last Updated: March 28, 2009</p> + <p>Last Updated: June 08, 2009</p> </td> </tr> </table> @@ -2076,6 +2076,15 @@ nsh> access NSH. </td> </tr> + <tr> + <td valign="top"><b><code>CONFIG_EXAMPLES_NSH_ARCHINIT</code></b></td> + <td> + Set <code>CONFIG_EXAMPLES_NSH_ARCHINIT</code> if your board provides architecture + specific initialization via the board-specific function <code>nsh_archinitialize()</code>. + This function will be called early in NSH initialization to allow board logic to + do such things as configure MMC/SD slots. + </td> + </tr> </table></center> <p> From bb8d996c068435b0de854b4cce97d6245e251d00 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 8 Jun 2009 14:18:41 +0000 Subject: [PATCH 0453/1518] cosmetic git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1862 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 13ff8a3735..7898b9d148 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: June 07, 2009</p> + <p>Last Updated: June 08, 2009</p> </td> </tr> </table> @@ -1432,6 +1432,10 @@ nuttx-0.4.8 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * arch/arm/str71x/str71x_serial.c: The STR711 interrupt driven serial driver finally works after some extradinary measures to handle missed interrupts. NSH is fully functional on the Olimex STR-P711 board. + * example/nsh: Moved architecture specific files from NSH directory to board- + specific directories. + * config/olimex-strp711/src/up_nsh.c: Add an NSH board specific directory for + for the Olimex STR7P11 board. pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 2f357e228b50cd27489be0ab5ddabd44cbadc3cb Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 8 Jun 2009 14:59:15 +0000 Subject: [PATCH 0454/1518] Oops STR7P11 only accepts MMC cards git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1864 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 7898b9d148..03da645972 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -805,7 +805,8 @@ Two configurations have been verified: (1) The board boots and passes the OS test with console output visible on UART0, and the NuttShell <a href="NuttShell.html">(NSH)</a> is fully functional with interrupt driven serial console. An SPI driver is available - but untested. Additional features are needed: USB driver, MMC/SD support, to name two. + but untested (because the Olimex card slot appears to accept only MMC cards; I have + only SD cards). Additional features are needed: USB driver, MMC integration, to name two. </p> </td> </tr> From 3424837817788ce66141d3f6e767813c912104f2 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 10 Jun 2009 02:05:05 +0000 Subject: [PATCH 0455/1518] Fixes for build CodeSourcery toolchain git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1868 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 03da645972..7cb216ee97 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: June 08, 2009</p> + <p>Last Updated: June 09, 2009</p> </td> </tr> </table> @@ -1437,6 +1437,9 @@ nuttx-0.4.8 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; specific directories. * config/olimex-strp711/src/up_nsh.c: Add an NSH board specific directory for for the Olimex STR7P11 board. + * Fixed build of LM3X6918 using the CodeSourcery Windows native toolchain. There + were lots of issues with Cygwin paths and Cygwin symbolic links. These changes + may work with the devarmKIT as well, but that remains untested. pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 4531a88a09be579cde3393e3be4162ab86e24612 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 11 Jun 2009 14:47:03 +0000 Subject: [PATCH 0456/1518] Add support for Windows GCC to lpc2148 and str711 git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1875 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 54 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 49 insertions(+), 5 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 7cb216ee97..66c3ecdaef 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: June 09, 2009</p> + <p>Last Updated: June 11, 2009</p> </td> </tr> </table> @@ -784,6 +784,14 @@ support. A verified NuttShell <a href="NuttShell.html">(NSH)</a> configuration is also available. </p> + <p> + <b>Development Environments:</b> + 1) Linux with native Linux GNU toolchain, 2) Cygwin with Cygwin GNU toolchain, or 3) Cygwin + with Windows native toolchain (CodeSourcery or devkitARM). A DIY toolchain for Linux + or Cygwin is provided by the NuttX + <a href="http://sourceforge.net/project/showfiles.php?group_id=189573&package_id=224585">buildroot</a> + package. + </p> </td> </tr> <tr> @@ -807,7 +815,15 @@ is fully functional with interrupt driven serial console. An SPI driver is available but untested (because the Olimex card slot appears to accept only MMC cards; I have only SD cards). Additional features are needed: USB driver, MMC integration, to name two. - </p> + </p> + <p> + <b>Development Environments:</b> + 1) Linux with native Linux GNU toolchain, 2) Cygwin with Cygwin GNU toolchain, or 3) Cygwin + with Windows native toolchain (CodeSourcery or devkitARM). A DIY toolchain for Linux + or Cygwin is provided by the NuttX + <a href="http://sourceforge.net/project/showfiles.php?group_id=189573&package_id=224585">buildroot</a> + package. + </p> </td> </tr> <tr> @@ -877,6 +893,14 @@ There are working configurations the NuttX OS test, to run the <a href="NuttShell.html">NuttShell (NSH)</a>, the NuttX networking test, and the uIP web server. </p> + <p> + <b>Development Environments:</b> + 1) Linux with native Linux GNU toolchain, 2) Cygwin with Cygwin GNU toolchain, or 3) Cygwin + with Windows native toolchain (CodeSourcery or devkitARM). A DIY toolchain for Linux + or Cygwin is provided by the NuttX + <a href="http://sourceforge.net/project/showfiles.php?group_id=189573&package_id=224585">buildroot</a> + package. + </p> </td> </tr> @@ -1216,11 +1240,29 @@ m68k, m68hc11, m68hc12, and SuperH ports.</blockquote> specific directories in place. These copied directories make work a little more complex, but otherwise work well. </p> + <li> + <b>Dependencies</b> + NuttX uses the GCC compiler's <code>-M</code> option to generate make dependencies. These + dependencies are retained in files called <code>Make.deps</code> throughout the system. + For compilers other than GCC, there is no support for making dependencies in this way. + For Windows native GCC compilers, the generated dependencies are windows paths and not + directly usable in the Cygwin make. By default, dependencies are surpressed for these + compilers as well. + </li> + <p><small> + NOTE: dependencies are suppress by setting the make variable <code>MKDEPS</code> to point + to the do-nothing dependency script, <code>tools/mknulldeps.sh</code>. + Dependencies can be enabled for the Windows native GCC compilers by setting + <code>MKDEPS</code> to point to <code>$(TOPDIR)/tools/mkdeps.sh --winpaths $(TOPDIR)</code>. + </small></p> </ul> <p> - At present, only the Zilog Z16F, z8Encore, and eZ80Acclaim ports use a native Windows toolchain - (the Zilog ZDS-II toolchain). - </p. + At present, only the Zilog Z16F, z8Encore, and eZ80Acclaim ports use a non-GCC native Windows + toolchain(the Zilog ZDS-II toolchain). + Support for Windows native GCC toolchains (CodeSourcery and devkitARM) is currently implemented + for the NXP LPC214x, STMicro STR71x, and Luminary LMS6918 ARM ports. + (but could easily be extended to any other GCC-based platform with a small effort). + </p> </td> </tr> @@ -1440,6 +1482,8 @@ nuttx-0.4.8 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Fixed build of LM3X6918 using the CodeSourcery Windows native toolchain. There were lots of issues with Cygwin paths and Cygwin symbolic links. These changes may work with the devarmKIT as well, but that remains untested. + * The NXP LPC2148 and STR711 targets can now also be built using the CodeSourcery + or devkitARM Windows native toolchains. pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 9da3aa8c223a5af616566dd18856204f94cd6e4d Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 11 Jun 2009 21:38:25 +0000 Subject: [PATCH 0457/1518] update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1878 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 66c3ecdaef..0d8dd5569c 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1127,7 +1127,7 @@ m68k, m68hc11, m68hc12, and SuperH ports.</blockquote> <tr> <td valign="top"><img height="20" width="20" src="favicon.ico"></td> <td bgcolor="#5eaee1"> - <b>Linux + GNU make + GCC/binutils</b> + <b>Linux + GNU <code>make</code> + GCC/binutils</b> </td> </tr> <tr> @@ -1151,7 +1151,7 @@ m68k, m68hc11, m68hc12, and SuperH ports.</blockquote> <tr> <td valign="top"><img height="20" width="20" src="favicon.ico"></td> <td bgcolor="#5eaee1"> - <b>Linux + GNU make + SDCC</b> + <b>Linux + GNU <code>make</code> + SDCC</b> </td> </tr> <tr> @@ -1170,7 +1170,7 @@ m68k, m68hc11, m68hc12, and SuperH ports.</blockquote> <tr> <td valign="top"><img height="20" width="20" src="favicon.ico"></td> <td bgcolor="#5eaee1"> - <b>Cygwin + GNU make + GCC/binutils</b> + <b>Cygwin + GNU <code>make</code> + GCC/binutils</b> </td> </tr> <tr> @@ -1189,7 +1189,7 @@ m68k, m68hc11, m68hc12, and SuperH ports.</blockquote> <tr> <td valign="top"><img height="20" width="20" src="favicon.ico"></td> <td bgcolor="#5eaee1"> - <b>Cygwin + GNU make + SDCC</b> + <b>Cygwin + GNU <code>make</code> + SDCC</b> </td> </tr> <tr> @@ -1204,7 +1204,7 @@ m68k, m68hc11, m68hc12, and SuperH ports.</blockquote> <tr> <td valign="top"><img height="20" width="20" src="favicon.ico"></td> <td bgcolor="#5eaee1"> - <b>Cygwin + GNU make + Windows Native Toolchain</b> + <b>Cygwin + GNU <code>make</code> + Windows Native Toolchain</b> </td> </tr> <tr> @@ -1257,6 +1257,7 @@ m68k, m68hc11, m68hc12, and SuperH ports.</blockquote> </small></p> </ul> <p> + <b>Supported Windows Native Toolchains</b>. At present, only the Zilog Z16F, z8Encore, and eZ80Acclaim ports use a non-GCC native Windows toolchain(the Zilog ZDS-II toolchain). Support for Windows native GCC toolchains (CodeSourcery and devkitARM) is currently implemented @@ -1269,21 +1270,31 @@ m68k, m68hc11, m68hc12, and SuperH ports.</blockquote> <tr> <td valign="top"><img height="20" width="20" src="favicon.ico"></td> <td bgcolor="#5eaee1"> - <b>Other Environments?</b> + <b>Other Environments? + Windows Native <code>make</code> + Windows Native Toolchain?</b> </td> </tr> <tr> <td><br></td> <td> <p> + <b>Environment Dependencies</b>. The primary environmental dependency of NuttX are (1) GNU make, - (2) bash scripting, and (3) Linux utilities (such as sed). + (2) bash scripting, and (3) Linux utilities (such as cat, sed, etc.). If you have other platforms that support GNU make or make utilities that are compatible with GNU make, then it is very likely that NuttX would work in that environment as well (with some porting effort). If GNU make is not supported, then some significant modification of the Make system would be required. </p> + <p> + <b>GNUWin32</b>. + For example, with suitable make system changes, it should be possible to + use native GNU tools (such as those from + <a href="http://sourceforge.net/projects/gnuwin32/">GNUWin32</a>) + to build NuttX. + However, that environment has not been used as of this writing. + </p> </td> </tr> </table></center> From a96d7af1b7264c156a9d4c3a677b50dfe7f59dee Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 13 Jun 2009 14:29:41 +0000 Subject: [PATCH 0458/1518] Prep for 0.4.8 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1882 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 108 +++++++++++++++------------------------ 1 file changed, 41 insertions(+), 67 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 0d8dd5569c..3235811d5c 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: June 11, 2009</p> + <p>Last Updated: June 13, 2009</p> </td> </tr> </table> @@ -687,32 +687,34 @@ </tr> </table> -<p><b>nuttx-0.4.7</b>. - The 39<sup>th</sup> release of NuttX (nuttx-0.4.7) was made on May 29, 2009 and is available for download - from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> +<p><b>nuttx-0.4.8</b>. + This 40<sup>th</sup> release of NuttX (nuttx-0.4.8) was made on June 13, 2009 + and is available for download from the + <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. The change log associated with the release is available <a href="#currentrelease">here</a>. Unreleased changes after this release are available in CVS. These unreleased changes are listed <a href="#pendingchanges">here</a>. </p> -<p> - This release focuses on cleaning up and extending the Eagle100/LM3S6918 port released - in nuttx-0.4.6 and on improved MMC/SD support. New features include: + This release adds: <ul> - <li> - Improved reliably and additional drivers for the Eagle-100 board (LM3S6918 - ARM Cortex-M3). Additional drivers include Ethernet, SSI, and support for - the on-board LEDs and microSD cards. - </li> - <li> - The SPI-based MMC/SD driver was extended to support SDHC Version 2.xx cards. - </li> + <li> + Support for the Olimex STRP711 board. That board is based on the STMicro + STR711 MCU (ARM7TDMI). Integration is complete on the basic port (boot logic, + system time, serial console). Two configurations have been verified: (1) The + board boots and passes the OS test with console output visible on UART0, and + the NuttShell (NSH) is fully functional with interrupt driven serial console. + An SPI driver is available but untested (because the Olimex card slot appears + to accept only MMC cards; I have only SD cards). Additional needed: USB and + driver, MMC integration. + </li> + <li> + Support for the CodeSourcery and devkitARM Windows-native GNU toolchains. + Makefiles have been modified for the LM3S6918, LPC2148, and STR711 to support + these toolchains under Cygwin. + </li> </ul> </p> -<p> - In addition, this release includes several important bugfixes for the LM3S6918, the LPC2148, - the SPI-based MMC/SD driver, and to FAT32. See the ChangeLog for details of these bugfixes. -</p> <table width ="100%"> <tr bgcolor="#e4e4e4"> @@ -1416,35 +1418,26 @@ Other memory: </table> <pre><ul> -nuttx-0.4.7 2009-05-29 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; +nuttx-0.4.8 2009-06-13 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - * arch/arm/src/lm3s: Added an Ethernet driver for the LM3S6918 - * configs/eagle100/nettest: Added an examples/nettest configuration for the - Micromint Eagle100 board. - * Documentation/NuttxPortingGuide.html: Added a section on NuttX device drivers. - * configs/eagle100/httpd: Added an examples/uip configuration for the - Micromint Eagle100 board. - * arch/arm/src/lm3s: Added an SSI driver for the LM3S6918 - * examples/nsh: Added MMC/SD support for the LM3S6918 - * arch/arm/src/lm3s: Fix logic for setting and clearing output GPIOs (critical - fix!). - * drivers/mmcsd: Found numerous errors in current MMC/SD SPI driver. Bad frequency - calculation based on CSD settings, inappropriate timeouts, odd code that looks like - a bad search and replace. Also needs support for SDHC ver 2.x. New MMC/SD is - largely redesigned and probably non-functional in the first check-in. - * drivers/mmcsd: Changes verified on 4Gb Kingston microSHDC card and on a 2Gb - SanDisk microSDC card on the Eagle100 platform. - * fs/fat: With the 4Gb card, the first tests of FAT32 were (finally) performed. - Found and corrected a problem that prevented use of FAT32: It was not updating - the sector cache before checking the FAT32 FSINFO sector. - * configs/eagle100/*/Make.defs: Added configuration options that should make - it possible to build NuttX for the Eagle100 using CodeSourcery 2009q1 toolchain - and the devkitARM GNU toolchain. - * configs/mcu123-lpc214x/src: Corrected some logic in the LPC2148 SPI receive block - logic. Re-verified SDC ver1.x support with 1Gb Toshiba SDC, 1Gb PNY SDC, and - 4Gb Kingston SDHC. There are CMD0 issues with the 2Gb SanDisk SDC on this board. - * fs/fs_mount.c: Corrected error handling that could cause a deadlock on certain - mount() failures. + * lib/lib_*stream.c: Extend internal stream logic to support incoming streams. + * arch/arm/src/str71x: Serial output is now correct and timer interrupts are + working. The test at configs/olimex-strp711/ostest passes. This means that + the basic STR-P711 port is complete. + * configs/olimex-strp711/nsh: Add and verifed a NuttShell (NSH) configuration + for the STR-P711. + * arch/arm/str71x/str71x_serial.c: The STR711 interrupt driven serial driver + finally works after some extradinary measures to handle missed interrupts. + NSH is fully functional on the Olimex STR-P711 board. + * example/nsh: Moved architecture specific files from NSH directory to board- + specific directories. + * config/olimex-strp711/src/up_nsh.c: Add an NSH board specific directory for + for the Olimex STR7P11 board. + * Fixed build of LM3X6918 using the CodeSourcery Windows native toolchain. There + were lots of issues with Cygwin paths and Cygwin symbolic links. These changes + may work with the devarmKIT as well, but that remains untested. + * The NXP LPC2148 and STR711 targets can now also be built using the CodeSourcery + or devkitARM Windows native toolchains. pascal-0.1.2 2008-02-10 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; @@ -1475,26 +1468,7 @@ buildroot-0.1.6 2009-xx-xx &lt;spudmonkey@racsa.co.cr&gt; </table> <pre><ul> -nuttx-0.4.8 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - - * lib/lib_*stream.c: Extend internal stream logic to support incoming streams. - * arch/arm/src/str71x: Serial output is now correct and timer interrupts are - working. The test at configs/olimex-strp711/ostest passes. This means that - the basic STR-P711 port is complete. - * configs/olimex-strp711/nsh: Add and verifed a NuttShell (NSH) configuration - for the STR-P711. - * arch/arm/str71x/str71x_serial.c: The STR711 interrupt driven serial driver - finally works after some extradinary measures to handle missed interrupts. - NSH is fully functional on the Olimex STR-P711 board. - * example/nsh: Moved architecture specific files from NSH directory to board- - specific directories. - * config/olimex-strp711/src/up_nsh.c: Add an NSH board specific directory for - for the Olimex STR7P11 board. - * Fixed build of LM3X6918 using the CodeSourcery Windows native toolchain. There - were lots of issues with Cygwin paths and Cygwin symbolic links. These changes - may work with the devarmKIT as well, but that remains untested. - * The NXP LPC2148 and STR711 targets can now also be built using the CodeSourcery - or devkitARM Windows native toolchains. +nuttx-0.4.9 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 5c8fd62c28418f0c36fecc562a301b5879c09b98 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 14 Jun 2009 15:36:18 +0000 Subject: [PATCH 0459/1518] Add strtoul, strtoll, strtoull, atol, and atoll. git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1883 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 3235811d5c..044938d8d9 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: June 13, 2009</p> + <p>Last Updated: June 14, 2009</p> </td> </tr> </table> @@ -1470,6 +1470,8 @@ buildroot-0.1.6 2009-xx-xx &lt;spudmonkey@racsa.co.cr&gt; <pre><ul> nuttx-0.4.9 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + * Add strtoll() and strtoull(); Add macros for atol() and atoll(). + pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; buildroot-0.1.7 2009-xx-xx &lt;spudmonkey@racsa.co.cr&gt; From 6b9ae00230be520d482990055b84f91ebe0734be Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 15 Jun 2009 19:50:06 +0000 Subject: [PATCH 0460/1518] Add logic to clone socket descriptors when a new task is started. git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1885 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 5 ++++- Documentation/NuttxPortingGuide.html | 15 ++++++++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 044938d8d9..f47a76af88 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: June 14, 2009</p> + <p>Last Updated: June 15, 2009</p> </td> </tr> </table> @@ -1471,6 +1471,9 @@ buildroot-0.1.6 2009-xx-xx &lt;spudmonkey@racsa.co.cr&gt; nuttx-0.4.9 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Add strtoll() and strtoull(); Add macros for atol() and atoll(). + * dup() and dup2() will now clone socket descriptors + * All socket descriptors ar now cloned when when a new task is started + via task_create(). pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 02155fe126..23eeb5cb9e 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@ <h1><big><font color="#3c34ec"> <i>NuttX RTOS Porting Guide</i> </font></big></h1> - <p>Last Updated: May 28, 2009</p> + <p>Last Updated: June 15, 2009</p> </td> </tr> </table> @@ -2065,6 +2065,19 @@ extern void up_ledoff(int led); This value may be set to zero if no more than one thread is expected to wait for a semaphore. </li> + <li> + <code>CONFIG_FDCLONE_DISABLE</code>: Disable cloning of all file descriptors + by task_create() when a new task is started. + </li> + <li> + <code>CONFIG_FDCLONE_STDIO</code>: Disable cloning of all but the first + three file descriptors (stdin, stdout, stderr) by task_create() + when a new task is started. + </li> + <li> + <code>CONFIG_SDCLONE_DISABLE</code>: Disable cloning of all socket + desciptors by task_create() when a new task is started. + </li> </ul> <p> From a2204a8e89287c7928af7c1ada5ea5f090b993d8 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 15 Jun 2009 21:44:27 +0000 Subject: [PATCH 0461/1518] Add conditional compilation to eliminate or limit cloning of descriptors when a new task is created git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1886 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 23eeb5cb9e..48a6b5fd98 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -2067,16 +2067,20 @@ extern void up_ledoff(int led); </li> <li> <code>CONFIG_FDCLONE_DISABLE</code>: Disable cloning of all file descriptors - by task_create() when a new task is started. + by task_create() when a new task is started. + If set, all files/drivers will appear to be closed in the new task. </li> <li> <code>CONFIG_FDCLONE_STDIO</code>: Disable cloning of all but the first three file descriptors (stdin, stdout, stderr) by task_create() when a new task is started. + If set, all files/drivers will appear to be closed in the new task except + for stdin, stdout, and stderr. </li> <li> <code>CONFIG_SDCLONE_DISABLE</code>: Disable cloning of all socket desciptors by task_create() when a new task is started. + If set, all sockets will appear to be closed in the new task. </li> </ul> From 6b2d79d07fb4ed1eeba65aa1b4af32f94a90dc10 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 16 Jun 2009 23:23:31 +0000 Subject: [PATCH 0462/1518] Reserved word 'private' in C header files is a problem for C++ git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1890 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index f47a76af88..1343756eb1 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: June 15, 2009</p> + <p>Last Updated: June 16, 2009</p> </td> </tr> </table> @@ -1474,6 +1474,8 @@ nuttx-0.4.9 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * dup() and dup2() will now clone socket descriptors * All socket descriptors ar now cloned when when a new task is started via task_create(). + * Use of C++ reserved word 'private' in C header files causes problems + for C++ that include them. pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 31aa428cc1798d8edf198bf96bd45f74a4d00e5f Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 17 Jun 2009 16:42:33 +0000 Subject: [PATCH 0463/1518] add description of new directories git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1893 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 81 ++++++++++++++++++---------- 1 file changed, 52 insertions(+), 29 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 48a6b5fd98..bc36b19ac1 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@ <h1><big><font color="#3c34ec"> <i>NuttX RTOS Porting Guide</i> </font></big></h1> - <p>Last Updated: June 15, 2009</p> + <p>Last Updated: June 17, 2009</p> </td> </tr> </table> @@ -37,28 +37,30 @@ <a href="#summaryofarchfiles">2.2.2 Summary of Files</a><br> <a href="#supportedarchitectures">2.2.3 Supported Architectures</a> </ul> - <a href="#DirStructConfigs">2.3 configs/</a> + <a href="#DirStructBinFmt">2.2 binfmt/</a><br> + <a href="#DirStructConfigs">2.4 configs/</a> <ul> <a href="#configsdirectorystructure">2.3.1 Subdirectory Structure</a><br> <a href="#summaryofconfigfiles">2.3.2 Summary of Files</a> <ul> - <a href="#boardlogic">2.3.2.1 Board Specific Logic</a><br> + <a href="#boardlogic">2.4.2.1 Board Specific Logic</a><br> <a href="#boardconfigsubdirs">2.3.2.2 Board Specific Configuration Sub-Directories</a> </ul> - <a href="#supportedboards">2.3.3 Supported Boards</a> + <a href="#supportedboards">2.4.3 Supported Boards</a> </ul> - <a href="#DirStructDrivers">2.4 drivers/</a><br> - <a href="#DirStructExamples">2.5 examples/</a><br> - <a href="#DirStructFs">2.6 fs/</a><br> - <a href="#DirStructGraphics">2.7 graphics/</a><br> - <a href="#DirStructInclude">2.8 include/</a><br> - <a href="#DirStructLib">2.9 lib/</a><br> - <a href="#DirStructMm">2.10 mm/</a><br> - <a href="#DirStructNet">2.11 net</a><br> - <a href="#DirStructNetUtils">2.12 netutils</a><br> - <a href="#DirStructSched">2.13 sched/</a><br> - <a href="#DirStructTools">2.14 tools/</a><br> - <a href="#topmakefile">2.15 Makefile</a> + <a href="#DirStructDrivers">2.5 drivers/</a><br> + <a href="#DirStructExamples">2.6 examples/</a><br> + <a href="#DirStructFs">2.7 fs/</a><br> + <a href="#DirStructGraphics">2.8 graphics/</a><br> + <a href="#DirStructInclude">2.9 include/</a><br> + <a href="#DirStructLib">2.10 lib/</a><br> + <a href="#DirStructLibXX">2.11 libxx/</a><br> + <a href="#DirStructMm">2.12 mm/</a><br> + <a href="#DirStructNet">2.13 net</a><br> + <a href="#DirStructNetUtils">2.14 netutils</a><br> + <a href="#DirStructSched">2.15 sched/</a><br> + <a href="#DirStructTools">2.16 tools/</a><br> + <a href="#topmakefile">2.17 Makefile</a> </ul> <a href="#configandbuild">3.0 Configuring and Building</a> <ul> @@ -170,6 +172,11 @@ | | |--<i>&lt;other-chips&gt;</i>/ | | `-- <i>(architecture-specific source files)</i> | `-- <i>&lt;other-architecture directories&gt;</i>/ +|-- <a href="#DirStructBinFmt">binfmt</a>/ +| |-- Makefile +| |-- <i>(binfmt-specific sub-directories)</i>/ +| | `-- <i>(binfmt-specific source files)</i> +| `-- <i>(common binfmt source files)</i> |-- <a href="#DirStructConfigs">configs</a>/ | |-- <i>&lt;board-name&gt;</i>/ | | |-- include/ @@ -208,6 +215,9 @@ |-- <a href="#DirStructLib">lib</a>/ | |-- Makefile | `-- <i>(lib source files)</i> +|-- <a href="#DirStructLibXX">libxx</a>/ +| |-- Makefile +| `-- <i>(libxx management source files)</i> |-- <a href="#DirStructMm">mm</a>/ | |-- Makefile | `-- <i>(memory management source files)</i> @@ -507,7 +517,14 @@ of progress </p> -<h2>2.3 <a name="DirStructConfigs">configs</a></h2> +<h2>2.3 <a name="DirStructBinFmt">binfmt</a></h2> + +<p> + The <code>binfmt/</code> subdirectory contains logic for loading binaries in the file + system into memory in a form that can be used to execute them. +</p> + +<h2>2.4 <a name="DirStructConfigs">configs</a></h2> <p> The <code>configs/</code> subdirectory contains configuration data for each board. These board-specific configurations plus the architecture-specific configurations in @@ -722,7 +739,7 @@ is available to build these toolchains under Linux or Cygwin. </blockquote></small></p> -<h2>2.4 <a name="DirStructDrivers">drivers</a></h2> +<h2>2.5 <a name="DirStructDrivers">drivers</a></h2> <p> This directory holds architecture-independent device drivers. @@ -745,13 +762,13 @@ drivers/ `-- <i>(common driver source files)</i> </pre></ul> -<h2>2.5 <a name="DirStructExamples">examples</a></h2> +<h2>2.6 <a name="DirStructExamples">examples</a></h2> <p> Example and test programs to build against. </p> -<h2>2.6 <a name="DirStructFs">fs</a></h2> +<h2>2.7 <a name="DirStructFs">fs</a></h2> <p> This directory contains the NuttX file system. @@ -769,7 +786,7 @@ fs/ `-- <i>(common file system source files)</i> </pre></ul> -<h2>2.7 <a name="DirStructGraphics">graphics</a></h2> +<h2>2.8 <a name="DirStructGraphics">graphics</a></h2> <p> This directory contains files for graphics/video support under NuttX. @@ -786,7 +803,7 @@ graphics/ `-- <i>(common file system source files)</i> </pre></ul> -<h2>2.8 <a name="DirStructInclude">include</a></h2> +<h2>2.9 <a name="DirStructInclude">include</a></h2> <p> This directory holds NuttX header files. Standard header files file retained in can be included in the <i>normal</i> fashion: @@ -815,24 +832,30 @@ include/ `-- <i>(more standard header files)</i> </per></ul> -<h2>2.9 <a name="DirStructLib">lib</a></h2> +<h2>2.10 <a name="DirStructLib">lib</a></h2> <p> This directory holds a collection of standard libc-like functions with custom interfaces into NuttX. </p> -<h2>2.10 <a name="DirStructMm">mm</a></h2> +<h2>2.11 <a name="DirStructLibXX">libxx</a></h2> +<p> + This directory holds a tiny, minimal standard std C++ that can be used to + build some, simple C++ applications in NuttX. +</p> + +<h2>2.12 <a name="DirStructMm">mm</a></h2> <p> This is the NuttX memory manager. </p> -<h2>2.11 <a name="DirStructNet">net</a></h2> +<h2>2.13 <a name="DirStructNet">net</a></h2> <p> This directory contains the implementation of the socket APIs. The subdirectory, <code>uip</code> contains the uIP port. </P> -<h2>2.12 <a name="DirStructNetUtils">netutils</a></h2> +<h2>2.14 <a name="DirStructNetUtils">netutils</a></h2> <p> This directory contains most of the network applications. Some of these are original with NuttX (like tftpc and dhcpd) and others were leveraged from the uIP-1.0 apps directory. @@ -871,12 +894,12 @@ netutils/ `-- <i>(netutils common files)</i> </pre></ul> -<h2>2.13 <a name="DirStructSched">sched</a></h2> +<h2>2.15 <a name="DirStructSched">sched</a></h2> <p> The files forming core of the NuttX RTOS reside here. </p> -<h2>2.14 <a name="DirStructTools">tools</a></h2> +<h2>2.16 <a name="DirStructTools">tools</a></h2> <p> This directory holds a collection of tools and scripts to simplify configuring, building and maintaining NuttX. @@ -897,7 +920,7 @@ tools/ `-- zipme </pre></ul> -<h2>2.15 <a name="topmakefile">Makefile</a></h2> +<h2>2.17 <a name="topmakefile">Makefile</a></h2> <p> The top-level <code>Makefile</code> in the <code>${TOPDIR}</code> directory contains all of the top-level control logic to build NuttX. From 8ef5953fa5fb8ce7ad03dc0a53182be7165c3066 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 17 Jun 2009 20:25:27 +0000 Subject: [PATCH 0464/1518] Add exec_module git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1895 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 1343756eb1..68b3d4d814 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: June 16, 2009</p> + <p>Last Updated: June 17, 2009</p> </td> </tr> </table> @@ -1476,6 +1476,11 @@ nuttx-0.4.9 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; via task_create(). * Use of C++ reserved word 'private' in C header files causes problems for C++ that include them. + * Added 'binfmt' support to allow execution of programs in a file system, + binding to NuttX symbols. A custom format call NXFLAT is used; this + derives from http://xflat.sourceforge.net. At present is supports on + XIP execution from ROMFS file systems. Initial check-in is untested + and probably breaks many builds. pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 88fe2c594afc110222835e5adfa81d03ab859ac3 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 18 Jun 2009 21:17:53 +0000 Subject: [PATCH 0465/1518] Integrated mknxflat git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1905 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 ++- Documentation/NuttxPortingGuide.html | 7 ++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 68b3d4d814..cb637824d2 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: June 17, 2009</p> + <p>Last Updated: June 18, 2009</p> </td> </tr> </table> @@ -1488,6 +1488,7 @@ buildroot-0.1.7 2009-xx-xx &lt;spudmonkey@racsa.co.cr&gt; * configs/avr-defconfig-4.3.3: Added support for AVR to support a NuttX port of the ATmega128. + * toolchain/nxflat: Added logic to build NuttX NXFLAT binding support tools </pre></ul> <table width ="100%"> diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index bc36b19ac1..2580cf0b03 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@ <h1><big><font color="#3c34ec"> <i>NuttX RTOS Porting Guide</i> </font></big></h1> - <p>Last Updated: June 17, 2009</p> + <p>Last Updated: June 18, 2009</p> </td> </tr> </table> @@ -2104,6 +2104,11 @@ extern void up_ledoff(int led); <code>CONFIG_SDCLONE_DISABLE</code>: Disable cloning of all socket desciptors by task_create() when a new task is started. If set, all sockets will appear to be closed in the new task. + </li>: + <li> + <code>CONFIG_NXFLAT</code>: Enable support for the NXFLAT binary format. + This format will support execution of NuttX binaries located + in a ROMFS filesystem (see <code>examples/nxflat</code>). </li> </ul> From a7b10a2562bf803febef6a396755db02712c3f45 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 20 Jun 2009 19:17:08 +0000 Subject: [PATCH 0466/1518] Add symbol table support git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1917 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index cb637824d2..716654e4b9 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: June 18, 2009</p> + <p>Last Updated: June 20, 2009</p> </td> </tr> </table> @@ -1481,6 +1481,8 @@ nuttx-0.4.9 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; derives from http://xflat.sourceforge.net. At present is supports on XIP execution from ROMFS file systems. Initial check-in is untested and probably breaks many builds. + * examples/lib: Added qsort() + * examples/nxflat: Added support for symbol tables pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From f56c5bc24e216048dcd6faa00240cec2c5fa2ddb Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 24 Jun 2009 14:38:15 +0000 Subject: [PATCH 0467/1518] update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1939 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 716654e4b9..bc6bfb91c8 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: June 20, 2009</p> + <p>Last Updated: June 24, 2009</p> </td> </tr> </table> @@ -1491,6 +1491,7 @@ buildroot-0.1.7 2009-xx-xx &lt;spudmonkey@racsa.co.cr&gt; * configs/avr-defconfig-4.3.3: Added support for AVR to support a NuttX port of the ATmega128. * toolchain/nxflat: Added logic to build NuttX NXFLAT binding support tools + * toolchain/genromfs: Added support for the genromfs tool </pre></ul> <table width ="100%"> From 623732415fda4af866c5f9509f61082d9e786333 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 24 Jun 2009 20:57:34 +0000 Subject: [PATCH 0468/1518] Fix a problem that was causing tools/incdir.sh to generate inappropriate paths for Cygwin tools git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1941 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index bc6bfb91c8..be4af316c5 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1483,6 +1483,10 @@ nuttx-0.4.9 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; and probably breaks many builds. * examples/lib: Added qsort() * examples/nxflat: Added support for symbol tables + * Correct logic that creates compiler include paths. On Cygwin, the + include paths for Cygwin-based GCC were being converted to windows + native paths. That causes many problems -- breaking dependencies + for one. pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 36017ee4a49e79cff137dba06f0fff7e0eb4011a Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 24 Jun 2009 23:33:33 +0000 Subject: [PATCH 0469/1518] Fix a bug in initial XIP offset git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1942 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index be4af316c5..fdde2880ec 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1487,6 +1487,9 @@ nuttx-0.4.9 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; include paths for Cygwin-based GCC were being converted to windows native paths. That causes many problems -- breaking dependencies for one. + * Fixed an important bug in ROMFS. The initial XIP offset was set + incorrectly so if sector zero was read first, there was a bad read. + I don't know how it worked before. pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 09c26d356a1ef7d264307e6308d601afc4e229ec Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 25 Jun 2009 17:44:35 +0000 Subject: [PATCH 0470/1518] 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 --- Documentation/NXGraphicsSubsystem.html | 2 +- Documentation/NuttShell.html | 4 ++-- Documentation/NuttX.html | 2 +- Documentation/NuttxUserGuide.html | 6 +++--- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Documentation/NXGraphicsSubsystem.html b/Documentation/NXGraphicsSubsystem.html index 6374c3ca78..6d4597acfb 100644 --- a/Documentation/NXGraphicsSubsystem.html +++ b/Documentation/NXGraphicsSubsystem.html @@ -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). diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index 788e9ab004..4cc4c41255 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -1348,7 +1348,7 @@ mount -t &lt;fstype&gt; &lt;block-device&gt; <code>&lt;dir-path&gt;</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> diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index fdde2880ec..27873d291c 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -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> diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 6a8ee1847c..3fc63d6ad6 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -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> From 8c529d88b89e133c9515827d5dab321053f41bf3 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 25 Jun 2009 23:50:07 +0000 Subject: [PATCH 0471/1518] ChangeLog git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1956 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 27873d291c..0dfc4d0e0a 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: June 24, 2009</p> + <p>Last Updated: June 25, 2009</p> </td> </tr> </table> @@ -1490,6 +1490,9 @@ nuttx-0.4.9 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Fixed an important bug in ROMFS. The initial XIP offset was set incorrectly so if sector zero was read first, there was a bad read. I don't know how it worked before. + * arch/arm/src/common/up_use_stack.c. Fixed a fatal stack setup error. + This file has been around for a long time, but I don't think it has + every been used before (i.e., prior to the NXFLAT logic) pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 1d31fac25d009f5873acc6c28bed604e46388813 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 26 Jun 2009 22:52:57 +0000 Subject: [PATCH 0472/1518] Prep for 0.4.9 git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1969 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 126 ++++---- Documentation/NuttXNxFlat.html | 549 +++++++++++++++++++++++++++++++++ 2 files changed, 604 insertions(+), 71 deletions(-) create mode 100644 Documentation/NuttXNxFlat.html diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 0dfc4d0e0a..36eba419ba 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: June 25, 2009</p> + <p>Last Updated: June 26, 2009</p> </td> </tr> </table> @@ -411,6 +411,15 @@ <li>ROMFS filesystem support.</li> </p> </tr> +<tr> + <td><br></td> + <td> + <p> + <li><a href="NuttXNxFlat.html">NXFLAT</a>. + A new binary format call NXFLAT that can be used to + execute separately linked programs in place in a file system. + </p> +</tr> <tr> <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> @@ -687,8 +696,8 @@ </tr> </table> -<p><b>nuttx-0.4.8</b>. - This 40<sup>th</sup> release of NuttX (nuttx-0.4.8) was made on June 13, 2009 +<p><b>nuttx-0.4.9</b>. + This 41<sup>st</sup> release of NuttX (nuttx-0.4.9) was made on June 26, 2009 and is available for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. @@ -698,21 +707,16 @@ </p> This release adds: <ul> - <li> - Support for the Olimex STRP711 board. That board is based on the STMicro - STR711 MCU (ARM7TDMI). Integration is complete on the basic port (boot logic, - system time, serial console). Two configurations have been verified: (1) The - board boots and passes the OS test with console output visible on UART0, and - the NuttShell (NSH) is fully functional with interrupt driven serial console. - An SPI driver is available but untested (because the Olimex card slot appears - to accept only MMC cards; I have only SD cards). Additional needed: USB and - driver, MMC integration. - </li> - <li> - Support for the CodeSourcery and devkitARM Windows-native GNU toolchains. - Makefiles have been modified for the LM3S6918, LPC2148, and STR711 to support - these toolchains under Cygwin. - </li> + <li> + Support for a new binary format call NXFLAT that can be used to + execute separately linked programs in place in a file system. + See <a href="NuttXNxFlat.html">NXFLAT Documentation</a> + for detailed information. + </li> + <li> + Several important bugs were files related to networking and ROMFS + (see the <a href="#currentrelease">ChangeLog</a> for a complete list). + </li> </ul> </p> @@ -1418,57 +1422,7 @@ Other memory: </table> <pre><ul> -nuttx-0.4.8 2009-06-13 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - - * lib/lib_*stream.c: Extend internal stream logic to support incoming streams. - * arch/arm/src/str71x: Serial output is now correct and timer interrupts are - working. The test at configs/olimex-strp711/ostest passes. This means that - the basic STR-P711 port is complete. - * configs/olimex-strp711/nsh: Add and verifed a NuttShell (NSH) configuration - for the STR-P711. - * arch/arm/str71x/str71x_serial.c: The STR711 interrupt driven serial driver - finally works after some extradinary measures to handle missed interrupts. - NSH is fully functional on the Olimex STR-P711 board. - * example/nsh: Moved architecture specific files from NSH directory to board- - specific directories. - * config/olimex-strp711/src/up_nsh.c: Add an NSH board specific directory for - for the Olimex STR7P11 board. - * Fixed build of LM3X6918 using the CodeSourcery Windows native toolchain. There - were lots of issues with Cygwin paths and Cygwin symbolic links. These changes - may work with the devarmKIT as well, but that remains untested. - * The NXP LPC2148 and STR711 targets can now also be built using the CodeSourcery - or devkitARM Windows native toolchains. - -pascal-0.1.2 2008-02-10 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - - * Add logic to build and link with the ZDS-II toolchain - use with the z16f. - * Make sure that POFF header structures are aligned - * Standardized POFF file format to big-endian - * Break up large switch statements to lower complexity - and eliminate a compiler bug - * Changes so that runtime compiles with SDCC. - -buildroot-0.1.6 2009-xx-xx &lt;spudmonkey@racsa.co.cr&gt; - - * Added config/arm7tdmi-defconfig-4.2.4 - * Added config/arm920t-defconfig-4.3.3 - * Correct error in arm-defconfig gcc-3.4.6 build. The gcc-3.4.6 configuration - does not not take --with-abi - * Correct error in gcc-3.4.6/gcc/collect.c. Calls open with O_CREAT but - does not specify mode. Newer host compilers can error out on this. -</pre></ul> - -<table width ="100%"> - <tr bgcolor="#e4e4e4"> - <td> - <a name="pendingchanges">Unreleased Changes</a> - </td> - </tr> -</table> - -<pre><ul> -nuttx-0.4.9 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; +nuttx-0.4.9 2009-06-26 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Add strtoll() and strtoull(); Add macros for atol() and atoll(). * dup() and dup2() will now clone socket descriptors @@ -1494,9 +1448,17 @@ nuttx-0.4.9 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; This file has been around for a long time, but I don't think it has every been used before (i.e., prior to the NXFLAT logic) -pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; +pascal-0.1.2 2008-02-10 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; -buildroot-0.1.7 2009-xx-xx &lt;spudmonkey@racsa.co.cr&gt; + * Add logic to build and link with the ZDS-II toolchain + use with the z16f. + * Make sure that POFF header structures are aligned + * Standardized POFF file format to big-endian + * Break up large switch statements to lower complexity + and eliminate a compiler bug + * Changes so that runtime compiles with SDCC. + +buildroot-0.1.7 2009-06-26 &lt;spudmonkey@racsa.co.cr&gt; * configs/avr-defconfig-4.3.3: Added support for AVR to support a NuttX port of the ATmega128. @@ -1504,6 +1466,24 @@ buildroot-0.1.7 2009-xx-xx &lt;spudmonkey@racsa.co.cr&gt; * toolchain/genromfs: Added support for the genromfs tool </pre></ul> +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="pendingchanges">Unreleased Changes</a> + </td> + </tr> +</table> + +<pre><ul> +nuttx-0.4.10 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + +nuttx-0.4.10 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + +pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + +buildroot-0.1.8 2009-xx-xx &lt;spudmonkey@racsa.co.cr&gt; +</pre></ul> + <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> @@ -1539,6 +1519,10 @@ buildroot-0.1.7 2009-xx-xx &lt;spudmonkey@racsa.co.cr&gt; <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> <td><a href="NuttShell.html">NuttShell (NSH)</a></td> </tr> +<tr> + <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> + <td><a href="NuttXNxFlat.html">NXFLAT</a> Binary Format</td> +</tr> <tr> <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> <td><a href="NXGraphicsSubsystem.html">NX Graphics Subsystem</a></td> diff --git a/Documentation/NuttXNxFlat.html b/Documentation/NuttXNxFlat.html new file mode 100644 index 0000000000..289c8a35c1 --- /dev/null +++ b/Documentation/NuttXNxFlat.html @@ -0,0 +1,549 @@ +<html> +<head> +<title>NXFLAT</title> +</head> +<body background="backgd.gif"> + +<hr><hr> +<table width ="100%"> + <tr align="center" bgcolor="#e4e4e4"> + <td> + <h1><big><font color="#3c34ec"><i>NXFLAT</i></font></big></h1> + <h2><font color="#dc143c">&gt;&gt;&gt; Under Construction &lt;&lt;&lt;</font></h2> + <p>Last Updated: June 26, 2009</p> + </td> + </tr> +</table> +<hr><hr> +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <h1>Table of Contents</h1> + </td> + </tr> +</table> + +<center><table width ="80%"> +<tr> +<td> +<table> +<tr> + <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> + <td> + <a href="#overview">1.0 Overview</a> + </td> +</tr> +<tr> + <td><br></td> + <td> + <a href="#functionality">1.1 Functionality</a> + </td> +</tr> +<tr> + <td><br></td> + <td> + <a href="#background">1.2 Background</a> + </td> +</tr> +<tr> + <td><br></td> + <td> + <a href="#limitations">1.3 Limitations</a> + </td> +</tr> +<tr> + <td><br></td> + <td> + <a href="#supported">1.4 Supported Processors</a> + </td> +</tr> +<tr> + <td><br></td> + <td> + <a href="#status">1.5 Development Status</a> + </td> +</tr> +<tr> + <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> + <td> + <a href="#toolchain">2.0 NXFLAT Toolchain</a> + </td> +</tr> +<tr> + <td><br></td> + <td> + <a href="#building">1.2 Building the NXFLAT Toolchain</a> + </td> +</tr> +<tr> + <td><br></td> + <td> + <a href="#mknxflat">1.2 mknxflat</a> + </td> +</tr> +<tr> + <td><br></td> + <td> + <a href="#ldnxflat">1.3 ldnxflat</a> + </td> +</tr> +<tr> + <td><br></td> + <td> + <a href="#making">1.4 Making an NXFLAT module</a> + </td> +</tr> +<tr> + <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> + <td> + <a href="#nogot">Appendix A. No GOT Operation</a> + </td> +</tr> +<tr> + <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> + <td> + <a href="#pictext">Appendix B. PIC Text Workaround</a> + </td> +</tr> +</table> +</td> +</tr> +</table></center> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="overview"><h1>1.0 Overview</h1></a> + </td> + </tr> +</table>f + +<a name="functionality"><h2>1.1 Functionality</h2></a> + +<p> + NXFLAT is a customized and simplified version of binary format implemented a few years ago called + <a HREF="http://xflat.sourceforge.net/">XFLAT</A> + With the NXFLAT binary format you will be able to do the following: +</p> +<ul> + <li>Place separately linked programs in a file system, and</li> + <li>Execute those programs by dynamically linking them to the base NuttX code.</li> +</ul> +<p> + This allows you to extend the NuttX base code after it has been written into FLASH. + One motivation for implementing NXFLAT is support clean CGI under an HTTPD server. +</p> +<p> + This feature is especially attractive when combined with the NuttX ROMFS support: + ROMFS allows you to execute programs in place (XIP) in flash without copying anything + other than the .data section to RAM. + In fact, the initial NXFLAT release will work only on ROMFS. +</p> +<p> + This NuttX feature includes: +</p> +<ul> + <li> + A dynamic loader that is built into the NuttX core + (See <a href="http://nuttx.cvs.sourceforge.net/viewvc/nuttx/nuttx/binfmt/">CVS</a>). + </li> + <li> + Minor changes to RTOS to support position independent code, and + </li> + <li> + A linker to bind ELF binaries to produce the NXFLAT binary format + (See <a href="http://nuttx.cvs.sourceforge.net/viewvc/nuttx/misc/buildroot/toolchain/nxflat">CVS). + </li> +</ul> + +<a name="background"><h2>1.2 Background</h2></a> + +<p> + NXFLAT is derived from <a href="http://xflat.sourceforge.net/">XFLAT</a>. + XFLAT is a toolchain add that provides full shared library and XIP executable + support for processors that have no Memory Management Unit (MMU). + NXFLAT is greatly simplified for the deeply embedded environment targeted by Nuttx: +</p> +<ul> + <li>NXFLAT does not support shared libraries, because</li> + <li>NXFLAT does not support <i>exportation</i> of symbol values from a module</li> +</ul> +<p> + Rather, the NXFLAT module only <i>imports</i> symbol values. + In the NXFLAT model, the (PIC<sup>1</sup>) NXFLAT module resides in a FLASH file system and + when it is loaded at run time, it is dynamically linked only to the (non-PIC) base NuttX + code: + The base NuttX <i>exports</i> a symbol table; the NXFLAT module <i>imports</i> those symbol value + to dynamically bind the module to the base code. +</p> +<p><sup>1</sup><small>&quot;Position Independent Code&quot;</small></p> + +<a name="limitations"><h2>1.3 Limitations</h2></a> + +<ul> + <li><b>ROMFS Only</b>. + The initial NXFLAT release will work only with executable modules residing on a ROMFS + file system. + That is because the loader depends on the capability to <code>mmap()</code> the code segment. + NUTTX does not provide any general kind of file mapping capability. + In fact, <i>true </i>file mapping is only possible with RTOSs and MCUs that provide an MMU<sup>1</sup> + and only ROMFS supports that kind of XIP execution from FLASH. + It is possible to simulate file mapping by allocating memory and copy the file into memory. + NXFLAT would work that kind of file mapping to and that feature could easily be added to NuttX. + </li> + <li><b>GCC/ARM/Cortex-M3 Only</b> + At present, the NXFLAT toolchain is only available for ARM and Cortex-M3 (thumb2) targets. + </li> + <li><b>Read-Only Data in RAM</b> + Read-only data must reside in RAM. + In code generated by GCC, all data references are indexed by the PIC<sup>2</sup> base register + (that is usually R10 or <i>sl</i> for the ARM processors). + The includes read-only data (<code>.rodata</code>). + Embedded firmware developers normally like to keep <code>.rodata</code> in FLASH with the code sections. + But because all data is referenced with the PIC base register, all of that data must lie in RAM. + A NXFLAT change to work around this is under investigation<sup>3</sup>. + </li> + <li><b>Globally Scoped Function Function Pointers</b> + If a function pointer is taken to a statically defined function, then (at least for ARM) GCC will + generate a relocation that NXFLAT cannot handle. + The workaround is make all such functions global in scope. + A fix would involve a change to the GCC compiler as described in <a href="#pictext">Appendix B</a>. + </li> + <li><b>No Callbacks</b> + Callbacks through function pointers must be avoided or, when then cannot be avoided, handled very specially. + The reason for this is that the PIC module requires setting of a special value in a PIC register. + If the callback does not set the PIC register, then the called back function will fail because + it will be unable to correct access data memory. + Special logic is in place to handle: Signal callbacks, watchdog timer callbacks. + But other callbacks (like those used with <code>qsort()</code> must be avoided in an NXFLAT module. + </li> +</ul> + +<ul><p> + <sup>1</sup><small>&quot;Memory Management Unit&quot;</small><br> + <sup>2</sup><small>&quot;Position Independent Code&quot;</small><br> + <sup>3</sup><small>A work around is under consideration: + At run time, the <code>.rodata</code> offsets will be indexed by a RAM address. + If the dynamic loader were to offset those <code>.rodata</code> offsets properly, it + still might be possible to reference <code>.rodata</code> in ROM. + That work around is still a top of investigation at this time.</small> +</p></ul> + +<a name="supported"><h2>1.4 Supported Processors</h2></a> + +<p> + As mentioned <a href="#limitations">above</a>, the NXFLAT toolchain is only available for ARM and + Cortex-M3 (thumb2) targets. + Furthermore, NXFLAT has only been tested on the Eagle-100 LMS6918 Cortex-M3 board. +</p> + +<a name="status"><h2>1.5 Development Status</h2></a> + +<p> + The initial release of NXFLAT was made in NuttX version 0.4.9. + Testing is limited to the tests found under <code>examples/nxflat</code> in the source tree. + Some known problems exist + (see the <a href="http://nuttx.cvs.sourceforge.net/*checkout*/nuttx/nuttx/TODO">TODO</a> list). + As such, NXFLAT is currently in an early alpha phase. +</p> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="toolchain"><h1>2.0 NXFLAT Toolchain</h1></a> + </td> + </tr> +</table> + +<a name="building"><h2>1.2 Building the NXFLAT Toolchain</h2></a> + +<p> + In order to use NXFLAT, you must use special NXFLAT tools to create the binary module in FLASH. + To do this, you will need to download the buildroot package and build it on your Linux or Cygwin machine. + The buildroot can be downloaded from + <a https://sourceforge.net/project/showfiles.php?group_id=189573&package_id=224585">Sourceforge</a>. + You will need version 0.1.7 or later. +</p> +<p> + Here are some general build instructions: +</p> +<ul> + + <li> + You must have already configured Nuttx in <code>&lt;some-dir&gt;/nuttx</code> + <li> + <li> + Download the buildroot package <code>buildroot-0.x.y</code> into <code>&lt;some-dir&gt;</code> + <li> + <li> + Unpack <code>&lt;some-dir&gt;/buildroot-0.x.y.tar.gz</code> using a command like <code>tar zxf buildroot-0.x.y</code>. + This will result in a new directory like <code>&lt;some-dir&gt;/misc/buildroot-0.x.y</code> + </li> + <li> + Move this into position: <code>mv &lt;some-dir&gt;/misc/buildroot-0.x.y <code>&lt;some-dir&gt;/buildroot</code> + </li> + <li> + <code>cd <code>&lt;some-dir&gt;/buildroot</code> + </li> + <li> + Copy a configuration file into the top buildroot directory: <code>cp configs/abc-defconfig-x.y.z .config</code>. + </li> + <li> + Enable building of the NXFLAT tools by <code>make menuconfig</code>. + Select to build the NXFLAT toolchain with GCC (you can also select omit building GCC with and only build the + NXFLAT toolchain for use with your own GCC toolchain). + </li> + <li> + Make the toolchain: <code>make</code>. + When the make completes, the tool binaries will be available under + <code>&lt;some-dir&gt;/buildroot/build_abc/staging_dir/bin</code> + </li> +</ul> + +<a name="mknxflat"><h2>1.2 mknxflat</h2></a> + +<p> + <code>mknxflat</code> is used to build a <i>thunk</i> file. + See <a href="#making">below</a> for usage. + +<ul><pre> +Usage: mknxflat [options] &lt;bfd-filename&gt; + +Where options are one or more of the following. Note +that a space is always required between the option and +any following arguments. + + -d Use dynamic symbol table. [symtab] + -f &lt;cmd-filename&gt; + Take next commands from &lt;cmd-filename&gt; [cmd-line] + -o &lt;out-filename&gt; + Output to <out-filename> [stdout] + -v Verbose output [no output] + -w Import weakly declared functions, i.e., weakly + declared functions are expected to be provided at + load-time [not imported] +</pre></ul> + +<a name="ldnxflat"><h2>1.3 ldnxflat</h2></a> + +<p> + <code>ldnxflat</code> is use to link your object files along with the <i>thunk</i> file + generated by <a href="#mknxflat"><code>mknxflat<code></a> to produce the NXFLAT binary module. + See <a href="#making">below</a> for usage. +</p> + +<ul><pre> +Usage: ldnxflat [options] &lt;bfd-filename&gt; + +Where options are one or more of the following. Note +that a space is always required between the option and +any following arguments. + + -d Use dynamic symbol table [Default: symtab] + -e &lt;entry-point&gt; + Entry point to module [Default: _start] + -o &lt;out-filename&gt; + Output to &lt;out-filename&gt; [Default: &lt;bfd-filename&gt;.nxf] + -s &lt;stack-size&gt; + Set stack size to &lt;stack-size&gt; [Default: 4096] + -v Verbose output. If -v is applied twice, additional + debug output is enabled [Default: no verbose output]. +</pre></ul> + +<a name="making"><h2>1.4 Making an NXFLAT module</h2></a> + +<p> + Below is a snippet from an NXFLAT make file (simplified from NuttX + <a href="http://nuttx.cvs.sourceforge.net/viewvc/*checkout*/nuttx/nuttx/examples/nxflat/tests/hello/Makefile?revision=1.6"> + Hello, World!</a> example. +<p> +<ul><table width="50%"> + +<ul><table> + <tr> + <th>Target 1</th> + <td><code>hello.r1:</code></td> + <td><code>hello.o</code></td> + </tr> + <tr> + <td><br></td> + <td><br></td> + <td><code>abc-elf-ld -r -d -warn-common -o $@ $^</code></td> + </tr> + <tr> + <th>Target 2</th> + <td><code>hello-thunk.S:</code></td> + <td><code>hello.r1</code></td> + </tr> + <tr> + <td><br></td> + <td><br></td> + <td><code>mknxflat -o $@ $^</code></td> + </tr> + <tr> + <th>Target 3</th> + <td><code>hello.r2:</code></td> + <td><code>hello-thunk.S</code></td> + </tr> + <tr> + <td><br></td> + <td><br></td> + <td> + <code>abc-elf-ld -r -d -warn-common -T binfmt/libnxflat/gnu-nxflat.ld -no-check-sections -o $@ hello.o hello-thunk.o</code> + </td> + </tr> + <tr> + <th>Target 4</th> + <td><code>hello:</code></td> + <td><code>hello.r2</code></td> + </tr> + <tr> + <td><br></td> + <td><br></td> + <td><code>ldnxflat -e main -s 2048 -o $@ $^</code></td> + </tr> + <tr> +</table></ul> + +<p><b>Target 1</b>. + This target links all of the object files together into one relocation object. + In this case, there is only a single object file, <code>hello.o</code>, and it is linked to produce <code>hello.r1</code>. +</p> + +<p><b>Target 2</b>. + Given <code>hello.r1</code>, this target will invoke <a href="#mknxflat"><code>mknxflat</code></a> + to make the <i>thunk</i> file, <code>hello-thunk.S</code>. + This <i>thunk</i> contains all of the information needed to create the imported function list. +</p> + +<p><b>Target 3</b> + This this target is similar to <b>Target 1</b>. + In this case, it will link together the object file, <code>hello.o</code> along with the assembled <i>thunk</i> file, + <code>hello-thunk.o</code> to create another, single relocatable object, <code>hello.r2</code>. + The linker script, <code>gnu-nxflat.ld</code> is required at this point to correctly position the sections. +</p> + +<p><b>Target 4</b>. + Finally, this target will use the <code>hello.r2</code> relocatable object to create the final, NXFLAT module + <code>hello</code> by calling <a href="#ldnxflat"><code>ldnxflat</code></a>. +</p> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="nogot"><h1>Appendix A. No GOT Operation</h1></a> + </td> + </tr> +</table> + +<p> + When GCC generate position independent code, new code sections will appear in your programs. + One of these the the GOT (Global Offset Table) and, in ELF environments, the PLT (Procedure + Lookup Table. + For example, if your C code generated (ARM) assembly language like this without PIC: +<p> +<ul><pre> + ldr r1, .L0 <-- Fetch the offset to 'x' + ldr r0, [r10, r1] <-- Load the value of 'x' with PIC + offset + ... +.L0: .word x <-- Offset to 'x' +</pre></ul> + +<p> + Then when PIC is enabled (say with the -fpic compiler option), it will generate code like + this: +</p> + +<ul><pre> + ldr r1, .L0 <-- Fetch the offset to the GOT entry + ldr r1, [r10,r1] <-- Fetch the (relocated) address + of 'x' from the GOT + ldr r0, [r1, #0] <-- Fetch the value of 'x' + ... +.L1 .word x(GOT) <-- Offset to entry in the GOT +</pre></ul> + +<p>See <a href="http://xflat.sourceforge.net/NoMMUSharedLibs.html#shlibsgot">reference</a></p> + +<p> + Notice that the generates an extra level of indirection through the GOT. + This indirection is not needed by NXFLAT and only adds more RAM usage and + execution time. +</p> +<p> + NXFLAT (like <a href="http://xflat.sourceforge.net/">XFLAT</a>) can work even better with + the GOT. + Patches again older version of GCC exist to eliminate the GOT indirections. + Several are available <a href="http://xflat.cvs.sourceforge.net/viewvc/xflat/xflat/gcc/">here</a> + if you are inspired to port them to a new GCC version. +</p> + + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="pictext"><h1>Appendix B. PIC Text Workaround</h1></a> + </td> + </tr> +</table> + +<p> + There is a problem with the memory model in GCC that prevents it from + being used as you need to use it in the NXFLAT context. + The problem is that GCC PIC model assumes that the executable lies in a flat, contiguous (virtual) address space like: +<p> +<ul><table width="15%"> + <tr><th>Virtual</th></td> + <tr> + <td align="center" bgcolor="#e4e4e4"><code>.text</code></td> + </tr> + <tr> + <td align="center" bgcolor="#e4e4e4"><code>.got</code></td> + </tr> + <tr> + <td align="center" bgcolor="#e4e4e4"><code>.data</code></td> + </tr> + <tr> + <td align="center" bgcolor="#e4e4e4"><code>.bss</code></td> + </tr> +</table></ul> +<p> + It assumes that the PIC base register (usually r10 for ARM) points to the base of <code>.text</code> + so that any address in <code>.text</code>, <code>.got</code>, <code>.data</code>, <code>.bss</code> + can be found with an offset from the same base address. + But that is not the memory arrangement that we need in the XIP embedded environment. + We need two memory regions, one in FLASH containing shared code and on per task in RAM containing task-specific data: +</p> + +<ul><table width="30%"> + <tr><th>Flash</th><th>RAM</th></td> + <tr> + <td align="center" bgcolor="#e4e4e4"><code>.text</code></td> + <td align="center" bgcolor="#e4e4e4"><code>.got</code></td> + </tr> + <tr> + <td bgcolor="#e4e4e4"><br></td> + <td align="center" bgcolor="#e4e4e4"><code>.data</code></td> + </tr> + <tr> + <td bgcolor="#e4e4e4"><br></td> + <td align="center" bgcolor="#e4e4e4"><code>.bss</code></td> + </tr> +</table></ul> + +<p> + The PIC base register needs to point to the base of the <code>.got</code> and only + addresses in the <code>.got</code>, <code>.data</code>, and <code>.bss</code> + sections can be accessed as an offset from the PIC base register. + See also this + <a href="http://xflat.cvs.sourceforge.net/viewvc/*checkout*/xflat/xflat/gcc/README?revision=1.1.1.1">XFLAT discussion</a>. +</p> +<p> + Patches again older version of GCC exist to correct this GCC behavior. + Several are available <a href="http://xflat.cvs.sourceforge.net/viewvc/xflat/xflat/gcc/">here</a> + if you are inspired to port them to a new GCC version. +</p> + +</body> +</html> From fde8d168a94437efe8dd0fef7de553fe2a28650f Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 27 Jun 2009 00:56:39 +0000 Subject: [PATCH 0473/1518] Document binary loadr APIs git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1970 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttXNxFlat.html | 199 ++++++++++++++++++++++++++++++--- 1 file changed, 185 insertions(+), 14 deletions(-) diff --git a/Documentation/NuttXNxFlat.html b/Documentation/NuttXNxFlat.html index 289c8a35c1..6e92a4cf19 100644 --- a/Documentation/NuttXNxFlat.html +++ b/Documentation/NuttXNxFlat.html @@ -93,6 +93,12 @@ <a href="#making">1.4 Making an NXFLAT module</a> </td> </tr> +<tr> + <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> + <td> + <a href="#binfmt">3.0. Binary Loader APIs</a> + </td> +</tr> <tr> <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> <td> @@ -161,7 +167,7 @@ <p> NXFLAT is derived from <a href="http://xflat.sourceforge.net/">XFLAT</a>. XFLAT is a toolchain add that provides full shared library and XIP executable - support for processors that have no Memory Management Unit (MMU). + support for processors that have no Memory Management Unit (MMU<sup>1</sup>). NXFLAT is greatly simplified for the deeply embedded environment targeted by Nuttx: </p> <ul> @@ -170,13 +176,19 @@ </ul> <p> Rather, the NXFLAT module only <i>imports</i> symbol values. - In the NXFLAT model, the (PIC<sup>1</sup>) NXFLAT module resides in a FLASH file system and + In the NXFLAT model, the (PIC<sup>2</sup>) NXFLAT module resides in a FLASH file system and when it is loaded at run time, it is dynamically linked only to the (non-PIC) base NuttX code: The base NuttX <i>exports</i> a symbol table; the NXFLAT module <i>imports</i> those symbol value to dynamically bind the module to the base code. </p> -<p><sup>1</sup><small>&quot;Position Independent Code&quot;</small></p> + +<ul> + <p> + <sup>1</sup><small>MMU: &quot;Memory Management Unit&quot;</small><br> + <sup>2</sup><small>PIC: &quot;Position Independent Code&quot;</small> + </p> +</ul> <a name="limitations"><h2>1.3 Limitations</h2></a> @@ -220,8 +232,8 @@ </ul> <ul><p> - <sup>1</sup><small>&quot;Memory Management Unit&quot;</small><br> - <sup>2</sup><small>&quot;Position Independent Code&quot;</small><br> + <sup>1</sup><small>MMU: &quot;Memory Management Unit&quot;</small><br> + <sup>2</sup><small>PIC: &quot;Position Independent Code&quot;</small><br> <sup>3</sup><small>A work around is under consideration: At run time, the <code>.rodata</code> offsets will be indexed by a RAM address. If the dynamic loader were to offset those <code>.rodata</code> offsets properly, it @@ -406,28 +418,187 @@ any following arguments. </table></ul> <p><b>Target 1</b>. - This target links all of the object files together into one relocation object. - In this case, there is only a single object file, <code>hello.o</code>, and it is linked to produce <code>hello.r1</code>. + This target links all of the module's object files together into one relocatable object. + Two relocatable objects will be generated; this is the first one (hence, the suffic <code>.r1</code>). + In this &quot;Hello, World!&quot; case, there is only a single object file, <code>hello.o</code>, + that is linked to produce the <code>hello.r1</code> object. +</p> + +<p> + When the module's object files are compiled, some special compiler CFLAGS must be provided. + First, the option <code>-fpic</code> is required to tell the compiler to generate position independent code (other + GCC options, like <code>-fno-jump-tables</code> might also be desirable). + For ARM compilers, two additional compilation options are required: <code>-msingle-pic-base</code> + and <code>-mpic-register=r10</code>. </p> <p><b>Target 2</b>. - Given <code>hello.r1</code>, this target will invoke <a href="#mknxflat"><code>mknxflat</code></a> + Given the <code>hello.r1</code> relocatable object, this target will invoke + <a href="#mknxflat"><code>mknxflat</code></a> to make the <i>thunk</i> file, <code>hello-thunk.S</code>. - This <i>thunk</i> contains all of the information needed to create the imported function list. + This <i>thunk</i> file contains all of the information needed to create the imported function list. </p> <p><b>Target 3</b> - This this target is similar to <b>Target 1</b>. - In this case, it will link together the object file, <code>hello.o</code> along with the assembled <i>thunk</i> file, - <code>hello-thunk.o</code> to create another, single relocatable object, <code>hello.r2</code>. + This target is similar to <b>Target 1</b>. + In this case, it will link together the module's object files (only <code>hello.o</code> here) + along with the assembled <i>thunk</i> file, <code>hello-thunk.o</code> to create the second relocatable object, + <code>hello.r2</code>. The linker script, <code>gnu-nxflat.ld</code> is required at this point to correctly position the sections. + This linker script produces two segments: + An <i>I-Space</i> (Instruction Space) segment containing mostly <code>.text</code> and a <i>D-Space</i> (Data Space) segment + containing <code>.got</code>, <code>.data</code>, and <code>.bss</code> sections. + The I-Space section must be origined at address 0 (so that the segment's addresses are really offsets into + the I-Space segment) + and the D-Space section must also be origined at address 0 (so that segment's addresses are really offsets into + the I-Space segment). + The option <code>-no-check-sections</code> is required to prevent the linker from failing because these segments overlap. </p> <p><b>Target 4</b>. Finally, this target will use the <code>hello.r2</code> relocatable object to create the final, NXFLAT module - <code>hello</code> by calling <a href="#ldnxflat"><code>ldnxflat</code></a>. + <code>hello</code> by executing <a href="#ldnxflat"><code>ldnxflat</code></a>. </p> +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="binfmt"><h1>3.0 Binary Loader APIs</h1></a> + </td> + </tr> +</table> + +<p><b>Relevant Header Files:</b></p> +<ul> + <li> + The interface to the binary loader is described in the header file + <a href="http://nuttx.cvs.sourceforge.net/viewvc/nuttx/nuttx/include/nuttx/binfmt.h?revision=1.5&view=markup"> + <code>include/nuttx/binfmt.h</code></a>. + A brief summary of the APIs prototyped in that header file are listed below. + </li> + <li> + NXFLAT APIs needed to register NXFLAT as a binary loader appear in the header file + <a href="http://nuttx.cvs.sourceforge.net/viewvc/*checkout*/nuttx/nuttx/include/nuttx/nxflat.h?revision=1.9"> + <code>include/nuttx/nxflat.h</code></a>. + </li> + <li> + The format of an NXFLAT object itself is described in the header file: + <a href="http://nuttx.cvs.sourceforge.net/viewvc/*checkout*/nuttx/nuttx/include/nxflat.h?revision=1.12"> + <code>include/nxflat.h</code></a>. + </li> +</ul> + +<p><b>binfmt Registration</b> + These first interfaces are used only by a binary loader module, such as NXFLAT itself. + NXFLAT (or any future binary loader) calls <code>register_binfmt()</code> to incorporate + itself into the system. + In this way, the binary loader logic is dynamically extensible to support any kind of loader. + Normal application code should not be concerned with these interfaces. +</p> + +<ul> +<p><b><code>int register_binfmt(FAR struct binfmt_s *binfmt)</code></b> +<ul> +<p><b>Description:</b> + Register a loader for a binary format +</p> +<p><b>Returned Value:</b> + This is a NuttX internal function so it follows the convention that + 0 (<code>OK</code>) is returned on success and a negated errno is returned on + failure. +</p> +</ul> + +<p><b><code>int unregister_binfmt(FAR struct binfmt_s *binfmt)</code></b> +<ul> +<p><b>Description:</b> + Register a loader for a binary format +</p> +<p><b>Returned Value:</b> + This is a NuttX internal function so it follows the convention that + 0 (<code>OK</code>) is returned on success and a negated errno is returned on + failure. +</p> +</ul> +</ul> + +<p><b>NXFLAT Initialization</b> + These interfaces are specific to NXFLAT. + Normally, an application needs only call <code>nxflat_initialize()</code> during its initialization + to have full NXFLAT support. +</p> + +<ul> +<p><b><code>int nxflat_initialize(void)</code></b> +<ul> +<p><b>Description:</b> + NXFLAT support is built unconditionally. However, it order to + use this binary format, this function must be called during system + format in order to register the NXFLAT binary format. + This function calls <code>register_binfmt()</code> appropriately. +</p> +<p><b>Returned Value:</b> + This is a NuttX internal function so it follows the convention that + 0 (OK) is returned on success and a negated errno is returned on + failure. +</p> +</ul> + +<p><b><code>void nxflat_uninitialize(void)</code></b> +<ul> +<p><b>Description:</b> + Unregister the NXFLAT binary loader +</p> +<p><b>Returned Value:</b> + None +</p> +</ul> +</ul> + +<p><b>Binary Loader Interfaces</b>. + The remaining APIs are called by user applications to maintain modules in the file system. +</p> + +<ul> +<p><b><code>int load_module(FAR struct binary_s *bin)</code></b> +<ul> +<p><b>Description:</b> + Load a module into memory, bind it to an exported symbol take, and + prep the module for execution. +</p> +<p><b>Returned Value:</b> + This is an end-user function, so it follows the normal convention: + Returns 0 (<code>OK</code>) on success. On failure, it returns -1 (<code>ERROR</code>) with + errno set appropriately. +</p> +</ul> + +<p><b><code>int unload_module(FAR const struct binary_s *bin)</code></b> +<ul> +<p><b>Description:</b> + Unload a (non-executing) module from memory. If the module has + been started (via <code>exec_module()</code>), calling this will be fatal. +</p> +<p><b>Returned Value:</b> + This is a NuttX internal function so it follows the convention that + 0 (<code>OK</code>) is returned on success and a negated errno is returned on + failure. +</p> +</ul> + +<p><b><code>int exec_module(FAR const struct binary_s *bin, int priority)</code></b> +<ul> +<p><b>Description:</b> + Execute a module that has been loaded into memory by load_module(). +</p> +<p><b>Returned Value:</b> + This is an end-user function, so it follows the normal convention: + Returns the PID of the exec'ed module. On failure, it.returns + -1 (<code>ERROR</code>) and sets errno appropriately. +</p> +</ul> +</ul> + <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> @@ -438,7 +609,7 @@ any following arguments. <p> When GCC generate position independent code, new code sections will appear in your programs. - One of these the the GOT (Global Offset Table) and, in ELF environments, the PLT (Procedure + One of these is the GOT (Global Offset Table) and, in ELF environments, another is the PLT (Procedure Lookup Table. For example, if your C code generated (ARM) assembly language like this without PIC: <p> From e39eddf07773d36dae2fdaba56259c5212e29399 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 11 Jul 2009 13:22:41 +0000 Subject: [PATCH 0474/1518] Add reference to NXFLAT interface git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1971 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxUserGuide.html | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 3fc63d6ad6..05fa44f142 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -183,7 +183,12 @@ paragraphs. thread. In this case, file operations will have effect only all pthreads the were started from the same parent thread. </p> -<p> +<p><b>Executing Programs within a File System</b>. + NuttX also provides internal interfaces for the execution of separately built + programs that reside in a file system. + These internal interfaces are, however, non-standard and are documented + <a href="NuttXNxFlat.html#binfmt">elsewhere</a>. +<p><b>Task Control Interfaces</b>. The following task control interfaces are provided by NuttX: </p> <ul> From b46074d3481c02934f4da0ca6c42b5694d72ddc4 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 11 Jul 2009 17:24:14 +0000 Subject: [PATCH 0475/1518] mktime/gmtime_r moved and highly simplified git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1973 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 7 ++++++- Documentation/NuttxPortingGuide.html | 11 +++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 36eba419ba..627a5bd6c6 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: June 26, 2009</p> + <p>Last Updated: July 11, 2009</p> </td> </tr> </table> @@ -1477,6 +1477,11 @@ buildroot-0.1.7 2009-06-26 &lt;spudmonkey@racsa.co.cr&gt; <pre><ul> nuttx-0.4.10 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + * lib/: Added some basic regex-subset, pattern matching functions + * lib/: Greatly simplified mktime() and gmtime_r(). The Gregorian and + Julian time calculations were interesting, but not necessary in the + typical embeddd system. + nuttx-0.4.10 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 2580cf0b03..9acd622cdd 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@ <h1><big><font color="#3c34ec"> <i>NuttX RTOS Porting Guide</i> </font></big></h1> - <p>Last Updated: June 18, 2009</p> + <p>Last Updated: July 11, 2009</p> </td> </tr> </table> @@ -2054,7 +2054,14 @@ extern void up_ledoff(int led); Used to initialize the internal time logic. </li> <li> - <code>CONFIG_JULIAN_TIME</code>: Enables Julian time conversions + <code>CONFIG_GREGORIAN_TIME</code>: Enables Gregorian time conversions. + You would only need this if you are concerned about accurate time conversions in + the recent past or in the distant future. + </li> + <li> + <code>CONFIG_JULIAN_TIME</code>: Enables Julian time conversions. + You would only need this if you are concerned about accurate time conversion in the distand past. + You must also define <code>CONFIG_GREGORIAN_TIME</code> in order to use Julian time. </li> <li> <code>CONFIG_DEV_CONSOLE</code>: Set if architecture-specific logic From 46e7e2d91819fed99261996963de0fa5a777999f Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 11 Jul 2009 23:39:33 +0000 Subject: [PATCH 0476/1518] Add gettimeofday() git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1974 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 ++ Documentation/NuttxUserGuide.html | 28 ++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 627a5bd6c6..908c927c83 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1481,6 +1481,8 @@ nuttx-0.4.10 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * lib/: Greatly simplified mktime() and gmtime_r(). The Gregorian and Julian time calculations were interesting, but not necessary in the typical embeddd system. + * sched/: Added gettimeofday(). This implementation is simply a thin + wrapper around clock_gettimer(). nuttx-0.4.10 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 05fa44f142..7c6bb0f0a3 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -2469,6 +2469,7 @@ VxWorks provides the following comparable interface: <li><a href="#timersettime">2.7.9 timer_settime</a></li> <li><a href="#timergettime">2.7.10 timer_gettime</a></li> <li><a href="#timergetoverrun">2.7.11 timer_getoverrun</a></li> + <li><a href="#gettimeofday">2.7.12 gettimeofday</a></li> </ul> <H3><a name="clocksettime">2.7.1 clock_settime</a></H3> @@ -2917,6 +2918,33 @@ VxWorks provides the following comparable interface: interface of the same name. </p> +<h3><a name="gettimeofday">2.7.12 gettimeofday</a></h3> +<p> + <b>Function Prototype:</b> +</p> +<pre> + #include &lt;sys/time.h&gt; + int gettimeofday(struct timeval *tp, void *tzp); +</pre> +<p> + <b>Description:</b> + This implementation of <code>gettimeofday()</code> is simply a thin wrapper around + <a href="#clockgettime"><code>clock_gettime()</code></a>. + It simply calls <code>clock_gettime()</code> using the <code>CLOCK_REALTIME</code> timer and + converts the result to the required <code>struct timeval</code>. +</p> +<p> + <b>Input Parameters:</b> +</p> +<ul> + <li><code>tp</code>. The current time will be returned to this user provided location.</li> + <li><code>tzp</code>. A reference to the timezone -- <i>IGNORED</i>.</li> +</ul> +<p> + <b>Returned Values:</b> + See <a href="#clockgettime"><code>clock_gettime()</code></a>. +</p> + <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> From 05d19d06f23c5f83c1f1adc148680a0a33d9599b Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 12 Jul 2009 00:41:06 +0000 Subject: [PATCH 0477/1518] Add gmtime and localtime git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1976 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + Documentation/NuttxUserGuide.html | 86 ++++++++++++++++++++++++------- 2 files changed, 68 insertions(+), 19 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 908c927c83..e91143d811 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1483,6 +1483,7 @@ nuttx-0.4.10 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; typical embeddd system. * sched/: Added gettimeofday(). This implementation is simply a thin wrapper around clock_gettimer(). + * lib/: Add gmtime() and localtime() nuttx-0.4.10 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 7c6bb0f0a3..dbd88cba22 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -2462,14 +2462,16 @@ VxWorks provides the following comparable interface: <li><a href="#clockgettime">2.7.2 clock_gettime</a></li> <li><a href="#clockgetres">2.7.3 clock_getres</a></li> <li><a href="#mktime">2.7.4 mktime</a></li> - <li><a href="#gmtimer">2.7.5 gmtime_r</a></li> - <li><a href="#localtimer">2.7.6 localtime_r</a></li> - <li><a href="#timercreate">2.7.7 timer_create</a></li> - <li><a href="#timerdelete">2.7.8 timer_delete</a></li> - <li><a href="#timersettime">2.7.9 timer_settime</a></li> - <li><a href="#timergettime">2.7.10 timer_gettime</a></li> - <li><a href="#timergetoverrun">2.7.11 timer_getoverrun</a></li> - <li><a href="#gettimeofday">2.7.12 gettimeofday</a></li> + <li><a href="#gmtime">2.7.5 gmtime</a></li> + <li><a href="#localtime">2.7.6 localtime</a></li> + <li><a href="#gmtimer">2.7.7 gmtime_r</a></li> + <li><a href="#localtimer">2.7.8 localtime_r</a></li> + <li><a href="#timercreate">2.7.9 timer_create</a></li> + <li><a href="#timerdelete">2.7.10 timer_delete</a></li> + <li><a href="#timersettime">2.7.11 timer_settime</a></li> + <li><a href="#timergettime">2.7.12 timer_gettime</a></li> + <li><a href="#timergetoverrun">2.7.13 timer_getoverrun</a></li> + <li><a href="#gettimeofday">2.7.14 gettimeofday</a></li> </ul> <H3><a name="clocksettime">2.7.1 clock_settime</a></H3> @@ -2584,7 +2586,46 @@ VxWorks provides the following comparable interface: <li><code>To be provided</code>.</li> </ul> -<H3><a name="gmtimer">2.7.5 gmtime_r</a></H3> +<H3><a name="gmtime">2.7.5 gmtime</a></H3> +<p> + <b>Function Prototype:</b> +</p> +<pre> + #include &lt;time.h&gt; + struct tm *gmtime(const time_t *clock); +</pre> +<p> + <b>Description:</b> +</p> +<p> + <b>Input Parameters:</b> +</p> +<ul> + <li><code>clock</code>. + Represents calendar time. + This is an absolute time value representing the number of seconds elapsed since 00:00:00 + on January 1, 1970, Coordinated Universal Time (UTC). +</li> +</ul> +<p> + <b>Returned Values:</b> +</p> +<p> + If successful, the <I>gmtime()</I> function will return the pointer to a statically + defined instance of <code>struct tim</code>. + Otherwise, a NULL will be returned to indicate the error: +</p> +<ul> + <li><code>To be provided</code>.</li> +</ul> + +<H3><a name="localtime">2.7.6 localtime</a></H3> +<pre> + #include &lt;time.h&gt; + #define localtime(c) gmtime(c) +</pre> + +<H3><a name="gmtimer">2.7.7 gmtime_r</a></H3> <p> <b>Function Prototype:</b> </p> @@ -2599,26 +2640,32 @@ VxWorks provides the following comparable interface: <b>Input Parameters:</b> </p> <ul> - <li><code>parm</code>. </li> + <li><code>clock</code>. + Represents calendar time. + This is an absolute time value representing the number of seconds elapsed since 00:00:00 + on January 1, 1970, Coordinated Universal Time (UTC). + <li><code>result</code>. + A user-provided buffer to receive the converted time structure. </ul> <p> <b>Returned Values:</b> </p> <p> - If successful, the <I>gmtime_r()</I> function will return zero (<I>OK</I>). - Otherwise, an non-zero error number will be returned to indicate the error: + If successful, the <I>gmtime_r()</I> function will return the pointer, <code>result</code>, + provided by the caller. + Otherwise, a NULL will be returned to indicate the error: </p> <ul> <li><code>To be provided</code>.</li> </ul> -<H3><a name="localtimer">2.7.6 localtime_r</a></H3> +<H3><a name="localtimer">2.7.8 localtime_r</a></H3> <pre> #include &lt;time.h&gt; #define localtime_r(c,r) gmtime_r(c,r) </pre> -<H3><a name="timercreate">2.7.7 timer_create</a></H3> +<H3><a name="timercreate">2.7.9 timer_create</a></H3> <p> <b>Function Prototype:</b> </p> @@ -2688,7 +2735,7 @@ VxWorks provides the following comparable interface: <li>Only <code>CLOCK_REALTIME</code> is supported for the <code>clockid</code> argument.</li> </ul> -<H3><a name="timerdelete">2.7.8 timer_delete</a></H3> +<H3><a name="timerdelete">2.7.10 timer_delete</a></H3> <p> <b>Function Prototype:</b> </p> @@ -2727,7 +2774,7 @@ VxWorks provides the following comparable interface: Comparable to the POSIX interface of the same name. </p> -<H3><a name="timersettime">2.7.9 timer_settime</a></H3> +<H3><a name="timersettime">2.7.11 timer_settime</a></H3> <p> <b>Function Prototype:</b> </p> @@ -2810,7 +2857,7 @@ VxWorks provides the following comparable interface: <li>The <code>ovalue</code> argument is ignored.</li> </ul> -<H3><a name="timergettime">2.7.10 timer_gettime</a></H3> +<H3><a name="timergettime">2.7.12 timer_gettime</a></H3> <p> <b>Function Prototype:</b> </p> @@ -2857,7 +2904,7 @@ VxWorks provides the following comparable interface: Comparable to the POSIX interface of the same name. </p> -<H3><a name="timergetoverrun">2.7.11 timer_getoverrun</a></H3> +<H3><a name="timergetoverrun">2.7.13 timer_getoverrun</a></H3> <p> <b>Function Prototype:</b> </p> @@ -2918,7 +2965,7 @@ VxWorks provides the following comparable interface: interface of the same name. </p> -<h3><a name="gettimeofday">2.7.12 gettimeofday</a></h3> +<h3><a name="gettimeofday">2.7.14 gettimeofday</a></h3> <p> <b>Function Prototype:</b> </p> @@ -7553,6 +7600,7 @@ notify a task when a message is available on a queue. <li><a href="#getpid">getpid</a></li> <li><a href="#standardio">gets</a></li> <li><a href="#getsockopt">getsockopt</a></li> + <li><a href="#gmtime">gmtime</a></li> <li><a href="#gmtimer">gmtime_r</a></li> <li><a href="#Introduction">Introduction</a> <li><a href="#drvrioctlops">ioctl</a></li> From 588c0d1c5e21791a8bb31f7127d868dcedfa8961 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 12 Jul 2009 18:43:59 +0000 Subject: [PATCH 0478/1518] Added exec() git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1979 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index e91143d811..f1bf734e98 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: July 11, 2009</p> + <p>Last Updated: July 12, 2009</p> </td> </tr> </table> @@ -1483,7 +1483,11 @@ nuttx-0.4.10 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; typical embeddd system. * sched/: Added gettimeofday(). This implementation is simply a thin wrapper around clock_gettimer(). - * lib/: Add gmtime() and localtime() + * lib/: Add gmtime(), localtime(), and strftime() + * binfmt/: Add exec(). This is just a wrapper that executes both + load_ and exec_module() in a more familiar manner. It is not consistent + with more standard exec() functions, however, because (1) it returns + and (2) it requires symbol table arguments. nuttx-0.4.10 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 7cee7e3f702be173d7db3e9454c4ac0562bdc811 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 13 Jul 2009 01:35:15 +0000 Subject: [PATCH 0479/1518] Add fileno() git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1985 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + Documentation/NuttxPortingGuide.html | 113 ++++++++++++++++++++++++++- 2 files changed, 113 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index f1bf734e98..0f4459c15e 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1488,6 +1488,7 @@ nuttx-0.4.10 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; load_ and exec_module() in a more familiar manner. It is not consistent with more standard exec() functions, however, because (1) it returns and (2) it requires symbol table arguments. + * lib/: Add fileno() nuttx-0.4.10 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 9acd622cdd..5c5b49ef1b 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@ <h1><big><font color="#3c34ec"> <i>NuttX RTOS Porting Guide</i> </font></big></h1> - <p>Last Updated: July 11, 2009</p> + <p>Last Updated: July 12, 2009</p> </td> </tr> </table> @@ -2347,6 +2347,117 @@ extern void up_ledoff(int led); </li> </ul> +<h3>THTTPD</h3> +<ul> + <li> + <code>CONFIG_THTTPD_PORT</code>: THTTPD Server port number + </li> + <li> + <code>CONFIG_THTTPD_IPADDR</code>: Server IP address (no host name) + </li> + <li> + <code>CONFIG_THTTPD_SERVER_ADDRESS</code>: SERVER_ADDRESS: response + </li> + <li> + <code>CONFIG_THTTPD_SERVER_SOFTWARE</code>: SERVER_SOFTWARE: response + </li> + <li> + <code>CONFIG_THTTPD_CGI_PATH</code>: + </li> + <li> + <code>CONFIG_THTTPD_CGI_PATTERN</code>: Only CGI programs matching this + pattern will be executed. In fact, if this value is not defined + then no CGI logic will be built. + </li> + <li> + <code>CONFIG_THTTPD_CGI_PRIORITY</code>: Provides the priority of CGI child tasks + </li> + <li> + <code>CONFIG_THTTPD_CGI_STACKSIZE</code>: Provides the initial stack size of + CGI child task (will be overridden by the stack size in the NXFLAT + header) + </li> + <li> + <code>CONFIG_THTTPD_CGI_BYTECOUNT</code>: Byte output limit for CGI tasks. + </li> + <li> + <code>CONFIG_THTTPD_CGI_TIMELIMIT</code>: How many seconds to allow CGI programs + to run before killing them. + </li> + <li> + <code>CONFIG_THTTPD_CGI_OUTFD</code>: In NuttX, CGI cannot use stdout for output. + Rather, it must use this file descriptor number. + </li> + <li> + <code>CONFIG_THTTPD_CHARSET- The default character set name to use with + text MIME types. + </li> + <li> + <code>CONFIG_THTTPD_IOBUFFERSIZE</code>: + </li> + <li> + <code>CONFIG_THTTPD_INDEX_NAMES</code>: A list of index filenames to check. The + files are searched for in this order. + </li> + <li> + <code>CONFIG_AUTH_FILE</code>: The file to use for authentication. If this is + defined then thttpd checks for this file in the local directory + before every fetch. If the file exists then authentication is done, + otherwise the fetch proceeds as usual. If you leave this undefined + then thttpd will not implement authentication at all and will not + check for auth files, which saves a bit of CPU time. A typical + value is &quot;.htpasswd&quout; + </li> + <li> + <code>CONFIG_THTTPD_LISTEN_BACKLOG</code>: The listen() backlog queue length. + </li> + <li> + <code>CONFIG_THTTPD_LINGER_MSEC</code>: How many milliseconds to leave a connection + open while doing a lingering close. + </li> + <li> + <code>CONFIG_THTTPD_OCCASIONAL_MSEC</code>: How often to run the occasional + cleanup job. + </li> + <li> + <code>CONFIG_THTTPD_IDLE_READ_LIMIT_SEC</code>: How many seconds to allow for + reading the initial request on a new connection. + </li> + <li> + <code>CONFIG_THTTPD_IDLE_SEND_LIMIT_SEC</code>: How many seconds before an + idle connection gets closed. + </li> + <li> + <code>CONFIG_THTTPD_TILDE_MAP1 and CONFIG_THTTPD_TILDE_MAP2</code>: Tilde mapping. + Many URLs use ~username to indicate a user's home directory. thttpd + provides two options for mapping this construct to an actual filename. + <ol> + <li> + Map ~username to &lt;prefix&gt;/username. This is the recommended choice. + Each user gets a subdirectory in the main web tree, and the tilde + construct points there. The prefix could be something like "users", + or it could be empty. + </li> + <li> + Map ~username to &lt;user's homedir&gt;/&lt;postfix&gt;. The postfix would be + the name of a subdirectory off of the user's actual home dir, + something like &quot;public_html&quot;. + </li> + </ol> + You can also leave both options undefined, and thttpd will not do + anything special about tildes. Enabling both options is an error. + Typical values, if they're defined, are &quot;users&quot; for + CONFIG_THTTPD_TILDE_MAP1 and &quot;public_html&quot; forCONFIG_THTTPD_TILDE_MAP2. + </li> + <li> + <code>CONFIG_THTTPD_GENERATE_INDICES + </li> + <li> + <code>CONFIG_THTTPD_URLPATTERN</code>: If defined, then it will be used to match + and verify referrers. + </li> +</ul> + <h2>USB Device-Side Support</h2> <h3>USB Device Controller Driver</h3> <ul> From 982b40abe7dc9c104f333152fcd840dd1bfd3221 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 14 Jul 2009 01:48:06 +0000 Subject: [PATCH 0480/1518] A big, hard-coded stack size was used in several places git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1986 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 0f4459c15e..a8a546ca0f 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: July 12, 2009</p> + <p>Last Updated: July 13, 2009</p> </td> </tr> </table> @@ -1489,6 +1489,10 @@ nuttx-0.4.10 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; with more standard exec() functions, however, because (1) it returns and (2) it requires symbol table arguments. * lib/: Add fileno() + * examples/ostest: Several of the tests used a big, hard-coded stack size + when creating test threads (16Kb stacksize). The stack size should + be controlled by the .config file or the OSTest won't work on platforms + with memory constraints. nuttx-0.4.10 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 488995e073a5b640c726f3edfc72b047c9ed4c1a Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 18 Jul 2009 18:04:05 +0000 Subject: [PATCH 0481/1518] Fix CGI I/O redirection and interposer tasks git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1988 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 5c5b49ef1b..ee91135ffc 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@ <h1><big><font color="#3c34ec"> <i>NuttX RTOS Porting Guide</i> </font></big></h1> - <p>Last Updated: July 12, 2009</p> + <p>Last Updated: July 18, 2009</p> </td> </tr> </table> @@ -2384,10 +2384,6 @@ extern void up_ledoff(int led); <code>CONFIG_THTTPD_CGI_TIMELIMIT</code>: How many seconds to allow CGI programs to run before killing them. </li> - <li> - <code>CONFIG_THTTPD_CGI_OUTFD</code>: In NuttX, CGI cannot use stdout for output. - Rather, it must use this file descriptor number. - </li> <li> <code>CONFIG_THTTPD_CHARSET- The default character set name to use with text MIME types. From 9dc592a23a95052f9b567fc63df0fe34089ff0ed Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 18 Jul 2009 19:47:08 +0000 Subject: [PATCH 0482/1518] Add framework for THTTPD example git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1989 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index a8a546ca0f..e0a815934a 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: July 13, 2009</p> + <p>Last Updated: July 18, 2009</p> </td> </tr> </table> @@ -1493,6 +1493,11 @@ nuttx-0.4.10 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; when creating test threads (16Kb stacksize). The stack size should be controlled by the .config file or the OSTest won't work on platforms with memory constraints. + * netutils/thttpd: An initial port of Jef Poskanzer's THTTPD HTPPD server. + See http://acme.com/software/thttpd/. + * examples/thttpd: A basic test program for THTTPD + * configs/eagle100/thttpd: A build configuration for THTTPD on the Micromint + Eagle-100 LMS6918 (Cortex-M3) board. nuttx-0.4.10 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 80708e8ae0300a7aed43a47a8db5aeb62549e10a Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 18 Jul 2009 20:11:11 +0000 Subject: [PATCH 0483/1518] Add strstr() git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1990 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index e0a815934a..09b8d75666 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1498,6 +1498,7 @@ nuttx-0.4.10 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * examples/thttpd: A basic test program for THTTPD * configs/eagle100/thttpd: A build configuration for THTTPD on the Micromint Eagle-100 LMS6918 (Cortex-M3) board. + * lib/: Added strstr() nuttx-0.4.10 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 00730adf7d49c6a703845c9dd775415efe57aa0c Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 18 Jul 2009 20:39:57 +0000 Subject: [PATCH 0484/1518] Add strpbrk() git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1991 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 09b8d75666..ec84e3b4d5 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1498,7 +1498,7 @@ nuttx-0.4.10 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * examples/thttpd: A basic test program for THTTPD * configs/eagle100/thttpd: A build configuration for THTTPD on the Micromint Eagle-100 LMS6918 (Cortex-M3) board. - * lib/: Added strstr() + * lib/: Added strstr() and strpbrk(). nuttx-0.4.10 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 4f66de7f660d3defdfcbfdcaeef6f34cc17e6fd1 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 18 Jul 2009 21:04:10 +0000 Subject: [PATCH 0485/1518] Document string operations git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1992 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxUserGuide.html | 180 ++++++++++++++++++++---------- 1 file changed, 124 insertions(+), 56 deletions(-) diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index dbd88cba22..3a3eafe3ea 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -6088,10 +6088,12 @@ interface of the same name. <li><a href="#FileSystemOverview">2.11.1 NuttX File System Overview</a></li> <li><a href="#driveroperations">2.11.2 Driver Operations</a></li> <li><a href="#directoryoperations">2.11.3 Directory Operations</a></li> - <li><a href="#standardio">2.11.4 Standard I/O</a></li> - <li><a href="#PipesNFifos">2.11.5 Pipes and FIFOs</a></li> - <li><a href="#fatsupport">2.11.6 FAT File System Support</a></li> - <li><a href="#mmapxip">2.11.7 <code>mmap()</code> and eXecute In Place (XIP)</a></li> + <li><a href="#dirunistdops">2.11.4 UNIX Standard Operations</a></li> + <li><a href="#standardio">2.11.5 Standard I/O</a></li> + <li><a href="#stdstrings">2.11.6 Standard String Operations</a></li> + <li><a href="#PipesNFifos">2.11.7 Pipes and FIFOs</a></li> + <li><a href="#fatsupport">2.11.8 FAT File System Support</a></li> + <li><a href="#mmapxip">2.11.9 <code>mmap()</code> and eXecute In Place (XIP)</a></li> </ul> <h3><a name="FileSystemOverview">2.11.1 NuttX File System Overview</a></h3> @@ -6310,66 +6312,132 @@ interface of the same name. <h3><a name="directoryoperations">2.11.3 Directory Operations</a></h3> <a name="dirdirentops"> <ul><pre> - #include &lt;dirent.h&gt; - int closedir(DIR *dirp); - FAR DIR *opendir(const char *path); - FAR struct dirent *readdir(FAR DIR *dirp); - int readdir_r(FAR DIR *dirp, FAR struct dirent *entry, FAR struct dirent **result); - void rewinddir(FAR DIR *dirp); - void seekdir(FAR DIR *dirp, int loc); - int telldir(FAR DIR *dirp); +#include &lt;dirent.h&gt; + +int closedir(DIR *dirp); +FAR DIR *opendir(const char *path); +FAR struct dirent *readdir(FAR DIR *dirp); +int readdir_r(FAR DIR *dirp, FAR struct dirent *entry, FAR struct dirent **result); +void rewinddir(FAR DIR *dirp); +void seekdir(FAR DIR *dirp, int loc); +int telldir(FAR DIR *dirp); </pre></ul> </a> -<a name="dirunistdops"> +<h3><a name="dirunistdops">2.11.4 UNIX Standard Operations</a></h3> <ul><pre> - #include &lt;unistd.h&gt; - int chdir(FAR const char *path); - FAR char *getcwd(FAR char *buf, size_t size); +#include &lt;unistd.h&gt; + +pid_t getpid(void); +void _exit(int status) noreturn_function; +unsigned int sleep(unsigned int seconds); +void usleep(unsigned long usec); + +int close(int fd); +int dup(int fd); +int dup2(int fd1, int fd2); +int fsync(int fd); +off_t lseek(int fd, off_t offset, int whence); +ssize_t read(int fd, FAR void *buf, size_t nbytes); +ssize_t write(int fd, FAR const void *buf, size_t nbytes); + +int pipe(int filedes[2]); + +int chdir(FAR const char *path); +FAR char *getcwd(FAR char *buf, size_t size); + +int unlink(FAR const char *pathname); +int rmdir(FAR const char *pathname); +int getopt(int argc, FAR char *const argv[], FAR const char *optstring); </pre></ul> </a> -<h3><a name="standardio">2.11.4 Standard I/O</a></h3> +<h3><a name="standardio">2.11.5 Standard I/O</a></h3> <ul><pre> - #include &lt;stdio.h&gt; - int fclose(FILE *stream); - int fflush(FILE *stream); - int feof(FILE *stream); /* Prototyped but not implemented */ - int ferror(FILE *stream); /* Prototyped but not implemented */ - int fgetc(FILE *stream); - int fgetpos(FILE *stream, fpos_t *pos); - char *fgets(char *s, int n, FILE *stream); - FILE *fopen(const char *path, const char *type); - int fprintf(FILE *stream, const char *format, ...); - int fputc(int c, FILE *stream); - int fputs(const char *s, FILE *stream); - size_t fread(void *ptr, size_t size, size_t n_items, FILE *stream); - int fseek(FILE *stream, long int offset, int whence); - int fsetpos(FILE *stream, fpos_t *pos); - long ftell(FILE *stream); - size_t fwrite(const void *ptr, size_t size, size_t n_items, FILE *stream); - char *gets(char *s); +#include &lt;stdio.h&gt; - int printf(const char *format, ...); - int puts(const char *s); - int rename(const char *source, const char *target); - int sprintf(char *dest, const char *format, ...); - int ungetc(int c, FILE *stream); - int vprintf(const char *s, va_list ap); - int vfprintf(FILE *stream, const char *s, va_list ap); - int vsprintf(char *buf, const char *s, va_list ap); +int fclose(FILE *stream); +int fflush(FILE *stream); +FILE *fdopen(int fd, const char *type); +int feof(FILE *stream); /* Prototyped but not implemented */ +int ferror(FILE *stream); /* Prototyped but not implemented */ +int fileno(FAR FILE *stream); +int fgetc(FILE *stream); +int fgetpos(FILE *stream, fpos_t *pos); +char *fgets(char *s, int n, FILE *stream); +FILE *fopen(const char *path, const char *type); +int fprintf(FILE *stream, const char *format, ...); +int fputc(int c, FILE *stream); +int fputs(const char *s, FILE *stream); +size_t fread(void *ptr, size_t size, size_t n_items, FILE *stream); +int fseek(FILE *stream, long int offset, int whence); +int fsetpos(FILE *stream, fpos_t *pos); +long ftell(FILE *stream); +size_t fwrite(const void *ptr, size_t size, size_t n_items, FILE *stream); +char *gets(char *s); - FILE *fdopen(int fd, const char *type); - int fstat(int fd, FAR struct stat *buf); /* Prototyped but not implemented */ - int mkdir(const char *path, mode_t mode); - int rmdir(const char *path); - int stat(const char *path, FAR struct stat *buf); - int statfs(const char *path, FAR struct statfs *buf); /* Prototyped but not implemented */ +int printf(const char *format, ...); +int puts(const char *s); +int rename(const char *source, const char *target); +int snprintf(FAR char *buf, size_t size, const char *format, ...); +int sprintf(char *dest, const char *format, ...); +int sscanf(const char *buf, const char *fmt, ...); +int ungetc(int c, FILE *stream); +int vprintf(const char *s, va_list ap); +int vfprintf(FILE *stream, const char *s, va_list ap); +int vsnprintf(FAR char *buf, size_t size, const char *format, va_list ap); +int vsscanf(char *buf, const char *s, va_list ap); +int vsprintf(char *buf, const char *s, va_list ap); + +#include &lt;sys/stat.h&gt; + +int mkdir(FAR const char *pathname, mode_t mode); +int mkfifo(FAR const char *pathname, mode_t mode); +int stat(const char *path, FAR struct stat *buf); +int fstat(int fd, FAR struct stat *buf); + +#include &lt;sys/statfs.h&gt; + +int statfs(const char *path, struct statfs *buf); +int fstatfs(int fd, struct statfs *buf); </pre></ul> -<h3><a name="PipesNFifos">2.11.5 Pipes and FIFOs</a></h3> +<h3><a name="stdstrings">2.11.6 Standard String Operations</a></h3> +<ul><pre> +#include &lt;string.h&gt; -<h3>2.11.5.1 <a name="pipe"><code>pipe</code></a></h3> +char *strchr(const char *s, int c); +FAR char *strdup(const char *s); +const char *strerror(int); +size_t strlen(const char *); +char *strcat(char *, const char *); +char *strncat(char *, const char *, size_t); +int strcmp(const char *, const char *); +int strncmp(const char *, const char *, size_t); +int strcasecmp(const char *, const char *); +int strncasecmp(const char *, const char *, size_t); +char *strcpy(char *dest, const char *src); +char *strncpy(char *, const char *, size_t); +char *strpbrk(const char *, const char *); +char *strchr(const char *, int); +char *strrchr(const char *, int); +size_t strspn(const char *, const char *); +size_t strcspn(const char *, const char *); +char *strstr(const char *, const char *); +char *strtok(char *, const char *); +char *strtok_r(char *, const char *, char **); + +void *memset(void *s, int c, size_t n); +void *memcpy(void *dest, const void *src, size_t n); +int memcmp(const void *s1, const void *s2, size_t n); +void *memmove(void *dest, const void *src, size_t count); + +# define bzero(s,n) (void)memset(s,0,n) +</pre></ul> + +<h3><a name="PipesNFifos">2.11.7 Pipes and FIFOs</a></h3> + +<h3>2.11.7.1 <a name="pipe"><code>pipe</code></a></h3> <p> <b>Function Prototype:</b> </p> @@ -6403,7 +6471,7 @@ interface of the same name. </ul> </p> -<h3>2.11.5.2 <a name="mkfifo"><code>mkfifo</code></a></h3> +<h3>2.11.7.2 <a name="mkfifo"><code>mkfifo</code></a></h3> <p> <b>Function Prototype:</b> </p> @@ -6450,8 +6518,8 @@ interface of the same name. </ul> </p> -<h3><a name="fatsupport">2.11.6 FAT File System Support</a></h3> -<h3>2.11.6.1 <a name="mkfatfs"><code>mkfatfs</code></a></h3> +<h3><a name="fatsupport">2.11.8 FAT File System Support</a></h3> +<h3>2.11.8.1 <a name="mkfatfs"><code>mkfatfs</code></a></h3> <p> <b>Function Prototype:</b> </p> @@ -6528,7 +6596,7 @@ struct fat_format_s </ul> </p> -<h3><a name="mmapxip">2.11.7 <code>mmap()</code> and eXecute In Place (XIP)</a></h3> +<h3><a name="mmapxip">2.11.9 <code>mmap()</code> and eXecute In Place (XIP)</a></h3> <p> NuttX operates in a flat open address space. Therefore, it generally does not require <code>mmap()</code> functionality. @@ -6551,7 +6619,7 @@ struct fat_format_s </ol> </p> -<h3><a name="mmap">2.11.7.1 <code>mmap</code></a></h3> +<h3><a name="mmap">2.11.9.1 <code>mmap</code></a></h3> <p> <b>Function Prototype:</b> </p> From ae2a2ffad311101b3aebdd4176175e3f897b1460 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 19 Jul 2009 13:50:08 +0000 Subject: [PATCH 0486/1518] Add non-blocking capability for TCP sockets git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1996 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index ec84e3b4d5..7bd3f71e1b 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: July 18, 2009</p> + <p>Last Updated: July 19, 2009</p> </td> </tr> </table> @@ -1493,12 +1493,15 @@ nuttx-0.4.10 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; when creating test threads (16Kb stacksize). The stack size should be controlled by the .config file or the OSTest won't work on platforms with memory constraints. - * netutils/thttpd: An initial port of Jef Poskanzer's THTTPD HTPPD server. + * netutils/thttpd: An initial port of Jef Poskanzer's THTTPD HTTP server. See http://acme.com/software/thttpd/. * examples/thttpd: A basic test program for THTTPD * configs/eagle100/thttpd: A build configuration for THTTPD on the Micromint Eagle-100 LMS6918 (Cortex-M3) board. * lib/: Added strstr() and strpbrk(). + * net/recvfrom.c: Sockets now support some non-blocking operations -- + specifically only for TCP/IP read operations when read-ahead buffering + is enabled. nuttx-0.4.10 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 71be6e922ed421bf8377398a922722f34d2f2c8e Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 2 Aug 2009 16:40:49 +0000 Subject: [PATCH 0487/1518] update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2009 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 7bd3f71e1b..53b35cbfa8 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: July 19, 2009</p> + <p>Last Updated: August 3, 2009</p> </td> </tr> </table> @@ -1494,16 +1494,22 @@ nuttx-0.4.10 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; be controlled by the .config file or the OSTest won't work on platforms with memory constraints. * netutils/thttpd: An initial port of Jef Poskanzer's THTTPD HTTP server. - See http://acme.com/software/thttpd/. + See http://acme.com/software/thttpd/. * examples/thttpd: A basic test program for THTTPD * configs/eagle100/thttpd: A build configuration for THTTPD on the Micromint Eagle-100 LMS6918 (Cortex-M3) board. + * configs/ntosd-dm320/thttpd: A build configuration for THTTPD on the Neuros + DM320 platform. * lib/: Added strstr() and strpbrk(). * net/recvfrom.c: Sockets now support some non-blocking operations -- specifically only for TCP/IP read operations when read-ahead buffering is enabled. - -nuttx-0.4.10 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + * fs/fs_fcntl.c and net/net_vfcntl.c: Minimal support provided for fcntl(). + It can, at least, be used to mark sockets as blocking or non-blocking. + * net/net_close.c: Fix bug in close(). If reference count not set to zero + then uip_tcpfree() will assert when DEBUG is enabled. + * net/accept.c: Fix bug in accept(). The logic expected parts of the + return address structure to be initialized or it would return an error. pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 47328700c7f2f68945c6af52913c340119cd3e55 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 2 Aug 2009 23:35:27 +0000 Subject: [PATCH 0488/1518] accept() now supports non-blocking operations git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2011 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 53b35cbfa8..fb2ec50676 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1501,9 +1501,10 @@ nuttx-0.4.10 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * configs/ntosd-dm320/thttpd: A build configuration for THTTPD on the Neuros DM320 platform. * lib/: Added strstr() and strpbrk(). - * net/recvfrom.c: Sockets now support some non-blocking operations -- - specifically only for TCP/IP read operations when read-ahead buffering - is enabled. + * net/recvfrom.c and net/accept(): Sockets now support some non-blocking + operations, specifically for (1) TCP/IP read operations when read-ahead + buffering is enabled, and (2) TCP/IP accept() operations when TCP/IP + connection backlog is enabled. * fs/fs_fcntl.c and net/net_vfcntl.c: Minimal support provided for fcntl(). It can, at least, be used to mark sockets as blocking or non-blocking. * net/net_close.c: Fix bug in close(). If reference count not set to zero From 4ec8a02e1ed4b3b235d38437b62012bfdd5fac2d Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 8 Aug 2009 18:12:10 +0000 Subject: [PATCH 0489/1518] Prep for 0.4.10 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2016 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 126 ++++++++++++++++++--------------------- 1 file changed, 58 insertions(+), 68 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index fb2ec50676..968c2c1d34 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: August 3, 2009</p> + <p>Last Updated: August 8, 2009</p> </td> </tr> </table> @@ -469,6 +469,16 @@ <li>Networking utilities (DHCP, SMTP, TELNET, TFTP, HTTP)</li> </p> </tr> +<tr> + <td><br></td> + <td> + <p> + <li> + A NuttX port of Jeff Poskanzer's <a href="http://acme.com/software/thttpd">THTTPD</a> HTTP server + integrated with <a href="NuttXNxFlat.html">NXFLAT</a> to provide true, embedded CGI. + </li> + </p> +</tr> <tr> <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> @@ -696,8 +706,8 @@ </tr> </table> -<p><b>nuttx-0.4.9</b>. - This 41<sup>st</sup> release of NuttX (nuttx-0.4.9) was made on June 26, 2009 +<p><b>nuttx-0.4.10</b>. + This 42<sup>nd</sup> release of NuttX (nuttx-0.4.10) was made on August 8, 2009 and is available for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. @@ -705,18 +715,22 @@ Unreleased changes after this release are available in CVS. These unreleased changes are listed <a href="#pendingchanges">here</a>. </p> - This release adds: + The changes in thsi release focus on the port of Jeff Poskanzer's + <a href="http://acme.com/software/thttpd/">THTTPD</a> to NuttX. + Do to limited time to work on NuttX, that port is still not fully functional. + However, numerous related bug-fixes and functional additions for THTTPD were + added: <ul> - <li> - Support for a new binary format call NXFLAT that can be used to - execute separately linked programs in place in a file system. - See <a href="NuttXNxFlat.html">NXFLAT Documentation</a> - for detailed information. - </li> - <li> - Several important bugs were files related to networking and ROMFS - (see the <a href="#currentrelease">ChangeLog</a> for a complete list). - </li> + <li>Several new standard C-library functions (<code>fileno</code>, <code>strstr</code>, + <code>strpbrk</code>, <code>fcntl</code>).</li> + <li>Improved and extended timing APIs (<code>mktime</code>, <code>gmtime</code>, <code>gmtime_r</code>, + <code>gettimeofday</code>, <code>localtime</code>, <code>localtime_r</code>, and + <code>strftime</code>)</li> + <li>Networking enhancements: <code>recvfrom</code> and <code>accept</code> now work with non-blocking + sockets.</li> + <li><a href="NuttXNxFlat.html">NXFLAT</a> extensions (<code>exec</code>)</li> + <li>Pattern matching logic.</li> + <li>And miscellaneous bug fixes (see the <a href="#currentrelease">ChangeLog</a> for a complete list).</li> </ul> </p> @@ -1422,60 +1436,7 @@ Other memory: </table> <pre><ul> -nuttx-0.4.9 2009-06-26 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - - * Add strtoll() and strtoull(); Add macros for atol() and atoll(). - * dup() and dup2() will now clone socket descriptors - * All socket descriptors ar now cloned when when a new task is started - via task_create(). - * Use of C++ reserved word 'private' in C header files causes problems - for C++ that include them. - * Added 'binfmt' support to allow execution of programs in a file system, - binding to NuttX symbols. A custom format call NXFLAT is used; this - derives from http://xflat.sourceforge.net. At present is supports on - XIP execution from ROMFS file systems. Initial check-in is untested - and probably breaks many builds. - * examples/lib: Added qsort() - * examples/nxflat: Added support for symbol tables - * Correct logic that creates compiler include paths. On Cygwin, the - include paths for Cygwin-based GCC were being converted to windows - native paths. That causes many problems -- breaking dependencies - for one. - * Fixed an important bug in ROMFS. The initial XIP offset was set - incorrectly so if sector zero was read first, there was a bad read. - I don't know how it worked before. - * arch/arm/src/common/up_use_stack.c. Fixed a fatal stack setup error. - This file has been around for a long time, but I don't think it has - every been used before (i.e., prior to the NXFLAT logic) - -pascal-0.1.2 2008-02-10 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - - * Add logic to build and link with the ZDS-II toolchain - use with the z16f. - * Make sure that POFF header structures are aligned - * Standardized POFF file format to big-endian - * Break up large switch statements to lower complexity - and eliminate a compiler bug - * Changes so that runtime compiles with SDCC. - -buildroot-0.1.7 2009-06-26 &lt;spudmonkey@racsa.co.cr&gt; - - * configs/avr-defconfig-4.3.3: Added support for AVR to support a NuttX - port of the ATmega128. - * toolchain/nxflat: Added logic to build NuttX NXFLAT binding support tools - * toolchain/genromfs: Added support for the genromfs tool -</pre></ul> - -<table width ="100%"> - <tr bgcolor="#e4e4e4"> - <td> - <a name="pendingchanges">Unreleased Changes</a> - </td> - </tr> -</table> - -<pre><ul> -nuttx-0.4.10 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; +nuttx-0.4.10 2009-08-08 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * lib/: Added some basic regex-subset, pattern matching functions * lib/: Greatly simplified mktime() and gmtime_r(). The Gregorian and @@ -1512,6 +1473,35 @@ nuttx-0.4.10 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * net/accept.c: Fix bug in accept(). The logic expected parts of the return address structure to be initialized or it would return an error. +pascal-0.1.2 2008-02-10 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + + * Add logic to build and link with the ZDS-II toolchain + use with the z16f. + * Make sure that POFF header structures are aligned + * Standardized POFF file format to big-endian + * Break up large switch statements to lower complexity + and eliminate a compiler bug + * Changes so that runtime compiles with SDCC. + +buildroot-0.1.7 2009-06-26 &lt;spudmonkey@racsa.co.cr&gt; + + * configs/avr-defconfig-4.3.3: Added support for AVR to support a NuttX + port of the ATmega128. + * toolchain/nxflat: Added logic to build NuttX NXFLAT binding support tools + * toolchain/genromfs: Added support for the genromfs tool +</pre></ul> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="pendingchanges">Unreleased Changes</a> + </td> + </tr> +</table> + +<pre><ul> +nuttx-0.4.11 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; buildroot-0.1.8 2009-xx-xx &lt;spudmonkey@racsa.co.cr&gt; From cfce43375258383385b0ccc3608e402fe90d69e0 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 15 Aug 2009 19:31:30 +0000 Subject: [PATCH 0490/1518] Fix strcasecmp git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2019 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 968c2c1d34..509b770aa5 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: August 8, 2009</p> + <p>Last Updated: August 15, 2009</p> </td> </tr> </table> @@ -1435,7 +1435,7 @@ Other memory: </tr> </table> -<pre><ul> +<ul><pre> nuttx-0.4.10 2009-08-08 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * lib/: Added some basic regex-subset, pattern matching functions @@ -1499,9 +1499,15 @@ buildroot-0.1.7 2009-06-26 &lt;spudmonkey@racsa.co.cr&gt; </tr> </table> -<pre><ul> +<ul><pre> nuttx-0.4.11 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + * fs/fs_read.c and fs/fs_write.c. read() and write() to socket is the + same as recv() and send() with flags = 0. Fixed! + * net/recvfrom.c: Fix errors in return value from non-blocking socket read. + * lib/lib_strcasecmp.c and lib/lib_strncasecmp.c. Use of post-incremented + argument to macro caused strcasecmp() and strncasecmp() to fail. + pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; buildroot-0.1.8 2009-xx-xx &lt;spudmonkey@racsa.co.cr&gt; From 11ae5cc313b0a2f6f98d1f530eb809473b9ba22b Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 15 Aug 2009 20:25:13 +0000 Subject: [PATCH 0491/1518] Get rid of cwd in THTTPD git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2021 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index ee91135ffc..140c583863 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -2362,7 +2362,10 @@ extern void up_ledoff(int led); <code>CONFIG_THTTPD_SERVER_SOFTWARE</code>: SERVER_SOFTWARE: response </li> <li> - <code>CONFIG_THTTPD_CGI_PATH</code>: + <code>CONFIG_THTTPD_PATH</code>: Server working directory + </li> + <li> + <code>CONFIG_THTTPD_CGI_PATH</code>: Path to CGI executables </li> <li> <code>CONFIG_THTTPD_CGI_PATTERN</code>: Only CGI programs matching this From 55b3a6fdebfda8ea831102a99707e87843f83441 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 15 Aug 2009 22:59:41 +0000 Subject: [PATCH 0492/1518] strstr fails because length off by 1 git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2022 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 509b770aa5..cbaec79772 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1507,6 +1507,8 @@ nuttx-0.4.11 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * net/recvfrom.c: Fix errors in return value from non-blocking socket read. * lib/lib_strcasecmp.c and lib/lib_strncasecmp.c. Use of post-incremented argument to macro caused strcasecmp() and strncasecmp() to fail. + * lib/lib_strstr.c: Length of substring off by one causes false alarm + sub-string matches. pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 5a1055f22841961ec99b34f749cca0b5d74a632b Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 9 Sep 2009 18:00:13 +0000 Subject: [PATCH 0493/1518] This two FIFO handling bugs in LM3S ethernet driver git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2031 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index cbaec79772..2223e362c8 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: August 15, 2009</p> + <p>Last Updated: September 09, 2009</p> </td> </tr> </table> @@ -1509,6 +1509,14 @@ nuttx-0.4.11 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; argument to macro caused strcasecmp() and strncasecmp() to fail. * lib/lib_strstr.c: Length of substring off by one causes false alarm sub-string matches. + * arch/arm/src/lm3s/lm3s_ethernet.c: Fix errors in LMS6918 FIFO length + handling. (1) The incorrect size of the ethernet header was being + subtracted on outgoing messages (4 vs 14), which caused outgoing messages to + be a little too long. (2) The size of incoming FIFO messages is 6 bytes + larger than it expected (2 for the length and 4 for the FCS). The unhandled + extra two bytes of length cause the driver to sometimes read one too many + words from the received FIFO (corrupting the next queued receive packet, + if any). pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From ebbccfe84768bb777f6c3f3d141077e02954b228 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 10 Sep 2009 22:55:52 +0000 Subject: [PATCH 0494/1518] Fix race condition bug in poll() for backlogged connections git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2032 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 2223e362c8..37caa79337 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: September 09, 2009</p> + <p>Last Updated: September 10, 2009</p> </td> </tr> </table> @@ -1517,6 +1517,10 @@ nuttx-0.4.11 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; extra two bytes of length cause the driver to sometimes read one too many words from the received FIFO (corrupting the next queued receive packet, if any). + * net/net_poll.c and net/uip/uip_tcpbacklog.c. Fixed an important race condition + bug in polling for connections. The logic worked if the poll was inplace + before the connection was received; but the poll failed to awaken if the + connection was already pending in the backlog when poll() was called. pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 6dda82c28ccd0944962feb90e9f6efc770d66b47 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 11 Sep 2009 19:31:52 +0000 Subject: [PATCH 0495/1518] Fix race condition that can cause close of socket to hang git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2037 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 37caa79337..9c7269825f 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: September 10, 2009</p> + <p>Last Updated: September 11, 2009</p> </td> </tr> </table> @@ -1521,6 +1521,9 @@ nuttx-0.4.11 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; bug in polling for connections. The logic worked if the poll was inplace before the connection was received; but the poll failed to awaken if the connection was already pending in the backlog when poll() was called. + * net/net_close.c. Fixed another important TCP/IP race condition bug: If + the host closes the TCP connection just before the target calls close(), then + the close operation may hang indefinitely! pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From ea39f3b55948f4fc27bfbdaa94afcdfc9e7c55c9 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 11 Sep 2009 20:32:02 +0000 Subject: [PATCH 0496/1518] Remove check for outstanding un-ACKed data in TX poll git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2038 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 9c7269825f..fdc628d49c 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1524,6 +1524,9 @@ nuttx-0.4.11 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * net/net_close.c. Fixed another important TCP/IP race condition bug: If the host closes the TCP connection just before the target calls close(), then the close operation may hang indefinitely! + * net/net_tcppoll.c. Removed an unnecessary check for outstanding, un-ACKed + data. The NuttX socket layer keeps track of ACKs and doesn't need this check; + removing the check should improve write throughput pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 7592e8959dc6a0163305b0734ecb529fd4a8685b Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 11 Sep 2009 21:09:46 +0000 Subject: [PATCH 0497/1518] Fix CGI pattern logic git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2040 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 140c583863..305a44ce21 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@ <h1><big><font color="#3c34ec"> <i>NuttX RTOS Porting Guide</i> </font></big></h1> - <p>Last Updated: July 18, 2009</p> + <p>Last Updated: September 11, 2009</p> </td> </tr> </table> @@ -2362,15 +2362,15 @@ extern void up_ledoff(int led); <code>CONFIG_THTTPD_SERVER_SOFTWARE</code>: SERVER_SOFTWARE: response </li> <li> - <code>CONFIG_THTTPD_PATH</code>: Server working directory + <code>CONFIG_THTTPD_PATH</code>: Server working directory. Default: <code>/mnt/www</code>. </li> <li> - <code>CONFIG_THTTPD_CGI_PATH</code>: Path to CGI executables + <code>CONFIG_THTTPD_CGI_PATH</code>: Path to CGI executables. Default: <code>/mnt/www/cgi-bin</code>. </li> <li> - <code>CONFIG_THTTPD_CGI_PATTERN</code>: Only CGI programs matching this - pattern will be executed. In fact, if this value is not defined - then no CGI logic will be built. + <code>CONFIG_THTTPD_CGI_PATTERN</code>: Only CGI programs whose expanded paths + match this pattern will be executed. In fact, if this value is not defined + then no CGI logic will be built. Default: <code>/mnt/www/cgi-bin/*</code>. </li> <li> <code>CONFIG_THTTPD_CGI_PRIORITY</code>: Provides the priority of CGI child tasks From d9cdaa38e49a7930dd29fa99142728755df1fd3b Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 12 Sep 2009 13:23:08 +0000 Subject: [PATCH 0498/1518] cosmetic git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2041 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 305a44ce21..6fe556c6cb 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -2388,7 +2388,7 @@ extern void up_ledoff(int led); to run before killing them. </li> <li> - <code>CONFIG_THTTPD_CHARSET- The default character set name to use with + <code>CONFIG_THTTPD_CHARSET</code>: The default character set name to use with text MIME types. </li> <li> From 28d4c29d5d78016960ee1317f269fff50a01f106 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 15 Sep 2009 14:18:15 +0000 Subject: [PATCH 0499/1518] Add CONFIG_DEBUG_SYMBOLS git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2053 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 +++- Documentation/NuttxPortingGuide.html | 14 +++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index fdc628d49c..dd13cb7998 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: September 11, 2009</p> + <p>Last Updated: September 15, 2009</p> </td> </tr> </table> @@ -1527,6 +1527,8 @@ nuttx-0.4.11 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * net/net_tcppoll.c. Removed an unnecessary check for outstanding, un-ACKed data. The NuttX socket layer keeps track of ACKs and doesn't need this check; removing the check should improve write throughput + * Add DEBUG configuration option to enable debug console output without disabling + optimization (and vice versa) pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 6fe556c6cb..a9bf7df8d3 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@ <h1><big><font color="#3c34ec"> <i>NuttX RTOS Porting Guide</i> </font></big></h1> - <p>Last Updated: September 11, 2009</p> + <p>Last Updated: September 15, 2009</p> </td> </tr> </table> @@ -2004,6 +2004,9 @@ extern void up_ledoff(int led); <li> <code>CONFIG_DEBUG_VERBOSE</code>: enables verbose debug output </li> + <li> + <code>CONFIG_DEBUG_SYMBOLS</code>: build without optimization and with debug symbols (needed for use with a debugger). + </li> <li> <code>CONFIG_DEBUG_SCHED</code>: enable OS debug output (disabled by default) </li> @@ -2013,12 +2016,21 @@ extern void up_ledoff(int led); <li> <code>CONFIG_DEBUG_NET</code>: enable network debug output (disabled by default) </li> + <li> + <code>CONFIG_DEBUG_USB</code>: enable USB debug output (disabled by default) + </li> <li> <code>CONFIG_DEBUG_FS</code>: enable file system debug output (disabled by default) </li> <li> <code>CONFIG_DEBUG_LIB</code>: enable C library debug output (disabled by default) </li> + <li> + <code>CONFIG_DEBUG_BINFMT</code>: enable binary loader debug output (disabled by default) + </li> + <li> + <code>CONFIG_DEBUG_GRAPHICS</code>: enable NX graphics debug output (disabled by default) + </li> <li> <code>CONFIG_ARCH_LOWPUTC</code>: architecture supports low-level, boot time console output From 9b38eddadf387d2e614c0cce3e5a4ba107594a92 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 15 Sep 2009 15:44:14 +0000 Subject: [PATCH 0500/1518] Use lldbg() instead of dbg() in interrupt level logic git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2054 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index dd13cb7998..121ba36a5c 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1529,6 +1529,9 @@ nuttx-0.4.11 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; removing the check should improve write throughput * Add DEBUG configuration option to enable debug console output without disabling optimization (and vice versa) + * Changed lots of occurrents of debug macro dbg() to lldbg(). dbg() uses + stdout to output debug data. That works fine unless (1) the dbg() macro + is interrupt logic and the interrupted task has redirected stdout! Most pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From e1bd6f149ed841148a8e402553815730a030a620 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 15 Sep 2009 17:17:51 +0000 Subject: [PATCH 0501/1518] Fix reference counting errors git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2056 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 121ba36a5c..834ba4075a 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1532,6 +1532,12 @@ nuttx-0.4.11 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Changed lots of occurrents of debug macro dbg() to lldbg(). dbg() uses stdout to output debug data. That works fine unless (1) the dbg() macro is interrupt logic and the interrupted task has redirected stdout! Most + * net/uip/uip_tcpinput.c. Connection reference count was not being set correctly + when a socket is created by accepting a new connection. Since the reference + count is bad, such sockets are not successfully duplicated when being passed + to new tasks. + * net/net_clone.c. Similarly, after a socket is cloned, its reference count + was not being initialized. pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From acc0ba815e8885846c009d1e0da3b98dfe65e42a Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 16 Sep 2009 20:51:13 +0000 Subject: [PATCH 0502/1518] Prep for 0.4.11 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2072 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 153 +++++++++++++++++---------------------- 1 file changed, 66 insertions(+), 87 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 834ba4075a..4af7ab33a4 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: September 15, 2009</p> + <p>Last Updated: September 16, 2009</p> </td> </tr> </table> @@ -706,32 +706,32 @@ </tr> </table> -<p><b>nuttx-0.4.10</b>. - This 42<sup>nd</sup> release of NuttX (nuttx-0.4.10) was made on August 8, 2009 - and is available for download from the - <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> - website. +<p><b>nuttx-0.4.11</b>. + +<p> + This 43<sup>rd</sup> release of NuttX was made on September 16, 2009 and is available for download from the + <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. The change log associated with the release is available <a href="#currentrelease">here</a>. Unreleased changes after this release are available in CVS. These unreleased changes are listed <a href="#pendingchanges">here</a>. + This release of NuttX incorporates the verified port of Jeff Poskanzer's <a href="http://acme.com/software/thttpd">THTTPD</a> HTTP server. + Many of the key features of THTTPD have been tested on the Micromint Eagle-100 development board (Cortex-M3). + These tests verify: </p> - The changes in thsi release focus on the port of Jeff Poskanzer's - <a href="http://acme.com/software/thttpd/">THTTPD</a> to NuttX. - Do to limited time to work on NuttX, that port is still not fully functional. - However, numerous related bug-fixes and functional additions for THTTPD were - added: - <ul> - <li>Several new standard C-library functions (<code>fileno</code>, <code>strstr</code>, - <code>strpbrk</code>, <code>fcntl</code>).</li> - <li>Improved and extended timing APIs (<code>mktime</code>, <code>gmtime</code>, <code>gmtime_r</code>, - <code>gettimeofday</code>, <code>localtime</code>, <code>localtime_r</code>, and - <code>strftime</code>)</li> - <li>Networking enhancements: <code>recvfrom</code> and <code>accept</code> now work with non-blocking - sockets.</li> - <li><a href="NuttXNxFlat.html">NXFLAT</a> extensions (<code>exec</code>)</li> - <li>Pattern matching logic.</li> - <li>And miscellaneous bug fixes (see the <a href="#currentrelease">ChangeLog</a> for a complete list).</li> - </ul> +<ul> + <li>Serving of files from any file system, and </li> + <li>Execution of CGI executable. + This release supports execution of <a href="http://www.nuttx.org/NuttXNxFlat.html">NXFLAT executables</a> residing on a ROMFS file system. +</ul> +<p> + A standard CGI interface is used: Information is pasted to the CGI program via POST commands and via environment variables. + CGI socket I/O is redirected to <code>stdin</code> and <code>stdout</code> so that the CGI program only need to <code>printf()</code> to send its content back to the HTTP client. +</p> +<p> + Another value to this THTTPD integration effort has been that THTTPD has provided a very good test bed for finding NuttX networking bugs. + Several very critical networking bugs have been fixed with this 0.4.11 release (see the <a href="#currentrelease">ChangeLog</a> for details). + Networking throughput has also been greatly improved. + Anyone using NuttX networking should consider upgrading to this release. </p> <table width ="100%"> @@ -1435,70 +1435,6 @@ Other memory: </tr> </table> -<ul><pre> -nuttx-0.4.10 2009-08-08 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - - * lib/: Added some basic regex-subset, pattern matching functions - * lib/: Greatly simplified mktime() and gmtime_r(). The Gregorian and - Julian time calculations were interesting, but not necessary in the - typical embeddd system. - * sched/: Added gettimeofday(). This implementation is simply a thin - wrapper around clock_gettimer(). - * lib/: Add gmtime(), localtime(), and strftime() - * binfmt/: Add exec(). This is just a wrapper that executes both - load_ and exec_module() in a more familiar manner. It is not consistent - with more standard exec() functions, however, because (1) it returns - and (2) it requires symbol table arguments. - * lib/: Add fileno() - * examples/ostest: Several of the tests used a big, hard-coded stack size - when creating test threads (16Kb stacksize). The stack size should - be controlled by the .config file or the OSTest won't work on platforms - with memory constraints. - * netutils/thttpd: An initial port of Jef Poskanzer's THTTPD HTTP server. - See http://acme.com/software/thttpd/. - * examples/thttpd: A basic test program for THTTPD - * configs/eagle100/thttpd: A build configuration for THTTPD on the Micromint - Eagle-100 LMS6918 (Cortex-M3) board. - * configs/ntosd-dm320/thttpd: A build configuration for THTTPD on the Neuros - DM320 platform. - * lib/: Added strstr() and strpbrk(). - * net/recvfrom.c and net/accept(): Sockets now support some non-blocking - operations, specifically for (1) TCP/IP read operations when read-ahead - buffering is enabled, and (2) TCP/IP accept() operations when TCP/IP - connection backlog is enabled. - * fs/fs_fcntl.c and net/net_vfcntl.c: Minimal support provided for fcntl(). - It can, at least, be used to mark sockets as blocking or non-blocking. - * net/net_close.c: Fix bug in close(). If reference count not set to zero - then uip_tcpfree() will assert when DEBUG is enabled. - * net/accept.c: Fix bug in accept(). The logic expected parts of the - return address structure to be initialized or it would return an error. - -pascal-0.1.2 2008-02-10 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - - * Add logic to build and link with the ZDS-II toolchain - use with the z16f. - * Make sure that POFF header structures are aligned - * Standardized POFF file format to big-endian - * Break up large switch statements to lower complexity - and eliminate a compiler bug - * Changes so that runtime compiles with SDCC. - -buildroot-0.1.7 2009-06-26 &lt;spudmonkey@racsa.co.cr&gt; - - * configs/avr-defconfig-4.3.3: Added support for AVR to support a NuttX - port of the ATmega128. - * toolchain/nxflat: Added logic to build NuttX NXFLAT binding support tools - * toolchain/genromfs: Added support for the genromfs tool -</pre></ul> - -<table width ="100%"> - <tr bgcolor="#e4e4e4"> - <td> - <a name="pendingchanges">Unreleased Changes</a> - </td> - </tr> -</table> - <ul><pre> nuttx-0.4.11 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; @@ -1538,6 +1474,49 @@ nuttx-0.4.11 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; to new tasks. * net/net_clone.c. Similarly, after a socket is cloned, its reference count was not being initialized. + * lib/lib_strstr.c. Improperly incremented pointer could cause comparison + failures. + * net/. Connection reference count must always be set to zero before calling + uip_tcpfree() or it could trigger a DEBUGASSERT that verifies that the + reference count is zero before freeing a connection structure. + * net/uip/uip_listen.c. uip_accept() consulted the wrong list to find the + listener on a socket. The previous logic worked most of the time, but + occasionally picked the wrong listener. + * net/net_close.c and net/net_sockets.c. Sockets were not being closed + when a task exits. If many server tasks are created and exit without closing + sockets (such as with CGI tasks), then eventually, you will run out of sockets. + * netutils/thttpd. Basic functionality of THTTPD is complete. This includes + serving up files from a file system and executing NXFLAT-based CGI programs + and pipe the stdout back to the HTTP client. + +pascal-0.1.2 2008-02-10 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + + * Add logic to build and link with the ZDS-II toolchain + use with the z16f. + * Make sure that POFF header structures are aligned + * Standardized POFF file format to big-endian + * Break up large switch statements to lower complexity + and eliminate a compiler bug + * Changes so that runtime compiles with SDCC. + +buildroot-0.1.7 2009-06-26 &lt;spudmonkey@racsa.co.cr&gt; + + * configs/avr-defconfig-4.3.3: Added support for AVR to support a NuttX + port of the ATmega128. + * toolchain/nxflat: Added logic to build NuttX NXFLAT binding support tools + * toolchain/genromfs: Added support for the genromfs tool +</pre></ul> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="pendingchanges">Unreleased Changes</a> + </td> + </tr> +</table> + +<ul><pre> +nuttx-0.4.12 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 738ab726a240b4a4654b6ed309040dd1eb5831e9 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 2 Oct 2009 23:23:55 +0000 Subject: [PATCH 0503/1518] Update group info git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2115 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 349 ++++++++++++++++++++++++--------------- 1 file changed, 218 insertions(+), 131 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 4af7ab33a4..01aab5d5b5 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: September 16, 2009</p> + <p>Last Updated: October 2, 2009</p> </td> </tr> </table> @@ -32,6 +32,13 @@ What is NuttX? Look at all those files and features... How can it be a tiny OS? </td> </tr> +<tr> + <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> + <td> + <a href="#group">NuttX Discussion Group</a>.<br> + Do you want to talk about NuttX features? Do you need some help? Problems? Bugs? + </td> +</tr> <tr> <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> <td> @@ -698,6 +705,22 @@ </table></center> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="group"><h1>NuttX Discussion Group</h1></a> + </td> + </tr> +</table> + +<p> + Most Nuttx-related discussion occurs on the <a href="http://tech.groups.yahoo.com/group/nuttx/" target="_top"><i>Yahoo!</i> NuttX group</a>. + You are cordially invited to <a href="http://groups.yahoo.com/group/nuttx/join" target="_top">join</a>. + I make a special effort to answer any questions and provide any help that I can. +</p> + + <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> @@ -756,10 +779,12 @@ A user-mode port of NuttX to the x86 Linux/Cygwin platform is available. The purpose of this port is primarily to support OS feature development. </p> - <p> - <b>STATUS:</b> - Does not support interrupts but is otherwise fully functional. - </p> + <ul> + <p> + <b>STATUS:</b> + Does not support interrupts but is otherwise fully functional. + </p> + </ul> </td> </tr> <tr> @@ -777,10 +802,12 @@ This port uses the <a href="http://www.spectrumdigital.com/">Spectrum Digital</a> evaluation board with a GNU arm-elf toolchain* under Linux or Cygwin. </p> - <p> - <b>STATUS:</b> - This port is complete, verified, and included in the initial NuttX release. - </p> + <ul> + <p> + <b>STATUS:</b> + This port is complete, verified, and included in the initial NuttX release. + </p> + </ul> </td> </tr> <tr> @@ -796,22 +823,24 @@ support is provided for the mcu123.com lpc214x evaluation board (LPC2148). This port also used the GNU arm-elf toolchain* under Linux or Cygwin. </p> - <p> - <b>STATUS:</b> - This port boots and passes the OS test (examples/ostest). - The port is complete and verified. As of NuttX 0.3.17, the port includes: - timer interrupts, serial console, USB driver, and SPI-based MMC/SD card - support. A verified NuttShell <a href="NuttShell.html">(NSH)</a> - configuration is also available. - </p> - <p> - <b>Development Environments:</b> - 1) Linux with native Linux GNU toolchain, 2) Cygwin with Cygwin GNU toolchain, or 3) Cygwin - with Windows native toolchain (CodeSourcery or devkitARM). A DIY toolchain for Linux - or Cygwin is provided by the NuttX - <a href="http://sourceforge.net/project/showfiles.php?group_id=189573&package_id=224585">buildroot</a> - package. - </p> + <ul> + <p> + <b>STATUS:</b> + This port boots and passes the OS test (examples/ostest). + The port is complete and verified. As of NuttX 0.3.17, the port includes: + timer interrupts, serial console, USB driver, and SPI-based MMC/SD card + support. A verified NuttShell <a href="NuttShell.html">(NSH)</a> + configuration is also available. + </p> + <p> + <b>Development Environments:</b> + 1) Linux with native Linux GNU toolchain, 2) Cygwin with Cygwin GNU toolchain, or 3) Cygwin + with Windows native toolchain (CodeSourcery or devkitARM). A DIY toolchain for Linux + or Cygwin is provided by the NuttX + <a href="http://sourceforge.net/project/showfiles.php?group_id=189573&package_id=224585">buildroot</a> + package. + </p> + </ul> </td> </tr> <tr> @@ -827,23 +856,25 @@ support is provided for the Olimex STR-P711 evaluation board. This port also used the GNU arm-elf toolchain* under Linux or Cygwin. </p> - <p> - <b>STATUS:</b> - Integration is complete on the basic port (boot logic, system time, serial console). - Two configurations have been verified: (1) The board boots and passes the OS test - with console output visible on UART0, and the NuttShell <a href="NuttShell.html">(NSH)</a> - is fully functional with interrupt driven serial console. An SPI driver is available - but untested (because the Olimex card slot appears to accept only MMC cards; I have - only SD cards). Additional features are needed: USB driver, MMC integration, to name two. - </p> - <p> - <b>Development Environments:</b> - 1) Linux with native Linux GNU toolchain, 2) Cygwin with Cygwin GNU toolchain, or 3) Cygwin - with Windows native toolchain (CodeSourcery or devkitARM). A DIY toolchain for Linux - or Cygwin is provided by the NuttX - <a href="http://sourceforge.net/project/showfiles.php?group_id=189573&package_id=224585">buildroot</a> - package. - </p> + <ul> + <p> + <b>STATUS:</b> + Integration is complete on the basic port (boot logic, system time, serial console). + Two configurations have been verified: (1) The board boots and passes the OS test + with console output visible on UART0, and the NuttShell <a href="NuttShell.html">(NSH)</a> + is fully functional with interrupt driven serial console. An SPI driver is available + but untested (because the Olimex card slot appears to accept only MMC cards; I have + only SD cards). Additional features are needed: USB driver, MMC integration, to name two. + </p> + <p> + <b>Development Environments:</b> + 1) Linux with native Linux GNU toolchain, 2) Cygwin with Cygwin GNU toolchain, or 3) Cygwin + with Windows native toolchain (CodeSourcery or devkitARM). A DIY toolchain for Linux + or Cygwin is provided by the NuttX + <a href="http://sourceforge.net/project/showfiles.php?group_id=189573&package_id=224585">buildroot</a> + package. + </p> + </ul> </td> </tr> <tr> @@ -860,12 +891,15 @@ This port uses the Freescale MX1ADS development board with a GNU arm-elf toolchain* under either Linux or Cygwin. </p> - <p> - <b>STATUS:</b> - This port is in progress. Coding is complete on the basic port (timer, serial console, SPI). - Verified support for the i.MX1 will be announced in a future release of NuttX (work has - been temporarily stopped to support the Luminary LM3S6918). - </p> + <ul> + <p> + <b>STATUS:</b> + This port is in progress. Coding is complete on the basic port (timer, serial console, SPI). + Verified support for the i.MX1 will be announced in a future release of NuttX (work was + been temporarily stopped to support the Luminary LM3S6918 and I have not yet worked around + some development tool issues.). + </p> + </ul> </td> </tr> <tr> @@ -884,12 +918,14 @@ <a href="http://wiki.neurostechnology.com/index.php/Developer_Welcome">Neuros OSD</a> with a GNU arm-elf toolchain* under Linux or Cygwin. </p> - <p> - <b>STATUS:</b> - The basic port (timer interrupts, serial ports, network, framebuffer, etc.) is complete. - All implemented features have been verified with the exception of the USB device-side - driver; that implementation is complete but untested. - </p> + <ul> + <p> + <b>STATUS:</b> + The basic port (timer interrupts, serial ports, network, framebuffer, etc.) is complete. + All implemented features have been verified with the exception of the USB device-side + driver; that implementation is complete but untested. + </p> + </ul> </td> </tr> <tr> @@ -906,24 +942,53 @@ This port uses the <a href=" http://www.micromint.com/">Micromint</a> Eagle-100 development board with a GNU arm-elf toolchain* under either Linux or Cygwin. </p> - <p> - <b>STATUS:</b> - The initial, release of this port was included in NuttX version 0.4.6. - The current port includes timer, serial console, Ethernet, SSI, and microSD support. - There are working configurations the NuttX OS test, to run the <a href="NuttShell.html">NuttShell - (NSH)</a>, the NuttX networking test, and the uIP web server. - </p> - <p> - <b>Development Environments:</b> - 1) Linux with native Linux GNU toolchain, 2) Cygwin with Cygwin GNU toolchain, or 3) Cygwin - with Windows native toolchain (CodeSourcery or devkitARM). A DIY toolchain for Linux - or Cygwin is provided by the NuttX - <a href="http://sourceforge.net/project/showfiles.php?group_id=189573&package_id=224585">buildroot</a> - package. - </p> + <ul> + <p> + <b>STATUS:</b> + The initial, release of this port was included in NuttX version 0.4.6. + The current port includes timer, serial console, Ethernet, SSI, and microSD support. + There are working configurations the NuttX OS test, to run the <a href="NuttShell.html">NuttShell + (NSH)</a>, the NuttX networking test, and the uIP web server. + </p> + <p> + <b>Development Environments:</b> + 1) Linux with native Linux GNU toolchain, 2) Cygwin with Cygwin GNU toolchain, or 3) Cygwin + with Windows native toolchain (CodeSourcery or devkitARM). A DIY toolchain for Linux + or Cygwin is provided by the NuttX + <a href="http://sourceforge.net/project/showfiles.php?group_id=189573&package_id=224585">buildroot</a> + package. + </p> + </ul> + </td> +</tr> +<tr> + <td><br></td> + <td> + <p> + <b>STMIcro STM32F103x</b>. + This port uses the <a href=" http://www.st.com/">STMicro</a> STM3210E-EVAL + development board that features the STM32F103ZET6 MCU. + This port uses a GNU arm-elf toolchain* under either Linux or Cygwin (with native Windows GNU + tools or Cygwin-based GNU tools). + </p> + <ul> + <p> + <b>STATUS:</b> + As of this writing, the basic code is in place for boot-up, serial port and + timer interrupt, but lots of debug work remains (and a few more drivers are + needed) before it is released in 0.4.12. + </p> + <p> + <b>Development Environments:</b> + 1) Linux with native Linux GNU toolchain, 2) Cygwin with Cygwin GNU toolchain, or 3) Cygwin + with Windows native toolchain (RIDT, CodeSourcery or devkitARM). A DIY toolchain for Linux + or Cygwin is provided by the NuttX + <a href="http://sourceforge.net/project/showfiles.php?group_id=189573&package_id=224585">buildroot</a> + package. + </p> + </ul> </td> </tr> - <tr> <td valign="top"><img height="20" width="20" src="favicon.ico"></td> <td bgcolor="#5eaee1"> @@ -938,15 +1003,17 @@ This port uses the <a href="http://www.pjrc.com/">PJRC</a> 87C52 development system and the <a href="http://sdcc.sourceforge.net/">SDCC</a> toolchain under Linux or Cygwin. </p> - <p> - <b>STATUS:</b> - This port is complete but not stable with timer interrupts enabled. - There seems to be some issue when the stack pointer enters into the indirect IRAM - address space during interrupt handling. - This architecture has not been built in some time will likely have some compilation - problems because of SDCC compiler differences. - </p> - </td> + <ul> + <p> + <b>STATUS:</b> + This port is complete but not stable with timer interrupts enabled. + There seems to be some issue when the stack pointer enters into the indirect IRAM + address space during interrupt handling. + This architecture has not been built in some time will likely have some compilation + problems because of SDCC compiler differences. + </p> + </ul> + </td> </tr> <tr> <td valign="top"><img height="20" width="20" src="favicon.ico"></td> @@ -962,18 +1029,20 @@ This port uses the Hitachi SH-1 Low-Cost Evaluation Board (SH1_LCEVB1), US7032EVB, with a GNU arm-elf toolchain* under Linux or Cygwin. </p> - <p> - <b>STATUS:</b> - This port is available as of release 0.3.18 of NuttX. The port is basically complete - and many examples run correctly. However, there are remaining instabilities that - make the port un-usable. The nature of these is not understood; the behavior is - that certain SH-1 instructions stop working as advertised. This could be a silicon - problem, some pipeline issue that is not handled properly by the gcc 3.4.5 toolchain - (which has very limit SH-1 support to begin with), or perhaps with the CMON debugger. - At any rate, I have exhausted all of the energy that I am willing to put into this cool - old processor for the time being. - </p> - </td> + <ul> + <p> + <b>STATUS:</b> + This port is available as of release 0.3.18 of NuttX. The port is basically complete + and many examples run correctly. However, there are remaining instabilities that + make the port un-usable. The nature of these is not understood; the behavior is + that certain SH-1 instructions stop working as advertised. This could be a silicon + problem, some pipeline issue that is not handled properly by the gcc 3.4.5 toolchain + (which has very limit SH-1 support to begin with), or perhaps with the CMON debugger. + At any rate, I have exhausted all of the energy that I am willing to put into this cool + old processor for the time being. + </p> + </ul> + </td> </tr> <tr> <td valign="top"><img height="20" width="20" src="favicon.ico"></td> @@ -989,26 +1058,28 @@ This port uses the Renesas SKP16C26 Starter kit and the GNU M32C toolchain. The development environment is either Linux or Cygwin under WinXP. </p> - <p> - <b>STATUS:</b> - Initial source files released in nuttx-0.4.2. - At this point, the port has not been integrated; the target cannot be built - because the GNU <code>m16c-elf-ld</code> link fails with the following message: - </p> <ul> - <code>m32c-elf-ld: BFD (GNU Binutils) 2.19 assertion fail /home/Owner/projects/nuttx/buildroot/toolchain_build_m32c/binutils-2.19/bfd/elf32-m32c.c:482</code> - </ul> - <p>Where the reference line is:</p> - <ul><pre> + <p> + <b>STATUS:</b> + Initial source files released in nuttx-0.4.2. + At this point, the port has not been integrated; the target cannot be built + because the GNU <code>m16c-elf-ld</code> link fails with the following message: + </p> + <ul> + <code>m32c-elf-ld: BFD (GNU Binutils) 2.19 assertion fail /home/Owner/projects/nuttx/buildroot/toolchain_build_m32c/binutils-2.19/bfd/elf32-m32c.c:482</code> + </ul> + <p>Where the reference line is:</p> + <ul><pre> /* If the symbol is out of range for a 16-bit address, we must have allocated a plt entry. */ BFD_ASSERT (*plt_offset != (bfd_vma) -1); </pre></ul> - <p> - No workaround is known at this time. This is a show stopper for M16C for - the time being. - </p> - </td> + <p> + No workaround is known at this time. This is a show stopper for M16C for + the time being. + </p> + </ul> + </td> </tr> <tr> <td valign="top"><img height="20" width="20" src="favicon.ico"></td> @@ -1025,11 +1096,13 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1); ZDS-II Windows command line tools. The development environment is Cygwin under WinXP. </p> - <p> - <b>STATUS:</b> - The initial release of support for the z16f was made available in NuttX version 0.3.7. - </p> - </td> + <ul> + <p> + <b>STATUS:</b> + The initial release of support for the z16f was made available in NuttX version 0.3.7. + </p> + </ul> + </td> </tr> <tr> <td valign="top"><img height="20" width="20" src="favicon.ico"></td> @@ -1053,14 +1126,16 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1); Windows command line tools. The development environment is Cygwin under WinXP. </p> - <p> - <b>STATUS:</b> - Integration and testing of NuttX on the ZiLOG ez80f0910200zcog-d is complete. - The first integrated version was released in NuttX version 0.4.2 (with important early bugfixes - in 0.4.3 and 0.4.4). - As of this writing, that port provides basic board support with a serial console, SPI, and eZ80F91 EMAC driver. - </p> - </td> + <ul> + <p> + <b>STATUS:</b> + Integration and testing of NuttX on the ZiLOG ez80f0910200zcog-d is complete. + The first integrated version was released in NuttX version 0.4.2 (with important early bugfixes + in 0.4.3 and 0.4.4). + As of this writing, that port provides basic board support with a serial console, SPI, and eZ80F91 EMAC driver. + </p> + </ul> + </td> </tr> <tr> <td valign="top"><img height="20" width="20" src="favicon.ico"></td> @@ -1083,12 +1158,14 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1); and the Zilog ZDS-II Windows command line tools. The development environment is Cygwin under WinXP. </p> - <p> - <b>STATUS:</b> - This release has been verified only on the ZiLOG ZDS-II Z8Encore! chip simulation - as of nuttx-0.3.9. - </p> - </td> + <ul> + <p> + <b>STATUS:</b> + This release has been verified only on the ZiLOG ZDS-II Z8Encore! chip simulation + as of nuttx-0.3.9. + </p> + <ul> + </td> </tr> <tr> <td valign="top"><img height="20" width="20" src="favicon.ico"></td> @@ -1107,12 +1184,14 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1); That simulator can be found in the NuttX CVS <a href="http://nuttx.cvs.sourceforge.net/nuttx/misc/sims/z80sim/">here</a>. </p> - <p> - <b>STATUS:</b> - This port is complete and stable to the extent that it can be tested - using an instruction set simulator. - </p> - </td> + <ul> + <p> + <b>STATUS:</b> + This port is complete and stable to the extent that it can be tested + using an instruction set simulator. + </p> + <ul> + </td> </tr> <tr> <td valign="top"><img height="20" width="20" src="favicon.ico"></td> @@ -1518,6 +1597,14 @@ buildroot-0.1.7 2009-06-26 &lt;spudmonkey@racsa.co.cr&gt; <ul><pre> nuttx-0.4.12 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + * arch/arm/src/stm32 and configs/stm3210e-eval. Added basic support for the + STMicro STM32, Cortex-M3 MCU. The specific port is to the STMicro STM3210E-EVAL + development board based around the STM32F103ZET6 MCU. + + As of this writing, the basic code is in place for boot-up, serial port and + timer interrupt, but lots of debug work remains (and a few more drivers are + needed) before it is released in 0.4.12. + pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; buildroot-0.1.8 2009-xx-xx &lt;spudmonkey@racsa.co.cr&gt; From a04f98b691a28073344f02421719a34e6b34c46a Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 13 Oct 2009 23:59:05 +0000 Subject: [PATCH 0504/1518] update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2130 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 01aab5d5b5..5baede9d78 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: October 2, 2009</p> + <p>Last Updated: October 13, 2009</p> </td> </tr> </table> @@ -965,7 +965,7 @@ <td><br></td> <td> <p> - <b>STMIcro STM32F103x</b>. + <b>STMicro STM32F103x</b>. This port uses the <a href=" http://www.st.com/">STMicro</a> STM3210E-EVAL development board that features the STM32F103ZET6 MCU. This port uses a GNU arm-elf toolchain* under either Linux or Cygwin (with native Windows GNU @@ -974,14 +974,19 @@ <ul> <p> <b>STATUS:</b> - As of this writing, the basic code is in place for boot-up, serial port and - timer interrupt, but lots of debug work remains (and a few more drivers are - needed) before it is released in 0.4.12. + As of this writing, the STM32 port is well along and already passes the basic NuttX + OS test at examples/ostest. The rest should be a piece of cake. + </p> + <p> + Things left to do: interrupt driver USART console driver, NSH bring-up, + USB driver, LCD driver and NX bringup on the eval board's display, SPI driver, + and MicroSD support. I will probably release 0.4.12 at the point where NSH + is working properly; LCD and SPI will wait for 0.4.13. </p> <p> <b>Development Environments:</b> 1) Linux with native Linux GNU toolchain, 2) Cygwin with Cygwin GNU toolchain, or 3) Cygwin - with Windows native toolchain (RIDT, CodeSourcery or devkitARM). A DIY toolchain for Linux + with Windows native toolchain (RIDE7, CodeSourcery or devkitARM). A DIY toolchain for Linux or Cygwin is provided by the NuttX <a href="http://sourceforge.net/project/showfiles.php?group_id=189573&package_id=224585">buildroot</a> package. @@ -1600,10 +1605,16 @@ nuttx-0.4.12 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * arch/arm/src/stm32 and configs/stm3210e-eval. Added basic support for the STMicro STM32, Cortex-M3 MCU. The specific port is to the STMicro STM3210E-EVAL development board based around the STM32F103ZET6 MCU. + * configs/stm3210e-eval/RIDE. Added a basic STMicro RIDE7 project that can be + used to perform basic STM32 board bring-up (due to RIDE7 size limitations, it + cannot be used for the full NuttX bring-up). + * configs/stm3210e-eval/ostest. The STM32 now passes the basic NuttX OS test + at examples/ostest. The rest should be a piece of cake. - As of this writing, the basic code is in place for boot-up, serial port and - timer interrupt, but lots of debug work remains (and a few more drivers are - needed) before it is released in 0.4.12. + STM32: Things left to do: interrupt driver USART console driver, NSH bring-up, + USB driver, LCD driver and NX bringup on the eval board's display, SPI driver, + and MicroSD support. I will probably release 0.4.12 at the point where NSH + is working properly; LCD and SPI will wait for 0.4.13. pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From cc8feef51102b321f7b63470175510543966d28b Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 14 Oct 2009 20:41:56 +0000 Subject: [PATCH 0505/1518] LEDs on port F, not C git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2135 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 5baede9d78..98d8fa7f66 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: October 13, 2009</p> + <p>Last Updated: October 14, 2009</p> </td> </tr> </table> @@ -1610,6 +1610,8 @@ nuttx-0.4.12 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; cannot be used for the full NuttX bring-up). * configs/stm3210e-eval/ostest. The STM32 now passes the basic NuttX OS test at examples/ostest. The rest should be a piece of cake. + * configs/stm3210e-eval/nsh. Added NuttShell (NSH) example. + * configs/stm3210e-eval/src/stm32102e-internal.h. Fix on-board LED GPIO definitions. STM32: Things left to do: interrupt driver USART console driver, NSH bring-up, USB driver, LCD driver and NX bringup on the eval board's display, SPI driver, From c32dac19b7ded75c843a377f0e0eaa0227445f00 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 14 Oct 2009 21:54:31 +0000 Subject: [PATCH 0506/1518] Add README file info git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2136 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 ++ Documentation/README.html | 136 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 140 insertions(+) create mode 100755 Documentation/README.html diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 98d8fa7f66..ee34e4891a 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1666,6 +1666,10 @@ buildroot-0.1.8 2009-xx-xx &lt;spudmonkey@racsa.co.cr&gt; <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> <td><a href="NXGraphicsSubsystem.html">NX Graphics Subsystem</a></td> </tr> +<tr> + <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> + <td><a href="README.html">NuttX README Files</a></td> +</tr> <tr> <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> <td><a href="ChangeLog.txt">Change Log</a></td> diff --git a/Documentation/README.html b/Documentation/README.html new file mode 100755 index 0000000000..025bd273f3 --- /dev/null +++ b/Documentation/README.html @@ -0,0 +1,136 @@ +<html> +<head> +<title>README Files</title> +</head> +<body background="backgd.gif"> +<base href="http://nuttx.cvs.sourceforge.net/viewvc/*checkout*/nuttx/nuttx/" TARGET="_self"> +<hr><hr> +<table width ="100%"> + <tr align="center" bgcolor="#e4e4e4"> + <td> + <h1><big><font color="#3c34ec"><i>NuttX README Files</i></font></big></h1> + <p>Last Updated: October 14, 2009</p> + </td> + </tr> +</table> +<p> + Additional information can be found in the <code>Documentation/</code> directory and + also in <code>README</code> files that are scattered throughout the source tree. + Below is a guide to the available <code>README</code> files. + Some <code>README</code> files contain more important information than others. + The key <code>README</code> files are shown in <code><i><b>BOLDFACE/ITALIC</i></b></code> below. +</p> +<ul><pre> + . + | + |- arch/ + | | + | |- arm + | | `- src + | | `- <a href="arch/arm/src/lpc214x/README.txt">lpc214x/README.txt</a> + | |- sh/ + | | |- include/ + | | | |-<a href="arch/sh/include/m16c/README.txt">m16c/README.txt</a> + | | | |-<a href="arch/sh/include/sh1/README.txt">sh1/README.txt</a> + | | | `-<a href="arch/sh/include/README.txt">README.txt</a> + | | |- src/ + | | | |-<a href="arch/sh/src/common/README.txt">common/README.txt</a> + | | | |-<a href="arch/sh/src/m16c/README.txt">m16c/README.txt</a> + | | | |-<a href="arch/sh/src/sh1/README.txt">sh1/README.txt</a> + | | | `-<a href="arch/sh/src/README.txt">README.txt</a> + | `- z80/ + | | `- src/ + | | `- <a href="arch/z80/src/z80/README.txt">z80/README.txt</a> + | `- <a href="arch/README.txt"><b><i>README.txt</i></b></a> + |- configs/ + | |- c5471evm/ + | | |- <a href="configs/c5471evm/include/README.txt">include/README.txt</a> + | | |- <a href="configs/c5471evm/src/README.txt">src/README.txt</a> + | | `- <a href="configs/c5471evm/README.txt"><b><i>README.txt</i></b></a> + | |- eagle100/ + | | |- <a href="configs/eagle100/include/README.txt">include/README.txt</a> + | | |- <a href="configs/eagle100/src/README.txt">src/README.txt</a> + | | `- <a href="configs/eagle100/README.txt"><b><i>README.txt</i></b></a> + | |- ez80f910200kitg/ + | | |- <a href="configs/ez80f910200kitg/ostest/README.txt">ostest/README.txt</a> + | | `- <a href="configs/ez80f910200kitg/README.txt"><b><i>README.txt</i></b></a> + | |- ez80f910200zco/ + | | |- <a href="configs/ez80f910200zco/ostest/README.txt">dhcpd/README.txt</a> + | | |- <a href="configs/ez80f910200zco/httpd/README.txt">httpd/README.txt</a> + | | |- <a href="configs/ez80f910200zco/nettest/README.txt">nettest/README.txt</a> + | | |- <a href="configs/ez80f910200zco/nsh/README.txt">nsh/README.txt</a> + | | |- <a href="configs/ez80f910200zco/ostest/README.txt">ostest/README.txt</a> + | | |- <a href="configs/ez80f910200zco/poll/README.txt">poll/README.txt</a> + | | `- <a href="configs/ez80f910200zco/README.txt"><b><i>README.txt</i></b></a> + | |- m68332evb/ + | | |- <a href="configs/m68332evb/include/README.txt">include/README.txt</a> + | | `- <a href="configs/m68332evb/src/README.txt">src/README.txt</a> + | |- mcu123-lpc214x/ + | | |- <a href="configs/mcu123-lpc214x/include/README.txt">include/README.txt</a> + | | |- <a href="configs/mcu123-lpc214x/src/README.txt">src/README.txt</a> + | | `- <a href="configs/mcu123-lpc214x/README.txt"><b><i>README.txt</i></b></a> + | |- mx1ads/ + | | |- <a href="configs/mx1ads/include/README.txt">include/README.txt</a> + | | |- <a href="configs/mx1ads/src/README.txt">src/README.txt</a> + | | `- <a href="configs/mx1ads/README.txt"><b><i>README.txt</i></b></a> + | |- ntosd-dm320/ + | | |- <a href="configs/ntosd-dm320/doc/README.txt">doc/README.txt</a> + | | |- <a href="configs/ntosd-dm320/include/README.txt">include/README.txt</a> + | | |- <a href="configs/ntosd-dm320/src/README.txt">src/README.txt</a> + | | `- <a href="configs/ntosd-dm320/README.txt"><b><i>README.txt</i></b></a> + | |- olimex-strp711/ + | | |- <a href="configs/olimex-strp711/include/README.txt">include/README.txt</a> + | | |- <a href="configs/olimex-strp711/src/README.txt">src/README.txt</a> + | | `- <a href="configs/olimex-strp711/README.txt"><b><i>README.txt</i></b></a> + | |- pjrc-8051/ + | | |- <a href="configs/pjrc-8051/include/README.txt">include/README.txt</a> + | | |- <a href="configs/pjrc-8051/src/README.txt">src/README.txt</a> + | | `- <a href="configs/pjrc-8051/README.txt"><b><i>README.txt</i></b></a> + | |- sim/ + | | |- <a href="configs/sim/include/README.txt">include/README.txt</a> + | | |- <a href="configs/sim/src/README.txt">src/README.txt</a> + | | `- <a href="configs/sim/README.txt"><b><i>README.txt</i></b></a> + | |- skp16c26/ + | | |- <a href="configs/skp16c26/include/README.txt">include/README.txt</a> + | | |- <a href="configs/skp16c26/src/README.txt">src/README.txt</a> + | | `- <a href="configs/skp16c26/README.txt"><b><i>README.txt</i></b></a> + | |- stm3210e-eval/ + | | |- <a href="configs/stm3210e-eval/include/README.txt">include/README.txt</a> + | | |- <a href="configs/stm3210e-eval/RIDE/README.txt">RIDE/README.txt</a> + | | |- <a href="configs/stm3210e-eval/src/README.txt">src/README.txt</a> + | | `- <a href="configs/stm3210e-eval/README.txt"><b><i>README.txt</i></b></a> + | |- us7032evb1/ + | | |- <a href="configs/us7032evb1/bin/README.txt">bin/README.txt</a> + | | |- <a href="configs/us7032evb1/include/README.txt">include/README.txt</a> + | | |- <a href="configs/us7032evb1/src/README.txt">src/README.txt</a> + | | `- <a href="configs/us7032evb1/README.txt"><b><i>README.txt</i></b></a> + | |- xtrs/ + | | |- <a href="configs/xtrs/include/README.txt">include/README.txt</a> + | | |- <a href="configs/xtrs/src/README.txt">src/README.txt</a> + | | `- <a href="configs/xtrs/README.txt"><b><i>README.txt</i></b></a> + | |- z16f2800100zcog/ + | | |- <a href="configs/xtrs/ostest/README.txt">ostest/README.txt</a> + | | |- <a href="configs/xtrs/pashello/README.txt">pashello/README.txt</a> + | | `- <a href="configs/xtrs/README.txt"><b><i>README.txt</i></b></a> + | |- z80sim/ + | | |- <a href="configs/z80sim/include/README.txt">include/README.txt</a> + | | |- <a href="configs/z80sim/src/README.txt">src/README.txt</a> + | | `- <a href="configs/z80sim/README.txt"><b><i>README.txt</i></b></a> + | |- z8encore000zco/ + | | |- <a href="configs/z8encore000zco/ostest/README.txt">ostest/README.txt</a> + | | `- <a href="configs/z8encore000zco/README.txt"><b><i>README.txt</i></b></a> + | |- z8f64200100kit/ + | | |- <a href="configs/z8f64200100kit/ostest/README.txt">ostest/README.txt</a> + | | `- <a href="configs/z8f64200100kit/README.txt"><b><i>README.txt</i></b></a> + | `- <a href="configs/README.txt"><b><i>README.txt</i></b></a> + |- examples/ + | |- <a href="examples/nsh/README.txt"><b><i>nsh/README.txt</i></b></a> + | |- <a href="examples/pashello/README.txt">pashello/README.txt</a> + | `- <a href="examples/README.txt"><b><i>README.txt</i></b></a> + |- graphics/ + | `- <a href="graphics/README.txt"><b><i>README.txt</i></b></a> + |- libxx/ + | `- <a href="libxx/README.txt"><b><i>README.txt</i></b></a> + `- netutils/ + |- <a href="netutils/telnetd/README.txt">telnetd/README.txt</a> + `- <a href="netutils/README"><b><i>README</a></a> From d7a255f781e95c8a55f25f9bd4a454255410c54a Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 17 Oct 2009 00:50:01 +0000 Subject: [PATCH 0507/1518] Completes 1st cut of SPI DMA git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2147 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index ee34e4891a..e9ec431e04 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: October 14, 2009</p> + <p>Last Updated: October 16, 2009</p> </td> </tr> </table> @@ -1612,6 +1612,8 @@ nuttx-0.4.12 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; at examples/ostest. The rest should be a piece of cake. * configs/stm3210e-eval/nsh. Added NuttShell (NSH) example. * configs/stm3210e-eval/src/stm32102e-internal.h. Fix on-board LED GPIO definitions. + * arch/arm/src/stm32/src/stm32/stm32_dma.c. Added DMA channel support for the STM32 + * arch/arm/src/stm32/src/stm32/stm32_spi.c. Added a DMA-based SPI driver for the STM32. STM32: Things left to do: interrupt driver USART console driver, NSH bring-up, USB driver, LCD driver and NX bringup on the eval board's display, SPI driver, From c59f8795ea5be5099d13dceeaf99dbfb916e0b3f Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 17 Oct 2009 22:04:31 +0000 Subject: [PATCH 0508/1518] Prep for 0.4.11 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2152 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 139 ++++++++++++--------------------------- 1 file changed, 43 insertions(+), 96 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index e9ec431e04..a01f4ce177 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: October 16, 2009</p> + <p>Last Updated: October 17, 2009</p> </td> </tr> </table> @@ -732,29 +732,28 @@ <p><b>nuttx-0.4.11</b>. <p> - This 43<sup>rd</sup> release of NuttX was made on September 16, 2009 and is available for download from the + This 44<sup>th</sup> release of NuttX was made on October 17, 2009 and is available for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. The change log associated with the release is available <a href="#currentrelease">here</a>. Unreleased changes after this release are available in CVS. These unreleased changes are listed <a href="#pendingchanges">here</a>. - This release of NuttX incorporates the verified port of Jeff Poskanzer's <a href="http://acme.com/software/thttpd">THTTPD</a> HTTP server. - Many of the key features of THTTPD have been tested on the Micromint Eagle-100 development board (Cortex-M3). - These tests verify: -</p> -<ul> - <li>Serving of files from any file system, and </li> - <li>Execution of CGI executable. - This release supports execution of <a href="http://www.nuttx.org/NuttXNxFlat.html">NXFLAT executables</a> residing on a ROMFS file system. -</ul> -<p> - A standard CGI interface is used: Information is pasted to the CGI program via POST commands and via environment variables. - CGI socket I/O is redirected to <code>stdin</code> and <code>stdout</code> so that the CGI program only need to <code>printf()</code> to send its content back to the HTTP client. </p> <p> - Another value to this THTTPD integration effort has been that THTTPD has provided a very good test bed for finding NuttX networking bugs. - Several very critical networking bugs have been fixed with this 0.4.11 release (see the <a href="#currentrelease">ChangeLog</a> for details). - Networking throughput has also been greatly improved. - Anyone using NuttX networking should consider upgrading to this release. + This release adds basic support for the STMicro STM32, Cortex-M3 MCU. + The specific port is to the STMicro STM3210E-EVAL development board based around the STM32F103ZET6 MCU. + Some highlights of this port: + <ul> + <li>This basic port includes boot-up logic, interrupt driven serial console, and system timer interrupts.<li> + <li>The port includes a basic STMicro RIDE7 project that can be used to perform basic STM32 board bring-up + (due to RIDE7 size limitations, it cannot be used for the full NuttX testing, unfortunately).<li> + <li>Working, Tested Configurations: the NuttX OS test and the NuttShell (NSH) example.<li> + </ul> +</p> +<p> + It is planned to extend this basic STM32 port for the 0.4.12 NuttX release. + Additional functionality needed for complete STM32 support includes: + USB device driver, LCD driver and NX bringup on the development board's display and MicroSD support. + An SPI driver and a DMA support was included in this 0.4.11 release, but is not yet tested. </p> <table width ="100%"> @@ -974,14 +973,13 @@ <ul> <p> <b>STATUS:</b> - As of this writing, the STM32 port is well along and already passes the basic NuttX - OS test at examples/ostest. The rest should be a piece of cake. - </p> - <p> - Things left to do: interrupt driver USART console driver, NSH bring-up, - USB driver, LCD driver and NX bringup on the eval board's display, SPI driver, - and MicroSD support. I will probably release 0.4.12 at the point where NSH - is working properly; LCD and SPI will wait for 0.4.13. + The basic STM32 port was released in NuttX version 0.4.11. This basic port includes boot-up + logic, interrupt driven serial console, and system timer interrupts. + Verified configurations are available for NuttX OS test and the NuttShell (NSH) example. + This basic STM32 port will be extended in the 0.4.12 NuttX release. Functionality needed + for complete STM32 support includes: USB device driver, LCD driver and NX bringup on the + development board's display and MicroSD support. An SPI driver and a DMA support was included + in the 0.4.11 release, but is not yet tested. </p> <p> <b>Development Environments:</b> @@ -1520,58 +1518,25 @@ Other memory: </table> <ul><pre> -nuttx-0.4.11 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; +0.4.12 2009-10-17 Gregory Nutt <spudmonkey@racsa.co.cr> - * fs/fs_read.c and fs/fs_write.c. read() and write() to socket is the - same as recv() and send() with flags = 0. Fixed! - * net/recvfrom.c: Fix errors in return value from non-blocking socket read. - * lib/lib_strcasecmp.c and lib/lib_strncasecmp.c. Use of post-incremented - argument to macro caused strcasecmp() and strncasecmp() to fail. - * lib/lib_strstr.c: Length of substring off by one causes false alarm - sub-string matches. - * arch/arm/src/lm3s/lm3s_ethernet.c: Fix errors in LMS6918 FIFO length - handling. (1) The incorrect size of the ethernet header was being - subtracted on outgoing messages (4 vs 14), which caused outgoing messages to - be a little too long. (2) The size of incoming FIFO messages is 6 bytes - larger than it expected (2 for the length and 4 for the FCS). The unhandled - extra two bytes of length cause the driver to sometimes read one too many - words from the received FIFO (corrupting the next queued receive packet, - if any). - * net/net_poll.c and net/uip/uip_tcpbacklog.c. Fixed an important race condition - bug in polling for connections. The logic worked if the poll was inplace - before the connection was received; but the poll failed to awaken if the - connection was already pending in the backlog when poll() was called. - * net/net_close.c. Fixed another important TCP/IP race condition bug: If - the host closes the TCP connection just before the target calls close(), then - the close operation may hang indefinitely! - * net/net_tcppoll.c. Removed an unnecessary check for outstanding, un-ACKed - data. The NuttX socket layer keeps track of ACKs and doesn't need this check; - removing the check should improve write throughput - * Add DEBUG configuration option to enable debug console output without disabling - optimization (and vice versa) - * Changed lots of occurrents of debug macro dbg() to lldbg(). dbg() uses - stdout to output debug data. That works fine unless (1) the dbg() macro - is interrupt logic and the interrupted task has redirected stdout! Most - * net/uip/uip_tcpinput.c. Connection reference count was not being set correctly - when a socket is created by accepting a new connection. Since the reference - count is bad, such sockets are not successfully duplicated when being passed - to new tasks. - * net/net_clone.c. Similarly, after a socket is cloned, its reference count - was not being initialized. - * lib/lib_strstr.c. Improperly incremented pointer could cause comparison - failures. - * net/. Connection reference count must always be set to zero before calling - uip_tcpfree() or it could trigger a DEBUGASSERT that verifies that the - reference count is zero before freeing a connection structure. - * net/uip/uip_listen.c. uip_accept() consulted the wrong list to find the - listener on a socket. The previous logic worked most of the time, but - occasionally picked the wrong listener. - * net/net_close.c and net/net_sockets.c. Sockets were not being closed - when a task exits. If many server tasks are created and exit without closing - sockets (such as with CGI tasks), then eventually, you will run out of sockets. - * netutils/thttpd. Basic functionality of THTTPD is complete. This includes - serving up files from a file system and executing NXFLAT-based CGI programs - and pipe the stdout back to the HTTP client. + * arch/arm/src/stm32 and configs/stm3210e-eval. Added basic support for the + STMicro STM32, Cortex-M3 MCU. The specific port is to the STMicro STM3210E-EVAL + development board based around the STM32F103ZET6 MCU. + * configs/stm3210e-eval/RIDE. Added a basic STMicro RIDE7 project that can be + used to perform basic STM32 board bring-up (due to RIDE7 size limitations, it + cannot be used for the full NuttX bring-up). + * configs/stm3210e-eval/ostest. The STM32 now passes the basic NuttX OS test + at examples/ostest. The rest should be a piece of cake. + * configs/stm3210e-eval/nsh. Added NuttShell (NSH) example. + * configs/stm3210e-eval/src/stm32102e-internal.h. Fix on-board LED GPIO definitions. + * arch/arm/src/stm32/src/stm32/stm32_dma.c. Added DMA channel support for the STM32 + * arch/arm/src/stm32/src/stm32/stm32_spi.c. Added a DMA-based SPI driver for the STM32. + * arch/arm/src/stm32/src/stm32/stm32_serial.c. Finished interrupt-drivent, + USART console driver. This makes NSH work perfectly. + * Things left to do for the STM32 deferred to the 0.4.13 release: USB device driver, + LCD driver and NX bringup on the eval board's display and MicroSD support. An SPI + driver was included in the 0.4.12 release, but is not yet tested. pascal-0.1.2 2008-02-10 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; @@ -1600,25 +1565,7 @@ buildroot-0.1.7 2009-06-26 &lt;spudmonkey@racsa.co.cr&gt; </table> <ul><pre> -nuttx-0.4.12 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - - * arch/arm/src/stm32 and configs/stm3210e-eval. Added basic support for the - STMicro STM32, Cortex-M3 MCU. The specific port is to the STMicro STM3210E-EVAL - development board based around the STM32F103ZET6 MCU. - * configs/stm3210e-eval/RIDE. Added a basic STMicro RIDE7 project that can be - used to perform basic STM32 board bring-up (due to RIDE7 size limitations, it - cannot be used for the full NuttX bring-up). - * configs/stm3210e-eval/ostest. The STM32 now passes the basic NuttX OS test - at examples/ostest. The rest should be a piece of cake. - * configs/stm3210e-eval/nsh. Added NuttShell (NSH) example. - * configs/stm3210e-eval/src/stm32102e-internal.h. Fix on-board LED GPIO definitions. - * arch/arm/src/stm32/src/stm32/stm32_dma.c. Added DMA channel support for the STM32 - * arch/arm/src/stm32/src/stm32/stm32_spi.c. Added a DMA-based SPI driver for the STM32. - - STM32: Things left to do: interrupt driver USART console driver, NSH bring-up, - USB driver, LCD driver and NX bringup on the eval board's display, SPI driver, - and MicroSD support. I will probably release 0.4.12 at the point where NSH - is working properly; LCD and SPI will wait for 0.4.13. +nuttx-0.4.13 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From eef0a406042cd125a8c1fc3fa87dc8bea3d2bf35 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 17 Oct 2009 22:12:50 +0000 Subject: [PATCH 0509/1518] Prep for the 0.4.12 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2153 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index a01f4ce177..382faeb879 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -729,7 +729,7 @@ </tr> </table> -<p><b>nuttx-0.4.11</b>. +<p><b>nuttx-0.4.12</b>. <p> This 44<sup>th</sup> release of NuttX was made on October 17, 2009 and is available for download from the @@ -750,10 +750,10 @@ </ul> </p> <p> - It is planned to extend this basic STM32 port for the 0.4.12 NuttX release. + It is planned to extend this basic STM32 port for the 0.4.13 NuttX release. Additional functionality needed for complete STM32 support includes: USB device driver, LCD driver and NX bringup on the development board's display and MicroSD support. - An SPI driver and a DMA support was included in this 0.4.11 release, but is not yet tested. + An SPI driver and a DMA support was included in this 0.4.12 release, but is not yet tested. </p> <table width ="100%"> @@ -973,13 +973,13 @@ <ul> <p> <b>STATUS:</b> - The basic STM32 port was released in NuttX version 0.4.11. This basic port includes boot-up + The basic STM32 port was released in NuttX version 0.4.12. This basic port includes boot-up logic, interrupt driven serial console, and system timer interrupts. Verified configurations are available for NuttX OS test and the NuttShell (NSH) example. - This basic STM32 port will be extended in the 0.4.12 NuttX release. Functionality needed + This basic STM32 port will be extended in the 0.4.13 NuttX release. Functionality needed for complete STM32 support includes: USB device driver, LCD driver and NX bringup on the development board's display and MicroSD support. An SPI driver and a DMA support was included - in the 0.4.11 release, but is not yet tested. + in the 0.4.12 release, but is not yet tested. </p> <p> <b>Development Environments:</b> @@ -1534,7 +1534,7 @@ Other memory: * arch/arm/src/stm32/src/stm32/stm32_spi.c. Added a DMA-based SPI driver for the STM32. * arch/arm/src/stm32/src/stm32/stm32_serial.c. Finished interrupt-drivent, USART console driver. This makes NSH work perfectly. - * Things left to do for the STM32 deferred to the 0.4.13 release: USB device driver, + * Things left to do for the STM32 deferred to the 0.4.13 release: USB device driver, LCD driver and NX bringup on the eval board's display and MicroSD support. An SPI driver was included in the 0.4.12 release, but is not yet tested. From b7dbc99f534e0a551e75f941e6f9ae14c48aabcd Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 18 Oct 2009 13:52:21 +0000 Subject: [PATCH 0510/1518] Move some drivers to separate subdirectories git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2156 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/README.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/README.html b/Documentation/README.html index 025bd273f3..8a727506e4 100755 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -123,6 +123,8 @@ | | |- <a href="configs/z8f64200100kit/ostest/README.txt">ostest/README.txt</a> | | `- <a href="configs/z8f64200100kit/README.txt"><b><i>README.txt</i></b></a> | `- <a href="configs/README.txt"><b><i>README.txt</i></b></a> + |- drivers/ + | `- <a href="drivers/README.txt"><b><i>README.txt</i></b></a> |- examples/ | |- <a href="examples/nsh/README.txt"><b><i>nsh/README.txt</i></b></a> | |- <a href="examples/pashello/README.txt">pashello/README.txt</a> From 0191220ea05c12867ab30298ac5a68bab907e471 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 18 Oct 2009 17:45:31 +0000 Subject: [PATCH 0511/1518] Add MTD interface; add M25P64/128 driver git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2157 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 382faeb879..8d725e5350 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: October 17, 2009</p> + <p>Last Updated: October 18, 2009</p> </td> </tr> </table> @@ -1567,6 +1567,10 @@ buildroot-0.1.7 2009-06-26 &lt;spudmonkey@racsa.co.cr&gt; <ul><pre> nuttx-0.4.13 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + * include/nuttx/mtd.h. Added a simple interface definition to support some + FLASH, EEPROM, NVRAM, etc. devices. + * driver/mtd/m25px.c. Added a driver for SPI based FLASH parts M25P64 and M25P128. + pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; buildroot-0.1.8 2009-xx-xx &lt;spudmonkey@racsa.co.cr&gt; From e668f9f87b300e322addf32310aa792093d7e686 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 20 Oct 2009 14:05:56 +0000 Subject: [PATCH 0512/1518] Extend SPI interface to better handle multiple devices on same SPI bus git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2162 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index a9bf7df8d3..dec31beea3 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -1805,6 +1805,7 @@ extern void up_ledoff(int led); Each SPI device driver must implement an instance of <code>struct spi_ops_s</code>. That structure defines a call table with the following methods: <ul> + <p><code>void lock(FAR struct spi_dev_s *dev);</code></p> <p><code>void select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, boolean selected);</code><br> <code>uint32 setfrequency(FAR struct spi_dev_s *dev, uint32 frequency);</code><br> <code>void setmode(FAR struct spi_dev_s *dev, enum spi_mode_e mode);</code><br> From e835c86fd2e07475a9be397eb0b866bd10cacec6 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 23 Oct 2009 19:01:27 +0000 Subject: [PATCH 0513/1518] Add USB serial device configuration for STM32 git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2173 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 8d725e5350..d9c514818c 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: October 18, 2009</p> + <p>Last Updated: October 23, 2009</p> </td> </tr> </table> @@ -1570,6 +1570,8 @@ nuttx-0.4.13 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * include/nuttx/mtd.h. Added a simple interface definition to support some FLASH, EEPROM, NVRAM, etc. devices. * driver/mtd/m25px.c. Added a driver for SPI based FLASH parts M25P64 and M25P128. + * confgs/stm3210e-eval/usbserial. Add a USB serial configuration for the STM32. + This is for test and development; the STM32 has not yet been checked in. pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 40ec51c7301d802e575391e14b239065c237e496 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 25 Oct 2009 02:24:40 +0000 Subject: [PATCH 0514/1518] Improved certain Cortex-M3 context switch times git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2177 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index d9c514818c..2d7c341f34 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: October 23, 2009</p> + <p>Last Updated: October 24, 2009</p> </td> </tr> </table> @@ -1570,8 +1570,13 @@ nuttx-0.4.13 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * include/nuttx/mtd.h. Added a simple interface definition to support some FLASH, EEPROM, NVRAM, etc. devices. * driver/mtd/m25px.c. Added a driver for SPI based FLASH parts M25P64 and M25P128. - * confgs/stm3210e-eval/usbserial. Add a USB serial configuration for the STM32. + * configs/stm3210e-eval/usbserial. Add a USB serial configuration for the STM32. This is for test and development; the STM32 has not yet been checked in. + * arch/arm/src/cortexm3/up_switchcontext.S & up_svccall.c. Made an improvement + to context switching. There are two types of context switches: interrupt + context switches and background/user context switches. This change should + improve the performance of those background/user context switches by a factor + of about two. pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From ee4a8468e836b0c34886761083338e8ab62166ab Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 29 Oct 2009 02:18:09 +0000 Subject: [PATCH 0515/1518] Fix types in stm32 serial drivers git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2182 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 2d7c341f34..5e2fbbdaad 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: October 24, 2009</p> + <p>Last Updated: October 28, 2009</p> </td> </tr> </table> @@ -1577,6 +1577,10 @@ nuttx-0.4.13 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; context switches and background/user context switches. This change should improve the performance of those background/user context switches by a factor of about two. + * arch/arm/src/stm32/ - fix several typos in the serial logic. It turns out + that these typose don't make any difference as long as you use only one + serial port and all uarts are configured the same. But the typos are bugs + waiting to happen in any other configuration. pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 4885ce44f08a68d89f8fbc17195273f979430a32 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 29 Oct 2009 02:47:10 +0000 Subject: [PATCH 0516/1518] Need to config CTS/RTS pins for USART2/3 even if not using flow control git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2184 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 5e2fbbdaad..20c28ed3bc 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1581,6 +1581,8 @@ nuttx-0.4.13 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; that these typose don't make any difference as long as you use only one serial port and all uarts are configured the same. But the typos are bugs waiting to happen in any other configuration. + * arch/arm/src/stm32/ - You have to configure CTS/RTS function pins for USART + 2 and USART 3 even if you are not using flow control. pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 61d652322a2519a92b5ed0bf3eb1300aaaf7c24c Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 29 Oct 2009 18:50:05 +0000 Subject: [PATCH 0517/1518] Add STM32 USBDEV driver git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2185 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 20c28ed3bc..c50d16dd98 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: October 28, 2009</p> + <p>Last Updated: October 29, 2009</p> </td> </tr> </table> @@ -1583,6 +1583,10 @@ nuttx-0.4.13 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; waiting to happen in any other configuration. * arch/arm/src/stm32/ - You have to configure CTS/RTS function pins for USART 2 and USART 3 even if you are not using flow control. + * arch/arm/src/stm32/stm32_usbdev.c - Added a USB device-side driver for the + STM32. + + NOTE: This USB driver is completely untested as of the initial check-in pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 1df583e95c327231fd9800c4a6135fdb3ae54b91 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 29 Oct 2009 21:51:09 +0000 Subject: [PATCH 0518/1518] Document bugfix git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2189 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index c50d16dd98..bdd87219a0 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1588,6 +1588,13 @@ nuttx-0.4.13 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; NOTE: This USB driver is completely untested as of the initial check-in + * arch/arm/src/stm32/stm32_rcc.c - Fixed an error in clock initialization. + On some boards (none of mine), the HSE (high speed external clock) delay + loop times out if the optimization level is high. The STM32 then falls + back to the HSI (internal clock), and the system clock is too slow by a + factor of 11.1%. This was fixed by simply add the volatile storage class + to the timeout loop counter + pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; buildroot-0.1.8 2009-xx-xx &lt;spudmonkey@racsa.co.cr&gt; From 553e225d9f3c6ebf123f568d9017f37284aa4580 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 30 Oct 2009 17:34:13 +0000 Subject: [PATCH 0519/1518] upate git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2196 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index bdd87219a0..8e4c16a58c 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: October 29, 2009</p> + <p>Last Updated: October 30, 2009</p> </td> </tr> </table> @@ -1594,6 +1594,10 @@ nuttx-0.4.13 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; back to the HSI (internal clock), and the system clock is too slow by a factor of 11.1%. This was fixed by simply add the volatile storage class to the timeout loop counter + * arch/arm/src/stm32/stm32_irq.c - Fixed a critical bug in the interrupt + control logic. The wrong register was being used for interrupts in a + certain range. Worked fine until you try to use an interrupt in that + range! pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 4b13da5da21b428c84c322d6d3b88fa80e83f71d Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 31 Oct 2009 15:54:10 +0000 Subject: [PATCH 0520/1518] arch/arm/src/stm32/stm32_usbdev.c git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2200 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 8e4c16a58c..fa47b58edd 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1571,7 +1571,7 @@ nuttx-0.4.13 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; FLASH, EEPROM, NVRAM, etc. devices. * driver/mtd/m25px.c. Added a driver for SPI based FLASH parts M25P64 and M25P128. * configs/stm3210e-eval/usbserial. Add a USB serial configuration for the STM32. - This is for test and development; the STM32 has not yet been checked in. + Depends on the STM32 USB driver. * arch/arm/src/cortexm3/up_switchcontext.S & up_svccall.c. Made an improvement to context switching. There are two types of context switches: interrupt context switches and background/user context switches. This change should @@ -1586,7 +1586,7 @@ nuttx-0.4.13 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * arch/arm/src/stm32/stm32_usbdev.c - Added a USB device-side driver for the STM32. - NOTE: This USB driver is completely untested as of the initial check-in + NOTE: This STM32 USB driver is not yet fully tested * arch/arm/src/stm32/stm32_rcc.c - Fixed an error in clock initialization. On some boards (none of mine), the HSE (high speed external clock) delay From b64384f84faef1504bfef69d5d572d9f237a2c66 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 4 Nov 2009 20:54:18 +0000 Subject: [PATCH 0521/1518] Prep for 0.4.13 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2225 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 135 +++++++++++++++++++-------------------- 1 file changed, 66 insertions(+), 69 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index fa47b58edd..04b6714845 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -732,28 +732,43 @@ <p><b>nuttx-0.4.12</b>. <p> - This 44<sup>th</sup> release of NuttX was made on October 17, 2009 and is available for download from the + This 45<sup>th</sup> release of NuttX was made on November 4, 2009 and is available for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. The change log associated with the release is available <a href="#currentrelease">here</a>. Unreleased changes after this release are available in CVS. These unreleased changes are listed <a href="#pendingchanges">here</a>. </p> <p> - This release adds basic support for the STMicro STM32, Cortex-M3 MCU. - The specific port is to the STMicro STM3210E-EVAL development board based around the STM32F103ZET6 MCU. - Some highlights of this port: + The release extends the support for the STMicro STM32 microcontroller. + Minimul support for the STM3210E-EVAL development board based around the STM32F103ZET6 + MCU was released in NuttX-0.4.12. + This release adds: <ul> - <li>This basic port includes boot-up logic, interrupt driven serial console, and system timer interrupts.<li> - <li>The port includes a basic STMicro RIDE7 project that can be used to perform basic STM32 board bring-up - (due to RIDE7 size limitations, it cannot be used for the full NuttX testing, unfortunately).<li> - <li>Working, Tested Configurations: the NuttX OS test and the NuttShell (NSH) example.<li> + <li>A simple interface definition to support some FLASH, EEPROM, NVRAM, etc. devices.</li> + <li>Verified SPI operation using driver for SPI based FLASH parts M25P64 and M25P128.</li> + <li>Improved Cortex-M3 context switching. + This should improve context switching performance be 2x in certain cases.</li> + <li>Added a USB device-side driver for the STM32. + This is an early release of a very complex driver; some bugs are expected.</li> + <li>The USB driver has been verified against the USB serial device class driver. + There is at least one known outstanding issue (see the full bug description in + the TODO list).</li> </ul> </p> <p> - It is planned to extend this basic STM32 port for the 0.4.13 NuttX release. - Additional functionality needed for complete STM32 support includes: - USB device driver, LCD driver and NX bringup on the development board's display and MicroSD support. - An SPI driver and a DMA support was included in this 0.4.12 release, but is not yet tested. + This release also corrects some important bugs in the early STM32 release: + <ul> + <li>Fixed several errors the prevented operation of NuttX on an STM32 development + board using USART2 as the serial console.</li> + <li>Fixed and optimization-dependent race condition in the clock initialization.</li> + <li>Fixed a critical bug in the interrupt control logic that could cause interrupt + operations to failed used for interrupts in a certain range.</li> + </ul> +<p> +<p> + DMA and external memory support are included in the 0.4.13 release, but is not yet tested. + This basic STM32 port will be further extended in the 0.4.14 NuttX release to include + MicroSD support and verified USB mass storage class support. </p> <table width ="100%"> @@ -973,13 +988,14 @@ <ul> <p> <b>STATUS:</b> - The basic STM32 port was released in NuttX version 0.4.12. This basic port includes boot-up + The basic STM32 port was released in NuttX version 0.4.12. The basic port includes boot-up logic, interrupt driven serial console, and system timer interrupts. - Verified configurations are available for NuttX OS test and the NuttShell (NSH) example. - This basic STM32 port will be extended in the 0.4.13 NuttX release. Functionality needed - for complete STM32 support includes: USB device driver, LCD driver and NX bringup on the - development board's display and MicroSD support. An SPI driver and a DMA support was included - in the 0.4.12 release, but is not yet tested. + The 0.4.13 release added support for SPI, serial FLASH, and USB device. + Verified configurations are available for NuttX OS test, the NuttShell (NSH) example, + and a USB serial device class. + DMA and external memory support are included in the 0.4.13 release, but is not yet tested. + This basic STM32 port will be further extended in the 0.4.14 NuttX release to include + MicroSD support and verified USB mass storage class support. </p> <p> <b>Development Environments:</b> @@ -1518,25 +1534,38 @@ Other memory: </table> <ul><pre> -0.4.12 2009-10-17 Gregory Nutt <spudmonkey@racsa.co.cr> +nuttx-0.4.13 2009-11-04 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - * arch/arm/src/stm32 and configs/stm3210e-eval. Added basic support for the - STMicro STM32, Cortex-M3 MCU. The specific port is to the STMicro STM3210E-EVAL - development board based around the STM32F103ZET6 MCU. - * configs/stm3210e-eval/RIDE. Added a basic STMicro RIDE7 project that can be - used to perform basic STM32 board bring-up (due to RIDE7 size limitations, it - cannot be used for the full NuttX bring-up). - * configs/stm3210e-eval/ostest. The STM32 now passes the basic NuttX OS test - at examples/ostest. The rest should be a piece of cake. - * configs/stm3210e-eval/nsh. Added NuttShell (NSH) example. - * configs/stm3210e-eval/src/stm32102e-internal.h. Fix on-board LED GPIO definitions. - * arch/arm/src/stm32/src/stm32/stm32_dma.c. Added DMA channel support for the STM32 - * arch/arm/src/stm32/src/stm32/stm32_spi.c. Added a DMA-based SPI driver for the STM32. - * arch/arm/src/stm32/src/stm32/stm32_serial.c. Finished interrupt-drivent, - USART console driver. This makes NSH work perfectly. - * Things left to do for the STM32 deferred to the 0.4.13 release: USB device driver, - LCD driver and NX bringup on the eval board's display and MicroSD support. An SPI - driver was included in the 0.4.12 release, but is not yet tested. + * include/nuttx/mtd.h. Added a simple interface definition to support some + FLASH, EEPROM, NVRAM, etc. devices. + * driver/mtd/m25px.c. Added a driver for SPI based FLASH parts M25P64 and M25P128. + * configs/stm3210e-eval/usbserial. Add a USB serial configuration for the STM32. + Depends on the STM32 USB driver. + * arch/arm/src/cortexm3/up_switchcontext.S & up_svccall.c. Made an improvement + to context switching. There are two types of context switches: interrupt + context switches and background/user context switches. This change should + improve the performance of those background/user context switches by a factor + of about two. + * arch/arm/src/stm32/ - fix several typos in the serial logic. It turns out + that these typose don't make any difference as long as you use only one + serial port and all uarts are configured the same. But the typos are bugs + waiting to happen in any other configuration. + * arch/arm/src/stm32/ - You have to configure CTS/RTS function pins for USART + 2 and USART 3 even if you are not using flow control. + * arch/arm/src/stm32/stm32_usbdev.c - Added a USB device-side driver for the + STM32. NOTE: This is an early release of the USB driver. There is at least + one known issue. The examples/usbserial test only executes correctly under + certain conditions (see the full bug description in the TODO list). + * arch/arm/src/stm32/stm32_rcc.c - Fixed an error in clock initialization. + On some boards (none of mine), the HSE (high speed external clock) delay + loop times out if the optimization level is high. The STM32 then falls + back to the HSI (internal clock), and the system clock is too slow by a + factor of 11.1%. This was fixed by simply add the volatile storage class + to the timeout loop counter + * arch/arm/src/stm32/stm32_irq.c - Fixed a critical bug in the interrupt + control logic. The wrong register was being used for interrupts in a + certain range. Worked fine until you try to use an interrupt in that + range! pascal-0.1.2 2008-02-10 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; @@ -1565,39 +1594,7 @@ buildroot-0.1.7 2009-06-26 &lt;spudmonkey@racsa.co.cr&gt; </table> <ul><pre> -nuttx-0.4.13 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - - * include/nuttx/mtd.h. Added a simple interface definition to support some - FLASH, EEPROM, NVRAM, etc. devices. - * driver/mtd/m25px.c. Added a driver for SPI based FLASH parts M25P64 and M25P128. - * configs/stm3210e-eval/usbserial. Add a USB serial configuration for the STM32. - Depends on the STM32 USB driver. - * arch/arm/src/cortexm3/up_switchcontext.S & up_svccall.c. Made an improvement - to context switching. There are two types of context switches: interrupt - context switches and background/user context switches. This change should - improve the performance of those background/user context switches by a factor - of about two. - * arch/arm/src/stm32/ - fix several typos in the serial logic. It turns out - that these typose don't make any difference as long as you use only one - serial port and all uarts are configured the same. But the typos are bugs - waiting to happen in any other configuration. - * arch/arm/src/stm32/ - You have to configure CTS/RTS function pins for USART - 2 and USART 3 even if you are not using flow control. - * arch/arm/src/stm32/stm32_usbdev.c - Added a USB device-side driver for the - STM32. - - NOTE: This STM32 USB driver is not yet fully tested - - * arch/arm/src/stm32/stm32_rcc.c - Fixed an error in clock initialization. - On some boards (none of mine), the HSE (high speed external clock) delay - loop times out if the optimization level is high. The STM32 then falls - back to the HSI (internal clock), and the system clock is too slow by a - factor of 11.1%. This was fixed by simply add the volatile storage class - to the timeout loop counter - * arch/arm/src/stm32/stm32_irq.c - Fixed a critical bug in the interrupt - control logic. The wrong register was being used for interrupts in a - certain range. Worked fine until you try to use an interrupt in that - range! +nuttx-0.4.14 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 273c9fcb0acf85faef1ecd0e776cc4ca75a039ea Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 5 Nov 2009 14:07:41 +0000 Subject: [PATCH 0522/1518] Add support for GPIO interrupts & STM3210E-EVAL board buttons git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2226 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 04b6714845..efa24c38ec 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: October 30, 2009</p> + <p>Last Updated: November 5, 2009</p> </td> </tr> </table> @@ -1596,6 +1596,10 @@ buildroot-0.1.7 2009-06-26 &lt;spudmonkey@racsa.co.cr&gt; <ul><pre> nuttx-0.4.14 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + * arch/arm/src/stm32/stm32_gpio.c - Add support for configure an input GPIO + to generate an EXTI interrupt. + * config/stm3210e-eval/src/up_buttons.c - Add support for on-board buttons. + pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; buildroot-0.1.8 2009-xx-xx &lt;spudmonkey@racsa.co.cr&gt; From 9432626fd7e4c6bbcb463ab366f95d8ba251d2c7 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 5 Nov 2009 22:58:36 +0000 Subject: [PATCH 0523/1518] Incorporate the work thread git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2230 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index efa24c38ec..f92069e539 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1599,6 +1599,10 @@ nuttx-0.4.14 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * arch/arm/src/stm32/stm32_gpio.c - Add support for configure an input GPIO to generate an EXTI interrupt. * config/stm3210e-eval/src/up_buttons.c - Add support for on-board buttons. + * include/nuttx/rwbuffer.h -- Add generic support for read-ahead buffering + and write buffering that can be used in any block driver. + * include/nuttx/wqueue.h -- Added a generic worker thread that can used to + defer processing from an interrupt to a task. pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 4b44aa0fb8d668517d361bfe04fb482f4ad0d20a Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 5 Nov 2009 23:14:34 +0000 Subject: [PATCH 0524/1518] Document workqueue configuration git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2231 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 32 ++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index dec31beea3..c3093d8b78 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@ <h1><big><font color="#3c34ec"> <i>NuttX RTOS Porting Guide</i> </font></big></h1> - <p>Last Updated: September 15, 2009</p> + <p>Last Updated: November 5, 2009</p> </td> </tr> </table> @@ -2124,12 +2124,40 @@ extern void up_ledoff(int led); <code>CONFIG_SDCLONE_DISABLE</code>: Disable cloning of all socket desciptors by task_create() when a new task is started. If set, all sockets will appear to be closed in the new task. - </li>: + </li> <li> <code>CONFIG_NXFLAT</code>: Enable support for the NXFLAT binary format. This format will support execution of NuttX binaries located in a ROMFS filesystem (see <code>examples/nxflat</code>). </li> + <li> + <code>CONFIG_SCHED_WORKQUEUE</code>: Create a dedicated "worker" thread to + handle delayed processing from interrupt handlers. This feature + is required for some drivers but, if there are not complaints, + can be safely disabled. The worker thread also performs + garbage collection -- completing any delayed memory deallocations + from interrupt handlers. If the worker thread is disabled, + then that clean will be performed by the IDLE thread instead + (which runs at the lowest of priority and may not be appropriate + if memory reclamation is of high priority). If CONFIG_SCHED_WORKQUEUE + is enabled, then the following options can also be used: + </li> + <li> + <code>CONFIG_SCHED_WORKPRIORITY</code>: The execution priority of the worker + thread. Default: 50 + </li> + <li> + <code>CONFIG_SCHED_WORKPERIOD</code>: How often the worker thread checks for + work. Default: 50 MS. + </li> + <li> + <code>CONFIG_SCHED_WORKSTACKSIZE</code>: The stack size allocated for the worker + thread. Default: CONFIG_IDLETHREAD_STACKSIZE. + </li> + <li> + <code>CONFIG_SIG_SIGWORK</code>: The signal number that will be used to wake-up + the worker thread. Default: 4 + </li> </ul> <p> From a3449a5e9bd076647276adc8e7a131370a73529a Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 11 Nov 2009 12:32:45 +0000 Subject: [PATCH 0525/1518] Add skeleton file that will hold the STM32 SDIO driver git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2243 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index f92069e539..d14a755ce6 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: November 5, 2009</p> + <p>Last Updated: November 11, 2009</p> </td> </tr> </table> @@ -1603,6 +1603,14 @@ nuttx-0.4.14 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; and write buffering that can be used in any block driver. * include/nuttx/wqueue.h -- Added a generic worker thread that can used to defer processing from an interrupt to a task. + * include/nuttx/sdio.h -- Defines a generic SD/SDIO interface can can be + bound to a MMC/SD driver to provide SDIO-based MMC/SD support. + * drivers/mmcsd/mmcsd_sdio.c -- Provides a an SDIO-based MMC/SD driver. + * arch/arm/src/stm32/stm32_sdio.c -- Provides an STM32 implementation of + the SDIO interface defined in include/nuttx/sdio.h. + + NOTE: On initial check-in, mmcsd_sdio.c and stm32_sdio.c are merely + skeleton frameworks for the driver. pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 6373786e080b2ef3281671d679b4fee39b86ddf5 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 17 Nov 2009 23:20:08 +0000 Subject: [PATCH 0526/1518] Callbacks need to use worker thread; clean up/document configuration settings git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2268 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index c3093d8b78..1ce105c8f8 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@ <h1><big><font color="#3c34ec"> <i>NuttX RTOS Porting Guide</i> </font></big></h1> - <p>Last Updated: November 5, 2009</p> + <p>Last Updated: November 17, 2009</p> </td> </tr> </table> @@ -2288,6 +2288,25 @@ extern void up_ledoff(int led); </li> </ul> +<h2>SDIO-based MMC/SD driver</h2> +<ul> + <li> + <code>CONFIG_FS_READAHEAD</code>: Enable read-ahead buffering + </li> + <li> + <code>CONFIG_FS_WRITEBUFFER</code>: Enable write buffering + </li> + <li> + <code>CONFIG_SDIO_DMA</code>: SDIO driver supports DMA + </li> + <li> + <code>CONFIG_MMCSD_MMCSUPPORT</code>: Enable support for MMC cards + </li> + <li> + <code>CONFIG_MMCSD_HAVECARDDETECT</code>: SDIO driver card detection is 100% accurate + </li> +</ul> + <h2>Network Support</h2> <h3>TCP/IP and UDP support via uIP</h2> <ul> From 4a7c7097aa781611524ea617c4986701e7bb48eb Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 18 Nov 2009 00:08:41 +0000 Subject: [PATCH 0527/1518] Fix issues related to work queue timing git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2270 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 1ce105c8f8..93c629fe51 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -2148,7 +2148,7 @@ extern void up_ledoff(int led); </li> <li> <code>CONFIG_SCHED_WORKPERIOD</code>: How often the worker thread checks for - work. Default: 50 MS. + work in units of microseconds. Default: 50*1000 (50 MS). </li> <li> <code>CONFIG_SCHED_WORKSTACKSIZE</code>: The stack size allocated for the worker From cd5f4ff7311253763201570fe4783ee506d0f54e Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 18 Nov 2009 17:31:04 +0000 Subject: [PATCH 0528/1518] Fix error in mount() error handling git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2271 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index d14a755ce6..28fe87dde2 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: November 11, 2009</p> + <p>Last Updated: November 18, 2009</p> </td> </tr> </table> @@ -1612,6 +1612,12 @@ nuttx-0.4.14 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; NOTE: On initial check-in, mmcsd_sdio.c and stm32_sdio.c are merely skeleton frameworks for the driver. + * fs/fs_mount.c -- Correct error handling logic. If the bind() method + fails, then a reserved node is left in the tree. This causes subsequent + attempts to mount at the location to fail (reporting that the node + already exists). This is a probably for block drivers for removable + media: The bind method could fail repeatedly until media is asserted. + pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; buildroot-0.1.8 2009-xx-xx &lt;spudmonkey@racsa.co.cr&gt; From fdcc47821d9b8d666b585b41c949fe953aac9fab Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 21 Nov 2009 17:43:59 +0000 Subject: [PATCH 0529/1518] Fix problems when DMA2 is enabled git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2277 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 28fe87dde2..359a158ffe 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: November 18, 2009</p> + <p>Last Updated: November 21, 2009</p> </td> </tr> </table> @@ -1617,6 +1617,8 @@ nuttx-0.4.14 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; attempts to mount at the location to fail (reporting that the node already exists). This is a probably for block drivers for removable media: The bind method could fail repeatedly until media is asserted. + * arch/arm/src/stm32/chip.h & stm32_dma.c -- Fixed several definitions + that can cause compilation errors when DMA2 is enabled. pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 15f93157b94245838ab34ebf717a68b253eb2a6c Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 26 Nov 2009 00:18:22 +0000 Subject: [PATCH 0530/1518] Numerous fixes for basic STM32 SDIO DMA access git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2279 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 359a158ffe..4066bd9f53 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: November 21, 2009</p> + <p>Last Updated: November 25, 2009</p> </td> </tr> </table> @@ -1594,7 +1594,7 @@ buildroot-0.1.7 2009-06-26 &lt;spudmonkey@racsa.co.cr&gt; </table> <ul><pre> -nuttx-0.4.14 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; +nuttx-4.14 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * arch/arm/src/stm32/stm32_gpio.c - Add support for configure an input GPIO to generate an EXTI interrupt. @@ -1619,6 +1619,8 @@ nuttx-0.4.14 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; media: The bind method could fail repeatedly until media is asserted. * arch/arm/src/stm32/chip.h & stm32_dma.c -- Fixed several definitions that can cause compilation errors when DMA2 is enabled. + * arch/arm/src/stm32/stm32_dma.c - Integrated and debugged STM32 DMA + functionality that was added in 0.4.12. pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From ab4718652840169c1d1811971d886991f5e804d8 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 29 Nov 2009 15:46:13 +0000 Subject: [PATCH 0531/1518] SDIO now works git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2287 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 4066bd9f53..f5776a92bd 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: November 25, 2009</p> + <p>Last Updated: November 29, 2009</p> </td> </tr> </table> @@ -1608,10 +1608,6 @@ nuttx-4.14 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * drivers/mmcsd/mmcsd_sdio.c -- Provides a an SDIO-based MMC/SD driver. * arch/arm/src/stm32/stm32_sdio.c -- Provides an STM32 implementation of the SDIO interface defined in include/nuttx/sdio.h. - - NOTE: On initial check-in, mmcsd_sdio.c and stm32_sdio.c are merely - skeleton frameworks for the driver. - * fs/fs_mount.c -- Correct error handling logic. If the bind() method fails, then a reserved node is left in the tree. This causes subsequent attempts to mount at the location to fail (reporting that the node From df2a0affe71015a6263b02d0da353c2b5f72ae66 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 30 Nov 2009 13:07:14 +0000 Subject: [PATCH 0532/1518] Add USB storage example for STM32 git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2288 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index f5776a92bd..241233f3f1 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: November 29, 2009</p> + <p>Last Updated: November 30, 2009</p> </td> </tr> </table> @@ -1617,6 +1617,9 @@ nuttx-4.14 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; that can cause compilation errors when DMA2 is enabled. * arch/arm/src/stm32/stm32_dma.c - Integrated and debugged STM32 DMA functionality that was added in 0.4.12. + * configs/stm3210e-eval/usbstorage - Add a configuration to exercise + the STM32 with the USB mass storage device class example + (examples/usbstorage). pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 72a06e77731ab91467e08bbf13b8f3af3c7622e6 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 30 Nov 2009 16:19:31 +0000 Subject: [PATCH 0533/1518] Add STM32-specific logic for examples/usbstorage git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2291 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 241233f3f1..7fe9ef3dc7 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1611,8 +1611,8 @@ nuttx-4.14 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * fs/fs_mount.c -- Correct error handling logic. If the bind() method fails, then a reserved node is left in the tree. This causes subsequent attempts to mount at the location to fail (reporting that the node - already exists). This is a probably for block drivers for removable - media: The bind method could fail repeatedly until media is asserted. + already exists). This is a problem for block drivers for removable + media: The bind method could fail repeatedly until media is inserted. * arch/arm/src/stm32/chip.h & stm32_dma.c -- Fixed several definitions that can cause compilation errors when DMA2 is enabled. * arch/arm/src/stm32/stm32_dma.c - Integrated and debugged STM32 DMA @@ -1620,6 +1620,10 @@ nuttx-4.14 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * configs/stm3210e-eval/usbstorage - Add a configuration to exercise the STM32 with the USB mass storage device class example (examples/usbstorage). + * configs/mcu123-lpc214x/up_usbstrg - Move LPC-specific code from + examples/usbstorage to configs/mcu123-lpc214x. + * configs/stm321e-eval/up_usbstrg - Add STM32-specific logic for the + examples/usbstorage test. pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 34c5c41cc756b72e5478bd932fc8d7ff4abe736f Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 1 Dec 2009 21:14:56 +0000 Subject: [PATCH 0534/1518] Fix a problem with TX status on resume from stall git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2295 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 7fe9ef3dc7..7d3719dcb5 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: November 30, 2009</p> + <p>Last Updated: December 1, 2009</p> </td> </tr> </table> @@ -1624,6 +1624,9 @@ nuttx-4.14 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; examples/usbstorage to configs/mcu123-lpc214x. * configs/stm321e-eval/up_usbstrg - Add STM32-specific logic for the examples/usbstorage test. + * arch/arm/src/stm32/stm32_usbdev.c - Fix bugs in STM32 USB device-side + driver: (1) Need to disconnect after reset received, (2) Status setup + to recover from stall on TX endpoint. pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 503bea5e95b5acdcaaf90597465210c115109c57 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 2 Dec 2009 17:38:15 +0000 Subject: [PATCH 0535/1518] Prep for 4.14 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2296 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 164 +++++++++++++++++---------------------- 1 file changed, 72 insertions(+), 92 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 7d3719dcb5..da2a6e749b 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: December 1, 2009</p> + <p>Last Updated: December 2, 2009</p> </td> </tr> </table> @@ -729,10 +729,10 @@ </tr> </table> -<p><b>nuttx-0.4.12</b>. +<p><b>nuttx-4.14</b>. <p> - This 45<sup>th</sup> release of NuttX was made on November 4, 2009 and is available for download from the + This 46<sup>th</sup> release of NuttX was made on December 2, 2009 and is available for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. The change log associated with the release is available <a href="#currentrelease">here</a>. Unreleased changes after this release are available in CVS. @@ -740,35 +740,48 @@ </p> <p> The release extends the support for the STMicro STM32 microcontroller. - Minimul support for the STM3210E-EVAL development board based around the STM32F103ZET6 - MCU was released in NuttX-0.4.12. - This release adds: + Minimal support for the STM3210E-EVAL development board based around the STM32F103ZET6 + MCU was released in NuttX-0.4.12 and extended in Nuttx-0.4.13 to include initial USB support. + This completes the STM32F103ZET6 support and adds: +</p> +<p> + New Generic RTOS Features: <ul> - <li>A simple interface definition to support some FLASH, EEPROM, NVRAM, etc. devices.</li> - <li>Verified SPI operation using driver for SPI based FLASH parts M25P64 and M25P128.</li> - <li>Improved Cortex-M3 context switching. - This should improve context switching performance be 2x in certain cases.</li> - <li>Added a USB device-side driver for the STM32. - This is an early release of a very complex driver; some bugs are expected.</li> - <li>The USB driver has been verified against the USB serial device class driver. - There is at least one known outstanding issue (see the full bug description in - the TODO list).</li> + <li>Added generic support that can be included in any block driver to provide + read-ahead buffering and write buffering for improved driver performance.</li> + <li>Added a generic worker thread that can used to defer processing from an + interrupt to a task.</li> + <li>Defined a generic SD/SDIO interface can can be bound to a MMC/SD or SDIO + driver to orovide SDIO support.</li> + <li>Implemented a an SDIO-based MMC/SD driver using this new SDIO interface</li> </ul> </p> <p> - This release also corrects some important bugs in the early STM32 release: + New STM32-specific Features: <ul> - <li>Fixed several errors the prevented operation of NuttX on an STM32 development - board using USART2 as the serial console.</li> - <li>Fixed and optimization-dependent race condition in the clock initialization.</li> - <li>Fixed a critical bug in the interrupt control logic that could cause interrupt - operations to failed used for interrupts in a certain range.</li> + <li>Add support to configure an STM32 input GPIO to generate an EXTI interrupt.</li> + <li>Added support for buttons on the STM3210E-EVAL board.</li> + <li>Implemented an STM32 version of the common the SDIO interface.</li> + <li>Added a configuration to exercise the STM32 with the USB mass storage + device class example.</li> </ul> +</p> <p> + This release also corrects some important bugs in the earlier STM32 releases: + <ul> + <li>Correct error handling in the mount() logic.</li> + <li> Fixed several STM32 DMA-related issues. Integrated and debugged STM32 DMA + functionality that was added in 0.4.12.</li> + <li>Fixed several bugs in the STM32 USB device-side driver.</li> + </ul> +</p> <p> - DMA and external memory support are included in the 0.4.13 release, but is not yet tested. - This basic STM32 port will be further extended in the 0.4.14 NuttX release to include - MicroSD support and verified USB mass storage class support. + NOTE: This version, 4.14, is equivalent to what would have been called 0.4.14 + to follow 0.4.13. The zero has been eliminated from the front of the version + number to avoid confusion about the state of development: Some have interpreted + the leading zero to mean that the code is in some way unstable. That was not + the intent. Beginning in January 2010, I will switch to the 2010.nn versioning + as many others have done to avoid such confusion. </p> <table width ="100%"> @@ -990,12 +1003,10 @@ <b>STATUS:</b> The basic STM32 port was released in NuttX version 0.4.12. The basic port includes boot-up logic, interrupt driven serial console, and system timer interrupts. - The 0.4.13 release added support for SPI, serial FLASH, and USB device. + The 0.4.13 release added support for SPI, serial FLASH, and USB device.; + The 4.14 release added support for buttons and SDIO-based MMC/SD and verifed DMA support. Verified configurations are available for NuttX OS test, the NuttShell (NSH) example, - and a USB serial device class. - DMA and external memory support are included in the 0.4.13 release, but is not yet tested. - This basic STM32 port will be further extended in the 0.4.14 NuttX release to include - MicroSD support and verified USB mass storage class support. + the USB serial device class, and the USB mass storage device class example. </p> <p> <b>Development Environments:</b> @@ -1534,67 +1545,7 @@ Other memory: </table> <ul><pre> -nuttx-0.4.13 2009-11-04 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - - * include/nuttx/mtd.h. Added a simple interface definition to support some - FLASH, EEPROM, NVRAM, etc. devices. - * driver/mtd/m25px.c. Added a driver for SPI based FLASH parts M25P64 and M25P128. - * configs/stm3210e-eval/usbserial. Add a USB serial configuration for the STM32. - Depends on the STM32 USB driver. - * arch/arm/src/cortexm3/up_switchcontext.S & up_svccall.c. Made an improvement - to context switching. There are two types of context switches: interrupt - context switches and background/user context switches. This change should - improve the performance of those background/user context switches by a factor - of about two. - * arch/arm/src/stm32/ - fix several typos in the serial logic. It turns out - that these typose don't make any difference as long as you use only one - serial port and all uarts are configured the same. But the typos are bugs - waiting to happen in any other configuration. - * arch/arm/src/stm32/ - You have to configure CTS/RTS function pins for USART - 2 and USART 3 even if you are not using flow control. - * arch/arm/src/stm32/stm32_usbdev.c - Added a USB device-side driver for the - STM32. NOTE: This is an early release of the USB driver. There is at least - one known issue. The examples/usbserial test only executes correctly under - certain conditions (see the full bug description in the TODO list). - * arch/arm/src/stm32/stm32_rcc.c - Fixed an error in clock initialization. - On some boards (none of mine), the HSE (high speed external clock) delay - loop times out if the optimization level is high. The STM32 then falls - back to the HSI (internal clock), and the system clock is too slow by a - factor of 11.1%. This was fixed by simply add the volatile storage class - to the timeout loop counter - * arch/arm/src/stm32/stm32_irq.c - Fixed a critical bug in the interrupt - control logic. The wrong register was being used for interrupts in a - certain range. Worked fine until you try to use an interrupt in that - range! - -pascal-0.1.2 2008-02-10 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - - * Add logic to build and link with the ZDS-II toolchain - use with the z16f. - * Make sure that POFF header structures are aligned - * Standardized POFF file format to big-endian - * Break up large switch statements to lower complexity - and eliminate a compiler bug - * Changes so that runtime compiles with SDCC. - -buildroot-0.1.7 2009-06-26 &lt;spudmonkey@racsa.co.cr&gt; - - * configs/avr-defconfig-4.3.3: Added support for AVR to support a NuttX - port of the ATmega128. - * toolchain/nxflat: Added logic to build NuttX NXFLAT binding support tools - * toolchain/genromfs: Added support for the genromfs tool -</pre></ul> - -<table width ="100%"> - <tr bgcolor="#e4e4e4"> - <td> - <a name="pendingchanges">Unreleased Changes</a> - </td> - </tr> -</table> - -<ul><pre> -nuttx-4.14 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; +nuttx-4.14 2009-12-02 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * arch/arm/src/stm32/stm32_gpio.c - Add support for configure an input GPIO to generate an EXTI interrupt. @@ -1628,9 +1579,38 @@ nuttx-4.14 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; driver: (1) Need to disconnect after reset received, (2) Status setup to recover from stall on TX endpoint. -pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; +pascal-0.1.2 2008-02-10 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; -buildroot-0.1.8 2009-xx-xx &lt;spudmonkey@racsa.co.cr&gt; + * Add logic to build and link with the ZDS-II toolchain + use with the z16f. + * Make sure that POFF header structures are aligned + * Standardized POFF file format to big-endian + * Break up large switch statements to lower complexity + and eliminate a compiler bug + * Changes so that runtime compiles with SDCC. + +buildroot-0.1.7 2009-06-26 &lt;spudmonkey@racsa.co.cr&gt; + + * configs/avr-defconfig-4.3.3: Added support for AVR to support a NuttX + port of the ATmega128. + * toolchain/nxflat: Added logic to build NuttX NXFLAT binding support tools + * toolchain/genromfs: Added support for the genromfs tool +</pre></ul> + +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="pendingchanges">Unreleased Changes</a> + </td> + </tr> +</table> + +<ul><pre> +nuttx-2010.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + +pascal-2010.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + +buildroot-2010.1 2010-xx-xx &lt;spudmonkey@racsa.co.cr&gt; </pre></ul> <table width ="100%"> From ebbd32dd39dbd8e4030a6cd549520d157a09b2e9 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 3 Dec 2009 17:24:42 +0000 Subject: [PATCH 0536/1518] Add framework to support HC12 git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2301 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index da2a6e749b..cd2121d84a 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: December 2, 2009</p> + <p>Last Updated: December 3, 2009</p> </td> </tr> </table> @@ -1608,9 +1608,22 @@ buildroot-0.1.7 2009-06-26 &lt;spudmonkey@racsa.co.cr&gt; <ul><pre> nuttx-2010.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + * arch/hc: Adding framework to support m68hc11/12 + * configs/demo9s12ne64: Configuration to support Freescale DEMO9S12NE64 + development board (MC9S12NE64 m68hcs12 processor). + pascal-2010.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; buildroot-2010.1 2010-xx-xx &lt;spudmonkey@racsa.co.cr&gt; + + * configs/cortexm3-defconfig-4.3.3: Added support for NuttX NXFLAT + tools. + * configs/arm7tdmi-defconfig-4.3.3: Update to arm7tdmi-defconfig-4.2.4. + Also builds NuttX NXFLAT tools. + * configs/m68hc12-defconfig-4.3.3: Update to m68ch11-defconfig. + * configs/m68hc12-defconfig-3.4.6: There are problems building GCC + 4.3.3 for the hc12. + </pre></ul> <table width ="100%"> From 2c00f8520e972db5b590af77370aa216efd78d7b Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 6 Dec 2009 00:19:50 +0000 Subject: [PATCH 0537/1518] Add FTL logic git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2307 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index cd2121d84a..00b100abb0 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: December 3, 2009</p> + <p>Last Updated: December 5 2009</p> </td> </tr> </table> @@ -1611,6 +1611,11 @@ nuttx-2010.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * arch/hc: Adding framework to support m68hc11/12 * configs/demo9s12ne64: Configuration to support Freescale DEMO9S12NE64 development board (MC9S12NE64 m68hcs12 processor). + * drivers/mtd/ftl.c - A FLASH translation layer (FTL) has been implemented. + This layer will convert a FLASH MTD interface into a block driver that + can be used with any file system. Good performance of this layer will + depend upon functioning write buffer support! + NOTE: FTL support is untested as of the initial check-in. pascal-2010.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From c5fc508659359fd8ea3028cebdce9c766d1fec37 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 6 Dec 2009 16:48:27 +0000 Subject: [PATCH 0538/1518] bigger logo git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2309 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.png | Bin 0 -> 3648 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100755 Documentation/NuttX.png diff --git a/Documentation/NuttX.png b/Documentation/NuttX.png new file mode 100755 index 0000000000000000000000000000000000000000..49e74469ce5b810a54f19f1e2edd74eebb303505 GIT binary patch literal 3648 zcmW+(dpy(M|3B}|Y&K@JxqT?2Xe{fZ<T`UtLb=p(879|0`MBoV>@!-CThir|+mN~6 zNkvQbNf${eLTtq+V(e3BDSdwX{{A@Ubsn$hIj{42yw3A=&Uu}8KkTT0)<6RQ6r7#x zj!0$s{~AhG+Gh`ilB7Z=)W+2YfYv<B&p?E9-Zy7E8_zTTq8l!4Q+silm)?-+*LAY# zSC#$>+>>MA-M^W~fHw$YN_>^<3r0Sz*eaf=z3qj+7ghhJ>~Nw>+w|FAKflku|L%B^ z|2Sa5cI|P%a_x^Be>dw!LuY=8cS&X+)LfaGR(DA?y2qJTC#UlDB(Ii35B<B#60np& z<}!uzAQ4YS^}%(pLJtZ=_5S{JO<(g{pan<(9sP+#?%w@yI-FuG!Ll8p`H=0WrGrzb zJeUev4Kbb3f)zq!I9a0)F3iJi2Gc-OsuZW76q(H+H*1+9QRsgRH^oR{AJi5FL6mf{ zqHHulQi>Jo5~58crSig$z?aZhLzNf+pL5ISaaOW?KS7EHdkOs7n4eY^O`ksd>+6wU zNt&UBg4b)^@qXcduKawvyt&J9BH>-c{3j7)cVml4uS(Ga=P;1~;!KBBMS2+KXs1f% z`7RNdi!L=DclHLP|3@3ZfSJX(v-N)~KQKRh+HES?!(FG~0+%&K*QrQ*=Y{{aeQFW= ziPZJO7wN(~<0-RJJUq3?tt!yoY3bI&y-4^2wWIaLCgRyq?H8}cgmUHEH6s@<eDSFL zU<-^&R03}htYqvOwWdIX_Fc_sSnEk2c3#AehkHS!Yy_c2wXK8x_C}^zU574=qQLeB zoxhw%Ns0m!N<+bu9@<OV=y6~q;=uAV^IM-B)h<T7j9@H{T?1PaT5!A9%HQmQ)87>n zWaE4yBT!v4>eaUD=X6e~hw3EQ!8isLZ%QX%93HapsE+%tQ^(HfB#?2t(_Bxb92^+i zRFU4e+CPux@Eo!9q4OFwNi)n^(}Ln+F0{BK@LjjJP39rJMva|5>=l*xNQZ;i8w%PV zES|{baqHq%!d7i#U*%sZR12>5L+GtI%(6TZ$^q?4v9e5q)@EU%3s73U#VpdCt7bKP zR5Q5}C3e4$&s8^fc+g!0<Mv1mDWcRLw@$=z6gK19_8o&5MaG?eTvXsla1pxg#U<^L zs!ean&&TMQZYji*Ng(o$E{Ao@EB}wulX+^b_qnXjUjcQM?++Id11_$+D&8N})_L)l zhtdhiE{2Au4l;t)tz9;5!mj>C%4}9A4w&M+F2BO!Df{s4Y27fM*S!$PZba8il~KZ> znr>BPtpA?r_SX+rV`|mq@8jALH)`Yp8jrr}je`(m8bV$2^8D1Z|BOC&=fE8PVMR#} z^0~Q-)yj<|vq3wmi1I@Om3eIx!&+p8hX{6BwGjCrV%Vy3lWyG?tzU;xN9LPuvUq!{ zJz??tX!$Eg&>chdyy+P9twJ>S#RzP!krj4!SZ)_}qYL0l8aXU7LhiGBhgJ|W$ktGG zW$~O$nd4HoFJbao^~o6)&vrOrz<)oQE~oPv$=K=yXok}vvHZRHPA_=xv}_EW2Y2V} z!>4#YlxK!ad}(QxDXUp0sk2Vta=mRvYC97eSwt#gIQ?KxKvQ4ALb}Vnt2;^ID<@BD z?A6QB>Cyf?roxnG(+GE)Y=7*?oQj#G;gYkas|oHWlu}L&SLBMIF_!z0ScY=-zOcDv zXe`-Zu3~@c1Y|H6<VMJm!L`COaH7hUyHo8ks4Yl=G#n-M9+YNZ@{x^*142kly0p0f zlMJa{#&9><c>&l!nbc?J=q~m-Gpyba^^yC9u&$_<I_+_5*Cn4U#>}HcQhAf(7t6Op zFEcKB+nlndQMivg^Dn50{<^Y0TQB>+?C62Q4*bpLIn7gQ3p-Twc$W(LQlu7)Prh&V zVUH9ySm?w-<YhfG3W=$PIPZBMWp3e#6Zx>$?F}l_`7v4L@R6fre7_T+V?1M=Kf?+u zt4i7GVlmKFeNOp0Xn3;6%xN<?*gmP8Rk=v<5+|o$Q{<)<{{09;nQ4z!u8IJS0hbF$ zFkZNMD;mlp)X}v{nbKihIWlCZSr1lBFB@k32{Ra6y9Q|AB4SY_P^|BdL)fi7v(&DF zip;XGMKbhfNu%+)#2{mHqfI*?&RR&;`f;5qP$Xz?f^R+Grocx@!`M{fbZ94M&0Yg( z_dWkZ<>QQ^ueEu>I^rbw0Gli$b23pT-t3F71L6d+c>2$bE6z3z;_!q++6X)0ZwPt^ z+CNt;lYh-gnMsm(yIZ@Osz3}uHXy@f_3#%#i%CH;uBj>Ai0ucCOB`Tf9yWUT6!^d) zJw@>Dsn5sA8I2wKQ83P=MTE}neP@&?D@EkbNpoqDxTUIep0YPI(yv<0B&~8hZSeRi z)DwbgZ!?18y>a(~qHFw5I8#Nk6=G1;F!ru;9`1XGh|M;bY}%cvuLZt|GO4|vCFY<} zJP4#&;|Sy6b;Bfn9vjI*$ys12$d-++LOZ|)#tNwaE`1(li7`xn@gS__rgm6Zl-EN; z=#1)Wy^Z9>ramRG`*Q}>)C?Kb`+5TN==ra25j_Fft;WXN-Xkcd2|3=BuC^<{*YaEB z9|@75`n8T_%|(#!@l}&wLJV*gbjjp<DDIWN(jzbcCb;6X;5Tlppqb@vq<cN99u}5) zdgk^P*q1KgP%qdC{5K|PP~wTKCx&-5^yd2G=5KwOoIC_l%ysLv?od6OP9SPtql<r= z9nFpNtwQIv!PBrbwzhtnH|oKg({?Eo4%UFC=@d!xAe#1LSJVe~qJGN?rH*YlbP%X< z?!ACf=d^O|x!lQ>(&9(I%kceTZ01UE7<N4f8$?u!D9b~Oh~_3%=Y!e_O{X{Ppo=kj z`dnrh0oQ8{7d$2M*3F6?<c2fem^C4|i96N8k;%(#AMCe}Tp*5_7vFp2;#|01&DMxF zg5CSn+i}N81Na=ZSvA-Bo|&WUVAg~TTF}egr<&6S?>!xf4AmzT2`a6Iv#A^`nM<9! z?%h`<SWRvI;e?r-`{U<ZJ8GB4Fp9OV7JiQJ2yvFK+8sEo@o=w!e-E9lHD{T4mb57| zPZpPf)0#0rbZoxhdcc#dHEXH9>N3i$sSKTE$)^&*Hk7WWer-Tc-EswMDxv(_LhTle z&Iu*miq6rjOg9C(A~mku(NOzn&KY2oHt$lIZp75}a)+16@m1J{V9rA+WjtdF<6*7R zuSDc!4$0FMsBtaQuS7h!X3?|?+Z3DUgd&N1z%lAAG*bz;H8MJ6%=U3*b-EmXeA$5Q z0cgTlIQbk-OB{yqB~b9!BU7J#z%+8JTSKyM(}Y5(%#bP9e;KS~<$F=$jPzC)N??u| zYo0d7l1b?9?;Pyyy)M00q{zmwuM3TU+cGkeH;AyzU2-G_u#Q>e@L%<5FiVL8fRhWC z`pyp7(m)(&V|G{r70*umrQ?nbCA>9vYZZzc!H)i_BT0toPvj7_X+~iqc}a--7>dHN zITIuw?Nyo->~f$}-07L0gxz$Zxy#_t^@Kd=<;Q%M1N4rxpK+e8@MzqZoKXj1djI(s z?CvSiXPR6N5oBW@&HC>{<0qCpz-}UE$)d&Hg*67}U$+cveT{jrEwvy}0wlLTGV8SK znFjK`@%M^}YghqysL|%wpT@iK)>uk5dN*+RC;ioTM-tOg!u1pb$xS8)oebs($<O@I zaq~4k`A)!rB5?wpL=MdK$Of(ASS1U|A2q3o!M%K%Z+W=s_(D5OtvcP@_6(kkx&JC? zCrlu}Y7Y8JS<VaAbK8INUXv|D7+x=7^p15AS{O{of4{{crtaG3M38#)ehL01yq~d* z7K>2AN`iF%cqOY19k1xAtoI4^oo6kW-l&w!?A3=ZG>C4P+DtN&aWZ5h`HE$A%}P%6 z*_7LcnbYt4#gLdlsYh=`97M;?-M(qRk-&;h0>f?{;r*WJ3hjEYkKX;+?cri<GBF(F zZf0_k9r#S;y$aZhqd_a)_uq+koi<3O@CFgxkULB21L?9s;DA2-`p)vFp^X>1VJ*lC zr1bPmT{dXMjxWyFL?FsW5(lbrx9ZTp%Sm}@3>t~1wi|kqi0^by1Bdm(?sqDD<^CGj zfT?dKYt$slYG5Ti62zh`A%<c@^1U$jc)#g5m$jIn^}1OE9l~)B+fM9S2-^b~H=_Is z10lv+#A!$nLPo2M=OUsROP`>!xC=F%<h-olj=XM2yjv|36W&c^@`Ar6kgis363kTy zRf?PfP9w_o+0Wlj8m!uC(js5OTVw;9E$f(JYJFNvf85r?k)45xnnlas-{NVQ0K@+- zEw*O~G<YXUk#?cJ;hM@PQ%-eYZ#M-)Me7k6%RurOHxsgXF!@r4;*J9eNa=m91@vKI za*r$VE&Jsx1m@tdtUE>+1$qT3n#|4&+pnfB=1&5Pqi-~Y#G2Qp)w>mv-cFM~M)f2( zDYX%qv~ACI3YbCZWr%4LtP00y)M_)ukS$N|?b;(W2i{f`#x<{b+IFMx2dzkEyHvFk zlzYoHf+jGn3o%B*87CT*ll}L<nj)0V_7S?d1-({D{ST)iyIU{JEq{bYvVv8*+S1s2 z67PP3#G-nC@A9h)i89;jhLHTlkJshx#=AUnCs+HBe0lyr^j$;k;SDRGBBi&Q=wZq7 zS<nFH<b*GxbLM_PEl@d<t*d$K#~v(GOIlGZVgKg++5!;LS0p!PN~<&$$N+}+T{vF% zlqq0IiIf{R=~o&L^uVIc8C7kEi9diI)L>&e9-f#yb@n80&%fUiL%&E%Lf~wF*sh66 GXZ;^cI#Z|s literal 0 HcmV?d00001 From 9c3254882c07b9349d077793462c6920fed518f4 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 6 Dec 2009 18:13:37 +0000 Subject: [PATCH 0539/1518] Updated logos git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2310 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.png | Bin 3648 -> 3455 bytes Documentation/favicon.ico | Bin 766 -> 3126 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/Documentation/NuttX.png b/Documentation/NuttX.png index 49e74469ce5b810a54f19f1e2edd74eebb303505..03dfa159496eccc191bb5bc063d9ec51428a2d98 100755 GIT binary patch delta 3436 zcmW+&dpy(o8~<#x*~~O#E>UxYRW5Uj6Jsb8g*qv7&%LGOe%Q~x=C;bEPFhql)HxM% z$woICDht)*PGwFla@|QJj{N+7&!6w-dB2|b>v=z~*YgOq*R?KMGI#Ia>-bwr;B0Bv zmG_M*`))_s$@-k-$ID#~ym*;%OX_wbld}irDn8xGI_M3iwEN_NZ(x=De1JbbIOg<b z`zNXEU%!4`F<Gyi6XuRhHO&+{j2&4F8*j3W1;xx|%JSk>)7s{zPp&RE|GV?)laOWH zWy!9x3Ci>NXgIn6keCdNu2PVe7}Ju4&n4qXRMEA0ntkp^`#emrJk^*H?KGT)2}V$N zEvvLy5}Uija6wK(Ib>Xl8CRWw3DIejlgV+d8JO`xya6-@@>r(2|8Cs?al)t##=0)U z4r-9Nqt~-#J>YeYsV;*IRSCZ*ptnT}`z2}SS<FI2?9t_$3geZ)U#G>;X;}j#XUs?A z?cp0Of3AG}PM>{q@2BBbX`FnW8vjmwoKGx&#rr3-YPvg1HtGJGe`lgUC}Ji4eAm$K z<3(Jnf8@j4`X+7r;;V&`)7YNFf7O(wCA?KY|7j|{=CJ;4mHwmQWNrt=Y4!8j7;8jD zDf1C$b@|J}^bgP8=qhgEH>qNo75iG+;Z>7fhiUp_AWCq9*9k>Q?-W`pZ_=27p6h}Y zzfAGHfSI+ZE0L>7eWCj7`0F0=!mW_&yY19kg56K+_;w!a9cw;neeo%+%+5H4pa0O1 z1UV#BtC)6q@9c)$ga`0+P=Tkl<qk1xztMA$0({`8e`c+|A{`xoW7{1Sc^Ogu8IYNQ zMz}P_5tmg70&_!tQ)*t$Mv!pNXUH?KG9=`BkrLn9qocanz7L|In^0n`JwaGP2s_Az zA9pvl+;O;zbp-J1xP}ZL;NpwV#%CASk8x0a@JZYl8fq|RQ`vA4bLfm8aMjI&-lz!O zuuH_f;}`g4KYX-%Un+x2$rfZR5<5UFB9z{KzUVXemtZUbXrc=>r8U6CPo}7g2;#3b z!o;bbYOoUAjj&7X#8&##0${Pm?p||Ba-!{;nVb`qFViLX6r)aZhV!awy-CWP?WjD8 z8XXVT7$fG)ys*4Di;7GixCpf=gFM3W*ru^;6!-MDB1y`!FcQfX4#(xCa!<}Wuxf_C z>rl%1?|igX>ohS>A_zt$lulMR!m=yf-NWe?B*-~&!LIh0yejp@PUTITN0U%g%O>Y8 z<4Xt*7&!f`+W#W%7esjzvZT>M=KDGQNW8GJ*MljHIF84i*wL}nfpy})Z_fSjQQUes zSGgK|^S|MO_}!#~`T!0!%vu}EYYSYAnO{4R&9GBa*0o%Pn1!87kCD(d$k)TE#<48g z5hYZcvDTqhl@GPEqR3W&M#IO<A6R;fgSHa(BF=Lb>~~bg<W8KsDkW412G}BG4^+XF zraq>OU@*NoA2Nk4g_$*r6gZWRt#IUB2|aSb4bW#PL1QZdcg))z*q*4^$T{W87(Vd2 zjIEfRk){vI3q#)|KTM<+h77%BMFso)&*&J#>zS!DseMHM7tkqTXa4s+0W4Ibd~lT~ zZ$3})`DA7{oc-j}c3iD!0wZCLp5gUz&f3AWGaP$eUM=F;mf;+DtUmTNxcCZ5nN3Co zB8tDgmlF>|GtSvc?URU#`XITiE|>__y-R&B!bl29<3Hm~;JPFByFhbXn;coVQK=8J zLA0E3j&=)outwA+<&_Q>yDpU6JZlvBEb5{+g7%8tlVmoXE^T3!r%f4!&DrYmtY6+# zkSKehifF?eWb@R%@rK>yBT(~qFDr1ros($7Mm<7$cI933$H!crXlYn{wihW`yxXH# zX+_Tir>qn!Tjz$cJVYt!_+W=pvz7bF+>asPQnojWcp;=~V>orbz%|~HPw`%AFdxT5 zJcc7(c*TgxM)`M+iBq>@Y5gA;|5(3+i3TO1Gu5zT_la6EW#Eggh$#ti;9+)v+a-Tw z!;aMxwGuGYuG}dG?^5n)SGpED1n4jGr=f}KnW!>~sYrX!X_TxWnKWX4N_*S3TgC5B zMGI|bP@&#rE>R%x<-~7U#tZv@4a-_{@gTvO?6$~gY8RAm(zO@ZoUn+Pq)ZhyZo`JC zQ&IMGKrv=3J|6%BbA{HB#kg~_$2D+Ywh!2-)Nzove*O;bWXBq=mK#*VNyv_P9ofHq zC(BLn`NhG>z;(q=EBRBJ%zeLGxCJclK35&;c1|ok9<_AIxbeN^DeW<}paX9MnZh^% z<8`m)VgZe;Lj6>JB4@0BW^hZv`WBWzX6Cv3e$oH}kI_iWr>|3B+AopGO+nbUT0j#{ zV7QHQ%Geq?Nx;mpOj)TKgXVT?anELS)qCY{sam}igAXpR)!<JfxP;gN7D;;mEWN#8 z!JbUKWaa6OsZWf-aU)GMU`*n5?9zvY;^ygA*0Ihr$lzPZN}!z~Gg-1-X`w)Y1b;Ol z?QxP|jI*)YWLWij#Oq0~(UlLoyT}tt+}NmyXOmXq@j7*zg!2D<3K+X$s5`di!bc8I z=I1HW=%PPzcqGs>?Pd{t*Mablpt^F!R6p93tV*5s$0MB=$mPsI>LAR|FSg28_Qdet z_Gk@U)+LZSu_1UD>_H~7R$hhUQ1JZIAr9di3eS7`sXn=mo1*pEKloWz59%AAs35un z>sj#y#{@*iRxiZ30-*WgkzsOF{#?%jR3&BI3+g!GVS}JX7-p0xS6-|}OAZi<0(&-( zoewRb^OTsx29rr7k#?qvXDel?FvfU@1KG-|ui@f$7Kv01>q(^p^9gvQpV!}aA1RUk zv!4|!54^DzTr#LgTpAHkZFZ>_*-X_S4g^JT_VKOV;XhY?)sh679Pci_Tb1~L!0S~I zY7&Z;GX`L{572_UEr}M2dW5|pjyU#!p&*}GDs`oK{hdRTFWOn<XtRZia(c-kk*g3I z;g097mM2p09*#!mZDnZ!<zC{Z&2XZEMX$kZv*6t}j*a(*)+^r&_D7#lxsKp`jS~7| z3rsSiMnV^z4+hRFxHH_!oTs6~`aEH+5;63K&z!y{KD)M`11~sA;W+dfoXudIX2OGg zt6g%8zPJQ2w?yb;3pDV^jxAvu_GDmpgrX#8>vdpZMj|-7E!VziU@`w^pdy?=``if3 zRaGq2``~vD?$-d`cYM*_b>cXT#Cj(ltqC-b-x~jZgOk#K;np6~Zypc*5K$Xf6r!zO z30Fl?-Ld9gX5p$rRn0$;-b|qBrm<Sz<>3R&srBJ!HgRtwU19wDL7RjF=9dUg1X3dd zo>E>J*?JU&ZQY53j6C$D+h9ahG9B<{)x%qri(OhS10Qs>qs<AbDJaQ3UoYwKEUS7d zwS%jFE$sjzxo!oj=dzu_c6o+$Q$|OH2YiStSNih4^X^c+Pt0cuBZs~`id_E1c$owQ zgs>b5dezrgrVw-ssVZz@dg8M6VGOf3o3_bwU$96JNgTdhl+M)|Ht1D)-e6P=S~T$i z&lZ7riW>!gFm%@FrB;;iwG<CDSAAQX;!Pgp!3uSSU->m^(8O>kJmsTy-6x`tVTC?$ zjdR2ZOPEWe{VaD)nSw6-(w~ZZ6xFc?&?d4((+TH4ne2`BQ@!$aO>L&B5_#1!I0K*U zcH}i&_}S_2QF*<IHOsa76lb%z{SnciYcz=f`_iA`G=w;)bu*2gF5+xS+f;1d-|6D` zzz$Nzo41}I-UxSyVD*pa9Rj8utmB9}DNpwX6BjgV<(tsj%%{NHj1`X;tkrp$N$25` zp27vQyY#2UFAu|)8z09};$Kjoa|End&f3X|g<|_xB4m>}w+T}cY-aH5l;A_sV|)MR z_VQhRvF?CkXh1_p4tee=>HhYG)@Y^Zr$c*Bpqipff&+|?uhulJZC~!3sG`Nv!7*kg zc_f|07}2c%3)v(uMzkqoT}BHtJn5}+b>>@^Zt67PT}IBxwH!50!6H(-3p9b=thK_} zJ;D<;XrSFpA*5)HFDoa64Il&!<D;-BOi0(MaQ6#VWuL_vNQN<XY2|muKo?9^=#nm) zWAQuPThG;%>Hj}b0^pY~GHDl$h+#1P&#ULE$3u-ttyfW-C3!jGxUN@N`#u($fguLF zV$pt)Gv{^FK5u!sW;cG>h|T&ddp;`n%l2D|y~RquuQ^>-%W|ctoEjN)*OOEQgl<1H z(rAyOb`94XLL<=0mN)P_4}E^jRe~EZ-O#`b(8=jwVqf62x3laAGs4WvEu3edLulpS zK_JC{(+ZK|w^=G&(S%Pc|6a#}tW}V&>s;5LUtc4i(f&9uu`H=-e&d(lJ$||_h5!8@ z@R}voE4Cdd0qK6CrL8C5EY73PAG@w9>^*cqE-NtOo#2C<?EaMr<aiB~(qs!$O!@KN zmTfy&2KJO0zS9gZU^f~<rM;FT<2JuQkAw7J341&r*lKvsdIFu-sxHWRrNR9G21=e! z*;18<bLH@I_zbdnZ1O`NxEmPCl$lWXe%FI-hgCaj=<sa==C>geE_O2X?p^>Jv47v8 Ky){n3tp5THQzA3~ delta 3631 zcmW+(dpy(o|9^irv)P!@=5{EeXe{fZBiEUGx==1Pw_)Vg;kf3y*%_^pThis^(vZ2! zHHDVyq>D-^LTtr}7(0cQQs4c4@4w!U*YojuJ)V!(>-l=WUhiL80_}p`%&)EvcAh5# z#8=%~CwJqr&%Y+qujrknUsCxyXjiV0cmGB{1KuEvEA>-xEFAv0Y_IHFd&>)dC%XQ1 z`N3qj)+y%CAKzx)eRDo1co;Zuzxpt6srLKTf134Up_4x)JESxBYA#MrX}YDG+~H1X zlG6nS(w9re_y4!U8n9JB_7aoAy_bw9qx#@_Sdj+>qI!ROylSZZHOLAif%g97Vt4O; zI2}$gm0~&0&|K)&7}@0nDj%kX)<8^UwO~aM8BW&fgNyQU8^ILNmKh~!C}mbN$je!x zNR|2@!p$)<*ax*qNf<42R+f(?NXxJyeL}36w2Y}J`T+b0eKl065%4*+bQ)(PFYp(p zX>k_8&-J+}b@5aT^XHetKU1`i7YSdjb|v~p{I&e!&C<qB=kcVsk#ir#ki*qYVuLDW z51i9@5=bzAt}Zsfutqx6vQKx4!E9`q>6oiGApJku00u0q#$0WGEq}*+_i3}MWO9Z& zPr!w4tI7u^qa0o5e{K2LBJme%8b&P8MYqS&W@LCodhwyEAV-(QoAY;~;P*6+)R&k^ zW=3?My&M%ORBY9bS~&CBqxQW$Fez0Fx=OH-b7<6=1d+Nu+EcI_VLqJv$Zhv`gDCk( zLW_E9JN?boY>T>feHcZF;|-V{KV3&i%0e?rL*b)t+6&sqF<>I*!V0nrZag}oTY`8I z$ygk{3^pgV;C8N7yxsw)zbzriC-_7~qB^HFtL-&U>7CF#u9xHh;~HIiT{aHm@{vVH z^xSuxIC@GiiHzHsao|MSzJbvV*D@Pd`sdJGzB88o{Iph0$~3FiypUN^!h;sJ1-<R^ zw#(jc(5SWDhqJ7f80EANdsRvIz11W6d|q9`a`=jU{L6xiMH(U1{s@C*rx~_KQU#!0 zEK!wf(Ag+Tb^|IaH(ABnv(@Z|4;p3{qb2Tl@p+n-PWQTsVZ3fxAZ3*1!yDuAT&0b; z);&idMzLv!KMxhe91bZ)w>~?sJ6yHl4f*LPJ^N4^F)Rf{-PY%_k9rmSSr(SBapNwJ z-SIQ9uJYZ%Vq)OAwFAm`M|Aa`{q3RR3pvEm@YF#@@S3gL`gPc)-$>cbn#2KfoY#ey zSUhD9zAd8*#`n4t3ONkxTc|Tixm5Gb>WsBNvJd_J{eUTzS#{ytm~Q0N8il~dBQJXs zAOx9)(3HM7J^AF9$)~PdnA5-PXz4xyFK?k*wUJ~o=s*=yzKfx9uk{jGi@az*!9k}M zBJV>C*;H=Oulua?^C0T*T+?+ne^<39EO8I5VEHh*{dqlqDh_?K2+eyo44Z9ahcky1 zc2L(l0ghSP$Yqle3ZLBDb%K$>_QvYV3#a7Dofo_O2oq1L!=~AM`=O+PfZx${1-(~D z#%32lGoA{K7wj%@dB%UMV`uC-xHESTKF#yKA}e(Kb4#;adCeM0lkJPk^R^qV?MP~5 z6RC)y%zfQ~O?`#)nQnJ3Z6`%6hs9{^HptcMX6k+#Rbwe~XoQ|7`|sPbC*vk)xYV4f zYJ$73O4^B`Yk6X5l<j^vo}pU3Cwz7Z8chvQxb}PcIAk;!e29=Mhr0pK!ig)FdnViB zP@9lKSwc$dJt)n7<iqQcdqt3hbbezYCKb}SfZ?sT@dL3za_LV_(cK(#r`f%sn#|$5 zMX=83mO9-r+XIU}IgIHC$)t)V=g-z}p1;UC=WTbwmPX+{>?k;+A^!W~+DyIt|Mf^W z6u$Q#4&P;tQd`unX23sR*q0`YU>f$W*@rV+(qN^R0FjprEGQ(F2I92mU6iGjCr<3c zS#vbHrYVTaselh3A>;d92<^<VtTDkfJG{IqZL^!zKxg$S)hnRk(Jl*@jbLBfglbOZ z0>w*`nt557mr?Z30}N%lEmpNE5;O*0C>q9i;pS{;D39aL2dY#l?Y5P}&yBU~!Ls=U z<E+16MuV%D0qtvKJc<NL3<Gcoht((6x>ZoIMGm%Dj{YQNBvGHp3^uhi*{}`bu7>8U z9n-4<#lp5G_~yNblmsYQCYwrK_HXB|I%**uz7@Q$e3(`Ir8YlAPm%&3;E?6y!jk0@ zEk64>A$*A?Q-5V$bhT@cL?rFkML39lL(tpN0eKR+g3B(dERxjQ-S&XF8pIHu1!S1K z0sb6lF)K{PF`Jq)O*sDGnA8at?qO$uPlFHaH&6y|ANzcWn%3H87!Bi2SVijH+H+Ec zvRq95lrozUg<Gu3<g0o^!~N>jEYb?s(+-cXLOmj=_ckLa-s?SQln*5SfV0%3n;`~O z1LJr=!NYy`b7Hd{<}B^@<d;IfWV!U-Pf|<JC}9o)S@Sr<xOn|=slUg1sz}NN*21&$ zu~ld%*uZEZ^}oeWBWwwV6(AXewOrQ?50Cb`Zw#GOU#Yi~KHJcz0(O4NqMBPEqkCVC zV;(&H`8BdT@azp!(=G21lo&#;H>I=nBJi{R8ue#V6sUfsXI*m+6nK2m7L*bLU4_g} zxdIR6-HI2xg+{;(SCSF(`Vc#KdZ`QPUeB(Fg=fc1-`WKG+zFiOh1)^E`UDM1_RV=@ z+@obM+n+FZ^Yg^SevoFVU$1kU>e=LrsCk7h`E6z-FTt-0o!1J_z|uInh8f<dd#__0 z(kNW45l!1AisnHy@5e4{4s1s;f6F;e9bI>7Cr}gIdjX@)W%=?`g|Owak_Ugt3H;;i zW=nAxPCW=8L{y3?OV1Y&%}wl%d$r@*F0VPk=i&?ud8}{(uGbbWd`#r8S(G>_3}wBx zXhQIkw`)WoQ<qxbJ8m65Lmag%x%0rywP>xHqm^g^yYsQP{kDk~@L?XYTd~ypmYu8W zWYL5So;S$bqn_Ie?~RE<9ycTu3oC7g&QiHpGLJfY#k;RcxRT!d-32o-`{$204%AMq zAryN}BjS|68R9Npa@c!N>;7(|fNnZRXVyBIN!pN|FOSQ@=}a3T+Bcp#u-B8LGh?l} z;x@vosXRWzR!k=X<`$H`wqb2xciqx8_GD7U*ZJB_7(HJV{c9Z~IoXGl=*rZD3TI>8 zBe^GmNyeO8Wu^&B-^(3dt{_n37=u|4m9(*}NsNcBTE7aBpZ#2su0%~}k?j_V;IdWI z3T#7sz6**Z=>|usH_<E=+~%m*&{6w`mDQOFg0Uqd4$}kBMDcL)DV&ZZ9N|Zx;IBlb zKYovC<W=7YJ$s8L5<%t0EQS6HU^%D2i;`esurgl?bIw}zv@?}XKs|qOvA1@+_1ci4 z8pFTLHv(SE@NoVh!a8r!nHb1EYLzQ^*{8)SBMty=9$ZGA6S}E^IMB*!w*_jR9r*Li zW6lkw{8e{bHOe7^1N~)tiX1C|$R+C1Ou~orQxJDC6s4oHW=H|rt1KnNZEuI9!?Pd- zyWvc8r_uf^N%_!=4+U%|=q>4Y#%YeygE2pHRvm=t{r5kxv%A!gWp*J{cozF$CSVU5 zKfdSzb`rUZRxOTh>`}PjigoynS4_;kE$M|pQXswcfmNql&oWZ%O}tY=T*V4`&l~NI z{$;uoZ;PdzMehVo|7O1Y=1gK)OL?9WAid7wqEo>vA@zwrI$^HHr@#d`QKT-QgUE%M zA6}<jJ6g#`3P#Lo;&3k>7g!%`IyT=1)2Pn0v_FX_WA45T-VPHgt}rb@Um4qV-gb8D z5B@8%btuE@1&rRlCPs@w2nFvpImOjo{*(;TkK8TAzkv5Mme3M0N>oXZ5lB?AS=aN5 zoy>WcRNuk0VtJ#|vd^yEccVdc<Md{dg`A5q2Psf4uWMFuq0gk<GR~fQ*Drx21WG-6 zGh!b)e)iUNN9KAGJ2nLj9cqv0_smpkGkA5R=SP=^o2l9OP_Vm&**Q+o6Sa40U^9*e zEqmX6E7=ialuF?bBDx@Vwu}Vnf>F?bA^ghripR$r&ve0Bkk^p10-C$6(}?Y#T`!A4 zw4F2oRO4>eq5n{jiPID`63y+`4WyCZ=$=MS%(bGfw`u~_{u<bTxnCuF#4OroU^yZR z#G|YshH^vdop8=rzxf!Cy^y5ys#y%}$MFu@kMEcd-vt;~qy3A5AjTU+3?vLCqt(Xp z5V4HKk5GBSnVJrAeojbxeitO!sgaF|=pwTCAzzY6m#Q`hXRnFWid_O@5EX_T=F>M5 zMl1H(w5V6`7WtrN>pE7rMxPEV0Jr&IR7a4qcJb1;H+UK*(D>K+g|-}_7T>oF>2TaH zLR&Q~?L<5FR#OO6ycU_Y1f-vE)1ey&Q_r_6Z`+%Ml)ddbzz`O$@URl!^1FhS&=MS! zcgKjLL9Z}Po7ItJ|Ha(R@)0wrB=%}kXuM@@M*X28(wiyLhv@Dk7nN2bi?-#dULh+u zvm7yHhE?O5jM!|X7;_Zqy`8&6mcZMF!no`;N84%=aqk9_)h07-2Nm85ji3ok=|ha+ z2!?N?YHGmmFDD7*Gkt_EUSY3IO8@=IsID7lW|uxd!#N>povq9a&aUL1kB~%MAK+ba zX+BwQOWkv%VBy0RMTfCYkGzSMKBPcVFc8~gtUI)B1Jq<9*AU+?U1EX;FsmSX7MnZ! z9cqCpkQ{yOo8Na~Svs<>#v=9~{?APSA)6?9ag#b_@jwnRbbH`<{S)SZEfZ5-!i0ZW vA}|0(3w9^fb)Cll1O`xpo%vWqa_S^AjKAx@ugS+h1KDwPJm}CwrL+GB;<8#` diff --git a/Documentation/favicon.ico b/Documentation/favicon.ico index f8740b6c9acaa89a3836e7ca3e42915ba7706828..2563e58430b6a34bdc093afce855586845d5d4c1 100644 GIT binary patch literal 3126 zcmbW3Yitx%6o6}@0Tl~`Ed^R$t@O3qmUg!l+agt>LWog+X#Amxm{?v#1gasmJcLwH zfnTIRVpP;xB1WM_1tqAofV3!RTMP8DyK`rEb~-ydv#;6N$IN){%yv7wASvF=PG;wx z`<-*oJ&$?fnaU|?>ZpW!0sI!kfA^%#f+rX--<7WYv=?b<<OByzlPpVEYEaWIQkEvT zXrf{OXGRHA1uCf|a*Sy6+oYmQbZv^<Xn=%^_Kv^S!JU>Gcg0dyUMX7fEEx%t4#&8d z_T=*5<&-=1JxL;xB<SEC!yN63tI)%X%x7oiHX5=zip`@%X0-CT6cvQaYx{8<EGN3Z zOi=-F2Qd=itcs#=!<`_5`8qg}Uq-*TE37cCf%B^;rCZI_WMR2p1wm50{fZY|B~Go! z%V8I~q4KRFYn5e%9XO2zJi@ro%d719WnN(jv?~((O+)>W`FY?dqOeR;fgDbXxG8dk ztSEHP$12~i!(-<-h-5x5Y6preHTJy4^x^#x*^l{(5@P$-PMc{huOclqnhGK)cx>G; z74(qyZ(qTDC-Yx?Zty1%KxI!rv;dsYj1LT|Yy~V-Wd8V;4cZp4KyI;XbG;aGt9$<e z!)c!$4$leuVYU0_&mYd6%Pg*fwd2Msg6O4S){Fjxd&u3pW@-lBg1Oqhz{oRy<Ci>1 zoLr6hx5SU0KXRdCw;>DMn_|3YxC<cc;BS%?RV2QBd&80Wi<m+S)z~0P986iePGC42 zOff!gKeEC3VzEmdduC>9{J7^8Ask>m!<{he8M!EO!|))ud)KBL1{an3f;Zu>B9HE^ zs_rm7LNjh0c*z4%l!HQ|#|DB4zTWdZ(Zg9U!EAuK`pf=zRiL-6?$y)pH-RdMs*wvP z-$>73OP3&11q5D_3Ytbvid_D*81v})3F9L{4{z`0Y`?>7#D9HTMwX=DvtX{D2fbKV zl>BJfvi5>f+Oiba5WNa5i3-Zd<xhzU53+Il%{4gY19<NuH*jptYl3=+QfTP)wEIHG zKZz>gNPrP}hb)Dx7uwgS8(aWaLn289R7Fz-QDi1ptkUzD{BruxzL*k?2%Zqzzb@_G zXb^`e@Yg;tovVJ_FFWC{EJ<<%?W?VA%PSsLLn289z^iba6QxU%_=Y)5LAgJKk3-}K zzHZp~`GXlDA<kd-kb%u9Q8P}EVghmbRNdsMo{GofWNiy@2kesC+wyl$p5{M%AYpv{ z^h|1Qkyniquz%f@8Em21>$?HkVMwBNhpDv7WTp~i^#P~$i!bA@k>a0=?K|$D7840r zi;ds9@r#88uKC6Uzb<W3@bH1CBEq?c1B@&MdRh;?W61LAwh%8((MY^V>dyDZnYQnD zHYiFAJTI{QZ%)tjSeDx76>5AnezIdSbQnm1e?qLf3khvEm2{46AyN0@4I(K%<&n<s ze9pf#<Bx5vKb32Qz)0|M{2$m2HpA7`^1->5y%4i<%-_@6qHQ4+t|nR{zho)K*)B#! zzh?ZV>6xq=bqPLXS&-=m?TUn&3QcG8ON4-0w-r~DvE<jBVru2{DSby@AEa26x8sxn z&$n%@Ka*>6sfU%|vqPN`fyX}o3j3VTD;xdnAmoCggfAaGxIbqGBgv%GnOq*m>t`$y z3I|y*KFIbp&Y0~T3+V)(vt5oG4-Pk)sj^2=RjprkV3T}^IPub*>!%Dw93;7c*3BEv zJzSg!xddN|iki1~W@Phfz}Rz&nYJSkPSLQyTy4E${T~5%IN%mN*P3T%a$_w35+}je zjBhlS^p#XPv^Y0f(37itYB~hmHrw$Ru!`IFFPyMmM=y20nZ9zAD8)IbWhLedxE9G# zZ+B};^UQ2ci*~h|A&PdPfmn!-MncTBHq0MQ?Y~ZB4Z8Y7uhU0fvwm8ITombckGJ4? zMP3n?eMxb=Wi0O1j2|nNh^7hT@R7K+!2wxM)R8Ve<%kK`64B4uuej_3$TmzmTuI+2 zMhmrNlV9Pe=AGvj7TsEhp#xHA$Zh+>N!rmZa7`D2j|kEUcaj_nF#RWx(E?r~3eE5p zmsEkr3<VVg>45v)4V{Xl+MCj(?hcwPtyeMT^P~=#EdGD~feN)*Ks|?tiNpT|kSg#A literal 766 zcmchVF-}7<42B)r1JueBa|R@k*b=-kG*V8`$SarOJ{*NRpuV9iCwTmJUJ+H*l~i%_ zIlrAhX^8?pDeVxqbh;zDC!#0Jgt^DG{H^i+_)N!_SNi&RqwnJ<&GSslvfPqi<=Yr_ zS{LgV^93`;Ik6{V-XS!swyjAfjs;;Vn$E0XmYz`L`+A@dHDi0_o+x&cJBva!<b%aH z2W(fYqKfpQIl!fJm!gm}n7vZ6RhUWV0)`x1!5htzOHbeluJWcQ4`2*Poi(AJP48z* zw|<lL8*En?{h=J^8&_CMK}2zTvR5=C;0_N2Y%oHMWGDxFuI7!+9UKkD!FHJ_$qKC9 q%3fgYA_DU$D7o5u!&}h@=rO8aWUM_J|3SRUCAQz+`|1zz&xs$AGitH` From fc5e747714ba99ca8abcb71ededc3e617fb94274 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 6 Dec 2009 19:08:26 +0000 Subject: [PATCH 0540/1518] Updated logos git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2311 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.png | Bin 3455 -> 3592 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Documentation/NuttX.png b/Documentation/NuttX.png index 03dfa159496eccc191bb5bc063d9ec51428a2d98..2399214cd527ab0b8e86bfddb35f4e85c6b934f7 100755 GIT binary patch delta 3574 zcmV<S4GHr98i*W_G=INIL_t(|UhUmYuH7~g1z;ze$sp4nW-YytOdH5rG77Se40;I- zH0%xZ0)iLI9VUD<$*NOzsz_Ziz(ZhPNfyOVhd-k3`{vW9Pj4U2f6x{9@weYU{O6}{ zzuM>LU%!Elb2k2b1ulT+M}H0e`OAObe)z}7;m^62`fK?m{C~~`(_gR_-}m4B>+Sk! zL7r=>zorMEvIXejD}Q$o>cO=)=K-hyIKx-c?;x}xJOBlN8hi(#4d3Yl67d~`HiRbu z2MCemYX>2xIo4x506PFZ_)Ze)@tr0(2;V`dM|cvjLdZzI(;VyZodgWVcal)XcoOh4 z!ieNMNhsqx34fS`?<C<E<D(NWBl%7e&Xe%509W8UN%%F!M*>`l?;w1S@Noclz;_V- zjqp(bcfxlN{vY9E0PcwIAbbcw2EKoP{NLN?XSPIN``J?$FoY-IsM4~Qtw-Z4<<ml& zZMPC(TTfZ_69RCS7MTUj!gptc+PaDYxg6ki0U`>QjeoCHWO-4k{y&<ISxKnH7ga|g zgAk-p^|lw7`p1Kkf$u_NEz4aHBIUd4BLX5d0g(c=+qM9&KU)w+<9qw_zgby(0DGw> zC1Yd~w&!2UC6%w#lcjEY`=kN93MK*dB4pv4rC(i9cScyBdy8*|kkv{RjNt&a6?R<^ z4?rfq5r4p5MU4=SQgDYP)ZiNh2D7U~?*mG)Zb?B+)U)v+0B2=lHO1HYFq>m5z^g89 z18@}U5<)ZuBk=VA&dM_?6Eg)_2(|dM325!Bhd05N3PYRWD10n{S9zEz$UvwC*y~#K z!r|orY7s`_vjEIWK@UPLJ|z8a3vkvHOU-aJK7S^_h!nIU)B;4(?<E1wQZNIb6<}rx zq6oG4(Db`CKr{v0k>K^`7Nj(}tNmOvqGwFYXwPS~on~~5lm$({mj&3SVEb$}5}zjl zvr|w?LIhuS`i0H|N~2)S1a;{P_C}IX$ybsFtvF42*dyXP6-P;klp{O+ZUHc|(q_#c zQh#yUrkFi1*q(oj5G?}=Q1g&L+9vE#9Fl-pPZN;-7Fv02c{3i-^~zHtM9P5T^Y;Cg zPef}gENU7<!iZEJ@-RO-1xue0J%1FSlx*71w@JX=QV^{`Z8JQ(p)3m(MmG|2{wO|H z`fbw(oGt$;7bm+fh*Ti@+&el2(Q`)uYJbyBv)xt+xKj$Em54OM(J6?WJBp8)e%mFW zv{EKB1<^{}B?Xc5UNP?%`g=m^!lR?$)$?d=Uka(nYg-gxR0^W!-EKcx@xoq;zuhQU z12A($Y^g{TA-gY#obwLpx3mdnr-n4Gf_{!vX4w`6$WB4aIoJDSr{66BW~HFDGJjEo ztQ17fcbD{A4shobL@HF<_w9{1St)2e-?HC|^t&y<j1=@#C^H2$lheq#&Q|M0EV-BF z0+-DLMx_SY*Nb?PfCBWUAOf(L!gV)5T8%D&LO;JPz~~h8Rw{~c))$<mAab6w^cx{W zL804k0dU8@AX2ftR6zk+Q_y>!BY*f&^M2b*M0+n>*+1&(2;=-vgq9T4c4f5bSDyo# zW|r-@Nx<DwFdCo*g!gGpTP6*73o2xv+XIa13o-y&ZYm9m-fIKWqfcq@(f+$Nb_5i< z?N$IS6?SKUo)q-nAQJR;;Df@_ZvPShBM^EkSlc&4lc~Va9^ZpJ1L1Z6cYjI2EPxgu zk@#A4(Fkb(uVK6Q!j%2d(PPAjm<iBwQ;nKP<h(4nr5By9&$Z2~W;+VN@{TSGpryjB z^Jo!ILVC?AYmnf*#!}x;`wa{lT$*j%0P7dTy%$Hjf3JesDTpLZZ+ZhosObxO&PlpH znrF@t&9Mt$jqf_Sx*4|I@qeo?aDDfC&gHrmC_qhfsl7op$Lb}a<~ceWp&8%|pVWj( z?|$si7xV(OAe^P3=X@CHH~Sh8O;bDC#ssj3ul+(FGyz!^#_9`tD!il%GX-}@zX*gd zz!AQk0L~C<ni=%lv3h+#E5cd-*3&YuR$j9aLI7v@7yx%lK}G^v%6}tuPtcY{Y7sPp zkJ(M@?Gvg2O89mI=uJTuKnucI3R>n!BhrtRgerg<d@O*>3iDj}l>kR6xLf)$5Q+e` z_;v*7NkJw+)=jlz`gsvf0V4RA09h3#^?zo4o7Di@6x=!eJP3yXQGB}sw5A{%U~gnC z&6jGYUPgUJPZvZxTYunvcH9MM!N&%;ItAGPE#)aGc$f6EB;i*8t@w5ZXi32cfEI*E zO4jGRD*aG|?*Mx6MF6x`*zA#(_8Dj<KnWQ-_^_^c@ie>ERWyGA^y1qcAew?v04;sN z5y0L0einpZ05b4J0bG@W*#Ipmh$g-FsfQ;aM^8*Xu<+dhAb*mAkpLMfc$f5(`h*|K z24y{;N4a*|pf}Smb((t@9PJw+^MWe?A}M&M^qV340+4|(G65}#F-iz+3PuC8l&Rcs zcTB$#!gmSiNxx`-mJ0J!)GC0Q6ufKtwFs~7-(LVr5_%9uHo;7QniR|cXepCrxxJ@O zBlfLZ+;;%I2!EpiS}M$%f~x>ZPd#Sq1xNkp2t?Lnw%xri(=hG9ti$y?0hCfO10XuE zs&S&tuoVn*zZT!SujpkU%mA2`f-3-O($6{&VM4MTtB3Ea?}+vyyc@t-3PuC;q~8po zG@WI^<K1V3ulptC9)wu{Gg2@cAd-G}O2HYv;kV>l5r5th;3x$n0W#9>4k;+%oBo;x z3&Ko*(J7b-(2{<;r=SL(_<KT7gm(qlOTj3B$Z?|<q<Z^w(*9a}B0zMCCL3U63L;S2 zZD#`k<hb>mAM?4l1jzF_f=>kyLAVRR>pajkbZrVEP_zJ%V@AJ}<Uuyt7saOrs71H} zU{nesSbs7A&Tgt5o{m`XK>#%fcLL~5K{i0-cv&x|vr^EC4+bb9Tm_Jsf~6@&z-ST> zIo>SMcIyjz@R<P45bg%hlY$5s2_SN;89u2Q&R!|w#b*XMLbwtjI|UImnE)k(?YWdc zvscP6@VNl?5bg-jnu08V$Z@3fE60*1u6qcX&wq$n_}l<ngsTBYrXbSysw*1-ID*sr zd*pnWDagb}0azp46(A!8kqR#W5qwhrjd`qI8fr$wY<x6;1>p_=qf#&$pww)xPQeI# zRDjpPb_VE8K@?y_VnrOYPDADsj?07QNBn|H%|XgGy8w(x!AO8o`i+|Oj1h5E@)a|W z0)Oa9K?GoAQbiuSeHSPi-^(_^r72<co2*HrnKsd;Uv>&+;Cm!MYYJKuFk;S*abwNq z1+(zIJV0h&FajW&ex->-0ZLOmEynr_tB^5(W!snS1J0UZOA1;5Mx-CJdm%j?v4BGN zd3k`W6l4Rmrk@ocl7d$PqL8fHKNcXGf`2H$$n>)!)S$ocl^-iAWWPrMWTYSypaw$Q zJdP%bnbR^gzN{2{G(aQ;5r7%#$4<c(Useh}2B0?uSpb>oH$rH+0S>^=zviC3XtHg# zdX=wDK`lT_<x8VcX{8D}Ez{e61TeZOepCW_Qjh^~bOU$+_R3|s5muz&0r>eHVt-8v zY5-a)oq^ADW7RjsiWGbtKx<`50NME3g#l7CeAg7*2H<t~MfU+cPe-x=YQSmwxYBvI z-Gb~C+zQ|bp`|jUebA1(lyGQ8ON#-d^N*Yt%<Kzp2QUjEIwH;lXvJskUaU;PEdjO& zuM2DG6G;`Bk%AHPezS6wrBwC5D}UWQ$g~Xdm`$_owg78{<$|*jW~3krP`YU}_|O3f z0+2l~xHZ6nu)gRS2&Kf(evabvl&xJv%6LYc(HGnvV7)jpA_*f?5Cv#WzupRFw0p5C z1#bax_Jv5+N~`xnD@&7rC_ZcYjqtUv$<8L*OL-84n*N<;o7(`4L>Q5RD1Si9jWom8 zdsS9KhyY~u1#bl~8=)rYdfTA*Ea|6xacK9x;OziLA!Mas<bs2`4~)DxgdogL!CL~% zM2MzfboyzNukL>#07vhRM2(1V3ortqHwB~9&w_9FzTm9^W+Bw3U}XAv@G(ZjQHvCA z50H(}nu3w(=f#JnU}it?C4T^BAe2%tD*aga&=hRTGfP0vl+4QjWFkaUFe?3+_`E52 z04l%mu$|Dg%(0D@HH{{6BhoJdpEd>2Cio;^gOh=9lxpSgN7EJ8=ibGpQTS#lI4iG| zeg|MD9WxMGnqDc9qw)1pP`cR;KxOmWKK%9~lq!bZ^k(22rQoQn8h?Bz0VhDc2xt94 zCcsR5+7yh&cb&&eje<wZe;5cQh*H0A*7RoMlTuI%kMaF6RDdG@Xo1@8HS5ZxZCD7) z`zac5?KZt7SF7;#u9u~rr0Xty{uqGFdBRu3cU_+Yu=;Yu`eI0T5%M`J3AG4E3r%-Q zzWVwh2$AbP+V)WiSbr`83*oFe*1o-VZO5oc)-kjIS^wT60WzCobSeF=$)`<07QAwt z#{yh|@DBLcz@+0n8ek^EgRlR~3sV3}cfsn<nSH|Dr&?BD>-OJ20RMc75{2+2-~89M z9)Q(jJT}6EPyU_32VlTbt};D?ygIpC)0lNW2VlTbu9JLn@^7V1!(`n}%zww)93Omo zd{=#)1SBryI`}Yr2cTl1t2PM_J{;cxr~s&$tUmZ`_zplNz!}1W&yMc^1OSc@o~f1t wFm*Xo-6uTweE3cRf(bZUPsp79dD^l50A4zxJ33^0u>b%707*qoM6N<$g6*1ij{pDw delta 3436 zcmW+&dpy(o8~<#x*~~O#E>UxYRW5Uj6Jsb8g*qv7&%LGOe%Q~x=C;bEPFhql)HxM% z$woICDht)*PGwFla@|QJj{N+7&!6w-dB2|b>v=z~*YmKo*R?KMGI#Ia>-bwr;B0Bv zmG_M*`))_s$@-k-$ID#~ym*;%OX_wbld}irDn8xGI_M3iwEN_NZ(x=De1JbbIOg<b z`zNXEU%!4`F<Gyi6XuRhHO&+{j2&4F8*j3W1;xx|%JSk>)7s{zPp&RE|GV?)laOWH zWy!9x3Ci>NXgIn6keCdNu2PVe7}Ju4&n4qXRMEA0ntkp^`#emrJk^*H?KGT)2}V$N zEvvLy5}Uija6wK(Ib>Xl8CRWw3DIejlgV+d8JO`xya6-@@>r(2|8Cs?al)t##=0)U z4r-9Nqt~-#J>YeYsV;*IRSCZ*ptnT}`z2}SS<FI2?9t_$3geZ)U#G>;X;}j#XUs?A z?cp0Of3AG}PM>{q@2BBbX`FnW8vjmwoKGx&#rr3-YPvg1HtGJGe`lgUC}Ji4eAm$K z<3(Jnf8@j4`X+7r;;V&`)7YNFf7O(wCA?KY|7j|{=CJ;4mHwmQWNrt=Y4!8j7;8jD zDf1C$b@|J}^bgP8=qhgEH>qNo75iG+;Z>7fhiUp_AWCq9*9k>Q?-W`pZ_=27p6h}Y zzfAGHfSI+ZE0L>7eWCj7`0F0=!mW_&yY19kg56K+_;w!a9cw;neeo%+%+5H4pa0O1 z1UV#BtC)6q@9c)$ga`0+P=Tkl<qk1xztMA$0({`8e`c+|A{`xoW7{1Sc^Ogu8IYNQ zMz}P_5tmg70&_!tQ)*t$Mv!pNXUH?KG9=`BkrLn9qocanz7L|In^0n`JwaGP2s_Az zA9pvl+;O;zbp-J1xP}ZL;NpwV#%CASk8x0a@JZYl8fq|RQ`vA4bLfm8aMjI&-lz!O zuuH_f;}`g4KYX-%Un+x2$rfZR5<5UFB9z{KzUVXemtZUbXrc=>r8U6CPo}7g2;#3b z!o;bbYOoUAjj&7X#8&##0${Pm?p||Ba-!{;nVb`qFViLX6r)aZhV!awy-CWP?WjD8 z8XXVT7$fG)ys*4Di;7GixCpf=gFM3W*ru^;6!-MDB1y`!FcQfX4#(xCa!<}Wuxf_C z>rl%1?|igX>ohS>A_zt$lulMR!m=yf-NWe?B*-~&!LIh0yejp@PUTITN0U%g%O>Y8 z<4Xt*7&!f`+W#W%7esjzvZT>M=KDGQNW8GJ*MljHIF84i*wL}nfpy})Z_fSjQQUes zSGgK|^S|MO_}!#~`T!0!%vu}EYYSYAnO{4R&9GBa*0o%Pn1!87kCD(d$k)TE#<48g z5hYZcvDTqhl@GPEqR3W&M#IO<A6R;fgSHa(BF=Lb>~~bg<W8KsDkW412G}BG4^+XF zraq>OU@*NoA2Nk4g_$*r6gZWRt#IUB2|aSb4bW#PL1QZdcg))z*q*4^$T{W87(Vd2 zjIEfRk){vI3q#)|KTM<+h77%BMFso)&*&J#>zS!DseMHM7tkqTXa4s+0W4Ibd~lT~ zZ$3})`DA7{oc-j}c3iD!0wZCLp5gUz&f3AWGaP$eUM=F;mf;+DtUmTNxcCZ5nN3Co zB8tDgmlF>|GtSvc?URU#`XITiE|>__y-R&B!bl29<3Hm~;JPFByFhbXn;coVQK=8J zLA0E3j&=)outwA+<&_Q>yDpU6JZlvBEb5{+g7%8tlVmoXE^T3!r%f4!&DrYmtY6+# zkSKehifF?eWb@R%@rK>yBT(~qFDr1ros($7Mm<7$cI933$H!crXlYn{wihW`yxXH# zX+_Tir>qn!Tjz$cJVYt!_+W=pvz7bF+>asPQnojWcp;=~V>orbz%|~HPw`%AFdxT5 zJcc7(c*TgxM)`M+iBq>@Y5gA;|5(3+i3TO1Gu5zT_la6EW#Eggh$#ti;9+)v+a-Tw z!;aMxwGuGYuG}dG?^5n)SGpED1n4jGr=f}KnW!>~sYrX!X_TxWnKWX4N_*S3TgC5B zMGI|bP@&#rE>R%x<-~7U#tZv@4a-_{@gTvO?6$~gY8RAm(zO@ZoUn+Pq)ZhyZo`JC zQ&IMGKrv=3J|6%BbA{HB#kg~_$2D+Ywh!2-)Nzove*O;bWXBq=mK#*VNyv_P9ofHq zC(BLn`NhG>z;(q=EBRBJ%zeLGxCJclK35&;c1|ok9<_AIxbeN^DeW<}paX9MnZh^% z<8`m)VgZe;Lj6>JB4@0BW^hZv`WBWzX6Cv3e$oH}kI_iWr>|3B+AopGO+nbUT0j#{ zV7QHQ%Geq?Nx;mpOj)TKgXVT?anELS)qCY{sam}igAXpR)!<JfxP;gN7D;;mEWN#8 z!JbUKWaa6OsZWf-aU)GMU`*n5?9zvY;^ygA*0Ihr$lzPZN}!z~Gg-1-X`w)Y1b;Ol z?QxP|jI*)YWLWij#Oq0~(UlLoyT}tt+}NmyXOmXq@j7*zg!2D<3K+X$s5`di!bc8I z=I1HW=%PPzcqGs>?Pd{t*Mablpt^F!R6p93tV*5s$0MB=$mPsI>LAR|FSg28_Qdet z_Gk@U)+LZSu_1UD>_H~7R$hhUQ1JZIAr9di3eS7`sXn=mo1*pEKloWz59%AAs35un z>sj#y#{@*iRxiZ30-*WgkzsOF{#?%jR3&BI3+g!GVS}JX7-p0xS6-|}OAZi<0(&-( zoewRb^OTsx29rr7k#?qvXDel?FvfU@1KG-|ui@f$7Kv01>q(^p^9gvQpV!}aA1RUk zv!4|!54^DzTr#LgTpAHkZFZ>_*-X_S4g^JT_VKOV;XhY?)sh679Pci_Tb1~L!0S~I zY7&Z;GX`L{572_UEr}M2dW5|pjyU#!p&*}GDs`oK{hdRTFWOn<XtRZia(c-kk*g3I z;g097mM2p09*#!mZDnZ!<zC{Z&2XZEMX$kZv*6t}j*a(*)+^r&_D7#lxsKp`jS~7| z3rsSiMnV^z4+hRFxHH_!oTs6~`aEH+5;63K&z!y{KD)M`11~sA;W+dfoXudIX2OGg zt6g%8zPJQ2w?yb;3pDV^jxAvu_GDmpgrX#8>vdpZMj|-7E!VziU@`w^pdy?=``if3 zRaGq2``~vD?$-d`cYM*_b>cXT#Cj(ltqC-b-x~jZgOk#K;np6~Zypc*5K$Xf6r!zO z30Fl?-Ld9gX5p$rRn0$;-b|qBrm<Sz<>3R&srBJ!HgRtwU19wDL7RjF=9dUg1X3dd zo>E>J*?JU&ZQY53j6C$D+h9ahG9B<{)x%qri(OhS10Qs>qs<AbDJaQ3UoYwKEUS7d zwS%jFE$sjzxo!oj=dzu_c6o+$Q$|OH2YiStSNih4^X^c+Pt0cuBZs~`id_E1c$owQ zgs>b5dezrgrVw-ssVZz@dg8M6VGOf3o3_bwU$96JNgTdhl+M)|Ht1D)-e6P=S~T$i z&lZ7riW>!gFm%@FrB;;iwG<CDSAAQX;!Pgp!3uSSU->m^(8O>kJmsTy-6x`tVTC?$ zjdR2ZOPEWe{VaD)nSw6-(w~ZZ6xFc?&?d4((+TH4ne2`BQ@!$aO>L&B5_#1!I0K*U zcH}i&_}S_2QF*<IHOsa76lb%z{SnciYcz=f`_iA`G=w;)bu*2gF5+xS+f;1d-|6D` zzz$Nzo41}I-UxSyVD*pa9Rj8utmB9}DNpwX6BjgV<(tsj%%{NHj1`X;tkrp$N$25` zp27vQyY#2UFAu|)8z09};$Kjoa|End&f3X|g<|_xB4m>}w+T}cY-aH5l;A_sV|)MR z_VQhRvF?CkXh1_p4tee=>HhYG)@Y^Zr$c*Bpqipff&+|?uhulJZC~!3sG`Nv!7*kg zc_f|07}2c%3)v(uMzkqoT}BHtJn5}+b>>@^Zt67PT}IBxwH!50!6H(-3p9b=thK_} zJ;D<;XrSFpA*5)HFDoa64Il&!<D;-BOi0(MaQ6#VWuL_vNQN<XY2|muKo?9^=#nm) zWAQuPThG;%>Hj}b0^pY~GHDl$h+#1P&#ULE$3u-ttyfW-C3!jGxUN@N`#u($fguLF zV$pt)Gv{^FK5u!sW;cG>h|T&ddp;`n%l2D|y~RquuQ^>-%W|ctoEjN)*OOEQgl<1H z(rAyOb`94XLL<=0mN)P_4}E^jRe~EZ-O#`b(8=jwVqf62x3laAGs4WvEu3edLulpS zK_JC{(+ZK|w^=G&(S%Pc|6a#}tW}V&>s;5LUtc4i(f&9uu`H=-e&d(lJ$||_h5!8@ z@R}voE4Cdd0qK6CrL8C5EY73PAG@w9>^*cqE-NtOo#2C<?EaMr<aiB~(qs!$O!@KN zmTfy&2KJO0zS9gZU^f~<rM;FT<2JuQkAw7J341&r*lKvsdIFu-sxHWRrNR9G21=e! z*;18<bLH@I_zbdnZ1O`NxEmPCl$lWXe%FI-hgCaj=<sa==C>geE_O2X?p^>Jv47v8 Ky){n3tp5TXh9Ud_ From f1e0412888380358dbcdb0d264694bda3898e20f Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 6 Dec 2009 19:17:44 +0000 Subject: [PATCH 0541/1518] Updated logos git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2312 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.png | Bin 3592 -> 3351 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Documentation/NuttX.png b/Documentation/NuttX.png index 2399214cd527ab0b8e86bfddb35f4e85c6b934f7..dc249c11d3f7f2b1a2974d060128a0c5c6b922dd 100755 GIT binary patch delta 3332 zcmW-hdpy(oAIHDn@nuG}VaRoE$DKOKCAV!cl`wL@pX1lbrE*CW%XXHsei9Wa=UB@n zbDMIB&WtVBb0U|7T!%U>!o)H<>bLXz{PlS}KCk!Z@%-cUe$q6H)bkIK6<!^8#ra)| zSefy>_1;=Fd;PpkC&lFG*bDr9y{9S!+QkD=a>tk%QXIf91)*Tsva%s^=}k=zG3BIJ zWhD47MA8k~|E$~6amgfIF8b~o&(EIwmcG^N9eHK__lM*wR_P@q;fKSCV87M3BjRsG zE|KkDzjO-C#tq5g?LAh3WHs`&W^w!WPH)k24fJ5Spu<ZEb79|5XW+L`y?0mRZC^?E z0d}2%OGWUDa3u_wf7J@LBz%7mgN)Q0)$NDvMV|O;oSyY=^?u$#Fck<9o|fAdC#!zS zvO;}E{Q{b0(LTSIyjjT$Zd!R9i|&VI5(GZ&=DN97@@iRD9(Lp&u>eLWkld{1qd^w8 z$nYP<MSYOfRRo{YBWZHAgoZD^qnr_ZFR|jh3tUGk(VgUg`DeGYvS>DN)U7!WpmA;0 znadr6mct)16S^UV#?z*A8`lMU6GbY2=hmC+s7`)Lx(&A%FZEu+rGUo4cJ&ZD!WJ<X z3pZR`%q1t<bK^lLBw^7^%KyAy_4mLK_cg^?bw=vE<pEI<WC)wPMqrye=xbWM_Si_+ zY>l4@>FE(YHdvvA55|LWs-qf_`zzlzd;z{x6AFjRvN&_>ZrjkFAH9sThQftsiL7g- zln_*@a9}BL-&idCxo8m>mC<XXOgDv^(YkEOunDv77@|8mEEs=$m%zhnoAQiGr=Wsz zj$>dWC5EI(X>2G<?H*r?p3(AHE&^)q-g&!zUAA4DJKSSE6|QR*<7Ql^qsq7#_$gI^ zx&Oe&^Aqwq2!69;A0iHw{$^hizCjCXiT5U{Q_6m3m@#pJ;Erf{JBQTLSJye~x@0ij zk4PP2XSPV&)kH}<TX6dj$*A=4wHV3>;@KJM`1b^y?_Kuv+J!;E^VcT@(YRL?VJH#X zg8PiRl2Jn!n?pBQ{Msz`_~1qD{3G&zx0MlZK^Y>UX{1TcGm6g!_1vFRoK88>ls01= zbUb5w7Hlo0o|E%t&e;Hg{?TNaVJZIEt0Qf0<6n2{$L%XJ-GMNFoEg_2UC^G}#}Q&T zR7^hn_rYnUVVdn1d$#XNbQ_Q!C@kMO=Z{@Vwy2N2i6TmK(P+o_6ZNA>HL%qbbAjAY z4Yl%30vopKhm+$jKW!vCscEmF9tLz+fUCZ^1d0Gb59(M12y_(L17xxIH$<Tb;-RQC zDOxqZO5~szrHuCk4{M+of`p?x7P8F!PuO5nfbiXpmiz(Oqi2-j+_(VTlEo3f-M`+r zjdpW?PqQ`13%1!8RB!iDxn~B5Gow{UazFzvVKK%qL%&J+KsB{*Cl`4l?(yYMD$uCH z#0+r4OyJX@O~&sr{qw>t8NrRA5bOZK&|YP;I&#<H7$#PSy$3r$DNz_oend^%MZ8$X z@3Amn-MA$yxQ6tRM7yh^Tz8jhvRdz3=S?9Pzi_=|m{n1JyOSSv_E^5Ua2_0z(yjhK zDX(wG4Kuy>{}JP=DCzcD&N!VNt;UUqHIgH6qvswpZaWQhS*z<dNb=QzJUFFHqofUq z2kvF0_yC8cekgG-TSecH?)!K6?Nnw2JNgiJM`ryEa2wqOXwImcSY(9bOt{0^J;|b6 zS-cWgJ(4|Q!R9x7E|<Dq8)eN6hAPB%ZY#L*F9=Q^IRE>{SK4JV6AMSR$x<Oesc8&E zt7RxN+;`)C?^CP>z6hIbT|MM!>IeLwK%o5mUkhjN(?uItV;Q>_ElOBd2nF2MKyQgB z*_km}dXz&XIHeD4)I96qLa)<GdHJW5Kkg&_+N3^FwavHp+StrN4a~I!Tgn)s6hWJ2 zrrxLH2bCItWZ@$~k1X5o%PR!j(bILAw3&l)`8f&hlzRw0u+*ly@U`zKE6Bm^5M<2D zmX^>giDgCGl*VYT?@u57PK5GGmd}{XBN@tbET9?fs!H5=e#L>lUFtCbF?rcCt$$Es zD8=th(2f<E#fq6AF(=^+r5KS8jAEum{i^;iYyk@~*%647txan)bke^ieN6W*oz#Et z&5^a<UyV%W$v~YrRo1wUp^6=N%7;h2V{7|f3d^boP~tX#RUKuG^@J)a@>n{u^A5`G zO27$IfgI9@cWTL9mlUX-cus4q!?~-(Mli5>syAljvh^}h2N+lJkBffOB|$XqhhVJd zK{5e&j^31E20u<VkC|yT@4Z0#FqREVK*U^08id8k^#4e#0g_EG#qCZiMr2HX2kt3` zAnCCDQ<5!e#FrV-Euxp!r_=Mk$}rH6Y$ftw!H&&Oy|0JI{PZk4qyF`Qm7G}bac|f$ z{~;wtMP}n7cFEN%M@H19GWT1azzsvb38?w=(15+@HJ!#l#zt0VujLHVp6NO6;nz|l z0F=m~j;c?Z*=N#%xd~JA;l)ty?3DQN_P5VhzKciE;fa2@eU!eP5+V*Uw>fAXgCxK< zSy2X9&)w8|jI7Rf8onIv4NcTw)cMRzW#_ybu`4&Ew=Rc~46q-SJ*~;uLBy(bKHlzy zQ}Mld{D`9$H4h?E6ICgV;BQ*lZ=|kE$5cgLwyZ2z8N5MPEm(+_dZ!l#N(93Or#V!0 zk{(4f%RwRsB!u+om@#8^8_68g4TF%uykvZXK3B^uhF1x*JKCy&_4v28qN%6U08$)9 zKg$d(HET5^bHhz(+%vF=qpkYbb5I@NwAA7O`H1_0(5xCTJ%E^;uqyC!_T=cTA`1Gq zbk}jf7(5N4F&WaBhRoBJ-oF1C=-o_4mag*vl`IEfvzlSc)t-FY)%y7HdxZ{LoF}-+ zm4z;GCSCz`=q8wJ+uf(t)Clo;`Jpl@9jGGj<fe9_(3@Rbc9PnM0D4O;3qeB~b9E9r z0hAxwAwUrL83q!xW(ho-$grt>Tlk}o`20TP;h@QAi-8Sewc^uvyk3qzM5XAi|D)$( z82Py~&0d~Wsa$>`d8Bvnyz&+^GWgl-nn|7YMGoUXpPKVHPLk#!uP*z$Sdg*Dp?X*x z?)by4Aj(KIE;ih8xzerAe*U?z(8}b8fkhn<>4P)C?#)WwvP-Xo+1rON=2Y{`z!Rp% zpqh_M3KUB6L6a1)@sN)MP(ye0EFdS`&@9?Imo;)IY&F<vE9s8XuML*W9O+t(fbAJ~ zfRompXUaJJq!oJS%pxl|o|*N&Dl9<!z}@#SqJCljt{KtpiS<>lf$k(>uubhBvu37Z zJIW-l6ewLUY?)~VGG10}mz3r~E#M`K)~$p5PyM(5-9<Uacl(o4pca@Np1EIP$$liw zfmuw%PCd*%@+H1V>7bQbFmDAQ=oZjX?yzzj`rEAvjes@s`fc>IVpNVWWWG3BFAh_2 zwE`zNxMmy5N;WCH7-w8for2Y(?xAlH)O>Iz*toKJ{#|;0Z7qKckbjY0;f@(CU~Ord zIKOOYR=rJ6Hg9#}&gu}G6qGLxy?U^<2rGn*j@73@jhn)s{h>VI*cH>FRDRQIRZWU7 zX)-r1i(Jp~Otl&CyXQ_NUij$0X5R~Jx(brajUnb++Are2qC8T&6)DUuS{_U-H~-Wh z{=J#g8rcSbyQ;?}I!Z@&NM5&^S~ia3d<cD9ZeY9jIFb-3JVv<<uRs^9rdLSPpWpO` zDpH2gjw%dUd_2TiuH?0ReaasO%8<!s0&=j6ymQz7r{hx>dZk?TM+1f$GXqE?2!gik zEG$YIFX^i2==|M)C*ky9(BjmOEg;QRV#L7Rd~q%MB&C1QIMyho;>?5MoB*e#55MMx z;yzm1$xrZIF`E8$ne{=ZoL|YzU(2iJ$6RLa7;?R|^pWYnX3uyHrunHM_U~14%az8d z|K_W!ZL(}(b4=>JoztKZwhr!|HvDK=^@ij>uWfTNYi=>%46n>13kf%&jd~IqqdQ_q ze$aCv@}Z6tWCz29Grp|T;s=TFm)(G7;!1RSQCQuJ@zBcRq=s7q(SY6uxi#8ah>P5l zoy4y6(?Kl_JKIdfWYjH7vh_?ANwjkt<9hRD86qe^4KaT<t)G*zlCJqP#;2YK(RME9 zNz<maJgh3_nn}}$Qhwq1WpgeX?#<1XA#i5PK!V;$(r$;XA}oIr5kS_te6sbc-^-<o zGvEG^7O%05BjAmsjgF=Qpr&Pg2(F~Fd!}8H(OD5z9BPy{b@&Ql*I908-j`*r6W%@) zd!Jb+w|$|Bz1Y>;o0c1>g1lrBxNvvggK|?o{JG&tQZh*{AIv`#Tp~^pD`J%R3O_Bp zUi6^ABtE<2U4^F`%)D>@Y|uqHu>N+b2vT0q2=~5Jq+S<vs{`CMF*3S4t@Rj?oa1g@ Jt}J{M^?xnO8Ych% delta 3575 zcmV<T4G8j=8i*W_Gk*=gNkl<ZcwX(@O|IQG5(Qu<o5>*49%e1QkW3rMS~3c<jtqJU z4K(Zx^a6qx%N-_sG|8${b*e~RF~CD$Ur83lPlrFE?)&D`r%!Jm&VSGq`0=;jKm6yX zZ@=2-=U=~pj&nBtd<8Cm=SP1H{`t#)-+uVV$KlVpmilY?C4c<R1=C-!7T@>Z{p;=e zX+fTAs=uZOpt1$%;VXZ45bD9TH|GJU064=}((fR&Av^#DfEs)Up$*^Z0}}Bagf@gH z0S5??<ZA~Zr#aSRJODcYJ@`%%>hYZ>I0)ZCs7H7butLa4zSA7*@tp(=#&?oX#&{C& zGs1}EJ4q<xJAVn7gzqHb7~`W8FeCX+63&zGu>e=#J4yI8#zz8NiSHnMkMMB-cffZL z{*CZa0C&Q75dI(GV*u`m?;v~#KnA{lfBfIu=x4S>U;Eip7chh;;Hc8FmaRwQE9KKd zn{BreVOvjG^%DYcmKK=>&BAwQgxb1_0=XREbpav@mw%0~RAhNkss2Bjj#){l#TQja zA%hU4Q1!MKnEJ<ql7a6+V=c>F5F+Kf>LUUoH35+VwcEA;uRmK5M&o<?^S@bHdjNZ> zCM9EJ61L}G$|aSr)RU!ddi$gSyb2}(^&({9o26e}QFlgIpL>gMhLF`t6^!8kwH0<< z5D!2mzJC$GUPX-%j#6-kB-G#=1qQRLMDGJiv2IC0P1LjTApmD(Vl~Cr`7oPfE5NHR zZUb->>k>jV1takF0M5!YDibpWSqQcGv<YbKtA{timI_0g;V678fLD2#Dab&m1=#Ca z^upog0BR9N;<EtEN<j}oEj}duZVPbM6idx;G=DxOz=#yIBGdvz((fe!&QdS~pA}$c z3Ze+L_|WvbH9#~4+mYb)=N6<ixvTwLGooiq%V^JMw4G*jjFbgUzn2BrreOPQH4>jE z0kcz3N<su*cKU_R14^S{%>;Gn3-(5mQOQ@52CX<vdDtW3Iu%Drh?FBc{cZs;veIVF zAAeGD+NPL2FW8=cix4dX3Q+TqK-wnkQ5=$hSx*y?{uWw!ZFw^u(e=txBSgx8;`8?X zmQO@$D=canL&Atu9`Z0hIt5Fg5Iuhspp<Od&$mgy-BJ*(Ky5QTyP+%#6-GA_a{eej zR{Cwz2b?YcDHkWZFNjni`rJD@1<`Xy0e@=KO|#ur3Aj@VqLqj=!_g^-oI8q-nSR?P zptMpZGX>E~+$9B(^IkFU7y5fb>cXR=;MMbJZC?th$ZJ~^U{ngC=iP2UTJgeOioe|` zSOYL~L~N-@6d}7Wh@A5d>9@2AW~YWUt%81zRA$*01;|c8%Q@HkWT)RP0cNG3wSO{E zgsc=q&UcseTMlsN6htai+xP8_I9VxZJ>Rn5iuAiJz>F01R46kAHIviGxz1MWL@c?N z<^q?^14g9=+SiMCl7IsArXT{am%?>7Kw6D1fkHpOEx_m$^j0d0aMl-`r66*iv-BGw zL_wk3Zvk+}z93Suy;MN~T2s(_o_{0wQS*M=OhkJxT-iVB=?LTeP=uBg)OKaG=~tfv znr4>mw@JX=QZO2z1%&r$O<N`ncnd0IpW6eB>I*UeT5c*0ir#Aj(xXpl@X`LeHFg9P zy6si~EfscWfSwfe-XIe6cHo1;(r*6}03#53D_Gk%LzAh%&>r7|JOkl&0DpH$!7P9l zAd&c5bkPWD0Iy-Y_rjF@(a~eXh?oh`a#M|(NaVaMxTP1JuFtj2t7bb2!19hR3!tUK ztn+9QPeOXlDr=D7y~a}CPx}oF8eE!f+yLtr#Jv|syMM2O*(r!5O>cSwMX2cudd^9@ zKALCF5zVm+V2$rOxw;v)+<)<_FK~VLd(P#$7AQbXbE&;SHOJ~Dq2@U{8=)EC44>45 zO7DK`&=>Rqv>=?NpyzxT={Nft5KU7%+QtO1hp+uYA2b136~^iddMdo63o`|GNWTb# zFu)PModC`dYML4J+p&6mKr6yo|JKtouvT8P5kdfG_!t0pN<l^fT7SwTbx+WiMQRZ= zgOAxw>+KV&0ZRCG1L#db7C;NaSqfU_NF&mZm4qsQ8hk8(%nI{d_>}-hDY#quF%XIX zwfJ@f=t)5)K-NvQWBPd!P5~nLm;hN7CiQ=2eVf$)+Z5b6{X7VV08xCq0<@+e8(?o_ zEzOr|r(Q;VMo$++JAYf?eRkXhXu-z@xH<*d04?PyDR`Ikvn1hH0Im3T253pa2!IxZ zNJ`e{yej=rgzo@)@I?T$R@m&3mi8HFCO`=pI{2`zc=0s5)>Slr0rcYA9Uz*5Q2;G{ z!4bgS`hFIKUjQ=jMFCuug4qBqDTpS$_o;^`AxBS4KCtlJ0e>Kpf{_3jDR`Ikllp`o z$_8aUpGUcN+MqYnFLj!G7aZ*yA@hPO03s=Pr}Ud4`~r}HFERlwi7`qDZ3;#Mw3Mmb zaCc0<5yE!~=t;k5fR+mLRMaYfniRZi`n3qJ?%!VkOA>kzMmE7rfSMG{0B9+bWx2hl zP9yfMTika5y?+R!0a_}|nu4nUN>4pz>jg*s=m<pCW47JBFVisX!K}meI{}nZFasbu zu&QyQ&9D^=bH5hfyRYbFAj|-mm4Yh(YSPa-5Me^H9IJ=#tM7>RBD@>GSqer2^rYVm zp){Rk!Q<U$gs=N0<sO7t05eiB8z7Q?cS^w-zTvmzTYnMW5#T5VBLOnf?+z&_;hX-N z1`EPWfYB+K3DA;$yQiQApZI%1P=t2{*h|4EfXH#97NmOnbkhD>d?G+}iY6OiWC|is z+HGe80pz&#oFDVKw*<)ZIf73G5J9*L!0SBFHFRwXB2csdkz+=`l;lA++84#A2B<~2 z0$@}MB7ayi0M2fz9iEO@@Ie4I2zLVLO+hw5<ak*xrn6GeiVp@TAzTHJnS!M$M!;wi z5INo~(RS+#dhnS5&JgYf(364)7zrS9tQkJ38O~lQ<HctNI6}A*AUg#SG?@S;gzdSM zKeJcLFz~qm_7Ls}(3*lQfXH#A^ee}bCa!x3nSalSS@_%lTZF3tMy4Rr_o^!!0XTxw z`+MYkm?_A_M*&zP+!Y`r1(6Cb01<pr|BZR9UK(mf#B6*tfCb?W0Habc8lco{u1>)S zd{ltf!FC4dO+gf3L}Eo8vra?i6OPM+=12U3O3gvaHoE|fNWn;eQu>XW^o$X4RPq%w zkADK_NkIf)WKu;QyL}fZ8sEz{!KEo-^_#3oqnS3*reAgnX5f1yKx+zG6EI@Vj&Wnn z<^{9xy*xl>UoZk7ntr8;L;*@uJT1oh3#*VZfMwg4?E}u5VM_{H07j%AvwI;u9kGBy z_j!4MtQ2Gew5FdGAd-St0-}(t+dmc{nty^Qz{vEoBGjP2@Rc7cDrCP$0A!>f6QBk{ z+dPgYiJ8+fHNLDAd^A8L1rdN5>BmmN7GG8hJ_evS1z7-@={G`Xxd9Hq&%frLy=by+ zwtAJXO+hU{OXW+WQE8<LIxW-NegrVODSlJ}dQy-9aC8HB0rtvexe->R-~ssg9e-j? z3TgmaDxHDPb7R#v#flVs96)PjNdVdS+Jym9Gkn(++y>xv_eJ*sJx@on0cyZ$`nb}0 zx7~v56x<5n2%)7iq<zqiyOeNfMN5kTr1OuQ7tHJnZU-<6Avz+?1Zc%)?Ov=*!7Tx{ z2(Jrk=@Us6nUR7K^M12(m8Demzke&;Jjk>R@|aDt?Y01Ggyn*>5oV+y3Q)RfH2BZ~ z2?CHkFSs?pg0Q~m83?7s(0-2M^OUV!M9O$ZoY5ED9$>vVG9n2hQxFAcO~2j>X0&^; zDg|!=aQ1~r)=I1QLn}*@fG9p|`i=0lugT6P+e>*6gqr@HW}Djpj6@ibf`2GL%Z)U{ z*Lzh~LWlrl^#yMQFdLyJ>3Z9s_$=wCeQ{{_zToWuMj>RSVB~^>x(|%JID{a~PQhCO z%tVN$V08LvldtZ7Apl43jzo=!ZwoL2p*IDi)6ar$_rBn*0cIi8reI|HdGIkt#8HbB zZV!-+(3*mg>F33VreJ12@P8!$W+0SOFe?36_|Oz=%QH(r&y>u|0AwOWQ!pz1nE1RY zcmOKD@UWfGwal@NmNktgawF0&0-rVo(I)sLV1tu^aFlB0??=-W*XQ2FrcwB2DL5;y zlzs<bCmk~oTAE%dk)!eTQc$|t4nSq|+dlmEB9tnI-SlSQ8>Qf=tbZDOCjlowy$EOh zK_<XVeA*O@#&?~^OO1j@%YPUMC5TeLZ`Sl?<C9WQ3y<;rF;svf0BC{Q?KSJlq-|IT z%lj!BaP2m|C0DEP^{$tto}}w8ef}7L%z46B#CKhv1F-sX#QI`LcM<YAD+#p-M+;4N zO1}E~AqbJ{KHBzC34d5F0t?}+Io7_tc5TO~NY*j509pUuBLOm-V{|F~uF0oOK^DAn zoW}xOf$$Fa*ubRYJsMyp!h^5>%L`KgN_WBP&zXI~-KSbsU+ebYKLG!HiV}tJB;Wkk zwjO}hV>~v(gHQgQ!3SW#Qm!&RgS<MqTho|zJ_lgHQm&JHa&YpcPQzr~P0WAC+8iHz zdVE)XodhH<<vRE<d<URnp{q6t4?Y~<0jL0|nXEqeZ1@g9CBPZNgU^od00aPz5T2=) x12A<tQ{5*#_<Z<I0)h!RT2IKF{(0K5{s3M&qB}Zdd$9lj002ovPDHLkV1n;kb~FG0 From bf40f79dbae9c26b5aeb0162e2e7c3db24d34695 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 7 Dec 2009 15:02:08 +0000 Subject: [PATCH 0542/1518] Updated graphics git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2313 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.png | Bin 3351 -> 2499 bytes Documentation/NuttX2.png | Bin 0 -> 1482 bytes Documentation/NuttXBanner.html | 51 ++++++++++++++++----------------- Documentation/index.html | 2 +- 4 files changed, 26 insertions(+), 27 deletions(-) create mode 100755 Documentation/NuttX2.png diff --git a/Documentation/NuttX.png b/Documentation/NuttX.png index dc249c11d3f7f2b1a2974d060128a0c5c6b922dd..3f8835453a250a56a7fe34bd08cf8eabaa4bdb5a 100755 GIT binary patch literal 2499 zcmbVO{W}wCAK%KDQB3o4RNgx4Z1Xar<dn^3YeqD)@|KWOM0u^$iP@Q*RF*jrLYeX| z!y)rhieib5m6tk|7DG&QW@MYQJoEeo&-GmQ^}WBJ@8|m7_Ye1Vf9}tHmEuF%1TlpG z0Dw(o4+2%4x$6PeRL_}%k+$jtOrnzT0N!8QX4Qq}aW4`9u(m$9k1BK2jCQ<7U=jeJ zvt>PifWl%EHK}!$>`m1ATUTo{5<K1owo$jalL<K5g?IB~u5mEZHi2}^Hz@dLV;apV z7mOorEu&d{c*VE?s=#?jb-)I9!Ss!dc=2YPplAr5g*ZhGA$AcvP3=Z5%Nm>bj<U33 zmABy!$ZsE0R+<L+^C_4(``5kW9rd+obRF!!|4ufak<OM~XK)xhJ1b5Vb|fFMPQimI zHl00-t${WisO5&?t6$&ctiC+`8E8dd{470(b!UMoww<vSc#SF}b2TTCTB@Ph{{g$T zwW8n{f;_d^uMI8=N|}pj+#h>#pWa`pgOYFG2WxMmQ?ZYQb}RbaQhC;~1-s*G=Nr=Y z$V|d*Fn#)eZyY}Mv{fuK9WRjoIGqW9lKZ<@*B6C}gI4qkT>K@#MB9S1DPyh4vZ&GI zhHzwe&BlR{*2sEMNl|MhAI&e6PH9HDcEA1i=%dz43vu7=vBA%#tAB|NIP`R~_l>jJ zV`cN7CZdtdj;5D=rdxAI{G3wz9h=#0Nl(qfBzPW&#OI+sjcJRte&OQ73rP(PCZ!;Y zXB&?i?;vgVlAigl+U*gr>n9jgb3sluYCVLDS-c){r-12_ZiV+$Au<$R3GYXDRm(3Q zDW(yrhLbn4k7v?q!m{&zOY}RfSTudWghQui-Xy~wUaYw52^5&I12PZcah}>PD}oS> zfJI<HKF6<X7;HNidEPwU1J^GlBLh&ShN|I>2UQkyg+kAHF~NH8PW+tm76$T>_K#S` z|2*7aT2jVzF`&-*{~Bm_p`gJI6Sqi4m}Cmm=@p<aun+9|t$E^{Blbq6=Trk4QKu>c zyl^kTNedINgo6(m?l}h>!gup%jqf{cB#|gLghvzg;_JcR85H41QTVsZG(=S`*ID%e z92L@~Cv$AFzIj4*P!kN29YJxFZ3g;~(aMr&Mq?$98>aM}I*d);fbVKw^3&6Y<XO)I zV)Hlncy|?_c%g7@j9DmF-U91GrbS5i^3WCU&F)aV8v^m?SN;!{mGqMvSj<@nb<X*G zk}j~6`}~iug3ob(FFP838isudu4sfLO8A%`JL})6@^dd8wvW`c-LmZYZp{Dr_R?xV z>8JCc@}*$TZO3lZu_1f7x_F<`%d*BN0r6dO$jFN9ObI!QK4+Oo@-X_OR!R*z;8r_x zc$H3tYSzdR<~e0YgyOo@BJ14dbt*=hfIzq|jP0lT$49}<YD);L-%yz76WmWLhA7hG z=hu9j^<F~5x!2ZZL=j$L4l5H5m{d(zkLj+|-KGe$=trTNI#L|YT$w;HvFXtQ@zFUg z^kJx`wVK2#eGi!2SCiuYU&z=RaC*6%%SEdYR=P&wbf!~1C`VZD)J?gUVr01gEjGfB z68!iEIDJGO?bk3V_0&^N9WaT$8HZYB<}LMKwGYTzhr@dIrzH8N;Z=bc^eXegY`#Hw zgPA#Osao_F>^{FZQp43!^%6|>KTB>%(*)g?@NK*8L5gTUVG-ROdU+uuZB1D@8_(s& zsgza^&&ualeg7#)zK+ASCoCoUpY682zHA$7G699W;M5u?kMU^L(%s%etel~iWmxzo zNS>rpy2mF=?&I@*&)Kzccz2=Uz{p@aGgYce)1R=#4??K(s~4&EMxr)=D-ltuzEJm3 zdto9yppP%UPy3Q|n(=ec5F|FU-q{Te9WArCNza3A+Y;*Zq?(Ly2zOAm^zi3vGKe5S zud@j^103_gc;Kq=1`{bgvq@OX8r{kE!p1-<dYw^jbI@-{50}7zYWc+0?Oc*}-9ZyR z-3T^t9gTGBhf+~difASg<Tc^7Sy;q!*)r{mwFP;J`ys+;7KL&IcTN81Mm7-)T3*Vb zWurRp0=&{3vaSev@|83TJ~LNps1@aa*MUq+jJH<v-zOnGwwsd~qgG2bVUm5WWrmYi zI5uv22GQow{EzY6Y776AGT`x0iVv0yauL_=af^Xa$711i7Rf1xwPuK2uUFa<kO-(~ zQe&8stvu<s5G*w6k7$(F=n31Iw78~$K%OP2e4?m~aYHSQHz8*{58IzR8#-i_aPpoK zP=`X4hh{PT%|7bytJ^~c!eNuI(aE9lUs@OcIWXkpEt8K_8g95x!=Y4&yqJ(KJ4~NL zAkf8da+DKsOF5B4iQfeb^3DEL#0kQIXO7~$ReSTU26vG`Rdp6`{y_I6y0)KFJ5QgE z2l6sV^$@wY4bTP~XdAh+_^`wu^ircL0pd1sCBPkf2vTT3LE)o850+*3xozI@p)4vV zMZNW+w)-5U@PpO|cDA@pOtZbeUD4b7sEE`gT2m%3t%U~TnzSqpph2_-!sEAF>us!~ zl!$_T_*f8p+4|yGVFh#g(9<Z7s`4-%Jz^oOrG}d+V-$;sPs_Qv^i*l;vH6rXwUz8g z%uExSmyE5*)&=)OE%H4(nya|A)|N-1RBJ?O=;@{+R7neS!LEnwS+L{svyK$MJ3&o6 zZhuVIHfW+5)K4N%Juho!#>O4UzF|+)ja4Ozo9=VxI>M`VOj5Evv3(gm@Dk4Xw0(Ij zR>ZSU!yKzl7zjQHpe0}}POx$z)R~`<p*#k>XgoUBV=6B@i0z>C6$skUdldlW4mPr2 zS9rPd)bkAQhArA1+CghybLB0wf*(ZL%*LsU-;^p{AcWL<CN$eidz0e$IL=K>61Wt7 zv{aQ%c(olBRELfLse}t^lgw#P3Q8)ecj{DIUF2FFcK1z=T7Zu(MLu}Pwx5C!jK^Q~ zj}iNDq%X<Q&yq_+7S<2w6(ugUS*9pfKbyyR$iS!Vjb`D_vv6m|G`mw2N$xDZh`L?W zx4(d=ViM=1r>>Jz9XA|iArt>PZ`OJhec17u?a*XrVfwD_QvHnYk2DpCiK1bQ#b-?E z%Du5%#oarZ5)RXalNH0}#QZMU8K8Kgp|$N=QP^Dir6ji8f?LSCq6e%YUXkl_gZ>9t yfBKWBNB2y}apr#)<Zpg#iP5M+TTb+wuK_tX*qOH@ru@`DEC8A4L*U`VnEwI%AfqP$ literal 3351 zcmW-kdpy(oAIHDn@nuG}VaRoE$DKMU<hCtF2_yIWIes0t$~B6mou#ZJO{J7`tmTrq zO>WVdvE_PBL{j8B)M*hWmQm`rbN={z-k-<g^ZL9W&p%%8*W>ZIO7wEug-}NT0I=(* zyNj=+GX7m~8OfeE6k{PN(lIzs8~`-X<iGv|0f55uqb@kVa}mqap4Z=5tLCnqIn+fq zIr91`{;pnw3W0idUzD6XGfRpC_@yBfEL)e?Mb3TcDIunu%&M$J|M^I|LC0Tpn>x<f zr1M4JT@v`Yv)?i|`@ADBto?ES;svYB5|Z%!!6b0N>f2%Qw<71rjxV3Pgl1!g7sESx ztpe39UTzV0Y;E@yE!9BxmI^z)lrX7#hPwj4h3dV%lwk8*x*xFZ3S2CLpM@)7z=BIw zs72ws{TO7V-l*;XY&Y`Q-(&Qgw<~vP`@wV|M0iqeOPr$mF~<t^3H1wTmP7sYPI6}@ zFSusq;T}Bz%O(hXI?Q$Rt>o2mtUPRc#R3?iP;#)Eiw0TTBEzqW3;H0dy9hq3N7CeK z2@RiqM>!$*USh>LXSj}3k{ih$^L3}IvS=o7)U|~MP`Nhh%%#pD%NOsn6MG<qrjw?# z>sJK3lSC^2<ky?)s7`!Lz5%xrFZP|orGdu5w)GG@!Ui!L2RB?;$WOB4CV-Ae!h)HU z{~5pP?|~t1tBNz~jPyCneWD`B5H@?6z&5wn*R*))v7WfmmM|UC+beo#uuKjgN&w?k zM>Qh%R=#Qc41BI8+<sA(!<l9G*o5}}=w+NU94<UXWL+*LhoDM@gNuQCUdO?oh!%iR z8NGJ$RCA~qwc7?ZZq^e^bVG*)<B#qTcvx*yo>A!}R9Mb&2y7z9k`&2Jjb-UQW2@2A zS{_S9K+Ub2Z`Q8Jc4%{7^jc4b>zc*78rSKlGR_8mOjls;-S^?lxV#R6-{R1Zh(~3< z+LMfL)WTZgy-DiivY#1dOq?LNGg{u(KE3q$70#M2nCVBP470OarEP1Xq@66d{fHD) z=Gba1c?9t|hBEd&5$Ai0J++!TBzW@jxF8z$ydn%GVq0(@Q<k%8=wfr|8jD|>!yX$t zt6gwd{-5?T;&muXBs7gQ$$L!pS*M)-Ym(C?Cz{k|jDZd@HmAV0Qp#yLZ|3YFAkaTr z=7kjh)TNPj*Rd}<^<#Dw*=|6XKhBKnk1p)U@8<}y>nbMif4g^5=>^s1vmM)aIl3Ll z3>21cpZ3QtrdZU+T|*J2xoEV*yYc$b<QmvYnz=x3xQ0^sDv=Fa@x#e+ml~QbI;v@} zqV5NDT7WCQxJ0r5K@aL&00?xH2gqXauZltu!~;<oQq*dGmB?N(N*V779@Ie32MI^F zEo7N{AF;va0O8whE%|-02an0c`SAg`MT^6JJAc1&9qr-%kzr#%3qG_bsNVL2a_=+{ zZ$_<-<bVcT!a}TJmVUGHzG_PUc0Tf0{KNAfRiIIY@oC_gnZT!08^6o+uhi=@f~&(J z*g=A!oytaa<c_^NCQgUF3p+?IQ5a5nK*`uaJYB-?vM^s+zb-4djP#L6d#a*bb{1=L z+U{D@CJ~HZxLz{Mswlsmi4QuvET5;I0f(h@tN#P#^>4dkrgr})F|LY|?wH|>(b>^z z+yq!t1a9>7y{0Y4!ES4H-A0MLI*<n^muZx=Bk{nUtTZ3spwtf~Ze=UztJ3}dzI`*9 z9l?%1z}=Qvdj;G;Hv^i}>LwOh;W!iS3+>(%QNAo*iK`yT9<gBa8$XpxU8#+-<_1F* zVq4c`T={1NhX&65@!`34naue75pAgupwu)LqSi8$8E!lAfAlL>1D}O0HZC6WRP}v+ zP#{o#=I{Aacj=;atg(#k(^e&{3xoo0XrMR66YT8R96j;@5}e!*Hff&naHiL3r9Jyg z${+WEetANlsM_w^clq`7ehtj!L>uyJL@9zg#Z13T#}6qr0x7}=fS&AtFYh+shMua+ zrcUpdE67W9Bi}*jfu)D4Z@=^%Wd+&09)OH_xzZAtMX{`Ci`*2=_5JCC-?30$$x@8T z9Fn0t%K}=^E~>=!Cl~DLTcsZ35R;cH)AlDNmR$VK1np3fU96Z567v#c$i;|EU=%YY z8c_9rY6Dn^9e{Y*+KhHXNB!&4?z*?=q=7rH4zKq8YGg8Z5vUWV%No})RI!5%e0bDb zwzluNu$+1TC2j{;)lt@1PpG1T#?q0Uvsdm=0*;vq<d8nR6N_%Tq(JSY(^{`Pow`d7 z2?jS#^u>;xw_XD30OKnDQPJ<ZB#6p=AB^?fPXL~vH)NQ>4^zxzr`yc?QmOA>=fV;Z zu@{nuVDT~oKN4$z6w`C@I}?f#SySJEJBlGlI;`M?WPF<NWkz(1=*6|EOxhP22Ks@G zBs5qs_qoY;_3+rA9_MD&zudQ+7w0|Z4RiM&R$^3SH!WZnUA*#SMC~fGztaS+m}`KV zKMxJqiC)sF3}jqnW$tR;5cRR1!!CX;B?3T+?CU7{r0G2-t(a>tH6LCq`Q~<sA8&8R zT;<yY6dj)AhucH$-!38I5VIRY*0D$eY=aeLfc4x-ugA#hY-Qlf;oi`A4Mv^M%vN@y zU5#75D!q9=jAVfQpzLXl9YU-~7vOE5Iu_rV!;d(4QD_j6lB7y*0)N-aeI<28I<_kE zyk%wK^3YYfYT<me)LXqUP?9TbaEe1wC+U$jbL=IdfP|1fozrH_9wQld-7p9l%uB&H z>T|WsVtJJ?+aqlnSdV`lE1GPe1d!s%`Z;D`sacyDH{6uUje(6HY17A^hUx&v#a0i< zM?3(8=G1_h0mPKV6@izNCr57uQ8=)vyM_Z^!!sZ%lOc_1%sy%9?fbvMzKs-Q=^77E z$*~7Esu?z1?TI(tZ4V#5Q|Pq8d4d~US?C;R{5epEZiczE-)g9)M2OGG50_EsK-G4B zdKU`4(Y<LaF?<N1x7a!#G^{aOCt(vn1)-e+1c9GrAR%j!ptFgLL$z;i|L7w=vj=%F zXd>ETaNSs~_~cEmXQTH~X}W7)^_&eOKXql;$+Iez%TrTE`i9OZZ!#l;AJ43s)LEb9 zF#h+kg~oA|m=1Yq$=}%mdlagN#p90N-wYy;MC0PZ9hNFx`|akQ2ya`N{4ltn10sEJ z2H4#>>6^Bhl`uQI@P)i;ei?Yo)EHFraZZCmNj_+j0yY8ik??8gj-CSKgzK6`o2PR| z4uq`)J8mZ5RQk2il9?x6s}Zm@?FMi%dT6GMlaJb<w@xethnN}fOTt3L58OTXBkJe( z?wAp6A6Z}W8th3H1|O>ZbH>b6Y)hWtl>((}w_B&%fUIW~TP3A5s1-bC(YCpt|8d~P zze6bJ@OE!<8q^B2#WVLREZU7^*fWcX*vb33hd(D2DebpX3+62Y1l>Y9$_-Y2i2i1? zLL*>x?FM>EF)B|OGFKd}7mum9RDl!hU$qHkrI_448*f}qnS|A%?x3#|)O>Iz*!Z$J z{w;bzZ7u&bApbP8!VNQ8$lBC2aeCI+qI!d#V&3M+ozWpSD=42GetvIr0d^ZU`no;? zYT6L~><`fZ_Y0;)>HOxGs+we9(nNlIPCdsn{m`J_9XARw^@IPaT_3RFB1kqjhL~@t zzli^i@<{JdBr`XuG?-d`!HGZp`?9Arat#1CRgZIYl#cAMylyq6Yz)VFANsJ|z-ISR zBq31fPQC%JKo_oLR!G#JUiF14l3$=5R2Z`O1c<X#$!q=6z<&XhAydo*!Orqd-Fq9x zCR6*QT=Yi+hMTejNFxY>w(JZnN*XV5sp!but$;`2^kC59#E-2Y)kTtnfjb4_TJ&-9 zz>smAQCdaJz2dw8$Hn)*(n4_`EN$h-`7Rhu|GMn@pc78dW#%r^s`;_!ncIe3FD-p! zCa}>vR)cA2FvR||(t4q3^0xwYwGEaHY?ev6vwadY!q&mvGG07bQoSl^=e1=nX3Z`H z#PG^Ia*%Kn>Zm87DY`S3<Oe+wBJb-+LAEeVIOFpgHDQPdf7SzNCM`#27KPP49Sf~2 zPHwzD7!ByXms_Q-hB(VT+D_`uJQ>v5xV^<xOhH|@w4SaaiMDTGT&_JULj(n=A?8kH z3~;iRGc|w4_|)?t>h^h>G<8bL!>VGog*1gI<=-AVZ_Y)-y}7wE1kOwuNYFb@+Uc}W zgcVF60xs&DKi>Am@7dzn>2F`9#j9-N2zV1|y|cLxsA*jrhAZjp#B?Y!x+=noLya;f z4-$5q<c8;bS>`(79m8>VnRRkosm<(#?!LZ^{6H1tIg`NoTXP=dYx3bw43CpiNOA>W z!GYisahg~Wqr_MEY5wJc2N@<wv76pic)G##yOvJ|-Q<01Zx)Ln<#~;8?{h`!bwSrV Z!5tGLqgzv24<$bx;HayY3kx4b`9Jd+6)OM$ diff --git a/Documentation/NuttX2.png b/Documentation/NuttX2.png new file mode 100755 index 0000000000000000000000000000000000000000..80efa0e6486de902a6500ff581e628ebcad2b553 GIT binary patch literal 1482 zcmai!YfzF|7{|}6y=uPVTG|_7ZP>-6Al=f^+E#3o)J#dKAT-fJO)PD!)v{Wab(2Wj z%*z;?VcEshEvdv(3GmisO;HFkFIk&SQfg^pO60zM+iyE(p7WpcpJ$%u%>TphBt3K! z&X!;c0Kf$W`iEm$@~v#Fu=`YdJOvXdHGI=XaHDPhAoj3|-Mq;kOn*Bi@@sjRGczTS zl?njj_^luyK99#t>w`gC0<632tnGakx~V0#0KmaP{(g+~=R?Ko_jgmB0vdmHwuE}F zce>Vlxi_)LT$xu^bCgl%gM}{iLT_<<-9&Ns(v_ZnjI_FBUH1ID_J+ddTtR~i5d?xW z4qyogv;nihk{Mtom~Fww1fp8-GXW8zZUkol(FFwV8B@AEEcT67C}dx!tB#U^o4PFb z34x^<OqTO9QY0~Q=R;F<giL)R0e;o_5Boq3dJSBPpm=$W-?&-!eYSA-smRUZfWR$| zPGK?S)scqwv5$jeCdCWg#DiJY1zjIVYYg=)Lsxk`BZnK8`}o6GMwoWzqSF=G3EJx{ z!yE5~ir;3&>*=()*Ah;Pt!NcX4bp+Fk(Lo<VvmNq2yUz<^oh4@yQ**kirU_pn790K zI%Zy==MK#^5*&~>^WtApKZlmRH6n7`7J*O84sYTG$6(d*i#Q>inq85?`Qn-{GB-Fo zAX8zZ4bZ5V9&F6>Aflfx^!$EeGQ`cx^a$@!3)hJ8-0%R2_9bW%9DcuyOC`VcIfvjh z5_-8YZ#C9lmrwEx$=FEh4(sGI)jXFS2}Q%1;Wd&<NLrF*ZU92~!54>cPg4-K=}3s~ z?7f)Px3_8f7UnQ&B=t}MMQFCL5W>kOAI@A83-5p=hP7SNR=r1irlxrhmfSKY*$Lr8 z5n4jwQ^9E?&!Ye1xR+hiR`T7auRBnNbh!6JrMvqtQcg6Ydp4pwsUqQ#tM}j7S@!px z;O?4L_pH5>-$f~ty|RaiX#K9dJaZDR=&3+7;oJxbVR!xOIA5M+-0c#Brtl1iRjuh3 zkls@h6%pZ9$Z}tvJwimkMCVnQ!}01~fg$;Mrj^Gjn61Bj$8=QOyJ|7pqr$ud3+BFY zGncv+sjcTyAS{wQ(d#U0nd-syuB$+-pRehPC&vjXA3k=LptM6P7u;U1Uiz-}&#tNr z-|j(a>3n`0TAx-aLPK~;7LGT5ZY7#OL){_xtEDVXrL~&hTcwi>aQs-HnEdQWQZO2l ztlWyL`!vtX*W>jbzrEn_x=YD^n=NTPrn||9N&j9cZ>LI$;A$c>*>pXOi~#md_0YBB zrEK+)IX{}@_qG}%WF<I0ldcgMC!ly%${jO<k^q-Xi9YM1tJ7|AM9W-CDNLTP{$znI z^=aHtuconCu=fJozH8PCq_zU4Kn&jYq0=;bG-P~DD;bel^mGVhpxpCapSed%DH=Ye z>_C%nvhEcLIzX%GFY6`qevY%IS|Ub^bq)K^1GoLEj*LlKHRt(A=BG8Z<TFv^A`4{# zn#5J0hn~ndhUDh)RV}Rr%j&qXs*C#L1~g<^-mhyBro6~mppo{g3vS+mC%Ks?T7;jp ze$9eG@Sdv@?-*kDO+-`^t(>AZ)N1o*D|P7keZE{ImP!^vbIAC81KrDSQ-shHays*; z!c^sAeLg|i=PKH-utA&nkyzg*q)jGyEW%q7*z}h>9l-jcpn>P^0vM{2!lf+NS{O>< zU(7d-F4*S>k`nHe>2q=^HvHl(SMKIbKGZ)3Rk>Z4Zi*+EDSIg3SqD>OY~%}2#=Us_ zM{HPH5ihKfF|?M@YMoNSYx@R+@X|$%Y1m&zYPR)ZRM3#pXd6KK?ovirT}So<5;I|z zV@$UE9i&`g9X+`-G-lNS+rAE=B=k{Y$=8D?f4Ei1joM+eSkpi%`Y*Wtk8kCp-*vWT V>6)`xFEG%8pny>S8yh)-e*xcrnaBVD literal 0 HcmV?d00001 diff --git a/Documentation/NuttXBanner.html b/Documentation/NuttXBanner.html index baff6dd1bd..43f812feb6 100644 --- a/Documentation/NuttXBanner.html +++ b/Documentation/NuttXBanner.html @@ -5,32 +5,31 @@ <body background="backgd.gif"> <table width="100%"> <tr> - <td> - <table width="100%"> - <tr> - <td bgcolor="#e4e4e4"> - <big><b><i><font color="#3c34ec">NuttX RTOS</font></i></b></big> ... - <a href="http://nuttx.sourceforge.net" target="_top">Home</a> ... - <a href="freeports.html">Free Ports</a><br> - </td> - <td width="100" align="center"> - <a href="http://sourceforge.net/projects/nuttx" target="_top"> - <img src="http://sflogo.sourceforge.net/sflogo.php?group_id=189573&type=8" width="80" height="15" border="0" alt="Get NuttX at SourceForge.net. Fast, secure and Free Open Source software downloads" /> - </a> - </td> - </tr> - <tr> - <td><br></td> - <td width="100" align="center"> - <a href="http://groups.yahoo.com/group/nuttx/join" target="_top"> - <img src="http://us.i1.yimg.com/us.yimg.com/i/yg/img/i/us/ui/join.gif" - style="border: 0px;" - alt="Click to join nuttx"/> - </a> - </td> - </tr> - </table> - </td> + <td width="80" height="100" rowspan="2"> + <img src="NuttX.png" width="80"> + </td> + <td bgcolor="#e4e4e4" height="20"> + <a href="http://nuttx.sourceforge.net" target="_top">Home</a> ... + <a href="freeports.html">Free Ports</a> + </td> + <td width="100" align="center"> + <a href="http://sourceforge.net/projects/nuttx" target="_top"> + <img src="http://sflogo.sourceforge.net/sflogo.php?group_id=189573&type=8" width="80" height="15" border="0" alt="Get NuttX at SourceForge.net. Fast, secure and Free Open Source software downloads" /> + </a> + </td> </tr> + <tr> + <td align="left" valign="bottom"> + <h1><i><font color="#3c34ec">NuttX RTOS</font></i></b></h1> + </td> + <td width="100" align="center" valign="top"> + <a href="http://groups.yahoo.com/group/nuttx/join" target="_top"> + <img src="http://us.i1.yimg.com/us.yimg.com/i/yg/img/i/us/ui/join.gif" + style="border: 0px;" + alt="Click to join nuttx"/> + </a> + </td> + </tr> +</table> </body> </html> diff --git a/Documentation/index.html b/Documentation/index.html index 6e62e0d912..cdf699dff7 100644 --- a/Documentation/index.html +++ b/Documentation/index.html @@ -2,7 +2,7 @@ <head> <title>NuttX</title> </head> -<frameset rows="80,*" framespacing="0" border="0" frameborder="0"> +<frameset rows="96,*" framespacing="0" border="0" frameborder="0"> <frame name="header" scrolling="no" target="main" src="NuttXBanner.html" marginwidth="0" marginheight="0"> <frame name="main" src="NuttX.html"> <noframes> From 27fa331c400ef4d31c5076cf8c4388960f8ed274 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 7 Dec 2009 16:38:44 +0000 Subject: [PATCH 0543/1518] Other logo options git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2314 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.png | Bin 2499 -> 2493 bytes Documentation/NuttX2-a.png | Bin 0 -> 1533 bytes Documentation/NuttX2-b.png | Bin 0 -> 1559 bytes Documentation/NuttX2.png | Bin 1482 -> 1498 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100755 Documentation/NuttX2-a.png create mode 100755 Documentation/NuttX2-b.png diff --git a/Documentation/NuttX.png b/Documentation/NuttX.png index 3f8835453a250a56a7fe34bd08cf8eabaa4bdb5a..0bc9b083865c333f9dc6f1340a31954bfadaa080 100755 GIT binary patch delta 2332 zcmbVN`#;nBA14+*XqLHDu5-$UGUax<Fk>;-HP@ujqjQ)FO}RDutdHe5OghP>(A@9W zBA05;Q9G-2SVc;-HKZt=v4#0gXZ;J`_fN0)^YXg<@Or-=>ORoD8V%~~)UX*^d#0qM zafs;Q7L+>iW$I8al4!&eFN$6qH_Xgq`DzjD_c{ho&R~zwV5d>g`X+xJ-4#8XnA;Je zs>aSsso9lJ2)f&xJ9HN!s2Rh<$t&lB<)+Pa7<5HA5h&P@Ec+f{kL+Oeo?8|3=Gm@; zm&XJA-|Bz$pHxrP1Y<>~Z`SpJ3EhJSm`YsHF`N8S?vfz_g)3i;KM1~lmTY2<S8dRZ zT-lEDV8n?ps3@rJRUPw9LHTe+DE)uJ5TlC1Rh{?k&tFkNA5Qn`E8fYpNkygdi+=Op zHWHf4zh<<5?H=+`=aXoj3CRZTU`hw*xNP{IM7w5wTdm<i);Zps!yraXd}iRou+!vi zs|upML$UJmliEgAX2P+bR{O=mZ_iu4Mm;1m32G(%iME1_{Z8j>7f+mZnD)`;r!(D` zljKW_ec<=yxwSVZV{cJEWJ&FP<7gSvpWe1N*C!0LwQy4uik5Y~9oNSK?K6h<-lbud zQCp)v<J<BrQ{wkf!7NE*QROe`@{OoyJA9m3glcaap=G<BrWGQx1!?k=?+x9j>MAKT zJI%7D3U0wOcc4xyM;#-rHrlg?o7YMqi}PAR=ShG{EU7jvgw80F{Yxy@dXdk5#}WoO z)xv-F=@9_uu5IrkUbb*8E6r+|LF&EQ*g5TvJ*M?gCnEgS$Y&Q}2~;#)K*omRt!0gB zhU<rEY0^qD%CrXxM0K^XKUE9;U<3DMiT>KnVxm<E%DkK2S3C>-rm-Me-o<8ukUJus zKhni0hf2j49#Uy9fGvdB<F5OZ!zVD`nuO_0Oo}-6W6X&^JBih#YJ1o{^#>ngtZ-<r zeFs0y;c@8LgjvUn?pDarV16k*UbU-DIJb7=C~Wsa%w8NiET7({%7kV=)o&N_14Bt2 zCh|!Qb=c60fI~QRNqa?%9E<?eVQG>b{U3%K*}p4QM)gBMvJ31PtiHLzh+3zYBB=8* zyKrd3cC&7Jpc79=2gos6qo+wP9d`{>epMGG*y|U3HE=*`E>0U;bgh|ehC1D4@pFqD z{Gz%aOdZx^jjk1>|67L87dvQoTR*N8eAu@u0&!DQ2iVe10yEkZE(VY#$KZb)z~5Ga zyKa!=P+>T7#-w!QdZMRcgQ%M3yA?PQQCTA`$iar?wyVNSCtb*)iD!1+YGQjZFIl<F z6SJU!kOriDa|o+tCC_3IrzgmpgI87{V2#pg7M8><zPD}h*n!FlV|g!1OJ9@;xk#q7 zv0*uI0E~~^bynVBp%tP)>5^)eq68e+Vq36N-hk37Qh*#uwL;2*D|*<~ESo)S=zV>p z3Q}8-IRnHk6zfKJY>%V>b*k*;o%t_hwF<hhy(q)YM^@`$Xu}H~;+V~<_)f^U3ZiIa zh!aJTaXk!McxteWc_)WK64+0xwfg8bfI)1Ai;X|C-Q4PBXLGTmW{RZgFB5DA`43iC z?zsB>rUJ`Y7&mxd_>ett1*)fw8zO6VD0Y)zIr$<?Aj+~csjT>4FFmdJeC=&V$CQ=9 zCzQA8IUTC7B<Y<cZQnj|dD-2wAL-LO2e0Y*j*VnO8Dcr8Biaq(M*#Ad^)zxKnv<lg zaCrQ1Gzr6K2Af)r;Gbw*ly5Nhhra~kbK9M8wuqt{vqE|ivTUm$iqTC(+eN!8+D&*H z49^Ap^AhZFa74)Y3#X#b)jrKjIL$b*v&%6$LUuF|>&PK0hv#<$xIKL`=*=|{%qSi5 zj{Rk@7nI(qh>D{fQ4YUymFzYYs%v9aq8oXh@lLV5*nAlUQ?etH%m}eyLbn0(qhcc= ziAf>_xDsKFq9FjgqBfnK8cypBfKjczwnZj0^ewt7qMGRL7T=OD?twK<TWIjZnJ4sE za(_4l_Or-Blb^|)@O;$gWE5-lSkIKg0ACwie;Gh_8(z)P=HG;ZdX5pT9~(zLS57~I zU0I*(MPAQt->>X|tl_-5zOLWJT?(_|h*Y}T%*J|-*4d1gKxA<+rlJNKm0bueJ*mes zp5k?RmAyf`;F<yNPsLTjZeGtL|7L}T2}Q_i7d8Ej$4vxrH|r?3IP!ixBjB=?SFI_R z+G_opYx#4N-qk?2c)4>?qpgbutXYGf1C6fJM*%!;4v3rQb^1;MA$k>ep$Jb7a!5Ke z?5787Hn>XG(v+nIcJwRtA$<!R)b@j6yIYLcw&Z=^__A1>2K&c^>E#i7<S!$6|N3gb zYdVQ9If6}LP6FQZJ#<~l=WzzbDt5!3mBkDP>gJthxBS`+^gF{JuN}3IP|PrHAm|wz zmOn^Ndy)yo`+N9+X4kqPj7<B{%KC|W2Prq}-mv&pP+J=_k>J%@!KAx`rBe@**Fxt9 z8Y?UA`JB79wJzISe4Jw!(0VkKKieI3Mg8aeY>af8eu^CK*5hR1MKrY7+(T~^9}VG4 zr?8_4D%z`-J@Zg>ZN&55fUysL5OXqd-V>pCbc5BrjLmByq>T8qzH{524_QI+8oWos z7y0{LasmAdp7y~^BmjPxug9=Ym2ju7jbPsY_+B!oj^7VDaL&rk{q0mI<S*T)tx&R* zE?XD{CdO9XH~!*n6Hut^ZEReBCY>iK$g%x!80Ig}*>V*%m?^(=W3>FGetvTO-z%cU zv6=4+34ZUVXS&XQ6&!1Iv|#mZdQM1{{F?Gd65md;&q4I|bTL@WX-(#wZs>8DSfdSZ zxKnM%XIi4C!ty&xC1pEsfrkYncYca|dT@5w&jDU{8vLtDy4rO(n9aiJMYGE8lzYaD za>rOFhk~X&lSqf1^+m4*#b%}iTJRSY>Y{GC>qOoS+xb592D)VVWACHY-jLKYP$Aqm z@z2U$jk_+rPMdkz@J&s`f;bJdBV4(OkiELJxsB<;;#lv>{&7#8{nt|D&X8?IaU^0} WSFN1fi}LsoCB-2U{5{(6QP6)KKW3`{ delta 2342 zcmbW2`#;l*AIB|?S&G$My1AZpcEN~}%4TCRqM4OjVmU<=p{!2qvok9dnbU+&rrhNg znM*0e5*;g}PNn6VCTb|#oaMXzh41^P*W>x)`|*ChUyn9)ZOEhp>rjx<4v3Y8hK?)Q zjX*p1c6P)$7Vf@9C>!w&3f^r*qd8<j2&B!$G_&_FS?9o|1P|F7$oe}Fre-~HeBGL$ zC@7JGJV6a1b&%RO*$iD;sBaM1F8~E9Z-b4fA0LvI8U_TjNw`?sS3RR`wN(If4gSCX zCK^x4J{MnOaRJu0_R<r1ZHz;hBqD@j)!sed9B9RbnXeLG`TCZ({Nm&%kcAs-x9lw5 zl>?zzx5t<fSC<=_s+m+~u8t=EN9@$mjzr+x<jIYGKnp?=lr$4wzc=Ri9=(55`=vjA z4piO3CgUHAY?k!-Me>Xzb2dj;66=7S3&wOST(ADWn&Kl}&EpH3MswxAO{F28WL+HB z^+n@iVWmAnCx0m@-a7Y8(nvF7A##{eM@My5YW9aTN7PCR^P9^ASV5j_QY+HA^UZ&U zA2nY9=3;-^;)9<~Rs0bXaG-0V=e48BV`bxgW64ljTf>XqO`EfZ{2Y?|>>JZt61q&n zq{JGoyPyW^X+)c+^@-*mo=d2!GcE#~J=HvHWa+-nOLpp~YKKR__TS+!tvNZ>u=xNX zdj49-?Oe7~iUrYAg-lg=#l0KeULn79sDMTSs0I_)GmoaxD#J3f|BClJshHpNfQ^7n zO}}QqAD%D0;|UU)qz9xOAQC)voR)+ks{`gi0Xba14l%@fCL+=Fv<IP2Mn(moiwsm^ z&HXAfrb40TI3I`EwT(EVyorN;pnV%(5PTBXZ7M8gJFTbA`2QJbb1t{e1{XU|MgqoZ zq7-H+_zV1fdhO=yao!<Y!=kgQ{?(Bu$^yIy&mjqOV=qMm4_U6feRlL6HMIJ7?N-tV zv<uRsfqMScz(p2C^g%-Zafya3ui`tZ-a{foI`kIo8!$JHsrG9@zzc`aTxH98edusm zVHB&rtcD+^^qf41XRIQ2v@ZGqdiv08%yb|=XO)k4N5Qe@3g`OhxdP=)h(2^mf^sbh zUGiS%3M0B8k@vp}Hky|)kFVmeKSQZAj)@7npd$XWzrPAU#s2%<-r%Dc{w27y9vUwd z;C^ebeXGjJx^U1oLf3l3ch9#Y{?E1+RcI7_OazxK26J!OccPCB+9JR}$>O`D9u9_> z03vqCp+idxrwYj#%o+1|cMrplYGEp|0XJLO;$<ckrd26Nn(~SdiN>p!^D$YCzfiO+ z4vBQ08`(?sKOKoMsVa2i{DsCv9pisoGC;dOes<NjQSSwe&cFIgCW`1XTda)RXIwsp z8PQ#;zC{rM8O*~ltu-<N!BiRNW^C214HjT|O-wON3!{d3rSCrDdulk|_XinY2}voD z^Z8g6(n8m8JcaF03+9Px9Xcs@lMD^^zQKq4QGy>|holV2qx|Y7WS)A;$$iFAH)7Gt z?Ciz9E4Bd{zoJ;r_JlNN6TLhThg}BP4?gFtr`MU7!WSzfZy>I-^Fx(<ZB>t(@!qG5 zIzS72ODeGLv;`}o{6zUoSJ<VwRA5C}_W3lQAFEPYJUk<xUH1K!%eY1$w8kyQ`=9Bw zzV_WZ#&`?{ea@{iVvN+#Dr7sn2RXdKrtfh2T4=VkOt#Y}L+<1AZs(a5U=-1rXV5=1 zkit%usQ~>kYvKTuI=g(HYHKKI(Qqaqi_}+j54{U6(F6JT5_@$n$fj7kg9f27X|;|n zSlDo}*$rkke9MMVhbI+eq#fN()zmGRtxP3>g*}eO{8UKvd!zm<qU&sw?9^IO6=!%` zx)(kgTH51?cA0?zKTsY{fdLirvCUig?mE@`jRj0Yc>gsl%B2rRMMo;4*d(ymnAbW{ zKF4XplrP>I>^0s86-99<ltYB8^81?UBnbHXB9E4dZoi}91=wX=7Ix<-X=Va;mdrpq z(vG+WIwdvQTp@Uufb!UCN@fjPELMg|_c#|DOkCyyRxWz$qfB8rA5QZt%>0vzK}SO= zK6o<NX}oHuOEi=^5`(BVV<a8ao+fp?T55?yAz_k<)nZDf^0?nzu*k44yk1_ZCu(KW zVjKDcYs|qVWBJ9b>uNz>hn(^}XnXcd=%7X1@w-ZmYBaJWG=uGL@<D%3^-eMf0iSq< zr87cLe`%iowr|kEdqF-_X0YlWjeu4mv!g>gY;e7HfgmS?iD7Q|P30Jma(X)`$T#y( z2{(uUnLbSLR_)5Z65K%smsgv;{u|pJ@7#J;T|>QVJW!Xws)wjuEgCKGex9ZFZh&Te zZ>yrG=TW|UgJea?SX>DWCNyZ9uZIQE>f9c`*<5RdiBuwU_Yh;ii0_#5BYCClsRLb+ z9_1xrHO%n2u%=3W+5)RULh35vXEBpy$wy|BTGR!x7dbuU*0^Y7LB{0Xl{CqBS~iyR zt1#w=VN?vVDD-4QKDw}pJqOrylRa}SFFkEb^1B_>P{Z$w?$`p0H-Y&{g{o)8jqI4% zeVNy7NxCtr`0<8&{Fyd-x#a{U(-YsD+KnjWCIWl1Ih^pPAH`gYb~qR@ph1hnn;qk1 zL8;Tfqe5#~i2Tv07>~*9%%F5TrLR!fg59OiKv|}va<|h<lqY~^sor%PblP-+R=#G* zn?4ISN;28?ljnaZRk|Rkd-JK#OfQ|aild_hmvMKYQ~n2YRq>ct%VA+f=n#nNc1~S> zyw-%Egu+^fc6EhCtW@K7+~BH>dUPS;!P|7(NvNCA=*zwlQZK>%3nS_&qbOwV*NR?J zVv`#e6a|3#7aplW1$MR8o6sFUBOF;%>FtsTa(lsf^sW5fy}30iHfct7;u<;Ge$_z^ zD*m5DljbYfgZ5Xg2PfL|Qnq&%>8JjDq@_TP<%@A<pKwJ>cSo`mcW$RixojtHMszwi z`l4`Kfa1w&?JZaH!)8)0B&5sD_<5YmdZ0?uWnQ9=5$~jqzFqCfkDeZ#(``rDa(#Xf lCuiMbbKL53toc}<=?aK@Jw5GK_@tkPddMUnw;Ey?`+s+)Zjb-~ diff --git a/Documentation/NuttX2-a.png b/Documentation/NuttX2-a.png new file mode 100755 index 0000000000000000000000000000000000000000..20c2fd6e71ed034649f5c21e0facf4b724341879 GIT binary patch literal 1533 zcma)6YgAHM6bAC9U2ACx*(z5{ry4;@(#le&1mmHQ3TP#!T@202CN=YsuUL1irHz%1 zrKXhxQAmWQmJd>5rnE5)%~0%xS^3Jxl#+_WIJbZEbJkh=eCONioV~w&etfy?K*kbq zC5S?ymiYToxd@8Bht)!4|5Y2a0ReO(m*I<2K6e;K$if3G1{F2`eTf=x7a*BM@qWBS z6w2D}d!SJzS63iO%M<<qG|S$_mbTc{hiU2cC=`(CPo;#Uz8ZVGox6&HeVpJ=>vvH- z&8f3sytimVqb;5KteQ}aFY7#x55O+&A9CDJrx@>*oSbYhs5gBeuME(}-48n);~mg- zCZE&$WtlDLhj(<s=CjGZc*h&UYy{DZ5X3A)5Lk;K=w}72#pWXyqY^bNwzv9SQ&YRy zd}OXlD#X~~Jb4!dY4hrL0#!T|+2}lCp4Tx`5AEX6-h7+c{pQ{;!FX|3Xm?)u^h~mx zL~kA}Jh?tP(6@UR-0!q2X+3K)F)?%2^u^$F+W`I0{9skY4w`xVSlQN;TCE3|>1udk zNLxE<n{nv(kk+{b2bQ4Kt1wR+Yws30VJB6dDM;&lv4qg~CVQ-u`ebL_S(pdybA5s< zOsL8F0~|`lKT|v}8FWioestDT)Ow?T!1UGlWw^9m+$w^4Fbx64BXFw%dNnP?hwfC5 z160jDYZp~kxfbShK<a#qxUU$Hil8It@3ayl=8wYMPEw-~KXey5gyw8KNFfY6J2`@; z5&QjQ?5Ilga;jjdEwJ6Vii^-{5!P6+Y-2TC+J3MgffL;m7mDUoj=@}AP#_sQ^&&16 z&H3wZK&mLaiByz8XOVs;K&mWLAoK=Qg7j-UmtQsPyulG1`CKFy>abT=b(L>D7t#~7 zpBxQzk|L1;b+6H?p%_HO$VgF@5MTFDH1JQBEaQr?8c~u|9b8%|2fapmZVG#BYz{N8 z(lqt{=l8@bGYT<*)6=Kel@)O8ly`DuycJzjWs<t|mD}x^&C}C-Sm--M*-fYc5%u29 zb2x^`-wo)dSUfT|e04!-RySr(Fq@;ULH=yM<)f^uQMel$q9Y|CiVVf!Mxv8Q1-F`{ zBt8zXIXC?BH^SHs=wNMI8@NXoBo^XROJJty^0JNqilsRU%z;}7vRjZRIs$v5Gf0k1 z0a0jXCRj|<w5j_g!qd3$^!cMY-wC<$;YGXTae;S4@+G3E8lLFMuptbc2qh8wWQ$^r z#jYT8c?U<MHKdk{`G?UGXN6JViO26FI|D^c6MHF|uNZoO{)OObdYn%ZAhmv~Tbc=M z0NOkvV~yV5N-C=0ufR{nm3WZ*h-=rq&&PN=n)9d-Y<N4eRRwp)Xe1Nu4$`tJ*aM(a z0)R0eO9v^xCQA;6;n?Q98NKS2HzBm2=~n~atw`H;>SfekvhGi>q#zr6;90o!>P&jZ z_!ej{u)$j9!HZ4Ve4JhRvNn=V&>z{#VgNr|%iMW`<Ab-9{Q8LnbfP|u1l3lEc=j7r zFh|8x_FlP$S&7%jI!`WEC2+|JfMoh>yPV%^$evm*Datwq7UKCHz`o(01K|?fdh?yS z{RgJHNnN}h05-VNn2yZ*Y~Ho*{)#om;E>7?G=r%B+_slT8PDrr=Pfps6GD~3Mr`=x z?zzIUxpJ2rp*ZG(tH6c#XiM1W+`W!N=1Vv#8A~Nw0*ueoPKL|KaT8GSfaG(jIix|@ zh;tB?y-BB7d~9^Yc)4t2`fLG~c7$rQ>)N*c2<j=CPSf3XD}cZk0M%okN+T%Xig>!B zrYNok##Y{dc`5E%g(EPk5cLNRTvT7UB|L|1lS9eK0|tOIN`&;7$9O-qideTfx79>j zUVypo=63ee>)U-Fx@vpfj1F4he%N(cy;eOV#$dv(J&rnczOiK|+UDWRWo^`&=I2f` z*}3`@f972oE6z>aQg!WC?wO_U7W~KC{*MWU&00$@WLns=aJ`5(qx@-sRHZK;{ucmg Bw~+t< literal 0 HcmV?d00001 diff --git a/Documentation/NuttX2-b.png b/Documentation/NuttX2-b.png new file mode 100755 index 0000000000000000000000000000000000000000..5bdab5c29de3f300e5178a7245cc4f13d5162766 GIT binary patch literal 1559 zcmah}SyWS36umDY3GzUw%4@)3#jz@hOrpqONQwfYhyi6(V?aQ{U<JjYKzJfj9EwHM zB0>;D3?PsI4;4@np;(H_ps7iSfvSK=lvOph&|n{b{p-5x+`aa`d!2Re`Pe@M2KZQ* z*_r_WEc|@EIXDVu%9M=XXP(3|aDY-cK5S6)c)=T-ka_+--r&p35w?m8aAnp(->?(_ z;JGsefudq6E>cqcwr!%Q%qdnj*8Up?z6XGG+0UC5d{nK!<{vQNHE&bY8NVC8*|V0e z%aS=Giax~(kFI6jY#!ni-$(eO+4<>R`p6b@!Ugq{!!K4{)?>~4sQ0Y;R(m!J01fhD zgM2_+417Vp6<7v*O~D+n%mmB=a|i+)ATNR-8_+I1vTmlOWwfTBm_KDq{M-i#+q|AF zs4jB3HofaEX7_ovooAr<eiiF>a1g_)d5$hGBBGd(8_+l|k))=#jy=x3op^!oS8u9v zHq8sV63+;FnUa}iJU;ziJoMyu+s03~h6?82)ai7Yk$--5PogXI)yaGh9~INihWoec z$M}LYw02j>Gm`*q_N~qvwYvu*<u(-uv2UKQ4o$zi6XRyvNRoFHPX<@VT=Ud8VrH0! z<*1WIRhUDb$>g|uTWi@8js3VI4e9Rx$J1TWRCZls|8X@H9*&zVS@?%4(98fQdeN_x zt4<s_yZ2kkbNd!ZD$FeSJWi|4;mAs}ah8^HnqUPF%Sz8e<q;EahBs7`%GV!u1yb&! zDL)%4`1raMXV7`qa>i1O`*meogMf7KwS_2w=||+TYEMO`;CwoV(^OiGzn?ZLKrZR6 zhv}*!;|+^kl4p^Nxj;pCB@Zc2Z?4pAe<A2X+A|=i9eulqGR|Ydcn|%sIfaH4C*73l z?DYi?4fXhso^JES+m7TMYS1kPFFZHqWVz;%I>~o1(n!&Bv$mn3A$x?*mwOr_G}Nu~ zP={MaHstEY4ee29Tq1WTv6fGrB3i*~bT<d1nGwX8Mq!bWO~@sQ8KW^wJ~5_Vc-^SL zIWwZCH^V^g=CO88og!Po(@nxEBZu0fMY{~JB^QC$q-Pzli{6r4y8Q#z{SfJnXU@Xs zS_iLI*%v}u`Y4xagL5~yQe}S)+D#wjF<0Tdg=DS2+$Y#Uzd8A?;3<fy8#HP^y)B{4 zmk_kE`j$(?BX44>T7K5f@rs2@u*1Ki0sY6riI{C&`NsYZ^e5mJKJjv0jFcNsR4%G3 zXZ|KfWxy@$V7$gD)S(sPTReXn8>yy_As5N{RZAz4hP8twe9>}BLakA$EK6V=15JB~ z9Voccg^KjzBo+*QY!GV7Gs+`+j$02*-n$cS2*QLGg3!Qz)Gz{x6FBPgCn&}~J*Qr1 zE#Nbb+P*?gx}=4CP>a>>VGbRI`5&@wLAqB`ohmlTQ9JwqUJR=t*Y%-M6OFRL;Hc`F zj&}4w4XLU4Naw~hbH!Pt!Q^0k-HK8VHMOfXdF`P(Ze{bn@Yedo*%OQj_wXLXt59ys z&tqt6lH{qMiArp+mz(U#n5#vVU~|);$k2SFW+k%qm`^GLzC>_SXk4Md0km=aYb|=< z{#=flDq<axa?L<_*u=`Ig*!s{aK-el$W>7dk;f{-94zp~AN?pTy-VuPwErtE%G>pQ zMYKE^U>H|YSSuqPb5dmelAHRB)q%bN^!;+tmypSp(n^w}aCEF!RB;h3N|Y<{4bjN$ zC^b-y_U^jp{C8P2%RDYdu6g%b%-JS^=!tT&p}-w!7c78zUOq4;D=oqsNJ&gKRk{Mu zxfM!-<|=}iw4G#7A360hOa<2FqK|8IYFr|oLq6Shl#!siI>|g;^qvox6YzML&>Qk- z2ks-C6U8yXyar*{h6lO0n?20I_HJ{iZA+YLYhi{S;t7{LNYk{Yj)-@bB$ZrM5(RdY zE#GyWi}R@9mTlUaok-tp3D%7N(`~1+ZFD9jQ*-b5bK-@M7xJD~i{|G*3e(R2B;fxC b<@Lf$m$KNk=i~Of;HeG#HU)Usu({~Jp-Qw0 literal 0 HcmV?d00001 diff --git a/Documentation/NuttX2.png b/Documentation/NuttX2.png index 80efa0e6486de902a6500ff581e628ebcad2b553..6ed3e5a5755f0bb93088e05c8a6f4411a5f0b75b 100755 GIT binary patch delta 1357 zcmV-T1+x0e3)%~iVN?(wG*Jp`qyPW~T1iAfRCwC$ol8#KKomvo5|fr9F=NCgSW))C zLRdsL#3nq-3<-%@$b?o9ano&gecrwAT!}$IO4su{b=qaSyXIwCCPGG~a0rpQAb$Xm z5C9|qNC*HD+1zjla_9H^kN36T-_5Tx017m!XR~_Nbo^WE+HTxuSnEa||E>n%xte-` zIJfvz+@-}Sfap}qo|;<MS5yy1#IZ%LCCwsaPZJd1!c=QH)t`s^+qcjEeqLS<J!&hX z;ZtnX$B&JLzQT9vcP&yz7AX$zNq-2V))H}Cr3ZLN_<GH%&Ze-lpACRp)vjp4kDu_h zL_N0LimPA>RkKGJccEea*4Z<TwN<d?bwHPuwA!SKGTuVNyeCv-`-MFR#DaOoSvU~B z6Dqp>La&0cV2<$>4v6Q3Qm|iW17g7(<0>2&zX_#czwidcg8q}daDcoflz)=_Bn*fJ zy(f2}VLlT|&3-ZljBdfTCPtZ5(I<5{0I^^m`$-uP3wloGLc{bYl&byY42T8&PGt%W z)1FYu_LDRq7W7)k6&j{Hq15dsYd|dMVZSf{V!=LNgcQww(gwtW9+S0XZrI4I)wK0X zBh~FEZ$M=WV!wa@V!_M44u9CieijDAg4&a_C^am*1=oIm?wCZjpN#>rpl*s<!?Ie? z(SB6`ynlKM1921!t~I&01y!tjH9X7X;~y;8)`ENNcj?67Ef@=?KIaSr;MRs^UJ<+4 z&(eU|EvUBQ4h0|<JYSQO{cH`G)q;xG8^ZyJ1y9%HW<P5KX0xE`-G7#l0Aj)aYjU)o zy#cdWQ2AbSSOBr$znWa_m%@PV7F2)ICNzLqELgiHrQPS#?3NkXf?4e+0U#FiwO=X& zx>?ZWDQgJ;v7o2@(izajf=-_?kpU13`q?j~0i#$@b?=kZ0A{e@-Z85JU9!%+kqx`{ zwViG|$^qzX!E48=Xn(=91{~F}TCeG1K}i4|Em&)eY8Fgwz}^k3{aOwdlm*bqg0;t{ zWWn?X?A5SSud(L~hMX)Y4Ip<%^et#<z-SF?Wj_ZC$^*Fd9w-(Bz*G%uZ9nyiWdUGK z3%Y&PZ*&V<uYyNEH`mL4$`-T%5DRKr(Ed8$C=2$spQ;6|0Dn|p5nuYP_D&W|aVMm= z1^3#|bz-FgP_<cG_w;bFV48cuqgTY&g6?WTO90iHwRcA&2MeZp8fKIQYXR<PL0bS- znsx1dZt50H_dH;43)TkP?GZF<0Ha&5*KU@3c4h}a0}HkSI>K(804Q$3-h25*wP4!M zgtRtBYmi+mn12GmXcnwxzZ!LowqWW{#kDfV$dxC%Wn#gu=YHxIO#ivy+Qx`*-Hjd7 zv0&Ggud)UCW`v5yh;-LM#e(SoY-PbckJ{I~?x$)&3@EyKbg3yNfVC|++J4Fw#DG{3 z11eZB+RFEv{8X|a1~jwa-TeAXsixEbwzl8^`^lXPVt+u+1u>wb1xMLW&4L)v*n(dn zj93!@HZap@`|ZsL3j$ze3r4d{bPEDt2SX|C<=fkW09eszQO_GATMz&nn@Vvf^PZ2D z0bnJwMPD^<wBP{%4J@c=zmH%*B@3!tGmLmH2!Pwnb*S)vSS`G+%?-G1YRoiE)8XO% zcABQ??MqanBExq#zs{d8t2{3+hvTASL_Gj_VWZYS%(TejEjZyKCc+q7*8_lO4!-ia zoWf+{EqFsCzPlx*2I_aG7(Hv5mt}!4GAz6W6Opzg9{`XL03-lN$gcba$!CKyZeCm= P00000NkvXXu0mjfDTjj` delta 1346 zcmV-I1-<&(3(5<SVO0(}A1KhDx&QzLN=ZaPRCwC$ojY#ZKomv8fg1w>+^NzgyfrVx zTk|GZr88i_U7SjYAyAe$n$NrUo!ccYG>`AhA%~<i%et<=2$_|_As_%q0FV%qmjxt$ zWb?ow$ell5zrVKr|FC>404UI?k<A)e)9G)$YkP2?VZ9r5`nwv0*J>IC;?m<=akmzy z0HRYZH8u6Fuc#i3h+~UfOPWPUO%oJPVXC!U>d*7>>GS))-`4lX5w(@s@F_Oxyjkkm zs%KP<WoD7e@cvX!)LJ5rtBh#WsafiO<~Sd}g9&HXP(~N0XpWi&Myn<2vE@-*15>D) zFv7SC4fD57%{aDJ!It*{T~^X+lPb!13k~z0P?7By_8Jfi<{4+<K=@9m==KY}3dVvt z##cBXo)b#JexVJB1#^t6aA5o<l#2br8xRZnPx8V6@|sXe_LDFm7WAIng@*ZmOei(` z$rv!Y1-F_QWl}|-)ZqZcf_dyGWk4+GIhhL$)1OeP_LDOp7WBK6DKt!bLMhu%(tudd zYav%?nC^s9x1X#5v7m?j!T^W`$NUgdH2X;#5DR)t){?nlGqY9G-XD!rx1YQLl`V+< z0s@EyZ~Hl57yDTl5DRKg&Z5+Ru<RDx`u}UkB(nW%42T7FQ`8!k)q;-pYXac$^)(E{ zQ7pLC<k1#XvF_dQtS>Krv0z^d*4XdXiNPrt3#Pv23<KcahGkw6yV%dtfY~jmw&D&2 zAQrq{lau{y4Vcw}iuW7C0f+@J*W_kDYXfGppz70>kN{%AHrs+J>_BRNzf)2M3o1Wr z4htX_{9lu+{Zbgv-Gb_G+Jpu$iv?TPq_q2dn%y!ZTQIBrBml&MzV=IHKsO7zyk#u` zAQtqrUpfQ2SkUP^CNcnGK|lMYG+-19s_uP~8o&$|tR1r|&?W24o7u2?KilcCqa1+F z7QA<?iWW?3z*!Az^_ebz7L)|g(SohUsAj>`1{~e6)}Q5IL0JHuEZBN%N)}9Sz)=mm z^cgijFyv%GX#jaTqHjS<14e6DFZ(%IP#(a&&p@#t0H$hKZ~LiFEDHczTF~vMexqB^ zdKEnTy}42LQ?{TDfLKt|g7)_TXIXHx{ZuVz1)%zh_|{*wcd}rAiYFnXEm&(m*NK%1 zK-FgL-P6Oxf@z)w&t4JV3%aWXEdf+(R_%^P4i-%HHq0ywwgTMIg0=vvH0$2|+|(_Y z?tQ?~7Hkc++bd|+07kdqsNF1Uc4h}a0}J*7I>K(804Q$3(R=wuwP4!sg!DE>Z;)Lq zm;%6P7Hnm|7In>kwqWXS#q~1A%#|m*Wn#gh*M902O#i*$*2ai%-;Ev9vEa~^ud)UC zWrT*ti1gG!#e(So>}A24SM6Kg_fxeX1{7UAy3~{sz}6O=Z9ioTVn8g20TnD5ZROi4 zvn_}L%`A9WK9+O9BiED~z}_Z`Zodc?#DH82Vn9a=&bFU_%8D2R8e34|S`Yv`m`UZ@ zFM<UDu(1WBSthy#0dRn!l=ku+Z9xERXtb!;jgc(~fSpaHxRd$F*UA8}k=dfJn)g_6 zWGw*L(O8Q1!+?SoRJmsu@mdf7cbIEW!&L1z8q5c9t832l@#*tYqawq1SU#5Tw^iQO z_s7#IcSb!$0C;1gR8PCnjK?WhXb}@(jJ@jtz$*t|`C3k4GI0vt(TJZ;$!ehfbcr#t zmStU62qV+NDVP8t0YE|kkN_Yd07w9k5R;b$9T%$d57Nws*2RZe-v9sr07*qoM6N<$ Ef{6TvfdBvi From 09cfa68870e84be71a2f102253784e5363e48f38 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 7 Dec 2009 19:34:31 +0000 Subject: [PATCH 0544/1518] Add more links git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2315 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttXBanner.html | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Documentation/NuttXBanner.html b/Documentation/NuttXBanner.html index 43f812feb6..f9f7b26126 100644 --- a/Documentation/NuttXBanner.html +++ b/Documentation/NuttXBanner.html @@ -10,6 +10,9 @@ </td> <td bgcolor="#e4e4e4" height="20"> <a href="http://nuttx.sourceforge.net" target="_top">Home</a> ... + <a href="http://sourceforge.net/projects/nuttx/develop" target="_top">Project</a> ... + <a href="http://tech.groups.yahoo.com/group/nuttx/" target="_top">Forum</a> ... + <a href="http://sourceforge.net/projects/nuttx/files/" target="_top">Downloads</a> ... <a href="freeports.html">Free Ports</a> </td> <td width="100" align="center"> From 2aaa58664f7c985cdbcd0bfd68ecebc212de5b02 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 8 Dec 2009 15:37:46 +0000 Subject: [PATCH 0545/1518] Big logo git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2316 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.png | Bin 2493 -> 4915 bytes Documentation/NuttX320.png | Bin 0 -> 4123 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100755 Documentation/NuttX320.png diff --git a/Documentation/NuttX.png b/Documentation/NuttX.png index 0bc9b083865c333f9dc6f1340a31954bfadaa080..4a9b41520f3d38b2d788dba8583be17514950310 100755 GIT binary patch delta 4863 zcmaiYc{tQv*#8#|!;pClV=u~Xh9oIv8?+%p%utqW*`=r~GmJr=ETfVo%&6#L)YwI~ z8QIAcWeX#+%MxR1!f(2+_jkR2zUROD^Eu}}=f1CV-Jf%xCRmjU(H#dCJt|Zd$5{pd zv8s#arVjVUR`a8Xa_uplEry)jaTmXx%Nng6ou^NJM?>>XI*ve<d9J?<yOyRo^4-L% z9FqJ#6sHtB^R~yK%>L1(K(YA4=Jbw7@<$KTMYobPPm&*n23qj&;Lnr@(-PVjl}=4Z ztxUdVH4Xln3AW*6=TG2r77G?9m*3cx_(z2JMq){OcXq4>Lck7w@1mEIZ!wPZ3k^!; z-$Td41KB+WfaiJF1$$LW|ML=icSv(hyL3vyULwC3Spm!kcEAORw~nO_Tm1(s24;Du zM%cr8Hw_X@A7|$^9_}6zl{CGk;VFayDcogmP6$*?lZ?|J^5cSA10zXzhKJ&k_^J4i zetDOTXB<n&c#6_omB2^XI|=cGC6W{nib@rfh`q*y+(AZX*?|gq8LDgz3)BCAEfJ%? z)?KzZLC9ok+8(L_#3b4LCFK8aqF2rY_Ycz^dJ=9;n@2_iCg8YY<?`nNRaDFRG@F-l zF~!0Qu;`o<uMIuLA9UoAP{!78!6Rc9%>JJB-_7g~GcfhCwTHce3TyE@Ld{mW-)6?c zzeZ=J-6+rs614yyn#yn6o4~w}((_XY<ZEu91JPy8>9EEbScyE4Xx)6gp;;S;m9R0v z(CdC?NKKAX<DfT$Y#W{0B#jKy^*cqT6$4>Lx=;Zi&s|=d&evQj^ht%obXKP_DO%Sj zTGLuC&Ac9@C5$2A@pCSFuSKDDs<^sl?GJg9bB~D@*&WWn<x+vKK5ioo%fvO$=Jb%^ zal9x{IUk4n6T$m&vh$eX4h~v8cZlw=MCp<^x2!7NY;DC2T%*a3FIGAJh|EC+nS*4n z?9GdAXY=JEV6s%<Qw`v&<1M=*`;EW*Msv1Ox8s=^g|vK^yYlod26=wH$VXUCYMJ&G z5d?N9I#AQ0q2d_s={Xg%fRT3@gEJzbYkTHRpQCjOb9T3giF%T_PXF4bFs;;U6%iNy z5d^I#WE@@iV#Wttu9lUw0j{k?-bL&k^+EO_+yREX;Ph?Io~(}HSB7=Eu!tCSnlCne z5>8`UPs?y5dihUosUqUd)!XCFr%$);6i`Ng=o9+C*}J`33JW}&Y->U}{bt^c^j_Qb z^t(H9!HQmAK-v+wrnc>M?piI3G)+MJp_ypTnpVE1dvEKzei?y@hGj;YV~?+hTZPH3 zUzu@<Z|bP8AWvMOUAYfEMZ%8|+{X={9XpfxX4LhhPlmz1*;K=f&qfK=UN3Oh@VZFn zRgJ;inb2|h+fC5dNhbmqY?zNEri*zf4uL;Sj6c=mr3q~~$JZ&H7IQcLLEjD!noPYh z+Iq(EoDBKe?OVd_VXr~HuRe`Lgv{t<rDD7`JFWOW!00}nEk5CuS2_qf?q<;5j!$o& zH{gAEs>&705DVYs4{F+P<z&<Q@Bpz}KB3rRT=uXIp7CZ^gL8<~e{x7qN+GDd<1Vmz zpf4HJM4)=%7{$d31g5;^(I6Mw!RKAGdv!=iWh^6kSFPw?fR>x?9$#$sp$;2218+*w zCdfpUr^?gx<B!$NYO)JBe=LOl9xKq<v8?)UrlrrY&}sf^Sa}3eO(xnE%}^(lt?q1% z$o3yxGqdAapyS)B%>~Ty1DX(nI0l4+e5zW+%fKar)Qgl1b>6+m`*PkQo=c9!G0Zp~ zUN_fIF9Ow`rkB*i2BjNWBZ7^;Lk1uMq%3%#B+8Kmxq0AS0k%G8S1r~<(U(?+K*y~) zMY)<Qh?&>k5f_)9X8!zyUp0B_yFa9hSb3F%&(6*biIh5O7Jnw;8K|m~ITweWm7Ip) zmS{y}>!w}O+ixGn3HX5kh_h*SuFiVrVZo_Zf9}HgYb*0-VqYWJ(;`_j3w-CFGAU2o zPo%i*FaO<R3||a=bS$`@0x8KE+r2HtsjnqL0cXsyoIYmS!0yGFDTN2ebMDAhU#@gF zB!r~kB<qC3>l)Kn!{&P5V^P2et_R<bk1*P?bTVC5f;h6I!AhaSQ#k(a#pmKI7{7@o zWK-B#6%*>Qa(+YduK%YI8z~^)nP|Z<=*AyU-6inZIzpUR$1NenKEmA6qm{W!;N?PM zs8E$0U6INx_>+&=W}cg$k9b!z7e@mJE%IH_wvL=%{NzkMuWI*GIP&!C`o<9Wlh4@Z z2wH!c;tP;^tRM-YR<#=qV)V!ycRn`z801|`qH?1$`%*z3hI{$7v{Cad5MrA{*yaJe zSr7h=jJPIeyDZIvZ6<p3Ouo+eVSSF^E$MR@1}6T7UrUqdp^ha>82fX9WCkUHNZBO- zw*Q~Pi6Q{_Q2aJDtcII74aiuCZP}_*ey5Khy+pX^2^T%~7Y(pIyW(^m9|@&m*OWJZ zws3m77Ms?Vqk&A&c!=%URi~fzPdmQ1>?{N@^Qg{JT-ZflEjFy~a5>T8=ko$>`my7{ z{L4iY@|-QaI@tDh)%AiAZMl`sKHS$ja>fO3m_9gxmwTuN)7{b4fz3Kn2Ce7Ev%Z4b z8D2#gV7&eQ)SH;uVLqPch^}6ImAzkJ%Z^R`xOS<VXj|8bsM*J-2{I7&P3Zvb9MRN7 zdJn!4@pg5RmiT+4+|8loAOT95Ps>65R}o8nL`gU>geKbkYkR77i0cXG7x>Qiu`i3V zCo&23FXIXv=xjye0(`}_aOR9#O!3^v1eyq4TXn)kpH&<}w@R)Ec}B1}3eM*J57gTy z1w{4G9VH+)+;*Ne>!%PZ6%;*aKh-&=9ehsxvG13l?m$|>Rh^ZX^<ywdbKal3Q!Dcz zf((qk=K=e$x)z?Nfom%pe>930Z=DnvL9hRbo^;}DB-(oNOpO~aS!~q3pWQw4qXAih ze4CpJT7Gz#H6vKq!EZFbf(du29C(01mp8M$ja{Ms2&U%-y~t<cX(jm-Ylf##g*V!f z#~v=;i!D<eGLIY3aPPt27)@6u<X%`;hnx&?cs`mg!8LGPD_39R%4#Ps%K8NR2}o8p zvx{{bQm7&m-Gi@5)v#BCgc$2X{g2Rx>)~fp-fK)e1?@8p4edq-)Csu{*27CdFbe8k z^xY3nL6m*T3G8Ksp_|ft-08{imjG++!;wi!O^_)CczDzJ9n?R;FXdk_>1v&F6=<d@ z7YV_gT+X$qC5eCqs*{u26R4Ov<!v;vp^hxf3V_kCSVOcLZ@<`|)7)UCM{>(U>G-1w zd^#369uc$DJL+&*h=W00fNLTB0LJTm#moC_rLcKB=thk!HxnzmH>!>s4Hkd~e^s7f z>BifNQrl;r?H{myhyX5JF$wwR*yno?M?d!HThpI}h^HWXUH)Lsc!%fm+N%HkAM>}B zU;Zr04XVgAX#Vy6RsZVwpUvY`0~LO2`U6sH&CXO(m?CZ(b;5$ju);-$BmqNdBNwpY zFEaU8R3%HbG`AFb&aG|~&4;o3=Icym?c%7Lxf8?t%A!bfG7nl6LMXrx&FjZ-1HqB0 zj^UN1>F1818v9;#Lpp~2G8fB*p^*WmTAR1MjVT6tl=NX3LUvsQkQz*DWC#GNUU3Xf zh?tlMc7<D~G&!eh$u_Vu_<H`SP1F=!%2oy3RIYG=*n28;yy+P+@5AX@k`+8qz=-Ux zmtqBt^f3L>elb!6gB;O{#_0h)2MSf;Uctsui+W3Z8V^CMt-}D>3fkjks>-5#U5jC* zDpe_EH6m|H8rcKhakeTDg9^9r*bt>It!`x-u9#5OV=GP6;z1K5)UcK;?^3rz@H;{z z<=Er@1LmLmUI&_J9Tqc@RuCV>BUXk>ul({ety`}Fx#QkJ!<ukQ6`*7j7VI+~!3>aX zjZi>jJ<j)}EmqsIVEy<qW);X?6FfNj>h0I&&362bFt65A?SDF0ux>nJx=MsBK}a4^ zHT7#ginzy_(Es))`a}J0@#v_w_`#t+sU*0U2<a&B%nbb_dl}!38vVt48CAY|=p;+m zWpO172fE)nFV*S;{e2ycVOXCwCbg~Jo$7jzHKcg5X?5u*&*m=GfbP@gg<2!Q7WYz; zi$L<}`(V=wTOXg6_oY7)1-6>16>Qko_|PKLn$#y>Bp&wQecDTQHEim049RN=p!;o| z2U>*)(v7}l4i4}@DVyUmoclqh+DuP=@=Xhz5~QKVt^Z^?VnHHW9zs@wdwCmEk^gJ7 zEDf;EuIs*m=bgc|>aq=FOj?j#W7t;Izp13?`JDh6cmM<*<{P?rIEWVVLpv;q`hsU` z9ACC7fOt8A9(^2i6K#c*68ct?5d%JV^y~EUJz%#|L7QW-y$lc&6LIaI@I}`IohEM? zHsE%?PQ9lV7<I#%(*zjWkj+XrWf~FFcEf{a_lBTZivu#u^&_eKtHb-t8I-rw3a+oF zS_K=<)qRx!h$C~*$wHG;$bE{ARfG>Kg2-0z*&t&|;`brEz3=1gbsh+%C-HnDzeH>$ znxV<5sAaA{zKeTKfj1Ym%>>cBdB{%itsZO{^6g?w){%Vuru3c(d@sMrBz$WOi$G?7 zkSO<NPV`66KL17a;ej<nDQtJ+FYvEt8R>W4FzZ3>01?V~q*w-mAQ9;GZfw50sUm=w zzw~yKYW%?NjnYeyc7P7Nu}_r~jt3<y;<v9}!CkA^<r9I59k4~%9FJm8B!i|h8AzTe zC)7?qw$jBmPe;M;pohwiWwEr>igUTxi8JF(m82E8xW5<*>=#RXo?^c8*lI9#q=x+L z_dSo6p0yuQ3*z52&FnC?Z!zWSgeNgtGOF-u2*HU(DRWO_9i|mlNtYnhX1%lh!M&C^ z6)%Wl2qe<GW$F9RwW($axAD9Te}vjfc&i4uq~abPZN^nR*U^EM(bUPi{_I~iLP@rn z$V*-jp%}$nDE`f7L#1uIZ<R%`4k*eMzD36(56O+;OZ6}R8)!PcMu76>nGYX0^<CAA zd*xP!mr823WzG0wJ){w8gRf6%UBn&7xDe}h$L@QD#kk2WbH1JNE+?M=Hv5KpxGK8p zJAZ$I+hujRo0h<juH%WBp!;J3Kia-kqHP;KA8S;&6JT1vx}95M!VkGrFZWP@5RB~V z#Rh-!Dz9cHQTOCEAy_{QPZtFB3O?&?3_tCR#*{k*JL7oWJN)z!+js}u7pOsvf+(lr z5_EP5uiWN1vs*bBjQ%b0u}tw!r7N*!7w!A1(vx;620xZCz$-&5sk49D=J0AF^gN>5 zSI|QjQgCsOs41g2u3pq7A(D4-E_*cnynl5B@`AcvP5mLET3#a1rR4%(%x?P7$mc@C zj;D72f>hDExpm-jaR4rGx&wRm=VlIO-Rk(TEy;7HTjrVlrCXtaa*?OHl!N8BZN)Uf z&oIaS`^W0T_l-Y`;swU}bg%19AmAhVfZ1Wr(;&{qWg$Nw)2iP?qRKZSrEJohK7P<D zxW)o138DKx5RPuobFljVW$>?StWWG_Md{q~AA7pn*mJ?($CUCLXO80e(`m1Lv^dFS zkJZIs-WD=Rgmy&fMbGY5-P_#Ybz~8rW_gHF8eHhUKE~RE)47;(OfrF&Jx9~A>aUX< zy8^V)T@x|F*UYw#&{`94g}~3d@|E~?-}L!ggRLOwy9T}o5lLBl?NKjItuN>VuDlx% zGt%YU7j(-9Q9-!%KnWAeP8hfKn+ueQI!NNm1fcNunV#>OsEE+4ZPpI{JxVfWix-6x zK&6>B9;dtHrDg6!=gCrYfY=(KL(9P+WpvA^Y++2;+Oj&PMgMVe*Br^L_L%booza8} z`Bj&gL0fw7YwGt!pPl=D)e@-O-<j(ZDY4p1BsJsi2t}$ra3>@6uK;Iw*rMdCqugd$ zv!$Mgs7D~&@zD4s;iCOZH%0hcg$tAsX#)O-zqvsw2ypk6J1@C9uW_>Xh@L>N<q3)G zF^rM7l=Q+hrQBcxQ#kE{=<HKbd(FK4?ocR3idZA4USzrUxob9!_hm5K#PY$?@X=B? zfi_$hVz;<;eKh&1NObTpAAdzkPln|0@{Qc&e+4^Bt#1m@L65x)lZF*#M%{yra|Mbp zqfE2ydOy2}G+~h+UOZEkx(ew!9`BrZ&6B7yD9v(oTwPg5?AcC2{(-3*o_DwFL;1Zv z-aywGP_5Ktqp{+ZUu^(wutYTXw?x5VUHu*q(`5dFX%GD7EyUaKEXWdsj6mcNs0Ld+ zw%PQ*zl6~L5RvzgDQrOyiI*V&z9`i$(b5`a+;oNZ3fMY?dI7$+b%k%ffFaIxY@;X# l9CP0J$o(!7GU9yS=lPk09-Gf+k^%0xXmQ#64ayz={{U^3Kehk> delta 2422 zcmbVN`CF1{7uJ;2R}D#ADp#CL)JZItrbQ7X#T9XlEVXN9Tq+kTw-D%!aU8{PDwkXW zHTOL=mkMVrhRQ~%G|O-x)GRF<6jJfShWY-2@A{sf?(5w5{hV`tIOlZR-Zw0YrD+-L z)^QwJf2yXYa|G}06_z>mY5GV39B;;#E=iuBFuh#J4A8^5>~jkj&Z0snkkbfoV@r^M z;i{2i{OxE-O;gvU%)IKyIKv$WIt>@2$vLB=>8t0%m6k132zW(26)M`4tpprmkL_ai zr>#l(3vAEfpC*HY-WY!l5^87CbQ2_}%j*YdDZRso7-~GpaYt4KZ`l-vKv%6LAEv!} znr>l@(QGt~S>1{7rYA`+XsD>(H3RD{VJxT$%Ksl2Va6$5GkDwa>?Mut&+T1%$v>4P zRAs8V7`X6dGo_{Kb56(S-VuLo0fFL^l5T>fWpvWqR!rX#C|9j-Yc<}_P2<nI4kM-b zrzZY%XI=h|nlQ>=2xcMcT>H4jED7~tZBQ!y@~ri9>;obLr&TtX>LkiJ=$_`Zbn>k0 zjK97hn}J<9r(9m54SZdhUw?fn;U@WAuG}RciIOw(;Y~+NL&{KlD=$N(Xx%W{b$ue# zC1+&c9SU*<u|4)9rk%AXBY7{GmMd#2ss15bxfvVhj7hSJ*6eS`weED*wTH#D!Y#fD zxMBE2TO)(wtXtX4;az)*1?u(kwUP2#v%PzHg>8vMX(6rcfDj<#%W5r)!87W_pt3#d z{qU#1pm0OnTJfLzjc~w$o*jQhzi8#{skW+PglYHdqvrKH_gXf9T`<ziv5y|&GO%Rk z8W9zVaZogAnQk1VWXY?g2+KY&6w%Yp{!l9pgbdwNqz37?Nb&Y%2<u+zK<OO#v(BPq z#g<KDfLK_zV62B;1y)EeJRnn^1KV&3Cp`D7lctbgn#I`+WQH{1ef-Jay70AxS{KM& z?fdWJ?a_9=`wxGZ$Dr*JQs&$)V(sDM;erZkvSv@acz*rHG03-z@%zwrQ7me^CIg)N z(6Cc12#q9kS}27&+K`dw!AH<`WgVP&nlc*DhGfZh4Za&~V*jF69XkkyDK4;QQO4FP zBVvPE0V6NO+oJ7EJFI%Cq3(PG10dgQoth=Tbiy-K{bhZuXkTD>QRtA|TADSn<atZj z0(M~)$@5EG%#wB>L>toQU{@!~{<{)pEOpiIb$C=Qdbi&;8dk1r0Bq}^5pp_GE(Q~2 z$DzL-!rWGadTtVwU@-|kYf&+FJ=MpwQBq3@*bbbGuD&I|mXC@m=+J~%3O$ICsb_ZI zY-W2iF4=o5;B&#Dh(@?_YXq}(wa{i5Z6qq3hgNf7kS6&I6Gh;a-rccu{7^N=T-lG% zGnQNiJ!CU^sHl7>4M>i$J*#ZA(Th+;sj^z8Dg_kS=5%ehvJs(Iq6%_lwJIqSs;a@Z zMKO2O)bILO4XCvde+EceEH#Yl+!>Py)N8U=cC(%<>Qr=bM@f#CzoO3D)R7-K!nK;y z2$)jvR7A<x2sbuS!Sgn4<!eE57TjHjX@o&ao&9^SAtY=oRBHZ_?d8>=I9q@kw^DtY z{UXJ2Sa5%Bwc9iBXAMZs;-tyj;s@-ZD_{d<(iDDcmufa~dxX!UM3P)*i)zk)`l(r^ z=j(2}xn-;lKTdp;o!_YmIVbO4)(;qvR#o0P`<^<pd-$qRz{J>PFh{DS8Axc~V#WaC zr;RLPsvY;7y2|1GucKKUMKRgZ8iIMOb5XfTKS+83Bo}nJqn%(Sx2%e(CGg7aqF8z_ z-p)A=t136;O*pgw2r5i*K|^5?=P!I8msa<rFy%D;<nA7~xM;<(P?Q@NuTElh275hu zJnY9a5zVR{@k{t&nAR`v=ENpZLexoDiiln#k%o@;Wri{5>3^xF7sXN}BFlEg5a|&% z4DdEUd{}BGCNKzuU{5@xNiqVUR<&mGGD(!KU<ld4cSlS*-Popw6WdJ1+I&gBxEIni zW1}M=F-{sWl|j%%$afMOUBP9>l+VKfce4chM@E*3H2N!(>o0<dUZZRI`hs#WtnWD9 z;gNaFGxh8c)ar(?AAUWr<Dj}L{1*51^$p`5-g1;9SEA9=ZZ*+&tln|53?xd!k(^uL zxZ*-&#VI4E`82=BxAL`}2f79D`%qdV?&bGA3~Etn7+|!bZb>)De9}UcR9>HWldBxW z(C9ze`_@_V$ZZa<czeEUHYy7BN>&~yX>#(=fwbrd^1<;9>NtQw&jU#d{H_2Y5Mji* z14jFB;Un_d(Lf_ei%AhtPgju@+Bv8;01p_LxVe0f9SQkUvoQ@oOY)+yp20x*c7i=7 z3DPTHY2^$Arp7RcED9;4XjunKTLj95T0&;g%)m_4x2@*u+X}yKep)Kcg8XU0@byjz z`Q1!8xUn|qnN1MLLQokDA>g;rM>S0RI7v^mPuO%}<}ye?{et`4wjW!7!2{4o>&IN8 zRh>_oi25c*mG{%L9$yBNgS`D|R#$sKq(cAU>c+{thZD=|Uo!<YAg#Tfk&5$e<1nb$ zis}35>yZmXP1T&c{%KdY*XLPFPjH=s+m1yF=6YkVXn)7bL&|5U-xEn*eeO2CcvG9L zebgrDu?T^D8Z{0h+xgb9XCFwej``djGWW*}BTuC+_`p=FI$X=w+`0~gEAUSmx_0b+ zmm8L>!+$7#&N@i*C;*Hv__%~K;J~|u1|<9YGT!vnG348Sk5UfV?dxGz?pa0JAMW*H z!SX%IYGSV1Pc~+usR=dr%s=@#1{bUQnVUD9$>z(h<vYDQ3JFr?Z!1C!UsiVC7_WL^ z%t~+gV^y*=G5d8fCGhRcY|q)xqT_9DHq3!7&v2QtA2Vpbo)b9B_Pa{noGvZpwxx4V zH}-i<ty4xfv1F&o+19w}C{|~Mta2AR^r&d8`<s|2hv!BEU7_`-X}{OV*LseIvzch4 zIA&#cl~1yyV1jvSBy8H}9O38zW63K~sg)&;68=epykwZ|IaPSWX<@)_)2?jgegDI? z{)o&oU~vjGAoaKEew{lW{qFoc=$2-D-kJf2#K?oHH{<>XxV*KU;mzba*#6g$IrsM- g36`$dj^N6qPM&)C1s9dc5o)T3#|3$}V`9O70I6e=vj6}9 diff --git a/Documentation/NuttX320.png b/Documentation/NuttX320.png new file mode 100755 index 0000000000000000000000000000000000000000..5b9e63f0059440c691afcf96a3b25c456ebf5f9b GIT binary patch literal 4123 zcmc&%dsvd$y8j>;fpJnPN~eodP==DuG^LJ}n3$-UXdp(JOjhI8O3NJEsobW<8g0CU zsHtfeRJ?(cnrQ^q&hav4H?zsS<X}$TN(v1HJPVusoPEyU=XuV<v)0G=UVrbq-tS#& zou}{e{sQwQ27;h3d}!1l2!c^e1N9l8bfinlzylT=<h>oLda(Qrc=_yrpEnhnGyRGb zB^Ln&9Yfm_3qhYRG7T7XDc>3p%})CGdzt-Vj<Q%~`#v&B2tgKkK2#6JsTbqD?rDo# zZTORyA4yWECmyv57HuCrN!@ipjXIhA3Ob{Q#R${uEg<Y_`Sj=3uMXbuO#k+Wn9mB9 z5Aq|{U>(kN{;6^<ITRgV(pb`1-glapcBV!(R#hA|@}{J0xO3#=$NB}YU-!J_y*wG( ztw^e$h?~7OT%L99r(1j65T*Xy(C#>AW#5tIu9o=6t!W4kK8@^-{TH@k40iR5zK@qU z^S(RVVq#4H&nd(e=uy7@!Av9e44nEzGduEVyl`$@`{Vb%mWXrvG;aTF9G}a;I|wp- zx$EwK?`jUGl5`n(l%;gYTZpGz7u%wRPzIYzK*6bz|BnoU@~LKxhb3MonMc&>SgWU5 zB52%CFg1Rr@Wow|lhxNKT<ISxFIHMQ4*sQ!?0THUyXk68nCfKN<~7W%G^n#LR}fto z+@7~K?~^c=Qg!^tUdjHOjk6tQL~AOSykr$DGt6qTi*(l<n}2QK>d#KMp=9&d7qex- zY0>*uDcjVnJk(zCz{~dTh}Gte=x+`?4)$rw^JX3U(!(U0Jk9W!XL*9qZ>-m=$JTr| z|Ltb89>;aAs(}4>*u9P1+Sx>HhMpu6V^hh+c0}t+Xx*}ZC3MS<UA~>@#m!oh2Ucm{ zfccbqsGQjy7b;RTnQPoyE2EMX1PNkvuXsnP>O%mcG2SpzJle3~ZXc(4SZ5f28z0{$ z4Y;zt=~bfczGR}^al@vqbLEbz!YSin9^JqYy74;yT*mr2zw7F@&S)ui-__67hzB0d z^bl{`{^D+4!15aQ{~TH0ViUJl*jPU|*zww!;+%4MNO3njr${vLaWHRi^Ki#9WXN~A zg81f<_Ltw+eL3WO-S{BS$<yy@G?LVGT<gp@;@SLGonKaoP*~R-U~f>mPK!kx#nWKn zrp}y>=jUrX)eZ56NZf)KLj4aH?mayIBF^IsB3r6V3gB$=k>|p<kngmxWRc?jr%T;M zMOcCgec$=MnzTny>5!1Te0J5%6+wbMM3;C&EurZlJpX-JmgYz7kwW>#h^o7GOaZwy zdSa{O1xdaZy@AOKuNv$Q5n#9LJkTUn@ThDGbHtxJ%kcVuaUeH+IV$UXAL$odB%*Wa zLX3Q9ro0;7D(l5KtZFLNdh^@T^dim-)}hvXm-7u@7G5_bRY?e?Mid>G6GBmy6ixeH zL98#`U{wS#qy}W%Z1r_}A}*t7b_-&C0GZRJA9bAjtHr`M##ypW<e*K>y8*wcNiYo9 z=%lJv;`0y#E+ISO#<6Bi&!)+i0CZiDFwi~R&G36(1H3b{ztzkI$R!c2$5({?&=uC& zsop#*vK4XIzpKuZ()El1EH-~|k*>H(c`kv6sORVke$vaM(RJHfha6$M=mK>KJUf#U zrDd_Xh!FnH@8j*7*zIZ1x^JTvlD{ZbeTA)=_U7}k2-pr8#UcXdLKS*Wc#dnQKQ?DE z$?aiqL=kia&g2w?hrdmOV0?&)|C-71)3SQ{Y+-OZf1v=w5NI!4P`JYp5S$?xztNe{ zSsN^vGNLRY6dhTn+KG$!q#0Fajw^+Ch4CW$XLs|V#YJs&0ZFcZ{(N=~1;SGRZzHql z-*!k&yOA&cgTc9=jURpSYM`@WqTv(>6g9A~nMQ||nbbVH`)TN^tJ~^OmXsG*f{C<r zWgbe~%@PJq100l@zlqE9BD6O>h2?*xt%oDh>kw!YzO&71PZ$csoDU|~PM7-UCS=Qy zrC&3OFk_oGS3d0*x0}T`<b_4w^-G6fscRcPY32S_ESYIcj43e<8#ETruOZU-Bs%he z%jU{)L+FS46gv+%;$ecW=hELA&Be6}<q{wTJr?6l$X)I|H@|gMG!qplWMbaUw|Gdz z*$jI|at9&I{^CEX?aoA$V+Vq{(YEZ|1-?!h(3+M2fH^e$qSVMv=iurBxqR%-^{NO^ zZioKb`xVjNDazm_<^+z~xl_=^iwC?k<%)wKmMvR1k2n@1QczC6>Y<u7P4|({y}4mq z8$t~O07?CdW!j}IVG2f$)4?J<g(>Kmb9&$Xi)~K4W(Y_z(n6bR<7!%r)e~xlEq@=; zrSa(MHWLo1y;H2A%b{t{g=>1~sYBBr6^lZ-APKvef)Uw%^n(K{hs^Lo#JZaSegGgT zreC<57v~ofv|znEltFOGJ<HB21oadC8_m$=*yOYGx*np62KqL);Y}Gx{v~53WmS_R z)kGE#MA#p?Xp&9>()Tk4>^1@;WLk{8;Oq8JIk|2;;1iR6MP$nt6Q1`3fy!qN+z-EQ z9Q2WAOIs``DcG0)u%E{<Z7o&iVE0|L<yU~&WOSBUG?QZAv`GhRA%R({65GF<aJD_X zqA-ch8zR=Pb%*wtW&kT&M$xj85#4Gtd^wm+UVg=u8b>k)F6p6zSzs2E&2c%6pwvVE zhmUqf(M)-OaQMq#z!Gd|((Z9iGz{ckD~3NwJ9M6vT&mO&Pid+ZD{mb8%+j;CK1Z7q zw~@hNEL84&eIp4N%fEf6TG4#G3i7d}^T=(o(QS%5)f0`!e!?(#y<>lVb28CsKi3UO z6GH5)u<p3t8L;hn2}yD-#z8Ud9FM$|cW)^ELt-sET8a07a@EtV*c=3tQ+_tEJu3_s zlC9rng-63%2+A;2I-p0L4eWVuWN@}>+;;N`DEyE52RJ;sOtr-NM87z(D;ZPa$z6&` zN5E<vlm&2t2gm_~Q?3~$Qm}}JSM{eq2S$o!b_*(7qtgLoil1hg0|m<vjJ$nP{f9A7 zFsXL-1$K*&x(iEyU5a-4yUeeG1VieZ*(ULWx^eQncmQ%oRzCqafUJg`b0Hr(^03Su zXC1)3XmU=?>{pwd=iCC`9dsS5fp<#}?hUjlglEA0akX=~$zF#hFO*LJP3Bo4CUuq4 z3jy*JDe6BkuUrX~4Vt|Sz9$hy(QN`DFa)_H0mx@$<!ZP?oHxu)NdgMT?db+X=HBjw zOb$hd1KEJL$!ZonlUQI)c>(gx7sGJCAVnuJg`|?&-I^|ehquZ|uuOcBKFE|3&eNIp z{Q|2Ymc+D<TqzQTv#vIN9n3kXv%>R5L*9InJQq_j&a|~5$&vp}JCCWTHnOW!VzoCP z3KHAG%2e-gA+ZL~Y{_k)HD7md2mSYoz0-C>T<=_e@9oZzu6=?^P$mr%8%Z#EO1H)3 z0$m{PQCO`6Vsh#+sSKWHbJ-MTOA@pGY<2}`VNErf(@7>HB&P$0+8}{a_ar(m6ZCm& zP!op9e*a!a!2OQobi&|OrK;4|z2r?E_5}S*6jp9ogfR~kke`OtU~bd6l?*%#PGfNq zrSN+Uuw5*@0-tS@oy8C+&>H}j$vKBPQf-W^RDGpM*)Kq#@MIuaUa1m~%9=5^!J($K z-|7||ZOMn9!Bj}$8=n@MRPmHjRjRfG&>@s1$tm0*rI>ad2mcgD<j+BZ+|d9e7OV-L zg8iK(0IPxJaL|{HEffeWT`NhBAa?;Xs&wqjT?>gQyT6MoI81;jMFg&2=?SDrPKOLf zZQXdrVIGJe6R*kYXQdr;vz})KfNi3`CpjuX0A5>IpebLvJkRhjjAxnvVyQ1QZl~|C zU4sxI<fN5Fn|z(v$hu%&($Ms=*oSeU(`GmtpKz{XC|+F(KDD(V-jQgUPSLacWT9-^ zvAK%Z%dZ`o7ny0d0G4y@<ykY!NXnzS0;(yp?K%PEBR61<Trn1l=N+EWEP!Ql8gbSN z<7?4>P!e#~w~XRXpgzgC;jC+ozF_zGw;d-gaz};ov8G%K^65+0t#^l0Pog)33LcHf z*6O@uD(oyDV4!m`mV}T7_?oV;N)0%=WS<)9d~Cvq8gjM)XW1ZrM1U}s#SzV<;FYc< zd2{DaYbn@@Iz;l$9J`BtpnkD_F*M{9u7|G6DpN*i^2*>m7vsZ()T?A3_(+$oZ@RJe zVfuNAKGgz*g2OIn3rf~K-L|Nl3O2H^LQH;S;_7F%fMq?EQK(6|2ac~xwwm&u!sM*i zU63k+)y~)9zhP^Qplf9nYW(co;e;jyDP{tjzn$wjD)Z8HFa^8Yqu+o7Q6{H$HG>N( z(CV=3mMm0ss9XL{uIGp>PUpWz5ZfZ78sb8`lXk2+N_+RZJFjDd&F#65H3@T*Zz^n| zJ6Qv-;_vl+E2T~zvR76j`j0N$p?F2H?~2a^*Nx+g;;(-gP7#0mW5K~}M8K{oSK_I@ zxBD{hOgqm08lP>RoxZ>I)-@=L!yeNWD8AXSVv*kg3%Lh+s`8qo?Z`hKP3e-<EHepf z7l_QiH(rzCNQ6^kvH6W~N86XVJHb6q;;6hu{AfCteQ^~uD06btoxx>6T<^}xL>!(b z=Sckxu?`8Nr7AXv&qtnvn6`SA^LCAUe)2FZII%AO61#An%Q`jdx0hvcTssOeqz2I{ z8<)f!_1llksfRXZ;dLIc)rZiTwkXT>L>d>|`9yf#cXl0PumfAjV}QOGA0)<u8q5e1 zs?Fe3-~T20f6hqGJmr_Tvn~B*cmH-Solj!{x5#rf#E+xVbAEu(GEYDOtl&R;9@A-n c$@iW60@vwHaSLu4z|9@<@!CbL+RhRF7hGmdBLDyZ literal 0 HcmV?d00001 From 3b57a31948a0b813e39892f3171262fa251f4dfb Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 8 Dec 2009 19:17:53 +0000 Subject: [PATCH 0546/1518] Final logo images (hopefully) git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2317 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.png | Bin 4915 -> 4961 bytes Documentation/NuttX320.png | Bin 4123 -> 4151 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/Documentation/NuttX.png b/Documentation/NuttX.png index 4a9b41520f3d38b2d788dba8583be17514950310..360e657dd20f3c2326d8a06b1f96e974f9a5099d 100755 GIT binary patch literal 4961 zcmai2c{r5c+kb|JVZzuZDa-hhog&FL_Cm5H48jP-AR_BvdJM7@Ws9;!lx@Z~(qt!P z$%L#aQhgON6+@=s9l!Ve<M-ctJ=b~8b$>qheeQFeb3gaF&y#9rbC!=+oEHE9K1&NT z2X<e&-(XzqclziRRdxpnb2w`P)W13UjV*9_pF3*??Cn3L?N!-qgeSxT69xcq;r#{y z3LlEGLGEzN^XA+$2Vuej>O;3AkpLjHXlZ8b7&W_A6q|LlKW?DYpeeI${@vOKOF@Be zrw35SOy0hR$#_4KElnpcS-GQfRIRwESr!>TGW)Vl*K3Hbs9DOLvH|p@$qi;4zaR~_ zm2&&^9fi7`L}ZOZ<a1Ha$ft{BZMG$;ku~jcHveYM88A*XWfuG>C~p5zT~kvSciuK( zXS}oc+aJE0D(CY@4K%r2jXWcG|5?gZu)}Lz!w7h7&}$5Sd1+xpqG7J!wM)U`|5WW^ zAohwd4q)O}>utcL^;=<RbeAl_ec^}%Gmpc(oaTR2Sa?gOcspLOuU|t6l>=N)Q5QxN zZYON{)~-?|HDAXGnWQJZGWFu?(25M~9bF$$4;){*|G<z?|EjL^RbGO*6hT<y7~Afq z?V3xJ`ePvzp3-yl+%%#c$FewnUs|DC!sH0`z4GkQpYxaO6T1IDaXVdRF^nG#NE40h zy<H|7%x_&hIWQos8k7&jh@tOFt8fNR{rq{LZkLlh#DhpBlA^aAEM24f6cA}HhQwgL z0rMx5qS&fqM{_7!kkbui^4|@B%uM+%+&~dgJ-6anbV_oap4MlL@KCCu1%0E}Uw@OX z|7bpKO1eVzMbQx=Q9g?8jtU$Uf8pz6YP(Uc5Ao&sNGlg~pRFMvykU0DZr#pk!<4Yg z&*=!{T5HYr+4sp=bi!y*yB^dt`WuXsx+|NyWy3@UIIHN6ocvo0M>r^#%+Z8>-@t!c zS_oFY<sxMNBFruG%|%Fs8+@fkr%a0Af#V5~?FZ{G5#Qs5E;I>vUuPIwAColF)pIa- z9TMby9j|XMo*MuRuZWZp((H`PJ+wb(cSPu-uT}*;)L5_(tgh^2zTS&o>2Df;eWd!7 z0KdS7K+s$qqL-6(r#JupWJ5wTyh*dUvdpT#YQpIRML*-b!B#2G+$Z!wbvR0VH@xMY z`-!r<tdpIf)**8xN_#XqHN0M<0=9Dz@4J1xr?69?E7fnVUl0iDL&CUO+hZO1h_@VC zy&H5R!%%TFussoEyzx=w3E5Mj^ix{y;`7^Piv7Ftcd&a)XO$^bzA_B+Gq3I`#><0- zVSy_Aoz;%3Q_Abs3j^1RFTEF_A~cSG>89&mTKG2b&N;orXU{Zm*%@j54b&*=za1x~ z@%?D{+>b=6xMB%gL#6)<?j7%TxK)F$cx}|j!gLwhU#k(j=dAjX`vulcf$Gbe7Vg^} zxZVZ~b0ho)!69IpCx)sUz)<!q6=h;0PdmBHj4DuQe|g#SAz#M;`Qcol{exr_k%$QV zwqmYPqy>hMJ=B*%@9E@oPP$(#i2O%r19h}^q`%?oBiQvMEBG7hV-2hyvvF!{SH5=+ zpE_*|8<~}NriEHwAwLzHs>tBQ8kK*@RbEaHHIIfmpG{0Qu1|&9kAgNHi?<G39A9i4 z=n^@DJV0>Vfr-dXxa0d^Jx*)RJ8KOEe+r-PIF32aJv#*tc5JgV>i>S<Zw|ES$)8em zGS?bUeqNzD-3%3#BRcLRJZO}L!|J9p9n!Y^G(~?(0cOoW{Kn4HyfX^U>|mK_zV632 znFckdQijIC2vl=GXDBCALQJBjSRv1*;F9t~h+7cZPgOx2Z{tE!BG#^L^(<5Us9QX? zkgL65;z?Vk891s4cfCpDVTulg6?4$ipo))Wb<j;USrcc>64@Muqb!lpOE=oHAB9Zs zvlh0G>5Oc7`lPmpAU|4Oby|g3yIQ4mfa)35I~*_4Rhrf0<%Cq}-WoR`8T0KNFEQju z%L$?D_;>qBzyCe)IbCJ7>Q9_l$wSTg+lx1MQHy@vwJOgZlMWTg;L#(k(^s?C_mt~j z{61B-5H<^LN?Tj6Y|k6Q+((rd;~Z!;Mwmp`8RXy3FNZ=ucl4&SQ<Az!*XZtI2HQoD zu_??FXkA@3@_znnOQ$cMvL=6ku&E-JSrsynA5UUv(#wpFsc5_EVaVb=kpsKX)`LWx z(PjPLzTSo?AkfFS=?pb%H?{5zP9B~Yf8pZg=|9e%MtG%vd6+z$UIy@Afz1((3nr^) ze-`M8j!xT(0d=lf=H)Hf&~_0f4|l1vs>^z7QL~q~>%e4DVb!X<2*IO88g<~xC;#3v z5o4f7a|sTZT)FGfyzs3cdfdE-y)8A2FutysN%|uwXEn&)=6cLNbOUy(Dfy791tf#& zW2`<mdJ$N`^rj;>{!6N9C>=-o_;;FKD>0W{j+}_E9|c)sAVpV1nR%n`mKR+((<@%d zcO&-ws(hcnn7=VjBJDAY@gV`G?9@+Z?+)q`56YRz11W7TZQ<`9i;rD*1BR>qRHHrz zuva4o8Q5;xK=F*0d|(cfzmVfF_%6N&P*9zAP5FfF{Pk%ZAGPvx>UF~27el_156rs^ zZaY`<AO8OFcu|tFrTgxR?F+s)f2xxpY&bN9Lm`q0fm>=hN5qLfFXlKcfBsOw39#9V z#jm9|zIcnp(cxh|8qdv(8RmM)XHv%YUi-0Zm(IxlGiPgCrissfJ0IaLE%HMLH3q(v z2=LQLm5AI!M>3O|S4vkDo7~U^rdN-2u}{xroD>UFVpRc+b`4?9v$Qssu$@_q69|*< z^O3_MCjDyoX2Oj_qkqo+h4^<n^fGJih0L}r4EqSpt<SFBXAO2HY7^5gZCj;+x0Eg$ z12FY*`ZTAy(<)U0F7)XIt9mO_p2!Q|p5V`oHjSACbG+AC+&GoX@4)pJH$I3mb)aS5 zhtQs90Zq-1oc5q~imJLB85eyZcHOYA54_g5_g0Ik17YiQJbk^6op)}PE*U&7L3t5q z%<Hut7pM}2Ra>fNMVUUCPF^QzFa5nR&-m4R|DanjWr6n;vQ{m4n(d!GzYlxH+Sfa! zxdaj#4FjX&&J6c}@A_4lKS8?&fs!D`cYe1q@Y8fA_r9(RI{3|#?h0ssqZAG%YQIo3 z<uwL+&t%FG(=6zg@WM!?x2prZCg!r+70}yyxlb6EA!Rb+_%X1h$jXN~lVm5zhxYFt zw8<Sr5?f0oV4{MHI8V5wNnqRLJ!ry8@1<gL$;JPm&hVFc%%2;*-||#kc0I$Hn45NG z(2Z1>r=DvTN7VPlXftYVrK$_*rg^hx4MJ%~G2<4@vmHA$gv^LgR>jZ)uOesSRgI>r zG7M$Z@P55{RhNweK7t-(&uqjUg|usn1xMQ5rarNx!g-+kb}LByrw6~!PgOmCc)r2_ z+xZ-EFX_TLUVzy0@#QzEVzV7QhYUKR_v-Yoos8)x8RxaHbo*2;9A+Liegd7uetQ4W z#2$nL4nA)ssG?y{Icb~Eq68Ak)_lABn(xf*zKHl3L)8<PWVVG%zP9f0cB{D1+uFGc zHn6U~yur+EO|@B~mCJ{$wQrSXjo?FM3T4vS)zke4hlEY!RbTntEGXb|wN-QU$n!^w zYz(r_y{Y_}r2Y|h_Z&~h*yV_if0zeF3~zFHwL43P4}-FO@8at!r>;6y#cbMJ*xgF` zb6?*J-|kSz9}6+LqWa1_p0espvhmvtjRD_r;NyTZxxFL?(8WVCTF!y;@MwJ8+ID=C z$5L^lJ?3%Z+_pIy-*N@TwIM{baY6JA$nn3A-}39L8p~VzR}OxPQ_7Aa{_-3`7i&D( zZxzEwawTK7l>oN(9ha;&mg_l^{d}oMgO@V>9k471Yxgl$W+-1;kNY!!x=A+wh3d2t zJ{gFCny6!FX)LR$*hF-MrCPKrjTc|}AJ~O<XCKB??tH--*U;ZVX>deLHyE)xWnFcB z4vbj9!MvIf*W1ItVBw8q&vKhDmC&`GDG|bmk&8m#+#qNs%}fn2M$)zTy#9e@{~ir% zyS`8et-5D2V|x<b2$JN06=Sh<JTk{`b^wgr<UEz9F8Gom{2EkQ#2q#YgTaGtc+eT@ z9|-U;{}sjq?<<B0Ms?d650E~5C33)sbU2mV?4{;L?jU3%0z1=hvof4?slLXNbPN|+ z+{FHeG}hNx?@N!ncx%E>u49Z9SHbSixGjs3x~Dd7S%>fxKqZAfqWya%tc}rF`ei#4 z@wpM|$4FNdn0jBj&Q3l(SB`WE5f$-KCrh%CCzaV}|MQ`dWv)1Rl~+g5$AB~^GqQB% z^r$~v7vky0p->22n<aTaFhz#*c2J;pBJjq>lJWl%JpbTgf5hh1K(DB;Mjq^-aM6O` zjT9+zmiLmOBy%L~PX8=8vvIg~r|8Jf-?3ru7jZaXo+6E7=Ul~8y40^YUE~G$PFz%M zloY;9I&ynf(x_GC)lfWY?J{6-e!$zm8?T$$66u~o7yWlnCFb3PWih?QfDnwy%4b>e zBxmR%;qb5H(e7<a0S7K)!#%gsud$}erM`5~n${rUv!MQ(^KMbCstaiACaJ{YpQkVv z>Vv2PRscJ4J}_#g8fslbeg(b|M|)u}&MeT4IuFp4k>P{!wW_DL-xn=EAzlmJigF9F z1lX}$#7<N2;N4eBvYN?<ez&=Wyarye3#7Ts$I$F=D#5GFtQp&omW6u|+8yYTx=2~I z>C6^r>&B)`!5iIR;}d}Ffs-USt~-zu?suutQ_sZ?2Ef1RPwsxZCSCFd?%zEm-UsHl z`E*8*OOKn9Df&d^NcT&esGDi-SP;X-rHpi!82`>e(XDLrGbFj$Jrv8jZ+hQqkLWL+ z<)rEo(CkFf^W7(&Si(>hTqbE8-gieeM$E^np=%QZJj~pV$d8Fth_#K_L9k~8<U>`g z3d>*`ylRY2`*x1;ezjZ29@T&FD+ijS&v$_zi+xKBM12l2u3B~O!0%2)1ompTR_Keu zd1EEX2TiIE2_SH=Xbeq}d3c`sHts2Cx>p=WnX&mofhM5^&%=xd($wxn8AQx{f?S57 z)Zx0=&KPa}OE-$HJ^5dyP9YOmh>*n6LXK>93$%#+tx+c(rF3|`5WcBL%v(zH)%rtU zPYlk2FV?1pRkM%8JesBnOPI`rMY72&z~=(B`?=8QIZ`h32K%110ENc{oZwK0VK7-$ zEZ26-du8Ot`v5Ty#B7VSEfX{1xUX?t2Pptsb7jZQYQ<|W|8854&7n<|?G`zxv^tDk zG3B#dK3{F{?)Kn>e}z|W$^(^k{Jq5<S%cyxHOS9cLnj`v)`iwHI81VrNH*w{Dbyl5 zP4370%Bo|XOO}HxXHqrdVT_@@wsni{!PfqJ_&h`*hHkBYJKTmeZKG(eTeW1ZKQbJz z?@+FVGqzHMp~Pw$+rDmTabyAaJsW|>WZEkbowV@TOh`CPYM4v@YvXC1yF^=*_3D78 zddXerXy3Tjrp_rOiLCQjg!{}uDHQKMTUQrs<qa(>fX4B5_XTp19@;GAj`LU#`vojC z1sHy?MBP@o>R9sKPUaDm&aSgZ{`Q5PlQhahh-1hv7OT6PE*n;9++zzKabUctfWaP@ zjBDv)q=3MNR4$-Fqz!{N{t1OM!Zal6??OkcXrxbb+-FYcOdW472e^_9_$~x?6*?W< znGo3htMr>YxRF3li5)wwU8x->=ks?$gkiAZFwO`Q>QI7vz!$z~5RhB)%g&*}$5IVa zY}g4O$l9;AYpSrY8mpk?)WVM4vs;F?{-W4`wqJ_hx!TxQ$-J$wajhkQ%-^-loy+fa ztW97@m%_fM-x&S*_@0RNI*ojzD!H#YSd5x0bZb3!S&o?RU&(M2WWw!q*TwP2g0{4P z-+Ph4J3D4dVXRCKL+HqQqHWONd66yz5D5u%q^zN@4qb}?d>|-5w(`dN#wJd;NUpo1 zToAkMM6^DmD_!e#FK(gyuvu?Oa&`Dkgv>$w#h_+EBjwPes<Wd`b1JD5M{B)%u9Uo4 z(43MD9e=l%nn`NsW_9WkS(#E=Ntt6Dj$iT-e0vQvy6Dh}avrOHwpZ)9-G#V({Cmde zn3(!AN^u9ITNV>NFC}GB1ksz`rQ0X%Z!Y2<*C{PDQ6*_9a*q6+vx(=YGV-lYy9W0- zNxL7P(QodGA%aKFyFRr$FnWPr_ILVzPTBr)BI&9+oQ<cj%2zndQb<R8V!RqSu37dI z^u2o`h@|P6pmw!~5X^?yWcwRM;TS%&HZSHoH{lRb2+dQ9Ls)Ig66%W|-KARsmu}ki z$V0;UOn6ET(6nH3cp;-H>70Ec>Hi2-GJnhlk!Z`Y%t4eTyl<3Raz=Mr?i)#(7;xAA x&AIb?RAGPIas&e+_B6)dfMCz#x$<QXvO+R^?tNlCl>Pq;ur#+Zt2gli{|77HI066w delta 4862 zcmaiYc{tQv*#8%eZOA-^u@_}GLz0xT4cZVPW++Rx>{2Mp3}cWd%cx`tGb(x*8N0|f zBRiR*Y+*!pSz=60_)XXKUcdLx_xyK%KIh!$-1l{^`*ZFyqg<^_aL0-q7c7fouK<8( z^<^^?`}^Z-`B4Pfj+m}i19t9&v+wRz^|sEgv!}nKAo<3f#~?~vH(!O`NYfboZtPhB zPJSPPRg9f|+iPED_xMVHX#7z#TIXZA<40*C+esRyNsmJU%(=L5=SqaA2^~v{XJ(>S zr`|A|hknflS+leACv&h%1xr&a<+de$;lVzU7~=lDUCY5>etX|{(aXtq=qGsvha~gw zqvBx!tX_S<<D$!=oeFv2MTwmoxTUs3Dy3jQkyn%?&(Fhej|~)S8&4gv{0~|T%yCbT zvPN`o>nE5z$<Av!+A}O7VRA#=Ll6m)k6>+0@>R|djnW_S24UL*B8fP<yTY>AnfTxV zIp@viYzy#2isF1V-$&>>aj}GDq9hQ4OcfB1y}<zALquoUf(p6mDlBz#lmCEiVZ*;x z1WODrXgob*2T=!NlC1v{a{o8cCu{r<mSG1u4YQ&yAff?d{<vbLiWmOX6pMy5>sPWd z#X^hF=$un;3_QdhcIFY0Mpke6N5{<>1HBu+TUZ}vp=xF8kNO1U*W-5uTP$<G%}#`U zjm}EDRiGItV$OeLI=_8?68%0(*H=D(r=?>aM3XV2L7QfwC2~NbRm;i77A*``+}apT ztN)oHIW<O!gWM9dX>x3rFf>Tl>k^((2!I;uK=^<>H#sdDPfMxbCuKInNsYoFYu=n} zOKZI{`(}umFphx5&pYqG5rNpMVC!47KIBQvKOvZBcRB%AOZmQfyN))l5Y|0f(t}4P za3Vm}LLBx_IQPe?t`i2k5Nz@M5t{unxm*0gii%W=l_e)|^=4b1Sf%)5(ud`x50gBz zw=TP$&zB8{%20&PH1c1cXx$q<X!_khmb0C@6VJ#fq~<$E$kDp#q=k(lZy{O973x=b zAisUlq1sM$Wrr{ikLj32w4C!ej2;PD-#2Ui9IaiLv$su1)RpMM`qeduYNp<(48Qb` z0B9p2<M`qiQy$=Ijf{jfaAP$x0=|FT8_^GU1L$%BGk4khGTH`T=~n4N!lINJp4jv$ z7?oi)Bh41?<2}8t0*^OS>xjFUKGU{aKpy*{hadQ6=lXg%G~j%)jWPLb`GPC)y_U<_ zclTt26g<Cxw8ERQ?K>NswVG%tDxcOPQ<0o?&3p~FzP5J*(tMMREA%vnULRrCO5;1f zGUF1<>nX3nPhBA0xsN=A!;azICJdgRIG0&I=5pFQL;t{Zx^dQfvxH)&8?a|^Q@HE8 z`cUp{$b{V8X2_eQQvr+CjK|_L#av|jfS<-jpBivd_;v^Eo0Kl|`CI>>?uG?UrQRBA zJLhmgnsnpt9ifiUHz1$apGL!jXSK6Z(VkmfmOLMzG;fbq@35+Cop^0GQ%GOur?)Q} zao$|j74l{9#qV;5HSD%?vT6M|fY2kCP;5RSb5t8gFW*yVA0ZB$9@dqV5A5iS0M-um zCxe>t6i+&~xL6*~kkdFG=xj6eqI+(?9s#b3r6=#H7Tx#Pbk*7CiOoLJY3-`-MNZlR z8LMzrdzgIuv9?u1a^}w;52n4x@O5>rsQjC0;XNXFmbV645spxmj&?!O)$nC&yW68O z1Bcg5ZMha{xb_+|J~P~)23S9i4rU{ssT6V3ld&MRB1Hr3cQ5n4Tr`j8kmGT5Q?|S3 z?TxcbK#hmV6}8YIsV3&AK-2HwK`<XN3l<=ObYOySA9`1SX~@}AjdfS>p_ai>aqEsz zE@twgW_9<(#H3~zKR@BtjNkek4C}yGUnk+RvvY$ZC6AlNpG$ZSs;*+p$6@9qX28o> zY7xn*d5`$^+lL7}ZqOg>WRjh$z0q}4V7kqZvoQX~>cY9$H*nUBaMtW1&&6j9@>91{ zDXs@AfA<*26+<4M2x=gMOLE5d?n<&7>WC1)34J1`pOH4WcX@VN{^7}-d$KiGtK1Cm z!6{gYdZDoTru4PY`M&oUBrw{G#SP%X4R<XZO;!}a4ooS2#gLI{EN{=!3o#~?*H{C* zCFG=n4sl<-xG53g_i5Bx63BNVnA7!pa3@pu@H{pSV5hYS3vjWw5U2ELX71s+Iglta zL^(%CxGD?w^dqK)>-OhkUNwxRv4A1-d>53B1N#>*DO1<8#_bFVJM*TYDH!(jGo~e+ zI#8zY5~LO@K!mGS??r>?z0xP0PRu<4dDRgqoTyB{RFXzup1!T^lzelz=+-c%We{iD ziz}BF(_rtErMa_AMUJ1#*Pb}4#}>FFbpcIB$KUd8Z5BDwxoiPteJ+s5ASV#Wdw9U+ z|5I2v02_|qfrQp_5~mIx54I^=bIkAZ7NC^~6+PvkC;p=THs@CzZ{i{$6wJEP*3VXU zZ}(F3`bspA37QDDIlt!kv*B6i_txD-e?}g~Ns<FQ>#4?u)*r1P*#CS{phY`z5?FY( zghX7hfz<@r+^xP@FsdcH+SUIRTTjZk<OS8^PvGVps?lU`Y;AC>o|r-H{qelNpl+61 z0SXxHygySOGdIG+^#b1AhpV>p4QSo9ZkW(2brosvJ{2|h<Sbqq%(^Y*uazT`nn>%# zHNoGmO;HnnZ&tY4w;skr$O~yX$p0#1DUZnshlWuE+kb7&v<?6DgbjG-^TdZq-WQ&N z_?2-44s^aUaS^uaQaF3gHKurebP`2?tgks@qt7c0quL}^1wF!<Y<VZMfrn}xQ+y)2 zsLm3QD|RPOi}_O!nF@*?vYYN2*9y9z_QdB)U{3(G;JWr|%*F{QxFzpT#PsR{2rms~ z?Yl!itgVOTskdXxCLWLB#M-9#Mo}AoqNg0$n~63aT+<Uq%jTQ)@8|Z;{b)p#Al~Mt zf>s_KWzGr|cJdl7tfIr5s|FvUQ57vLFC!O-ADrQ_Nh|W6d{#v|!<^+RROXI$;Ie~> z^<l~shRxyz)!lk=x5m<y@VS>Z)WD~M?O%+gi~lvSYT#Tw^=oTg+(@fatfwFunapnH zU2vhYbaXGSHdWnD6&!4&2k|>b8)<-@PkFCC`3!WxFfgzk9aO{TKHLZ^1wqNk`_T~} zo`J{*5|fy#^24{KcsSFOVXpw@`iEmv<k~<JGVtiO(L0D=f^W*d{KV_^O4Xp*=3E5$ zG<GG|ypAZ$&sUS2)R90z*DLLy2#xh5A*Mf+cFhW`*>v~i!Mw&MGd+@19!e)3PvX)s zh>7r+<-RfdtAcDa@)ArF;S12;94K5pU@3+!*g`gIWjL8w)wxxD(r~B%H1w<L6jLYO zMugHa_x#|H)gw4?>6&ryH-~<o!!+!P$KRU&B!oW$+3D~Gu_rn`R@T@29{gCitMuw; zQEp&mrhdz>@2>~eF8*wppy(^}TG1X7+iG{GlR_1+GssisTn3fS+C*_EQVX$&3458z zyQ(5ls;RLp-+N(gvuGid)xS`0JZBq6*~*<9IZzTon31?pDqws8nqby2K8Ov9OmzsW zDowv|4B6EGx(D1j;+wftAq0u^H__a>>t#gN*CnTqK;beQ!hqyZS`(cQQ1OhTYk);X z-7%}2I;FurTSu~nmccgi&uk&5X_7X|{LK~emk51lLMED@6Y@Tsts`2(0{9F`e!3}^ zkVtovFCCX7h0%yn&1hXL(0iy*1?CxK6t$$g%%lDYwAMBPkSrm+o+c_x^4IkkW~ySf zVpbF4wuGS_;1y@14A!r7{f-G%?AGj2vgU{hMJ=|<ST!CrIZ6p_&GIUBJp#KYNK}eF z`9EO(h41yC$+i(uV<~yDF&un#r1aV^Uz7TcT9Dg2EF`oUyIcuMHfBOU<KPT`nYM6w zc-E7A59(5l4HG(mD`QlH+%))y#$Lbu+OpMw+ZE#0e5UnJCllI(gU?h8lf?1Kqber8 zEyv;a*^_$T{zQLh*ef0z(-J#8{3n$N^Asi?2cDaveq^uUI*?<(xUV8B){dNJ>Nqd0 zW`VE|+7=|+ydl4DqR@1!vqr@BwTS8N_ZS1R2a8&te)@dwaxLfqbwRK#lHdG(N^%iM zF8zStq|(OQyY+qPk3_!h<{Eix)(sw%@QeoK=@;=wy*TfVl09|nh8zRZdIIP{d)J{h zLA+FxPno?vEI`uwq%`|Mpotd4gO_yMToDUytaTkYoep0VkCp?IRAHW8Mij*V8m-HN z%<~&M<*>YS*ft%OzO->GqI(?EhWs~`7`?FTFAeht!$N&RmW~EegMVm+CQ)8;ZBO9J z*7)GBMp0u=0&k-%5t4%6YBOT^FC70mvvMEUtCH7ZoA0augv7)S>?d5&4FSigI|hx| z-LKQ{DFuc-(3Uhlx)yk=%2kO<K)2s=r`nd|HR`ZHhM8U@<zQ{(U?qe6mQu;_)m$fU z&Axu1><@Ne3^|%>unRd)(ecW#5d{#*5;hlTL{9uZjI;B3va`VjCif;@Oym`htwPZ? z*p+pRjVBQ=uw+<EQTuEl)r*Vd2;1((lp)?O#bh1J*K1Dioy7I=8c)Ht$1!k3_6P9_ zFUI6RIQ8>iR1X$VJDkFDGx`GidY+zsubj~U>Hr83`eTJM5EubRZS-LB-Aoh!_`;R9 zTNI;*w&jYiKwAFVu%><$b{Gznu!P&We(eUfa*szCB6`RMZhbO}HJJ>W&ZHx_q8yRC z1DGmjn>=lK-^1?8yB5V#lB-S?qNmPHG*=N<VPbxwNPgc~!iyBM)hCuiv7@!5=fCf} zxAw08h*}i;reSJ}wt0)LP{Tis(Uew!)qwGiOmdl98uKW%uv)4Ft~%$H?Z@9|p^Wte zD+Gfhy;_&Q|6HGL5qF))%kYD%u7<U#^OscK$DvF)isv#mxH^_P72(JFWi6OwlZm+E z2^Ne|$c5m_KN~3S*nX=jf_6fXF0gGH2604o99OD$_1^%KnRPsbJI`$7(3$Tlo}4SU zI<j0+yCY-D8|y9wR~>qDM)UGXEZUh+zc>ECGc?9kc7^@zoL2?u6tLAl+{;nXHJ^nC zlbkNA+s&i|c6<Xz$OJtYAN<k&tqNt+`1wSW{5^k@0_NS^5@TNQl?K^IeE1+lcONF` zlV?Q@BZ;yvrvb+JqPe=k$k(trFC*AlCltEEKFA5n?bhk52j9Wjf5AfZYvo1Ql~*8h z!#JgOhuOWVp&-<6@sDK+_o`e7wR<R^*Hs?WD>1n7gh6g;YDvA_vv&K}lOY%3Jw5{N zI^crK^8^iP-3hg#ZgJtf%k$Y|=@<QK!V#C$bZZ-q2-a~EfNo7^0Bw5Pn@YM65_&SV z=NGt|+QX>>SBw1vurr;Q^FOz8&>NN~M{I~5vpv$!?XKJj36PCE)2$RFw__u!!T%h6 z;=g|^KYZW(vm{nvluz@#=?DToq7IoJWj_mKZ(bGj^){*gJuIShD^k)rz4_w@&4L?D zpb8&y@B{AP`XUFT_g@C@hWf_jURIR$9l!BsdriHU{Jc%bzs;~nu0LINTE~l%ocEdC zbjDpl<3vbjly3CgUiJO0O>PG!;aQfuD7n#@=HqRoH8hipu0SW_xmoj6ZOegr+3{;Y zJIy5#Ep)?l`xvz?0b2<CjF79sZTO@w+!<;ELEbg;JPc3D+V6;Zd1hl#J7D$Qps1k^ z`+<OKK8OO^zy^pLTXaD=t>1irbkt!YM<xLIzt8l1mqZ1)MqP_m(C;y#5lgHn3=b;J zw01w+Ehi;?FFH?#k^{un0-c)n`YB`EhGmQ6LRJ<vF|B$}io55DrgbNrCTa9$Wbm*0 z#0={4dmj_uFM6!p_iGkF)xqw3zi^4=ej>5u9#$|?^`RRHp?3{9$HfvMT_58#%Nnf> zTm)S_{+_$~FL7tBUpgs5-zuFU^hjg=e|TFOB?AFBAK8l%YYXb9`;O`I^;w(}&mKn` zdPzzx&X6ngH_?SN&hV~&Wz{!~yYG&Kpd|^l0%}DT>z}*l(zss*v5YMqE{_~9b>(aC z#=`fC+cw6MuM0;9jqvbRru1e={I1x{P5xJ)tJLZ?9}V=xt1xLqL3+$B$S9Yu2tCFy z-D&W(4Nnsi{^7|rU8N(RuI>KLk=rbZB8}9jK*iOUb;h3W!sj2FzU2|I(-6Yz`SBL2 zUY}yADie(ntNLmUXz`0jbAC(Y?Kjkbh?r)xmkc}LH+Lb<nrl%8FK7rN1w+(XVzDhI z|NSKd|A&aYk4Rw&fQa05KK{#+9pbHRQAW+zsIP(TBgmKhH@2_wEELeiIF79qWPuY- iyB|5<MS_Ox?+08zlThOe`3w@k8JEqknw2BnaQ_ebc0c6+ diff --git a/Documentation/NuttX320.png b/Documentation/NuttX320.png index 5b9e63f0059440c691afcf96a3b25c456ebf5f9b..f736c41308bcc1a2c60ca2137f752f6b7f9e679a 100755 GIT binary patch literal 4151 zcmc&%i(69ZzFsV00>(zANXtq_L6bD?vP&~ZEX@mEND=Qr_jYNRR$3~zW}8j!Ny$rP zrl#gyDN8N0rDKz6nKPA&nU@mnc*~^FK(zf~XZG3W4>-?xc-8{m-|c<B@Av(lwazoV zTo&V3;2{WF?B?p^13@U7=E8mlkhbK467YqJ@^RS?RXkrg0{(orm+s;Oebsz&>I*Lc z1Q+2N7zIJ!FVS2m=;}2C04_S==IOksTN}GXhq(CX=6nd!sd001WX8On=v{x&uz9)Q zE#>XBcG2+z`L1~ztjnn3=zK9J`q+M~66IxrP38-<u~hM_*80?)S(swatlv^N`Aoc@ ze{sr>9Y6R!+T``VZgAZ_yN&&E?ccAAs6HJ%{KNa+=mdJ?$;ikJ5dD*4#vwdmkHPL< z_Qm^igJz{^c?ku9cId;Nye4aHc3gG0O(cnyf5`|Zf>MHb<U~T*IO;}%y6?g4bjD=m z%HBTZ>^N>a>V};%Yo^^@7q1)obn+$lp?avlzIMh{6Gi70a%<+eWGtPNFYf>QRNxP1 zp%ix>84EidQKpcvy2V2-B2Xj!uNwbvh8C;4YFAyfEAJa4Io;BM@F<XFW@h#)tSm_B zKi$k(`{-$mdjH+gDT4=nE5ngh6xBu6<o&Hb;FHxpt=_nKW27xWIj7#3*_D}h>{kp* z%pM&~^AkDH!=j$F&ycpmWaRVyO9R*5{j$z6Rv@dvHuuNdjGki0&sSgBcX^L@g!vxl zUPCfXUTXZ1<t(j3XINAx611%v%(YY>yFYcD&Gc`nT(7)q`rB?wz}|Z+JVkr92&cP$ zu8$ggJ^bNihODbdJ*>7rH?Xy_nv!`ND%@SU>E?HnZ)!Kk-8tjJTkKB9JznOUN=RY} zsusV?GVI!{lWlK??7ZL!HgTEFS^K!@xW8#P=^o%(pH+KBjj5*AxS2Ojrx)l^t>^v$ z`YxnLyUE%~YWOTBtH1y2REL-CKg~B$Y_hz6nveJ*8`P=0{<Teipg3d9qP3k;`)P7p z?diL%ftI5uc?Iqgr^P!h8jBS*^caV053;samORf~jh8%Gell28S3CQ8NTa~HUB3J6 zdQXOX#MgJ3gPZl+3^7uUGW5jb6;EFrs$Mp<rC@&DRcl}R-Y^Wcac-1bBE6Z^KVsVv zggdkTaFdf2^3=3L97}hXga)l`OveNa(R%M4FF%iJlZ<Ck8$-PllQ~yZcAwFmVsxE( z!^B2bA(G0jADWa7R-)5LsMRsk_YV^$?Cu?5aUPp(yP5Pd75|LdSTI&;hO3Cpwn=f9 z=qnYxiOYoXbHfM!kXCiQxKwrma}aq&iNsWs8+{Zt?NwhaS)5-E34^T&T}pFD-GLk1 zd)^;%XL7i5JK6pv_3%-;<ad=}RA_h`K9$g_<IX@G40vA66w11|n9gL*E0qat$c5)_ z9gph_`mQiD@b21VwVcT@$CWt1Oddl-YG7#))_|D6<fDt!Ip{&(q43);p5O5yy7H(I z3yxt|`Ck>;T1rRUhnt<}#0A%n(^&&7p4A6?V+W#59onuGIWkEI@3aiy)tRnVnm6ut zw;nwdR+xP{%75Ur+-?psb0EePq4VkopH`?!l~>*z%$A=ecwAU+<BJhz<1Kz{wEZcC z`$2V~cE&}3c{*t!JGX-_(Lb_|kBdmalO2cw?xOk*cDPcHgV~VPn~M&%bbzmol-b_h zlmpMC<kUOB=u{Hc`V8g_t+c_Ma4pg(s1jMUrLrO@aGpSdFj!&{+_Ta!mXF3l=ps0! z7>+GLI;ZEcx&rtFmYIVO<A#mT>5(Aa9Q=6pj=tE68vGr=1)>S449vk2+P6rl&w(Nu zv1tDBOI2SsjLw1l67Wo+qWN*35ekM-B{bsYVtC@e^Du>1sDJ#YA-D_)?z(8k?^IYn z>X|j6LHf5ZqKP>m1J(M(+=O|f->c?jDA+Yv1StA(-rhRT;P0atoSeJ}q4KR9Vc;hj zkUEtjs|X>^d=EX6;10!A!*AJ&%qNOymgvtJAgG~FJ*C6%Swl<9h5ZJKZjBVoSBKc% zw~w3ZHhqA`0lQNMNkg^vqx3VA@BiyD9dJdPIKt@UYBY|4DQUno->j)ep01A81Noty zR{YpY-y;5yey*PB$^%(wuL)$Z60p8Org_ajefak7$$+Hg0?CMB{CNHR88OEfR;y;S zH)}zZ%bo%~Ss~z4ajS*Nw|AA`P{)R5MjsMwbI?n0)>qX`&Z@^Ok2d_XAbtuZpkr&R z4nt&)F$m-VdDmAND)fCte&cy+h$0oCFBtyU2BmX}J}6(aFK_;xyQBz;O)(PuL=Nx} z?32xmY+)yuYXd8N{&}K8-%;d@HgM)ak!b_(;A_SR>-y4NLTbbZ{Id|gB|T!-pi`=m zU>hOi+15XYG!#R?2ER@lFdp8;gN$7xPR)J>4Oj&0SlTGMs?mr3mMquObrV$u7WpfS z!75G~6eH6Vn+xYbmPEof>CWW~LSL=-;jbshB&PuQ3E@qTd-nn?1@LilZN?P<uO{1c zdtF(mSpnc%WSbU7s}9YZurl0S?kl8zlmm2%Y}3k=Ey{7heYithC>WdcitT}`Xwjju zz}*|{R}+;n_j}sFRW-C<b7ykeiC;S2bM;qc?_ls1lv+~<C{S|;DxUi1sE+Os9hGY( z`++;CA_>EkAg9QGIU%?Ikqbv@yy*YS%L8~#lVft<KGC5~5<;@0oAhT^+a3Y4JfJh? zWTGl~x2VvlXDq(64chx;X+~Awp<ZpGLE7MCYg~1u>ga`+?cA{J!CHoZj4eV|4{gz& zbU<#ct~&+}5Wnf&;HHyt5=4CppNvL*rXqU`5)|MGf`}_==vyn9?(2U+JbcV6qaR=$ zXJ!}U;3s5cCcS}N1jkw?v92rqgyAid_9!t);31z)gWMRHX_i5G=u9EplhS_=CObmQ zWzo3{cth$eOYUbxl`K|<QfUPAA5{xg{c=>k!unQjD&(e1yC^rbq!F0HQE$w&DdMJy zw{PLz*2I?}GtCEQ3*f;Pu9c?VYFSOqH@v1QDFt6<hMYyaiXh{slN^*79Bn?;x<q|Y zkA#C0*C5@%M755cD{hF9XZnGaAc@rn^+`bGGesf1uZ63pNr{yQdkBEEs?KbDk_qCB z0r`T```-Z?#LKtlnH+5;QEz~WgBd)E%>SEfM>al;&2z>CsD4E;c%Haqv>)dtP!#^O z@)w|p!7I1f6FQcY%y|YVA;X=DeMAEW&kv*)$V(>#CnwH2iKvouAYw|^_47hRF)&gi z)*bl(=myA-x&yjvkXP`}_@p3y_gd>4YOF4;Rc=BfO8qd^Cwkd8@kth73@6`KV;PuJ zzQXeQQIj2*Y102-yM&gV>~^B`(!WCu9>T#DNFP<=q6E_{b;v~kCLv~L5whpY*Y|Id zmY1flmG~<cH(AHgDA1{?cYS$L4tFe6V>84YytcnEWt7_*aCf)xP&V<y+cr9wef!Ux zes2l}WiHiv@0`L%h|GSPtP_Lbe3^{&t4AC{d#!+V57jzy&bgwYTwVPpUKP1R0KG_M zSAx;6y-R5SihT$Fz=K!MB!N-v&jX{liOKO+=;y-Ct(E8SWEwQmdJ*#DB;v<!%?Fh? z#LM*SVK5Mbfb7k|Li;ZE1!Bzm$9L=Jcgi&0cwMTb0RN1^r-BJ7fO6rDU|#`Fq7^kH zfo;d>LRiUW`-e-{xML1hI1pXILJJ@_Yc{4t^G8UDnKscv>5_1!r41{<zy@h{xJTI8 zrjl|N8qa|!jl&Rf2u^u1+Mv%$8d4QC@#E?twnGUGw2W*m;*BU@G?Fw8eR_1VObs5; zd%h>r2u=^>u_yaKgI`P`Zj_s$28zX`7wMW)mS*BCXxlK1dVK?(=f~kHwy=1WTU;(& z-1QhxCpcXLg9G$(;95zcD$_?}YH}%!?y2k$?@KL*LHGU1Qwo8GD9p4E-*>3S5_wsq zA+yE-=$K}MMecv|Ed_%Ih>h34d0qYD|3oTblP<P7n0Nn<@)hnHt4#PtGSvv1j2`so zJW`cfBI#g7a?xqopckDoI3xHZ7T>akJAx0nx?)xUSTcBcU2;GjY|_Cl{i{S;%$M<d zuoIsUav#on#YQVFL38?>pv0Ugip_!FoUVj`Jx&P_`BEdwq&HhDS#!>p`a_6cnp%4P z+_yAbNf(d<^3m;?G+)zn`Np3>6;IcQBbe)1jB_4kD-`;HynWP&imCGfd|+}7;+4w> zhC6OFUxM5u0hra>M^t0ZJdm4xqtghic`7>y^gk}4s6njg%2TJ8G~65VKcgvv9m)Xb zDH*+k$thNih4P|U0|a^LE=^WX`bS-*Ir51TlZZ9?DYnm386KE*?b?asE=Twe50`J0 z{{7*Xu&U*D-S6iuk_IP-<C_O|3~ia7Kfs=T2wpgjSe-ojJWJ=ZFPl<J7ipdXxP9?< z4^Gcalo8&f59AtK_{Gbjr(V>a@(6%UWRWpze~VB5y{5vb-4t2B*9_TQR3B+fBZSDl z?kU5*UuvXO{8%8CYK?z!^o{cVcmt^-N40Pb5;_LW-f>%OJ6hv*3EU-#ITb5=cYEC4 z$DfhPO^|J%8<y1vobl50Qii72hcjP;mlA)=@^qm10{tUH&ucDF-sCLR3i}dfyTx(> zmo8Gjz8qZsTnAHxE=?yX74=Jxg}0PKOY}K631o*gw0sLkxfaT}0NtX4PD}-mM?t1N zZQNTYRwP@5Nlc}<f_}?SC4uft@c|I*<c<>?VRg;_FATY+eFUSb4MP)(nq;G;q!(!< zr6bBX95+8b_Eii3`2w&V5LimO4b%WmyG62dE7Ur5Uq6#u*!sHQtsZi7_HwG&&Jq0! D7F<NP literal 4123 zcmc&%dsvd$y8j>;fpJnPN~eodP==DuG^LJ}n3$-UXdp(JOjhI8O3NJEsobW<8g0CU zsHtfeRJ?(cnrQ^q&hav4H?zsS<X}$TN(v1HJPVusoPEyU=XuV<v)0G=UVrbq-tS#& zou}{e{sQwQ27;h3d}!1l2!c^e1N9l8bfinlzylT=<h>oLda(Qrc=_yrpEnhnGyRGb zB^Ln&9Yfm_3qhYRG7T7XDc>3p%})CGdzt-Vj<Q%~`#v&B2tgKkK2#6JsTbqD?rDo# zZTORyA4yWECmyv57HuCrN!@ipjXIhA3Ob{Q#R${uEg<Y_`Sj=3uMXbuO#k+Wn9mB9 z5Aq|{U>(kN{;6^<ITRgV(pb`1-glapcBV!(R#hA|@}{J0xO3#=$NB}YU-!J_y*wG( ztw^e$h?~7OT%L99r(1j65T*Xy(C#>AW#5tIu9o=6t!W4kK8@^-{TH@k40iR5zK@qU z^S(RVVq#4H&nd(e=uy7@!Av9e44nEzGduEVyl`$@`{Vb%mWXrvG;aTF9G}a;I|wp- zx$EwK?`jUGl5`n(l%;gYTZpGz7u%wRPzIYzK*6bz|BnoU@~LKxhb3MonMc&>SgWU5 zB52%CFg1Rr@Wow|lhxNKT<ISxFIHMQ4*sQ!?0THUyXk68nCfKN<~7W%G^n#LR}fto z+@7~K?~^c=Qg!^tUdjHOjk6tQL~AOSykr$DGt6qTi*(l<n}2QK>d#KMp=9&d7qex- zY0>*uDcjVnJk(zCz{~dTh}Gte=x+`?4)$rw^JX3U(!(U0Jk9W!XL*9qZ>-m=$JTr| z|Ltb89>;aAs(}4>*u9P1+Sx>HhMpu6V^hh+c0}t+Xx*}ZC3MS<UA~>@#m!oh2Ucm{ zfccbqsGQjy7b;RTnQPoyE2EMX1PNkvuXsnP>O%mcG2SpzJle3~ZXc(4SZ5f28z0{$ z4Y;zt=~bfczGR}^al@vqbLEbz!YSin9^JqYy74;yT*mr2zw7F@&S)ui-__67hzB0d z^bl{`{^D+4!15aQ{~TH0ViUJl*jPU|*zww!;+%4MNO3njr${vLaWHRi^Ki#9WXN~A zg81f<_Ltw+eL3WO-S{BS$<yy@G?LVGT<gp@;@SLGonKaoP*~R-U~f>mPK!kx#nWKn zrp}y>=jUrX)eZ56NZf)KLj4aH?mayIBF^IsB3r6V3gB$=k>|p<kngmxWRc?jr%T;M zMOcCgec$=MnzTny>5!1Te0J5%6+wbMM3;C&EurZlJpX-JmgYz7kwW>#h^o7GOaZwy zdSa{O1xdaZy@AOKuNv$Q5n#9LJkTUn@ThDGbHtxJ%kcVuaUeH+IV$UXAL$odB%*Wa zLX3Q9ro0;7D(l5KtZFLNdh^@T^dim-)}hvXm-7u@7G5_bRY?e?Mid>G6GBmy6ixeH zL98#`U{wS#qy}W%Z1r_}A}*t7b_-&C0GZRJA9bAjtHr`M##ypW<e*K>y8*wcNiYo9 z=%lJv;`0y#E+ISO#<6Bi&!)+i0CZiDFwi~R&G36(1H3b{ztzkI$R!c2$5({?&=uC& zsop#*vK4XIzpKuZ()El1EH-~|k*>H(c`kv6sORVke$vaM(RJHfha6$M=mK>KJUf#U zrDd_Xh!FnH@8j*7*zIZ1x^JTvlD{ZbeTA)=_U7}k2-pr8#UcXdLKS*Wc#dnQKQ?DE z$?aiqL=kia&g2w?hrdmOV0?&)|C-71)3SQ{Y+-OZf1v=w5NI!4P`JYp5S$?xztNe{ zSsN^vGNLRY6dhTn+KG$!q#0Fajw^+Ch4CW$XLs|V#YJs&0ZFcZ{(N=~1;SGRZzHql z-*!k&yOA&cgTc9=jURpSYM`@WqTv(>6g9A~nMQ||nbbVH`)TN^tJ~^OmXsG*f{C<r zWgbe~%@PJq100l@zlqE9BD6O>h2?*xt%oDh>kw!YzO&71PZ$csoDU|~PM7-UCS=Qy zrC&3OFk_oGS3d0*x0}T`<b_4w^-G6fscRcPY32S_ESYIcj43e<8#ETruOZU-Bs%he z%jU{)L+FS46gv+%;$ecW=hELA&Be6}<q{wTJr?6l$X)I|H@|gMG!qplWMbaUw|Gdz z*$jI|at9&I{^CEX?aoA$V+Vq{(YEZ|1-?!h(3+M2fH^e$qSVMv=iurBxqR%-^{NO^ zZioKb`xVjNDazm_<^+z~xl_=^iwC?k<%)wKmMvR1k2n@1QczC6>Y<u7P4|({y}4mq z8$t~O07?CdW!j}IVG2f$)4?J<g(>Kmb9&$Xi)~K4W(Y_z(n6bR<7!%r)e~xlEq@=; zrSa(MHWLo1y;H2A%b{t{g=>1~sYBBr6^lZ-APKvef)Uw%^n(K{hs^Lo#JZaSegGgT zreC<57v~ofv|znEltFOGJ<HB21oadC8_m$=*yOYGx*np62KqL);Y}Gx{v~53WmS_R z)kGE#MA#p?Xp&9>()Tk4>^1@;WLk{8;Oq8JIk|2;;1iR6MP$nt6Q1`3fy!qN+z-EQ z9Q2WAOIs``DcG0)u%E{<Z7o&iVE0|L<yU~&WOSBUG?QZAv`GhRA%R({65GF<aJD_X zqA-ch8zR=Pb%*wtW&kT&M$xj85#4Gtd^wm+UVg=u8b>k)F6p6zSzs2E&2c%6pwvVE zhmUqf(M)-OaQMq#z!Gd|((Z9iGz{ckD~3NwJ9M6vT&mO&Pid+ZD{mb8%+j;CK1Z7q zw~@hNEL84&eIp4N%fEf6TG4#G3i7d}^T=(o(QS%5)f0`!e!?(#y<>lVb28CsKi3UO z6GH5)u<p3t8L;hn2}yD-#z8Ud9FM$|cW)^ELt-sET8a07a@EtV*c=3tQ+_tEJu3_s zlC9rng-63%2+A;2I-p0L4eWVuWN@}>+;;N`DEyE52RJ;sOtr-NM87z(D;ZPa$z6&` zN5E<vlm&2t2gm_~Q?3~$Qm}}JSM{eq2S$o!b_*(7qtgLoil1hg0|m<vjJ$nP{f9A7 zFsXL-1$K*&x(iEyU5a-4yUeeG1VieZ*(ULWx^eQncmQ%oRzCqafUJg`b0Hr(^03Su zXC1)3XmU=?>{pwd=iCC`9dsS5fp<#}?hUjlglEA0akX=~$zF#hFO*LJP3Bo4CUuq4 z3jy*JDe6BkuUrX~4Vt|Sz9$hy(QN`DFa)_H0mx@$<!ZP?oHxu)NdgMT?db+X=HBjw zOb$hd1KEJL$!ZonlUQI)c>(gx7sGJCAVnuJg`|?&-I^|ehquZ|uuOcBKFE|3&eNIp z{Q|2Ymc+D<TqzQTv#vIN9n3kXv%>R5L*9InJQq_j&a|~5$&vp}JCCWTHnOW!VzoCP z3KHAG%2e-gA+ZL~Y{_k)HD7md2mSYoz0-C>T<=_e@9oZzu6=?^P$mr%8%Z#EO1H)3 z0$m{PQCO`6Vsh#+sSKWHbJ-MTOA@pGY<2}`VNErf(@7>HB&P$0+8}{a_ar(m6ZCm& zP!op9e*a!a!2OQobi&|OrK;4|z2r?E_5}S*6jp9ogfR~kke`OtU~bd6l?*%#PGfNq zrSN+Uuw5*@0-tS@oy8C+&>H}j$vKBPQf-W^RDGpM*)Kq#@MIuaUa1m~%9=5^!J($K z-|7||ZOMn9!Bj}$8=n@MRPmHjRjRfG&>@s1$tm0*rI>ad2mcgD<j+BZ+|d9e7OV-L zg8iK(0IPxJaL|{HEffeWT`NhBAa?;Xs&wqjT?>gQyT6MoI81;jMFg&2=?SDrPKOLf zZQXdrVIGJe6R*kYXQdr;vz})KfNi3`CpjuX0A5>IpebLvJkRhjjAxnvVyQ1QZl~|C zU4sxI<fN5Fn|z(v$hu%&($Ms=*oSeU(`GmtpKz{XC|+F(KDD(V-jQgUPSLacWT9-^ zvAK%Z%dZ`o7ny0d0G4y@<ykY!NXnzS0;(yp?K%PEBR61<Trn1l=N+EWEP!Ql8gbSN z<7?4>P!e#~w~XRXpgzgC;jC+ozF_zGw;d-gaz};ov8G%K^65+0t#^l0Pog)33LcHf z*6O@uD(oyDV4!m`mV}T7_?oV;N)0%=WS<)9d~Cvq8gjM)XW1ZrM1U}s#SzV<;FYc< zd2{DaYbn@@Iz;l$9J`BtpnkD_F*M{9u7|G6DpN*i^2*>m7vsZ()T?A3_(+$oZ@RJe zVfuNAKGgz*g2OIn3rf~K-L|Nl3O2H^LQH;S;_7F%fMq?EQK(6|2ac~xwwm&u!sM*i zU63k+)y~)9zhP^Qplf9nYW(co;e;jyDP{tjzn$wjD)Z8HFa^8Yqu+o7Q6{H$HG>N( z(CV=3mMm0ss9XL{uIGp>PUpWz5ZfZ78sb8`lXk2+N_+RZJFjDd&F#65H3@T*Zz^n| zJ6Qv-;_vl+E2T~zvR76j`j0N$p?F2H?~2a^*Nx+g;;(-gP7#0mW5K~}M8K{oSK_I@ zxBD{hOgqm08lP>RoxZ>I)-@=L!yeNWD8AXSVv*kg3%Lh+s`8qo?Z`hKP3e-<EHepf z7l_QiH(rzCNQ6^kvH6W~N86XVJHb6q;;6hu{AfCteQ^~uD06btoxx>6T<^}xL>!(b z=Sckxu?`8Nr7AXv&qtnvn6`SA^LCAUe)2FZII%AO61#An%Q`jdx0hvcTssOeqz2I{ z8<)f!_1llksfRXZ;dLIc)rZiTwkXT>L>d>|`9yf#cXl0PumfAjV}QOGA0)<u8q5e1 zs?Fe3-~T20f6hqGJmr_Tvn~B*cmH-Solj!{x5#rf#E+xVbAEu(GEYDOtl&R;9@A-n c$@iW60@vwHaSLu4z|9@<@!CbL+RhRF7hGmdBLDyZ From b5cb46421947d593d6a1d02d033e4af8afc8f8ad Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 8 Dec 2009 20:03:34 +0000 Subject: [PATCH 0547/1518] Update backup logo git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2318 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX2.png | Bin 1498 -> 3441 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Documentation/NuttX2.png b/Documentation/NuttX2.png index 6ed3e5a5755f0bb93088e05c8a6f4411a5f0b75b..422d1191fd21bbeafc908d5742a919a39e3d0211 100755 GIT binary patch literal 3441 zcmb7Hc~nzp7Jqppm;}%e37}Gm0)mN1C{vbN;i1Utf)J3PY$8i56cmw`2qcI~1=%b} z1r-s8fB~rpRS*-ZWsyx(7OfIm1QZI<AcQ~&^Sv;&J!k%ynUnKQPVVn_m+#)+yXVVy z?z^2dh^vVZ1ZlW9J9t1420<UZDzJ29T`vb;m>3VIZBS*W-dpfP^`M)R1GI>KiW*AK z0}CPAnH2*;YAewP16?fC1;%B^Tz2hP_FNsWrGoA3yf1<v_4h6g_RMcyOuX8fqsO8k zzwvc^h%Q_6^lG*|P;JsXTor`zg)O<J1;S8*uQ1Sp9;oslzeJC9yCjRQUTjc;>CW|% zNnXuQ#;t!{Q%)CkwVr3$CHVHmV&Y@i?E1H(6>fU=7TDAc0=LB#2*=sXj*P_=-<CU* zu&GZZ2KFSXYg;DPo?~MAKLGgO*8zuewKGbG)yhbL%18%Mz*X&(5+Ex9L<#&(RRSlK z08t50mpqmLt`dL&kaNWx!u;H1rA<Zp-!);e_%*NkIZ)8aH3lSVL_{zSPSJ>LM>tj4 z=RU!cEUU~NKHoiFw;H!bX9Z*2_S>oVt+zI{NoHH0*2g3&y65|>uy~0<<Hpx<m9wFg zb(kD|qU*Z{L!)u*FLoc-tXt-sXkyvKZjBN*dvNkYgB3#o`du${MJHliStOQpmswDV zsXfj)u|7?FK;|czYPy%_LmA9aS(Nl-S|!cBy4e~PJ>9`f`C+C@Gv|?a@|SAL;QNg~ z45x|3irEKyUh6Ou*|r&EX0j(`uvbdI<ash_cH*bD>Ze;IY9^*e`TKXWTp3=NNh87h zYWY;a;_gKIv|WU4n6=TWY}r_IK?o~vlT?-7vWL)lgmv*M+$JE(CBI1H+HP%HHL2mv zS2wcGxEYmK8X(%Vhcbv%%I<Xbl21&}i&C~e2urwfh1~9yw1OZWtskB+n$qsE_)YB{ zUY6jSJev9@eAQjS_nGN2$9GTo`KIh`Hi*Ei^-Ao^a}>W%yAxgeOmxAry*H=DhkLCp z%xxi(@@t-K{@6gVtjXA(`7o<Ee_<dezRP@V5YD<-QQNz#i%?N@q}G)&<TT>g5z;kR zKZDi&GV-S%ET5V!+PGzGu`k@BaCIk;2Xn)2nnf17S@pFL`FHl#wtMyxzc~6eyHB+9 za6`xaBcD>5Hc4)H#O{uk5sZZ~UH%PL&$}r;3Bk-V;Xq6RbHPtSOMDnBirDN0#Z*GZ zIxmbCM^lM~kp>51Zj~{)TSsgUE?k-#=*VUZ=OHhMkHPU685M|H0B-WG_N`uh%;)1O z!+j5VLuSUpZi;gvEm~Z2Re^uZTHcGtGrq$4_S34)V0!@X#)FG4ooNF3IVg;eNIba> zhCBtH<et2eF_xK=t39Ym!BhITCtLK0cx?eVyh)>9%j_r-?~W@MrjXlb&Y7*~5w!?f zD<F)Kk2cKY(ioa-`HuSy<7Pt*b}*Jvn0-Nj<-uM>b8Eblt_?eJAlE#7OgTc~DNgqU zXyHi+3k`-$$N4N&jISP%T!1hp2oJ^M`vOYXNmx9BSq)Qoa8H1EF73ED6UDa|p%KSf zNt)sXO)7*7$1?-5m9ojZ&uNd*v=CZJl?Sd)3KAlmY}$5Z3fpe+!bSulx`!we%<u*3 zQiT@q=Y7g7A~KWMJpp;_BqE6eGgr~vaTx_`q@WoPD6sfrEE*~IuN*ukcM>gtR77;R zPCSMd$AP?xi2Nlxhj6E%!Ha`t7sgLpoyQWuaS3FQihF4^v}vwjM=};)#K#gq2ZR|h z7VL$P3sekjLbq4e|MVrZT)-zAB2b8tGY1rOJinlP`ogZiIbEW=FAQe~nqWF5vTcyf z%yA0@@Fw?h$ISZHMyaYIJq-iusl;~SU5dpm(8Bv$Me0~iIa}bR4}qRadC2sIr<jT{ zt_ro$dx8T>e_0P`{>Hay%ZME883H3sUR!7b>|czThgAr=Gs3Ia>Oy3_&BAn`7N9H8 zHuFo}p*AGQm5~lrx9tH(X`s0;{1WTjHun%?(ijaFx+H?4{P#zXnbmsw<{1+a!fDDN zAN7Ct#Kt4(y-|O$tvU2&;-dBhp$wr|gMJD0$Ps%l;~~9?%a(HlFfQx;!1x6@;##6P zl%5y3Wljf($T|iX50E3A7S=<l8yb7(bpX@nIyiwXq1JzeI@E2{Ka+@@x(d_1i{{!k zHaaFk<*rrPSHJ}NfP&iSe_8(F^q-dIeMNI=>;BGZ265618bhriW-b-zIObR&D8WZL zq;&`-JYzY~vQl*5$c|wTOSeDM$H0e(=s=^RYSSA(6G@7Js5o;5K;tmIPn6f}@fM4R zn(@(o`>qv%(o5$&xkp%i({?!LWT?DVT<sP}W^%`Fis=FxBTsI-l1hMihJr;hl>l<} z=}>f?5*Ix=hWMgn`F#@v<?g|CZWb)k5i*uhEnlmpB$mQqxgr*9Xb)LD5=UTiP{Grp zEoG4)4xI0jSOC(2xh2?INf()cwlY6M)cvG<v$oP*Dl6m(Pe|%rK_Y6kymHA}3Rgdh z(!u0VIq8yLcX14P@QuDJ#CBtWA6opUtx<7kBL0CS8smbz4xfd^96I9KHj@Gbm98|p z`SuzwM`WkaaKf|GrSR09YaK_aP>Wd!<l>I=zF|kne?W=sRZ&3_uVO)kRUQjv!r8CG zy_Rc1vQs1~VWa{qkLL%<g!!Apy;kTUkunV(G#CqXVdUj}2LkcxMhh@|xz8tYjyD9R zG1uYXiRsWli1})$<9nWvMPvMoc6Q$&iORXPFAi+0Ql8LRJnzZ1c?~A{=usx*HK;|= zo$%DBG0w=*l_k?GBJK>}YL4HG$A!jkSp(kLjdozfWpu{T1uwoZUH=djfsDYqqcI|J zp*#VNk}oshgO|NT4z|fZ`NEykRx!BFcf&>>Z8wDJ(^mU&ogZpqfo&5g<0&(6WUinL zj*5yRfGtD<(<wvH<(7huE(_f?SK*#3M6e*J2v7I~bZ?1Qb?_sR@AHvK@BKIRS%vV? zpWNw>K^=ODdW}2(wA21e44!gW1d>TtU8O1)GJQNo@%d5F8|yc4;>44L44O9;h$4qy zCKV41=xV}-jl~q73dLlbxTDz^Tn*}npTB)2d9!d>3KO!hK^h>!;ChNrnZnj@i*#7J z5uDD2)T@qvoP1dT-*_g<t0`6z&v78rci+;hwk`P8Su)Wad;+NmXBU9$^iN{*aTI4D z&%+QlT&3NUYtbhfh`Fis>$K-sIw**RHH!Go*b>k&9-JQxJIrVtJ%;P_Npk9l6chjG zNS)^Zi7`rvB+K?U#KH=NWBYZ$C8yZzjK0O>I9GGy_YH!{#ZSgF17Cjy5cTFf4U4BE z9%5{&i`BDU$>&ZH`-gSzD%N-O_)})5UP)$N+B};5_K$$QJC_q2<=39<H=J#=deV8^ zCAUUi-o65pGx#;-o7T~-(th{7Y6j)<wGBxLQ@_2Rsy7%h9*;Ax!+Nh`7>6{UhfK4y z!sb&?W!oo?zEmr$X-C_(yd@Kg6t=6`z1YyULEulhBfXcdyAQnLx>HAi_AC#b-9`HH zT1cMgGNnIwx8pfeOirMWeYQwJzUP<%u7GtvT$fMUbmV-vCNj_o(sRmayq=_%EN_xL zp2ue9pUEB?Klk{2?w|=_AnN<WJKo?j-(P5A*~Pvl>#p<v<i5i}O|zT#2F(|BR~GH~ zjG3}mO!vwQxE>rw_~YnomfO(I6VeI0iYuMt#%B)^9<M(wp{Kb8u36nQR`uSe@3Uvt zD~nF42bZ81-!&gr7lea?wJp+Jq~>R7_u2RG9?|CPpcHv}E_^%x9OmqH4tB8Lo<oJ3 z)4wX*glFD04zJjbDK61%S%FQ>Nv7I?Tlv{!Il?j7s4h_ffVC2U*C~M%C7`7Qe3m?x zfYVAqPYHap<gp(0aLrNz_DTTTism32{$GH>tX0sDngbiY3q$`8K`uLXJ5+89O#T;$ CTEL?K delta 1455 zcma)+`#;lr9LGPiHkYqC3+*A@Tw*wOT%w#JBbP*|<}@Ql#*Q&`tT{Z|c6L-aM8~Dl zg^s8w%xuEK+!DEj8FOh;iJIypDwodA<8l6g^TYe{!}IZezh1w*KIqFJ!*qXNPn3qf z1^@u%b<pjoau)wvYDi`Oqdy9F(a@Q#ir!&&M1yt<00ha)&4rL8Q(X7<oxtn5E3|V9 zjBHM}n-Y&KwYU=9cDI{4c5AAq2X>|YgiaWWWuBRO_%1lz1%F8TaUVlQX>5E&2{d)} zD2-QB1KMEc2A~eKRXEB4!>e#ofdLHf3UYvfAvg$f&|oJxsKnS~6Y*-NW|vp8mj%zB z^;Ycy8g}JT{N$0u)u1;r`a~4*jmNfcmB{J(!sOo^>OK=DN;}LsuL(Uj3Q5xAgzr4s zdG3`ay+#p!I=atV3A7(2Mdw$>>-xX3LPE5hqQ5VhJ{B|lC_C$HQ!8_xi970nG1q$M zrB*Vcoe*5An&ip;oZMU9S60n0LUDp5l~i$d(R+cLlW-!Vf~*n1_tazF3|k)=+jT(@ zQ2mmDzm#7qyOm)(<=Q5~5+YX4I;pmEf9(u(KsV`FG_1K+ae3qmA2w;F&88l$4yD4w z#am}Aw(2#jmxedLN49g<b4BqSk!jwaYdba55D&4;o9wXtI){2$w#ZDnSYYaLh42*1 zZ~#2=_7$(qXeinDm22A~Hm`i`g_2+MrD&jrZuoaE<=Pow7D-*3^vm|$99Cdyc+1ye z&DJ1XygxKmx0f}je6>AS5J4a9x+kgq<ZUcbVB_!<D7=}YWO|ykMmty-B_qq_v(4-+ z8xc|#d*QO1uqX@0E2d|V+G<DxPgwy##7@?LC+I?z_Vsm$fO{$Sjy*FoJ1j>>xG8U$ zbM11R9#pn}Rue8CIY$ZE*f`oh$Qi@k5kA*K7+@Sjb92{XP?sg#4C$6OSQ^4l`XbVq z29M+y&rcTQD0O_JovJNjKZNm#{$E0VAp)MfxiDC9sg<*UA+QHc?Kpv!#75K7$=RW| z1)ImXfeI{4=~@tK0dEK#cxg^k2fX6jYlE8yI=H??HWy)N=<AqODXfI(&v=(R3?i%L zQ#KVUCu;gc7g3E%g6s5s-LTg&V%no}s<;-pRZ>l=nhR&Uc!6y=A}uo-;}hF5g{oL1 zX<_mZ1CP0aM`aP>MdVva^|316EOhRgr5VbA>A8rb{@g-E(J0QUP&fR+r|o8#4J`x| zE!O!{It4~P3^kmQ#3e$cDz2yV9%&D&8&j)P7EKyh-zztRmV`y+i2HyLx-s<Y{Uu+F z4?6*Ss}8X&>t}?Qs`v{6gO(TLdE~+ramn#^DR&{-#T!Tp1x!z4Rj4dkKQa$NgDp^9 zf<QnaL&2iYV|<n!$#KvKa$K>|js{ACs-^UTl+%%_csL|f+1pCL2F&Q<sgy4s0<x?> zwRX1$E$4*gWtA2x<{qV4pOM8DlIQ(81h$=B`PfEExVUnbr9AqrUM}lQi=WKeHpC-K z^Q&qQUm{a8I@1!RE*;!C5JM3=Wy_?Zh1=0Cnr02jiFeISI0Br5OzF0rLqx+Zh}N?1 z<*TcN8Uv&qUp~3|)%$MQFc1pmVCC_3C>-C1uqiG<c#iq8d%1c8qufx#Orj3hZ9PO? zQS_=oDr5@e!S_j2E~*F26)(rfxq$eTdZd4gaS$48xq2u8`|(D0K8$R_cMr9XtChn5 z%JL4iIh%|(fy#q-WhVWg#u<OYxbvP(#EB|<Q4eCHpV%E9nx0-iU061!Ae0!jG50k0 z6<M(>9IdR*&-``L%?Tuhm5kt@)OJ0`IZPXww(12*;hZR~roZd2wMIP0B^@wsYBVWD z&NFZ8Inl0MqWorUYbiqL{1;^ZC-1r{R}qh+ez&EE1RE+N7<jq+BHSun$=rVc1Q?G@ From a1590d62a36095580035533aa5b8730033766c96 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 12 Dec 2009 15:16:44 +0000 Subject: [PATCH 0548/1518] Update porting guide git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2324 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 191 ++++++++++++++++++++++++++- 1 file changed, 189 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 93c629fe51..b401adcdbe 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@ <h1><big><font color="#3c34ec"> <i>NuttX RTOS Porting Guide</i> </font></big></h1> - <p>Last Updated: November 17, 2009</p> + <p>Last Updated: December 12, 2009</p> </td> </tr> </table> @@ -115,7 +115,9 @@ <a href="#ethdrivers">6.3.1 Ethernet Device Drivers</a><br> <a href="#spidrivers">6.3.2 SPI Device Drivers</a><br> <a href="#i2cdrivers">6.3.3 I2C Device Drivers</a><br> - <a href="#serialdrivers">6.3.4 Serial Device Drivers</a> + <a href="#serialdrivers">6.3.4 Serial Device Drivers</a><br> + <a href="#fbdrivers">6.3.5 Frame Buffer Drivers</a><br> + <a href="#mtddrivers">6.3.6 Memory Technology Device Drivers</a> </ul> </ul> <a href="#apndxconfigs">Appendix A: NuttX Configuration Settings</a><br> @@ -1909,6 +1911,191 @@ extern void up_ledoff(int led); </li> </ul> +<h3><a name="fbdrivers">6.3.5 Frame Buffer Drivers</a></h3> + +<ul> + <li> + <b><code>include/nuttx/fb.h</code></b>. + All structures and APIs needed to work with serial drivers are provided in this header file. + </li> + <li> + <b><code>struct fb_vtable_s</code></b>. + Each frame buffer device driver must implement an instance of <code>struct fb_vtable_s</code>. + That structure defines a call table with the following methods: + <p> + Get information about the video controller configuration and the configuration of each color plane. + </p> + <ul> + <p><code>int (*getvideoinfo)(FAR struct fb_vtable_s *vtable, FAR struct fb_videoinfo_s *vinfo);</code><br> + <code>int (*getplaneinfo)(FAR struct fb_vtable_s *vtable, int planeno, FAR struct fb_planeinfo_s *pinfo);</code></p> + </ul> + <p> + The following are provided only if the video hardware supports RGB color mapping: + </p? + <ul> + <p><code>int (*getcmap)(FAR struct fb_vtable_s *vtable, FAR struct fb_cmap_s *cmap);</code><br> + <code>int (*putcmap)(FAR struct fb_vtable_s *vtable, FAR const struct fb_cmap_s *cmap);</code></p> + </ul> + <p> + The following are provided only if the video hardware supports a hardware cursor: + </p> + <ul> + <p><code>int (*getcursor)(FAR struct fb_vtable_s *vtable, FAR struct fb_cursorattrib_s *attrib);</code><br> + <code>int (*setcursor)(FAR struct fb_vtable_s *vtable, FAR struct fb_setcursor_s *settings);</code></p> + </ul> + </li> + <li> + <b>Binding Frame Buffer Drivers</b>. + Frame buffer drivers are not normally directly accessed by user code, but are usually bound to another, + higher level device driver. + In general, the binding sequence is: + <ul> + <li>Get an instance of <code>struct fb_vtable_s</code> from the hardware-specific frame buffer device driver, and </li> + <li>Provide that instance to the initialization method of the higher level device driver.</li> + </ul> + </li> + <li> + <b>Examples</b>: + <code>arch/sim/src/up_framebuffer.c</code>. + See also the usage of the frame buffer driver in the <code>graphics/</code> directory. + </li> +</ul> + +<h3><a name="mtddrivers">6.3.6 Memory Technology Device Drivers</a></h3> + +<ul> + <li> + <b><code>include/nuttx/mtd.h</code></b>. + All structures and APIs needed to work with serial drivers are provided in this header file. + </li> + <li> + <b><code>struct mtd_dev_s</code></b>. + Each MTD device driver must implement an instance of <code>struct mtd_dev_s</code>. + That structure defines a call table with the following methods: + <p> + Erase the specified erase blocks (units are erase blocks): + </p> + <ul> + <p><code>int (*erase)(FAR struct mtd_dev_s *dev, off_t startblock, size_t nblocks);</code></p> + </ul> + <p> + Read/write from the specified read/write blocks: + </p? + <ul> + <p><code>ssize_t (*bread)(FAR struct mtd_dev_s *dev, off_t startblock, size_t nblocks, FAR ubyte *buffer);</code><br> + <code>ssize_t (*bwrite)(FAR struct mtd_dev_s *dev, off_t startblock, size_t nblocks, FAR const ubyte *buffer);</code></p> + </ul> + <p> + Some devices may support byte oriented reads (optional). + Most MTD devices are inherently block oriented so byte-oriented writing is not supported. + It is recommended that low-level drivers not support read() if it requires buffering. + </p> + <ul> + <p><code>ssize_t (*read)(FAR struct mtd_dev_s *dev, off_t offset, size_t nbytes, FAR ubyte *buffer);</code></p> + </ul> + <p> + Support other, less frequently used commands: + </p> + <ul> + <li><code>MTDIOC_GEOMETRY</code>: Get MTD geometry</li> + <li><code>MTDIOC_XIPBASE:</code>: Convert block to physical address for eXecute-In-Place</li> + <li><code>MTDIOC_BULKERASE</code>: Erase the entire device</li> + </ul> + <p> + is provided via a sinble <code>ioctl</code> method (see <code>include/nuttx/ioctl.h</code>): + </p> + <ul> + <p><code>int (*ioctl)(FAR struct mtd_dev_s *dev, int cmd, unsigned long arg);</code></p> + </ul> + </li> + <li> + <b>Binding MTD Drivers</b>. + MTD drivers are not normally directly accessed by user code, but are usually bound to another, + higher level device driver. + In general, the binding sequence is: + <ul> + <li>Get an instance of <code>struct mtd_dev_s</code> from the hardware-specific MTD device driver, and </li> + <li>Provide that instance to the initialization method of the higher level device driver.</li> + </ul> + </li> + <li> + <b>Examples</b>: + <code>drivers/mtd/m25px.c</code> and <code>drivers/mtd/ftl.c</code> + </li> +</ul> + +<h3><a name="sdiodrivers">6.3.7 SDIO Device Drivers</a></h3> + +<ul> + <li> + <b><code>include/nuttx/sdio.h</code></b>. + All structures and APIs needed to work with serial drivers are provided in this header file. + </li> + <li> + <b><code>struct sdio_dev_s</code></b>. + Each MTD device driver must implement an instance of <code>struct sdio_dev_s</code>. + That structure defines a call table with the following methods: + <p> + Initialization/setup: + </p> + <ul> + <p><code>void (*reset)(FAR struct sdio_dev_s *dev);</code><br> + <code>ubyte (*status)(FAR struct sdio_dev_s *dev);</code><br> + <code>void (*widebus)(FAR struct sdio_dev_s *dev, boolean enable);</code><br> + <code>void (*clock)(FAR struct sdio_dev_s *dev, enum sdio_clock_e rate);</code><br> + <code>int (*attach)(FAR struct sdio_dev_s *dev);</code></p> + </ul> + <p> + Command/Status/Data Transfer: + </p? + <ul> + <p><code>void (*sendcmd)(FAR struct sdio_dev_s *dev, uint32 cmd, uint32 arg);</code><br> + <code>int (*recvsetup)(FAR struct sdio_dev_s *dev, FAR ubyte *buffer, size_t nbytes);</code><br> + <code>int (*sendsetup)(FAR struct sdio_dev_s *dev, FAR const ubyte *buffer, size_t nbytes);</code><br> + <code>int (*cancel)(FAR struct sdio_dev_s *dev);</code><br> + <code>int (*waitresponse)(FAR struct sdio_dev_s *dev, uint32 cmd);</code><br> + <code>int (*recvR1)(FAR struct sdio_dev_s *dev, uint32 cmd, uint32 *R1);</code><br> + <code>int (*recvR2)(FAR struct sdio_dev_s *dev, uint32 cmd, uint32 R2[4]);</code><br> + <code>int (*recvR3)(FAR struct sdio_dev_s *dev, uint32 cmd, uint32 *R3);</code><br> + <code>int (*recvR4)(FAR struct sdio_dev_s *dev, uint32 cmd, uint32 *R4);</code><br> + <code>int (*recvR5)(FAR struct sdio_dev_s *dev, uint32 cmd, uint32 *R5);</code><br> + <code>int (*recvR6)(FAR struct sdio_dev_s *dev, uint32 cmd, uint32 *R6);</code><br> + <code>int (*recvR7)(FAR struct sdio_dev_s *dev, uint32 cmd, uint32 *R7);</code></p> + </ul> + <p> + Event/Callback support: + </p> + <ul> + <p><code>void (*waitenable)(FAR struct sdio_dev_s *dev, sdio_eventset_t eventset);</code><br> + <code>sdio_eventset_t (*eventwait)(FAR struct sdio_dev_s *dev, uint32 timeout);</code><br> + <code>void (*callbackenable)(FAR struct sdio_dev_s *dev, sdio_eventset_t eventset);</code><br> + <code>int (*registercallback)(FAR struct sdio_dev_s *dev, worker_t callback, void *arg);</code></p> + </ul> + <p> + DMA support: + </p> + <ul> + <p><code>boolean (*dmasupported)(FAR struct sdio_dev_s *dev);</code><br> + <code>int (*dmarecvsetup)(FAR struct sdio_dev_s *dev, FAR ubyte *buffer, size_t buflen);</code><br> + <code>int (*dmasendsetup)(FAR struct sdio_dev_s *dev, FAR const ubyte *buffer, size_t buflen);</code></p> + </ul> + </li> + <li> + <b>Binding SDIO Drivers</b>. + SDIO drivers are not normally directly accessed by user code, but are usually bound to another, + higher level device driver. + In general, the binding sequence is: + <ul> + <li>Get an instance of <code>struct sdio_dev_s</code> from the hardware-specific SDIO device driver, and </li> + <li>Provide that instance to the initialization method of the higher level device driver.</li> + </ul> + </li> + <li> + <b>Examples</b>: + <code>arch/arm/src/stm32/stm32_sdio.c</code> and <code>drivers/mmcsd/mmcsd_sdio.c</code> + </li> +</ul> + <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> From 4822754c55efd60ee55e3bff05ab587affb08d34 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 12 Dec 2009 15:21:02 +0000 Subject: [PATCH 0549/1518] Oops, didn't update TOC git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2325 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index b401adcdbe..de45bf743d 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -117,7 +117,8 @@ <a href="#i2cdrivers">6.3.3 I2C Device Drivers</a><br> <a href="#serialdrivers">6.3.4 Serial Device Drivers</a><br> <a href="#fbdrivers">6.3.5 Frame Buffer Drivers</a><br> - <a href="#mtddrivers">6.3.6 Memory Technology Device Drivers</a> + <a href="#mtddrivers">6.3.6 Memory Technology Device Drivers</a><br> + <a href="#sdiodrivers">6.3.7 SDIO Device Drivers</a><br> </ul> </ul> <a href="#apndxconfigs">Appendix A: NuttX Configuration Settings</a><br> From c2d264378c5343e3c567a9c8eb0d775cdd3a0bef Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 13 Dec 2009 18:01:46 +0000 Subject: [PATCH 0550/1518] types blkcnt_t and off_t should not depend on memory model; Remove non-standard type STATUS git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2330 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 7 +++++- Documentation/NuttxPortingGuide.html | 15 ++++++++++--- Documentation/NuttxUserGuide.html | 33 ++++++++++++++-------------- 3 files changed, 34 insertions(+), 21 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 00b100abb0..bbe8fb6b51 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: December 5 2009</p> + <p>Last Updated: December 13, 2009</p> </td> </tr> </table> @@ -1616,6 +1616,11 @@ nuttx-2010.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; can be used with any file system. Good performance of this layer will depend upon functioning write buffer support! NOTE: FTL support is untested as of the initial check-in. + * Numerous minor changes for m68hc12 to eliminate compilation errors and + warnings due to the fact that it uses 16-bit integer types and for casts + between uint32 (32-bits) and an mc68hc12 pointer (16-bits). + * sys/types: Size of off_t and blkcnt_t should not depend on size of + int in the architecture; Removed non-standard type STATUS pascal-2010.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index de45bf743d..a7880d8f8d 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -438,8 +438,10 @@ <li><code>arch/arm/include/lpc214x</code> and <code>arch/arm/src/lpc214x</code>: These directories provide support for NXP LPC214x family of processors. - STATUS: This port is in progress and should be available in the - nuttx-0.2.5 release. + STATUS: This port boots and passes the OS test (examples/ostest). + The port is complete and verified. As of NuttX 0.3.17, the port includes: + timer interrupts, serial console, USB driver, and SPI-based MMC/SD card + support. A verified NuttShell configuration is also available. </li> </ul> @@ -700,7 +702,14 @@ <li><code>configs/us7032evb1</code>: This is a port of the Hitachi SH-1 on the Hitachi SH-1/US7032EVB1 board. - STATUS: Work has just began on this port. + STATUS: This port is available as of release 0.3.18 of NuttX. The port is basically + complete and many examples run correctly. However, there are remaining instabilities + that make the port un-usable. The nature of these is not understood; the behavior is + that certain SH-1 instructions stop working as advertised. This could be a silicon + problem, some pipeline issue that is not handled properly by the gcc 3.4.5 toolchain + (which has very limited SH-1 support to begin with), or perhaps with the CMON debugger. + At any rate, I have exhausted all of the energy that I am willing to put into this cool + old processor for the time being. </li> <li><code>configs/xtrs</code>: diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 3a3eafe3ea..5d477c8cfc 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -13,7 +13,7 @@ <h1><big><font color="#3c34ec"><i>NuttX Operating System<p>User's Manual</i></font></big></h1> <p><small>by</small></p> <p>Gregory Nutt<p> - <p>Last Updated: May 22, 2009</p> + <p>Last Updated: December 13, 2009</p> </td> </tr> </table> @@ -296,8 +296,8 @@ VxWorks provides the following similar interface: <b>Function Prototype:</b> <pre> #include &lt;sched.h&gt; - STATUS task_init(_TCB *tcb, char *name, int priority, uint32 *stack, uint32 stack_size, - maint_t entry, const char *argv[]); + int task_init(_TCB *tcb, char *name, int priority, uint32 *stack, uint32 stack_size, + maint_t entry, const char *argv[]); </pre> <p> @@ -368,7 +368,7 @@ VxWorks provides the following similar interface: <b>Function Prototype:</b> <pre> #include &lt;sched.h&gt; - STATUS task_activate( _TCB *tcb ); + int task_activate( _TCB *tcb ); </pre> <p> @@ -418,7 +418,7 @@ the pointer to the WIND_TCB cast to an integer. <b>Function Prototype:</b> <pre> #include &lt;sched.h&gt; - STATUS task_delete( pid_t pid ); + int task_delete( pid_t pid ); </pre> <p> @@ -514,7 +514,7 @@ And the UNIX interface: <b>Function Prototype:</b> <pre> #include &lt;sched.h&gt; - STATUS task_restart( pid_t pid ); + int task_restart( pid_t pid ); </pre> <p> @@ -974,7 +974,7 @@ priority of the calling task is returned. <b>Function Prototype:</b> <pre> #include &lt;sched.h&gt; - STATUS sched_lock( void ); + int sched_lock( void ); </pre> <p> @@ -994,7 +994,7 @@ number of times) or until it blocks itself. <p> <b>Assumptions/Limitations:</b> <p> -<b> POSIX Compatibility:</b> This is a NON-POSIX interface. +<b>POSIX Compatibility:</b> This is a NON-POSIX interface. VxWorks provides the comparable interface: <pre> STATUS taskLock( void ); @@ -1006,7 +1006,7 @@ VxWorks provides the comparable interface: <b>Function Prototype:</b> <pre> #include &lt;sched.h&gt; - STATUS sched_unlock( void ); + int sched_unlock( void ); </pre> <p> @@ -1027,7 +1027,7 @@ eligible to preempt the current task will execute. <p> <b>Assumptions/Limitations:</b> <p> -<b> POSIX Compatibility:</b> This is a NON-POSIX interface. +<b>POSIX Compatibility:</b> This is a NON-POSIX interface. VxWorks provides the comparable interface: <pre> STATUS taskUnlock( void ); @@ -2296,7 +2296,7 @@ initialization time). <b>Function Prototype:</b> <pre> #include &lt;wdog.h&gt; - STATUS wd_delete (WDOG_ID wdog); + int wd_delete (WDOG_ID wdog); </pre> <p> @@ -2321,7 +2321,7 @@ pointer to a watchdog structure. caller to assure that the watchdog is inactive before deleting it. <p> -<b> POSIX Compatibility:</b> This is a NON-POSIX interface. +<b>POSIX Compatibility:</b> This is a NON-POSIX interface. VxWorks provides the following comparable interface: <pre> STATUS wdDelete (WDOG_ID wdog); @@ -2340,7 +2340,7 @@ before deallocating it (i.e., never returns ERROR). <b>Function Prototype:</b> <pre> #include &lt;wdog.h&gt; - STATUS wd_start( WDOG_ID wdog, int delay, wdentry_t wdentry, + int wd_start( WDOG_ID wdog, int delay, wdentry_t wdentry, intt argc, ....); </pre> @@ -2378,7 +2378,7 @@ wd_start() on a given watchdog ID has any effect. context of the timer interrupt handler and is subject to all ISR restrictions. <p> -<b> POSIX Compatibility:</b> This is a NON-POSIX interface. +<b>POSIX Compatibility:</b> This is a NON-POSIX interface. VxWorks provides the following comparable interface: <pre> STATUS wdStart (WDOG_ID wdog, int delay, FUNCPTR wdentry, int parameter); @@ -2397,7 +2397,7 @@ number of parameters is determined by <b>Function Prototype:</b> <pre> #include &lt;wdog.h&gt; - STATUS wd_cancel (WDOG_ID wdog); + int wd_cancel (WDOG_ID wdog); </pre> <p> @@ -2419,7 +2419,7 @@ level. <p> <b>Assumptions/Limitations:</b> <p> -<b> POSIX Compatibility:</b> This is a NON-POSIX interface. +<b>POSIX Compatibility:</b> This is a NON-POSIX interface. VxWorks provides the following comparable interface: <pre> STATUS wdCancel (WDOG_ID wdog); @@ -7392,7 +7392,6 @@ interface include: <li>pid_t <li>size_t <li>sigset_t -<li>STATUS <li>time_t </ul> From 7131ec688d52021320871de16dece9d4c12a525f Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 14 Dec 2009 15:46:55 +0000 Subject: [PATCH 0551/1518] Changing NuttX fixed size type names to C99 standard names -- things will be broken for awhile git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2335 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index bbe8fb6b51..6774545144 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1621,6 +1621,8 @@ nuttx-2010.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; between uint32 (32-bits) and an mc68hc12 pointer (16-bits). * sys/types: Size of off_t and blkcnt_t should not depend on size of int in the architecture; Removed non-standard type STATUS + * include/ - Added header files stdint.h, stdbool.h, cxx/cstdint, and + cxx/cstdbool pascal-2010.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 10e37ac9d9b043c37f5086cfd0ebb18afc2ed1fc Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 16 Dec 2009 20:30:06 +0000 Subject: [PATCH 0552/1518] Changing NuttX fixed size type names to C99 standard names -- things will be broken for awhile git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2360 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NXGraphicsSubsystem.html | 100 ++++++++++++------------- Documentation/NuttX.html | 6 +- Documentation/NuttxPortingGuide.html | 95 ++++++++++++----------- Documentation/NuttxUserGuide.html | 46 ++++++------ 4 files changed, 129 insertions(+), 118 deletions(-) diff --git a/Documentation/NXGraphicsSubsystem.html b/Documentation/NXGraphicsSubsystem.html index 6d4597acfb..22aa5f9625 100644 --- a/Documentation/NXGraphicsSubsystem.html +++ b/Documentation/NXGraphicsSubsystem.html @@ -12,7 +12,7 @@ <h1><big><font color="#3c34ec"> <i>NX Graphics Subsystem</i> </font></big></h1> - <p>Last Updated: December 5, 2008</p> + <p>Last Updated: December 16, 2008</p> </td> </tr> </table> @@ -422,8 +422,8 @@ Holds one device pixel. NXGLIB will select the smallest size for the <code>nxgl_mxpixel_t</code> that just contains the pixel: <code>byte</code> if 16, 24, and 32 resolution - support is disabled, <code>uint16</code> if 24, and 32 resolution - support is disabled, or <code>uint32</code>. + support is disabled, <code>uint16_t</code> if 24, and 32 resolution + support is disabled, or <code>uint32_t</code>. </p> <p> @@ -433,7 +433,7 @@ to change: </p> <ul><pre> -typedef sint16 nxgl_coord_t; +typedef int16_t nxgl_coord_t; </pre></ul> <p> @@ -501,7 +501,7 @@ struct nxgl_trapezoid_s <p><b>Function Prototype:</b></p> <ul><pre> #include &lt;nuttx/nxglib.h&gt; -void nxgl_rgb2yuv(ubyte r, ubyte g, ubyte b, ubyte *y, ubyte *u, ubyte *v); +void nxgl_rgb2yuv(uint8_t r, uint8_t g, uint8_t b, uint8_t *y, uint8_t *u, uint8_t *v); </pre></ul> <p> <b>Description:</b> @@ -512,7 +512,7 @@ void nxgl_rgb2yuv(ubyte r, ubyte g, ubyte b, ubyte *y, ubyte *u, ubyte *v); <p><b>Function Prototype:</b></p> <ul><pre> #include &lt;nuttx/nxglib.h&gt; -void nxgl_yuv2rgb(ubyte y, ubyte u, ubyte v, ubyte *r, ubyte *g, ubyte *b); +void nxgl_yuv2rgb(uint8_t y, uint8_t u, uint8_t v, uint8_t *r, uint8_t *g, uint8_t *b); </pre></ul> <p> <b>Description:</b> @@ -617,24 +617,24 @@ nxgl_nonintersecting(FAR struct nxgl_rect_s result[4], <p><b>Function Prototype:</b></p> <ul><pre> #include &lt;nuttx/nxglib.h&gt; -boolean nxgl_rectoverlap(FAR struct nxgl_rect_s *rect1, - FAR struct nxgl_rect_s *rect2); +bool nxgl_rectoverlap(FAR struct nxgl_rect_s *rect1, + FAR struct nxgl_rect_s *rect2); </pre></ul> <p> <b>Description:</b> - Return TRUE if the two rectangles overlap. + Return true if the two rectangles overlap. </p> <h3>2.2.11 <a name="nxglrectinside"><code>nxgl_rectinside()</code></a></h3> <p><b>Function Prototype:</b></p> <ul><pre> #include &lt;nuttx/nxglib.h&gt; -boolean nxgl_rectinside(FAR const struct nxgl_rect_s *rect, - FAR const struct nxgl_point_s *pt); +bool nxgl_rectinside(FAR const struct nxgl_rect_s *rect, + FAR const struct nxgl_point_s *pt); </pre></ul> <p> <b>Description:</b> - Return TRUE if the point <code>pt</code> lies within <code>rect</code>. + Return true if the point <code>pt</code> lies within <code>rect</code>. </p> <h3>2.2.12 <a name="nxglrectsize"><code>nxgl_rectsize()</code></a></h3> @@ -653,11 +653,11 @@ void nxgl_rectsize(FAR struct nxgl_size_s *size, <p><b>Function Prototype:</b></p> <ul><pre> #include &lt;nuttx/nxglib.h&gt; -boolean nxgl_nullrect(FAR const struct nxgl_rect_s *rect); +bool nxgl_nullrect(FAR const struct nxgl_rect_s *rect); </pre></ul> <p> <b>Description:</b> - Return TRUE if the area of the retangle is &lt;= 0. + Return true if the area of the retangle is &lt;= 0. </p> <h3>2.2.14 <a name="nxglrunoffset"><code>nxgl_runoffset()</code></a></h3> @@ -775,17 +775,17 @@ typedef FAR void *NXWINDOW; struct nx_callback_s { void (*redraw)(NXWINDOW hwnd, FAR const struct nxgl_rect_s *rect, - boolean more, FAR void *arg); + bool more, FAR void *arg); void (*position)(NXWINDOW hwnd, FAR const struct nxgl_size_s *size, FAR const struct nxgl_point_s *pos, FAR const struct nxgl_rect_s *bounds, FAR void *arg); #ifdef CONFIG_NX_MOUSE void (*mousein)(NXWINDOW hwnd, FAR const struct nxgl_point_s *pos, - ubyte buttons, FAR void *arg); + uint8_t buttons, FAR void *arg); #endif #ifdef CONFIG_NX_KBD - void (*kbdin)(NXWINDOW hwnd, ubyte nch, FAR const ubyte *ch, FAR void *arg); + void (*kbdin)(NXWINDOW hwnd, uint8_t nch, FAR const uint8_t *ch, FAR void *arg); #endif }; </pre></ul> @@ -796,7 +796,7 @@ struct nx_callback_s <p><b>Callback Function Prototype:</b></p> <ul><pre> void redraw(NXWINDOW hwnd, FAR const struct nxgl_rect_s *rect, - boolean more, FAR void *arg); + bool more, FAR void *arg); </pre></ul> <p> <b>Description:</b> @@ -812,7 +812,7 @@ void redraw(NXWINDOW hwnd, FAR const struct nxgl_rect_s *rect, <dt><code>rect</code> <dd>The rectangle that needs to be re-drawn (in window relative coordinates) <dt><code>more</code> - <dd>TRUE: More re-draw requests will follow + <dd>true: More re-draw requests will follow <dt><code>arg</code> <dd>User provided argument (see <a href="#nxopenwindow"><code>nx_openwindow()</code></a>) </dl></ul> @@ -860,7 +860,7 @@ void position(NXWINDOW hwnd, FAR const struct nxgl_size_s *size, <ul><pre> #ifdef CONFIG_NX_MOUSE void mousein(NXWINDOW hwnd, FAR const struct nxgl_point_s *pos, - ubyte buttons, FAR void *arg); + uint8_t buttons, FAR void *arg); #endif </pre></ul> <p> @@ -889,7 +889,7 @@ void mousein(NXWINDOW hwnd, FAR const struct nxgl_point_s *pos, <p><b>Callback Function Prototype:</b></p> <ul><pre> #ifdef CONFIG_NX_KBD -void (*kbdin)(NXWINDOW hwnd, ubyte nch, FAR const ubyte *ch, FAR void *arg); +void (*kbdin)(NXWINDOW hwnd, uint8_t nch, FAR const uint8_t *ch, FAR void *arg); #endif </pre></ul> <p> @@ -1677,8 +1677,8 @@ int nx_bitmap(NXWINDOW hwnd, FAR const struct nxgl_rect_s *dest, #include &lt;nuttx/nx.h&gt; #ifdef CONFIG_NX_KBD -int nx_kbdchin(NXHANDLE handle, ubyte ch); -int nx_kbdin(NXHANDLE handle, ubyte nch, FAR const ubyte *ch); +int nx_kbdchin(NXHANDLE handle, uint8_t ch); +int nx_kbdin(NXHANDLE handle, uint8_t nch, FAR const uint8_t *ch); #endif </pre></ul> <p> @@ -1700,7 +1700,7 @@ int nx_kbdin(NXHANDLE handle, ubyte nch, FAR const ubyte *ch); #include &lt;nuttx/nx.h&gt; #ifdef CONFIG_NX_MOUSE -int nx_mousein(NXHANDLE handle, nxgl_coord_t x, nxgl_coord_t y, ubyte buttons); +int nx_mousein(NXHANDLE handle, nxgl_coord_t x, nxgl_coord_t y, uint8_t buttons); #endif </pre></ul> <p> @@ -2341,12 +2341,12 @@ int nxtk_bitmaptoolbar(NXTKWINDOW hfwnd, <ul><pre> struct nx_fontmetic_s { - uint32 stride : 2; /* Width of one font row in bytes */ - uint32 width : 6; /* Width of the font in bits */ - uint32 height : 6; /* Height of the font in rows */ - uint32 xoffset : 6; /* Top, left-hand corner X-offset in pixels */ - uint32 yoffset : 6; /* Top, left-hand corner y-offset in pixels */ - uint32 unused : 6; + uint32_t stride : 2; /* Width of one font row in bytes */ + uint32_t width : 6; /* Width of the font in bits */ + uint32_t height : 6; /* Height of the font in rows */ + uint32_t xoffset : 6; /* Top, left-hand corner X-offset in pixels */ + uint32_t yoffset : 6; /* Top, left-hand corner y-offset in pixels */ + uint32_t unused : 6; }; </pre></ul> @@ -2357,7 +2357,7 @@ struct nx_fontmetic_s struct nx_fontbitmap_s { struct nx_fontmetic_s metric; /* Character metrics */ - FAR const ubyte *bitmap; /* Pointer to the character bitmap */ + FAR const uint8_t *bitmap; /* Pointer to the character bitmap */ }; </pre></ul> @@ -2369,8 +2369,8 @@ struct nx_fontbitmap_s <ul><pre> struct nx_fontset_s { - ubyte first; /* First bitmap character code */ - ubyte nchars; /* Number of bitmap character codes */ + uint8_t first; /* First bitmap character code */ + uint8_t nchars; /* Number of bitmap character codes */ FAR const struct nx_fontbitmap_s *bitmap; }; </pre></ul> @@ -2381,10 +2381,10 @@ struct nx_fontset_s <ul><pre> struct nx_font_s { - ubyte mxheight; /* Max height of one glyph in rows */ - ubyte mxwidth; /* Max width of any glyph in pixels */ - ubyte mxbits; /* Max number of bits per character code */ - ubyte spwidth; /* The width of a space in pixels */ + uint8_t mxheight; /* Max height of one glyph in rows */ + uint8_t mxwidth; /* Max width of any glyph in pixels */ + uint8_t mxbits; /* Max number of bits per character code */ + uint8_t spwidth; /* The width of a space in pixels */ }; </pre></ul> @@ -2414,7 +2414,7 @@ FAR const struct nx_font_s *nxf_getfontset(void); #include &lt;nuttx/nxglib.h&gt; #include &lt;nuttx/nxfonts.h&gt; -FAR const struct nx_fontbitmap_s *nxf_getbitmap(uint16 ch); +FAR const struct nx_fontbitmap_s *nxf_getbitmap(uint16_t ch); </pre></ul> <p> <b>Description:</b> @@ -2438,28 +2438,28 @@ FAR const struct nx_fontbitmap_s *nxf_getbitmap(uint16 ch); #include &lt;nuttx/nxglib.h&gt; #include &lt;nuttx/nxfonts.h&gt; -int nxf_convert_2bpp(FAR ubyte *dest, uint16 height, - uint16 width, uint16 stride, +int nxf_convert_2bpp(FAR uint8_t *dest, uint16_t height, + uint16_t width, uint16_t stride, FAR const struct nx_fontbitmap_s *bm, nxgl_mxpixel_t color); -int nxf_convert_4bpp(FAR ubyte *dest, uint16 height, - uint16 width, uint16 stride, +int nxf_convert_4bpp(FAR uint8_t *dest, uint16_t height, + uint16_t width, uint16_t stride, FAR const struct nx_fontbitmap_s *bm, nxgl_mxpixel_t color); -int nxf_convert_8bpp(FAR ubyte *dest, uint16 height, - uint16 width, uint16 stride, +int nxf_convert_8bpp(FAR uint8_t *dest, uint16_t height, + uint16_t width, uint16_t stride, FAR const struct nx_fontbitmap_s *bm, nxgl_mxpixel_t color); -int nxf_convert_16bpp(FAR uint16 *dest, uint16 height, - uint16 width, uint16 stride, +int nxf_convert_16bpp(FAR uint16_t *dest, uint16_t height, + uint16_t width, uint16_t stride, FAR const struct nx_fontbitmap_s *bm, nxgl_mxpixel_t color); -int nxf_convert_24bpp(FAR uint32 *dest, uint16 height, - uint16 width, uint16 stride, +int nxf_convert_24bpp(FAR uint32_t *dest, uint16_t height, + uint16_t width, uint16_t stride, FAR const struct nx_fontbitmap_s *bm, nxgl_mxpixel_t color); -int nxf_convert_32bpp(FAR uint32 *dest, uint16 height, - uint16 width, uint16 stride, +int nxf_convert_32bpp(FAR uint32_t *dest, uint16_t height, + uint16_t width, uint16_t stride, FAR const struct nx_fontbitmap_s *bm, nxgl_mxpixel_t color); </pre></ul> diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 6774545144..f655d0da06 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: December 13, 2009</p> + <p>Last Updated: December 16, 2009</p> </td> </tr> </table> @@ -1623,6 +1623,10 @@ nuttx-2010.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; int in the architecture; Removed non-standard type STATUS * include/ - Added header files stdint.h, stdbool.h, cxx/cstdint, and cxx/cstdbool + * Changed ALL references to non-standard fixed-size types (like uint32, + ubyte, etc.) to standard types (like uint32_t, uint8_t, etc.) from + stdint.h. Use type bool and {true, false} from stdbool. This effected + most of the files in the system! pascal-2010.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index a7880d8f8d..6770709efb 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@ <h1><big><font color="#3c34ec"> <i>NuttX RTOS Porting Guide</i> </font></big></h1> - <p>Last Updated: December 12, 2009</p> + <p>Last Updated: December 16, 2009</p> </td> </tr> </table> @@ -330,14 +330,22 @@ This provides architecture/toolchain-specific definitions for standard types. This file should <code>typedef</code>: <ul><code> - sbyte, ubyte, uint8, boolean, sint16, uint16, sint32, uint32 + _int8_t, _uint8_t, _int16_t, _uint16_t, _int32_t, _uint32_t_t </code></ul> - <p>and if the architecture supports 64-bit integers</p> + <p>and if the architecture supports 24- or 64-bit integers</p> <ul><code> - sint64, uint64 + _int24_t, _uint24_t, int64_t, uint64_t </code></ul> <p> - and finally + NOTE that these type names have a leading underscore character. This + file will be included(indirectly) by include/stdint.h and typedef'ed to + the final name without the underscore character. This roundabout way of + doings things allows the stdint.h to be removed from the include/ + directory in the event that the user prefers to use the definitions + provided by their toolchain header files + </p> + <p> + And finally </p> <ul><code> irqstate_t @@ -1239,7 +1247,7 @@ The system can be re-made subsequently by just typing <code>make</code>. </p> <h3><a name="upreprioritizertr">4.1.10 <code>up_reprioritize_rtr()</code></a></h3> -<p><b>Prototype</b>: <code>void up_reprioritize_rtr(FAR _TCB *tcb, ubyte priority);</code></p> +<p><b>Prototype</b>: <code>void up_reprioritize_rtr(FAR _TCB *tcb, uint8_t priority);</code></p> <p><b>Description</b>. Called when the priority of a running or @@ -1289,8 +1297,8 @@ The system can be re-made subsequently by just typing <code>make</code>. <h3><a name="upassert">4.1.12 <code>up_assert()</code></a></h3> <p><b>Prototype</b>:<br> - <code>void up_assert(FAR const ubyte *filename, int linenum);</code></br> - <code>void up_assert_code(FAR const ubyte *filename, int linenum, int error_code);</code></br> + <code>void up_assert(FAR const uint8_t *filename, int linenum);</code></br> + <code>void up_assert_code(FAR const uint8_t *filename, int linenum, int error_code);</code></br> </p> <p><b>Description</b>. @@ -1360,11 +1368,10 @@ The system can be re-made subsequently by just typing <code>make</code>. </p> <h3><a name="upinterruptcontext">4.1.15 <code>up_interrupt_context()</code></a></h3> -<p><b>Prototype</b>: <code>boolean up_interrupt_context(void)</code></p> +<p><b>Prototype</b>: <code>bool up_interrupt_context(void)</code></p> <p><b>Description</b>. - Return TRUE is we are currently executing in - the interrupt handler context. + Return true if we are currently executing in the interrupt handler context. </p> <h3><a name="updisableirq">4.1.16 <code>up_disable_irq()</code></a></h3> @@ -1710,7 +1717,7 @@ extern void up_ledoff(int led); <code>ssize_t write(FAR struct file *filp, FAR const char *buffer, size_t buflen);</code><br> <code>off_t seek(FAR struct file *filp, off_t offset, int whence);</code><br> <code>int ioctl(FAR struct file *filp, int cmd, unsigned long arg);</code><br> - <code>int poll(FAR struct file *filp, struct pollfd *fds, boolean setup);</code></p> + <code>int poll(FAR struct file *filp, struct pollfd *fds, bool setup);</code></p> </ul> </li> <li> @@ -1818,12 +1825,12 @@ extern void up_ledoff(int led); That structure defines a call table with the following methods: <ul> <p><code>void lock(FAR struct spi_dev_s *dev);</code></p> - <p><code>void select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, boolean selected);</code><br> - <code>uint32 setfrequency(FAR struct spi_dev_s *dev, uint32 frequency);</code><br> + <p><code>void select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected);</code><br> + <code>uint32_t setfrequency(FAR struct spi_dev_s *dev, uint32_t frequency);</code><br> <code>void setmode(FAR struct spi_dev_s *dev, enum spi_mode_e mode);</code><br> <code>void setbits(FAR struct spi_dev_s *dev, int nbits);</code><br> - <code>ubyte status(FAR struct spi_dev_s *dev, enum spi_dev_e devid);</code><br> - <code>uint16 send(FAR struct spi_dev_s *dev, uint16 wd);</code><br> + <code>uint8_t status(FAR struct spi_dev_s *dev, enum spi_dev_e devid);</code><br> + <code>uint16_t send(FAR struct spi_dev_s *dev, uint16_t wd);</code><br> <code>void exchange(FAR struct spi_dev_s *dev, FAR const void *txbuffer, FAR void *rxbuffer, size_t nwords);</code><br> <p><code>int registercallback(FAR struct spi_dev_s *dev, mediachange_t callback, void *arg);</code></p> </ul> @@ -1856,10 +1863,10 @@ extern void up_ledoff(int led); Each I2C device driver must implement an instance of <code>struct i2c_ops_s</code>. That structure defines a call table with the following methods: <ul> - <p><code>uint32 setfrequency(FAR struct i2c_dev_s *dev, uint32 frequency);</code><br> + <p><code>uint32_t setfrequency(FAR struct i2c_dev_s *dev, uint32_t frequency);</code><br> <code>int setaddress(FAR struct i2c_dev_s *dev, int addr, int nbits);</code><br> - <code>int write(FAR struct i2c_dev_s *dev, const ubyte *buffer, int buflen);</code><br> - <code>int read(FAR struct i2c_dev_s *dev, ubyte *buffer, int buflen);</code></p> + <code>int write(FAR struct i2c_dev_s *dev, const uint8_t *buffer, int buflen);</code><br> + <code>int read(FAR struct i2c_dev_s *dev, uint8_t *buffer, int buflen);</code></p> </ul> <li> <b>Binding I2C Drivers</b>. @@ -1895,12 +1902,12 @@ extern void up_ledoff(int led); <code>void detach(FAR struct uart_dev_s *dev);</code><br> <code>int ioctl(FAR struct file *filep, int cmd, unsigned long arg);</code><br> <code>int receive(FAR struct uart_dev_s *dev, unsigned int *status);</code><br> - <code>void rxint(FAR struct uart_dev_s *dev, boolean enable);</code><br> - <code>boolean rxavailable(FAR struct uart_dev_s *dev);</code><br> + <code>void rxint(FAR struct uart_dev_s *dev, bool enable);</code><br> + <code>bool rxavailable(FAR struct uart_dev_s *dev);</code><br> <code>void send(FAR struct uart_dev_s *dev, int ch);</code><br> - <code>void txint(FAR struct uart_dev_s *dev, boolean enable);</code><br> - <code>boolean txready(FAR struct uart_dev_s *dev);</code><br> - <code>boolean txempty(FAR struct uart_dev_s *dev);</code></p> + <code>void txint(FAR struct uart_dev_s *dev, bool enable);</code><br> + <code>bool txready(FAR struct uart_dev_s *dev);</code><br> + <code>bool txempty(FAR struct uart_dev_s *dev);</code></p> </ul> </li> <li> @@ -1992,8 +1999,8 @@ extern void up_ledoff(int led); Read/write from the specified read/write blocks: </p? <ul> - <p><code>ssize_t (*bread)(FAR struct mtd_dev_s *dev, off_t startblock, size_t nblocks, FAR ubyte *buffer);</code><br> - <code>ssize_t (*bwrite)(FAR struct mtd_dev_s *dev, off_t startblock, size_t nblocks, FAR const ubyte *buffer);</code></p> + <p><code>ssize_t (*bread)(FAR struct mtd_dev_s *dev, off_t startblock, size_t nblocks, FAR uint8_t *buffer);</code><br> + <code>ssize_t (*bwrite)(FAR struct mtd_dev_s *dev, off_t startblock, size_t nblocks, FAR const uint8_t *buffer);</code></p> </ul> <p> Some devices may support byte oriented reads (optional). @@ -2001,7 +2008,7 @@ extern void up_ledoff(int led); It is recommended that low-level drivers not support read() if it requires buffering. </p> <ul> - <p><code>ssize_t (*read)(FAR struct mtd_dev_s *dev, off_t offset, size_t nbytes, FAR ubyte *buffer);</code></p> + <p><code>ssize_t (*read)(FAR struct mtd_dev_s *dev, off_t offset, size_t nbytes, FAR uint8_t *buffer);</code></p> </ul> <p> Support other, less frequently used commands: @@ -2050,8 +2057,8 @@ extern void up_ledoff(int led); </p> <ul> <p><code>void (*reset)(FAR struct sdio_dev_s *dev);</code><br> - <code>ubyte (*status)(FAR struct sdio_dev_s *dev);</code><br> - <code>void (*widebus)(FAR struct sdio_dev_s *dev, boolean enable);</code><br> + <code>uint8_t (*status)(FAR struct sdio_dev_s *dev);</code><br> + <code>void (*widebus)(FAR struct sdio_dev_s *dev, bool enable);</code><br> <code>void (*clock)(FAR struct sdio_dev_s *dev, enum sdio_clock_e rate);</code><br> <code>int (*attach)(FAR struct sdio_dev_s *dev);</code></p> </ul> @@ -2059,25 +2066,25 @@ extern void up_ledoff(int led); Command/Status/Data Transfer: </p? <ul> - <p><code>void (*sendcmd)(FAR struct sdio_dev_s *dev, uint32 cmd, uint32 arg);</code><br> - <code>int (*recvsetup)(FAR struct sdio_dev_s *dev, FAR ubyte *buffer, size_t nbytes);</code><br> - <code>int (*sendsetup)(FAR struct sdio_dev_s *dev, FAR const ubyte *buffer, size_t nbytes);</code><br> + <p><code>void (*sendcmd)(FAR struct sdio_dev_s *dev, uint32_t cmd, uint32_t arg);</code><br> + <code>int (*recvsetup)(FAR struct sdio_dev_s *dev, FAR uint8_t *buffer, size_t nbytes);</code><br> + <code>int (*sendsetup)(FAR struct sdio_dev_s *dev, FAR const uint8_t *buffer, size_t nbytes);</code><br> <code>int (*cancel)(FAR struct sdio_dev_s *dev);</code><br> - <code>int (*waitresponse)(FAR struct sdio_dev_s *dev, uint32 cmd);</code><br> - <code>int (*recvR1)(FAR struct sdio_dev_s *dev, uint32 cmd, uint32 *R1);</code><br> - <code>int (*recvR2)(FAR struct sdio_dev_s *dev, uint32 cmd, uint32 R2[4]);</code><br> - <code>int (*recvR3)(FAR struct sdio_dev_s *dev, uint32 cmd, uint32 *R3);</code><br> - <code>int (*recvR4)(FAR struct sdio_dev_s *dev, uint32 cmd, uint32 *R4);</code><br> - <code>int (*recvR5)(FAR struct sdio_dev_s *dev, uint32 cmd, uint32 *R5);</code><br> - <code>int (*recvR6)(FAR struct sdio_dev_s *dev, uint32 cmd, uint32 *R6);</code><br> - <code>int (*recvR7)(FAR struct sdio_dev_s *dev, uint32 cmd, uint32 *R7);</code></p> + <code>int (*waitresponse)(FAR struct sdio_dev_s *dev, uint32_t cmd);</code><br> + <code>int (*recvR1)(FAR struct sdio_dev_s *dev, uint32_t cmd, uint32_t *R1);</code><br> + <code>int (*recvR2)(FAR struct sdio_dev_s *dev, uint32_t cmd, uint32_t R2[4]);</code><br> + <code>int (*recvR3)(FAR struct sdio_dev_s *dev, uint32_t cmd, uint32_t *R3);</code><br> + <code>int (*recvR4)(FAR struct sdio_dev_s *dev, uint32_t cmd, uint32_t *R4);</code><br> + <code>int (*recvR5)(FAR struct sdio_dev_s *dev, uint32_t cmd, uint32_t *R5);</code><br> + <code>int (*recvR6)(FAR struct sdio_dev_s *dev, uint32_t cmd, uint32_t *R6);</code><br> + <code>int (*recvR7)(FAR struct sdio_dev_s *dev, uint32_t cmd, uint32_t *R7);</code></p> </ul> <p> Event/Callback support: </p> <ul> <p><code>void (*waitenable)(FAR struct sdio_dev_s *dev, sdio_eventset_t eventset);</code><br> - <code>sdio_eventset_t (*eventwait)(FAR struct sdio_dev_s *dev, uint32 timeout);</code><br> + <code>sdio_eventset_t (*eventwait)(FAR struct sdio_dev_s *dev, uint32_t timeout);</code><br> <code>void (*callbackenable)(FAR struct sdio_dev_s *dev, sdio_eventset_t eventset);</code><br> <code>int (*registercallback)(FAR struct sdio_dev_s *dev, worker_t callback, void *arg);</code></p> </ul> @@ -2085,9 +2092,9 @@ extern void up_ledoff(int led); DMA support: </p> <ul> - <p><code>boolean (*dmasupported)(FAR struct sdio_dev_s *dev);</code><br> - <code>int (*dmarecvsetup)(FAR struct sdio_dev_s *dev, FAR ubyte *buffer, size_t buflen);</code><br> - <code>int (*dmasendsetup)(FAR struct sdio_dev_s *dev, FAR const ubyte *buffer, size_t buflen);</code></p> + <p><code>bool (*dmasupported)(FAR struct sdio_dev_s *dev);</code><br> + <code>int (*dmarecvsetup)(FAR struct sdio_dev_s *dev, FAR uint8_t *buffer, size_t buflen);</code><br> + <code>int (*dmasendsetup)(FAR struct sdio_dev_s *dev, FAR const uint8_t *buffer, size_t buflen);</code></p> </ul> </li> <li> diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 5d477c8cfc..024e0392de 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -296,7 +296,7 @@ VxWorks provides the following similar interface: <b>Function Prototype:</b> <pre> #include &lt;sched.h&gt; - int task_init(_TCB *tcb, char *name, int priority, uint32 *stack, uint32 stack_size, + int task_init(_TCB *tcb, char *name, int priority, uint32_t *stack, uint32_t stack_size, maint_t entry, const char *argv[]); </pre> @@ -346,7 +346,7 @@ mechanism to initialize and start a new task. <b>POSIX Compatibility:</b> This is a NON-POSIX interface. VxWorks provides the following similar interface: <pre> - STATUS taskInit(WIND_TCB *pTcb, char *name, int priority, int options, uint32 *pStackBase, int stackSize, + STATUS taskInit(WIND_TCB *pTcb, char *name, int priority, int options, uint32_t *pStackBase, int stackSize, FUNCPTR entryPt, int arg1, int arg2, int arg3, int arg4, int arg5, int arg6, int arg7, int arg8, int arg9, int arg10); </pre> @@ -1039,7 +1039,7 @@ VxWorks provides the comparable interface: <b>Function Prototype:</b> <pre> #include &lt;sched.h&gt; - sint32 sched_lockcount( void ) + int32_t sched_lockcount( void ) </pre> <p> @@ -2363,8 +2363,8 @@ wd_start() on a given watchdog ID has any effect. <li><I>wdog</I>. Watchdog ID <li><I>delay</I>. Delay count in clock ticks <li><I>wdentry</I>. Function to call on timeout -<li><I>argc</I>. The number of uint32 parameters to pass to wdentry. -<li><I>...</I>. uint32 size parameters to pass to wdentry +<li><I>argc</I>. The number of uint32_t parameters to pass to wdentry. +<li><I>...</I>. uint32_t size parameters to pass to wdentry </ul> <p> @@ -6555,16 +6555,16 @@ int mkfatfs(FAR const char *pathname, FAR struct fat_format_s *fmt); <pre> struct fat_format_s { - ubyte ff_nfats; /* Number of FATs */ - ubyte ff_fattype; /* FAT size: 0 (autoselect), 12, 16, or 32 */ - ubyte ff_clustshift; /* Log2 of sectors per cluster: 0-5, 0xff (autoselect) */ - ubyte ff_volumelabel[11]; /* Volume label */ - uint16 ff_backupboot; /* Sector number of the backup boot sector (0=use default)*/ - uint16 ff_rootdirentries; /* Number of root directory entries */ - uint16 ff_rsvdseccount; /* Reserved sectors */ - uint32 ff_hidsec; /* Count of hidden sectors preceding fat */ - uint32 ff_volumeid; /* FAT volume id */ - uint32 ff_nsectors; /* Number of sectors from device to use: 0: Use all */ + uint8_t ff_nfats; /* Number of FATs */ + uint8_t ff_fattype; /* FAT size: 0 (autoselect), 12, 16, or 32 */ + uint8_t ff_clustshift; /* Log2 of sectors per cluster: 0-5, 0xff (autoselect) */ + uint8_t ff_volumelabel[11]; /* Volume label */ + uint16_t ff_backupboot; /* Sector number of the backup boot sector (0=use default)*/ + uint16_t ff_rootdirentries; /* Number of root directory entries */ + uint16_t ff_rsvdseccount; /* Reserved sectors */ + uint32_t ff_hidsec; /* Count of hidden sectors preceding fat */ + uint32_t ff_volumeid; /* FAT volume id */ + uint32_t ff_nsectors; /* Number of sectors from device to use: 0: Use all */ }; </pre> </ul></li> @@ -7588,25 +7588,25 @@ notify a task when a message is available on a queue. typedef void (*wdentry_t)(int argc, ...); </pre> <p> - Where argc is the number of uint32 type arguments that follow. + Where argc is the number of uint32_t type arguments that follow. </p> - The arguments are passed as uint32 values. - For systems where the sizeof(pointer) &lt; sizeof(uint32), the + The arguments are passed as uint32_t values. + For systems where the sizeof(pointer) &lt; sizeof(uint32_t), the following union defines the alignment of the pointer within the - uint32. For example, the SDCC MCS51 general pointer is - 24-bits, but uint32 is 32-bits (of course). + uint32_t. For example, the SDCC MCS51 general pointer is + 24-bits, but uint32_t is 32-bits (of course). </p> <pre> union wdparm_u { void *pvarg; - uint32 *dwarg; + uint32_t *dwarg; }; typedef union wdparm_u wdparm_t; </pre> <p> - For most 32-bit systems, pointers and uint32 are the same size - For systems where sizeof(pointer) > sizeof(uint32), we will + For most 32-bit systems, pointers and uint32_t are the same size + For systems where sizeof(pointer) > sizeof(uint32_t), we will have to do some redesign. </p> From 3a6129ba2e4bd3c0fa8a8025198c4db73b392b70 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 17 Dec 2009 19:24:18 +0000 Subject: [PATCH 0553/1518] Fixes for clean NX compile/link git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2374 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index f655d0da06..8ec5558f08 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: December 16, 2009</p> + <p>Last Updated: December 17, 2009</p> </td> </tr> </table> @@ -1626,7 +1626,12 @@ nuttx-2010.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Changed ALL references to non-standard fixed-size types (like uint32, ubyte, etc.) to standard types (like uint32_t, uint8_t, etc.) from stdint.h. Use type bool and {true, false} from stdbool. This effected - most of the files in the system! + most of the files in the system! Almost all configurations have been + re-built and many have been re-verified in order to get confidence in + these changes. + * graphics/ and examples/nx - Fix numerous build errors that have been + introduced lately. NXGL has suffered some bit-rot from not being used + in some of the most recent ports. pascal-2010.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 4c3551a2c8055cba6d653ff2dd45db44e2585e7f Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 18 Dec 2009 22:36:24 +0000 Subject: [PATCH 0554/1518] update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2391 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 8ec5558f08..a53c96fee5 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: December 17, 2009</p> + <p>Last Updated: December 18, 2009</p> </td> </tr> </table> @@ -1606,7 +1606,7 @@ buildroot-0.1.7 2009-06-26 &lt;spudmonkey@racsa.co.cr&gt; </table> <ul><pre> -nuttx-2010.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; +nuttx-5.0 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * arch/hc: Adding framework to support m68hc11/12 * configs/demo9s12ne64: Configuration to support Freescale DEMO9S12NE64 @@ -1632,10 +1632,24 @@ nuttx-2010.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * graphics/ and examples/nx - Fix numerous build errors that have been introduced lately. NXGL has suffered some bit-rot from not being used in some of the most recent ports. + * The misc/pascal NuttX add-on package has been updated to use the new + standard types from stdint.h and stdbool.h and re-integrated with NuttX. + The released pascal-2.0 will be the first version that contains the + compatible changes. + * arch/arm/src/lm3s/lm3s_ethernet.c - Fixed an important bug in the LM3S + ethernet driver: If full packet is received, the packet-too-big check + will fail because it needs to subtract 6 from the packet size (to + account for the 2-byte packet length and the 4-byte packet FCS in the + FIFO). + * net/accept.c - Fixed a bad assertion (only happens when debug is enabled). -pascal-2010.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; +pascal-2.0 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; -buildroot-2010.1 2010-xx-xx &lt;spudmonkey@racsa.co.cr&gt; + * Updated to use standard C99 types in stdint.h and + stdbool.h. This change was necessary for compatibility + with NuttX-5.0. + +buildroot-1.8 2010-xx-xx &lt;spudmonkey@racsa.co.cr&gt; * configs/cortexm3-defconfig-4.3.3: Added support for NuttX NXFLAT tools. From 23a6aea4e7a4bee2a8dcb6f6e5e89a748f2fd47a Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 19 Dec 2009 22:05:12 +0000 Subject: [PATCH 0555/1518] Fix an error in the handling of TCP/IP sequence numbers git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2392 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index a53c96fee5..29b09d13be 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: December 18, 2009</p> + <p>Last Updated: December 19, 2009</p> </td> </tr> </table> @@ -1642,6 +1642,13 @@ nuttx-5.0 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; account for the 2-byte packet length and the 4-byte packet FCS in the FIFO). * net/accept.c - Fixed a bad assertion (only happens when debug is enabled). + * net/send.c net/uip/uip_tcpseqno.c - Fixed a critical error in the TCP/IP + logic. The NuttX port of uIP imcludes logic to send data ahead without + waiting for ACKs from the recipient; this greatly improves throughput. + However, the packet sequence number was not being updated correctly and, + as a result, packets were not be ACKed by the recipient and transfers + would sometimes stall. This is a very important bug fix (in fact, I + don't understand how TCP/IP worked at all without this fix???) pascal-2.0 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 454134fecbac2a2215d674bff5a1823151db9ca6 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 20 Dec 2009 22:35:35 +0000 Subject: [PATCH 0556/1518] Add casts to eliminate warnings when sizeof(int) is 16-bits git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2401 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 29b09d13be..2542e0df07 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1656,7 +1656,7 @@ pascal-2.0 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; stdbool.h. This change was necessary for compatibility with NuttX-5.0. -buildroot-1.8 2010-xx-xx &lt;spudmonkey@racsa.co.cr&gt; +buildroot-1.8 2010-xx-xx <spudmonkey@racsa.co.cr> * configs/cortexm3-defconfig-4.3.3: Added support for NuttX NXFLAT tools. @@ -1665,7 +1665,8 @@ buildroot-1.8 2010-xx-xx &lt;spudmonkey@racsa.co.cr&gt; * configs/m68hc12-defconfig-4.3.3: Update to m68ch11-defconfig. * configs/m68hc12-defconfig-3.4.6: There are problems building GCC 4.3.3 for the hc12. - + * configs/m32c-defconfig-4.2.4: Added genromfs + * configs/m32c-defconfig-4.3.3: Update to m32c-defconfig-4.2.4 </pre></ul> <table width ="100%"> From 2a26424594a9f40b0e4db5ae25f31e6323f44bbf Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Mon, 21 Dec 2009 16:29:49 +0000 Subject: [PATCH 0557/1518] Prep for 5.0 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2405 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 202 +++++++++++++++++++-------------------- 1 file changed, 101 insertions(+), 101 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 2542e0df07..299963f4ce 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: December 19, 2009</p> + <p>Last Updated: December 21, 2009</p> </td> </tr> </table> @@ -729,59 +729,76 @@ </tr> </table> -<p><b>nuttx-4.14</b>. +<p><b>nuttx-5.0 Release Notes</b>: <p> - This 46<sup>th</sup> release of NuttX was made on December 2, 2009 and is available for download from the + This 47<sup>th</sup> release of NuttX was made on December 21, 2009 and is available for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. The change log associated with the release is available <a href="#currentrelease">here</a>. Unreleased changes after this release are available in CVS. These unreleased changes are listed <a href="#pendingchanges">here</a>. </p> <p> - The release extends the support for the STMicro STM32 microcontroller. - Minimal support for the STM3210E-EVAL development board based around the STM32F103ZET6 - MCU was released in NuttX-0.4.12 and extended in Nuttx-0.4.13 to include initial USB support. - This completes the STM32F103ZET6 support and adds: + The previous NuttX release was 4.14. + The major revision number has been incremented to indicate that an + incompatibility with previous nuttx releases has been introduced. + This version adopts standard fixed width integer names as specified by the + ANSII C99 standard. + The core logic of NuttX is older than that standard and did not conform to it. </p> <p> - New Generic RTOS Features: + If you have applications running on nuttx-4.14, those applications should continue + to build and execute without problem on nuttx-5.0. + However, if you have device drivers or other OS-internal logic, you will probably + have to make some minor changes to your code to use this version. + Below is a summary of those changes: <ul> - <li>Added generic support that can be included in any block driver to provide - read-ahead buffering and write buffering for improved driver performance.</li> - <li>Added a generic worker thread that can used to defer processing from an - interrupt to a task.</li> - <li>Defined a generic SD/SDIO interface can can be bound to a MMC/SD or SDIO - driver to orovide SDIO support.</li> - <li>Implemented a an SDIO-based MMC/SD driver using this new SDIO interface</li> + <li>If you include <code>sys/types.h</code> to get the non-standard, fixed width + integer types (<code>uint32</code>, <code>uint16</code>, <code>ubyte</code>, etc.), + that is no longer necessary. + <li>Instead, you will need to include <code>stdint.h</code> where the new fixed width + integer types are defined (<code>uint32_t</code>, <code>uint16_t</code>, <code>uint8_t</code>, etc.). + <li>You will have to change all occurrences of the following types: + <ul><pre> +uint32 -> uint32_t +uint16 -> uint16_t +ubyte -> uint8_t +uint8 -> uint8_t +sint32 -> int32_t +sint16 -> int16_t +sint8 -> int8_t +</pre></ul> + <li>In addition, the non-standard type <code>boolean</code> must replaced with the + standard type <code>bool</code>. + The type definition for <code>bool</code> is in <code>stdbool.h</code>. </ul> </p> <p> - New STM32-specific Features: + This change in typing caused small changes to many, many files. + The changes was verified that all configurations in the release still build correctly + (other than the SDCC-based configurations). + Regression testing was performed on a few configurations, but it is possible that minor build + issues still exist (if you encounter any, please let me know and I will + help you to fix them). +</p> +<p> + In the course of the regression testing, several important bugs unrelated + to the type changes were found and corrected. + Two of these are critical bugs: <ul> - <li>Add support to configure an STM32 input GPIO to generate an EXTI interrupt.</li> - <li>Added support for buttons on the STM3210E-EVAL board.</li> - <li>Implemented an STM32 version of the common the SDIO interface.</li> - <li>Added a configuration to exercise the STM32 with the USB mass storage - device class example.</li> + <li>Fixed an important error in the RX FIFO handling logic of the LM3S6918 + Ethernet driver. + <li>Corrected the handling of TCP sequence numbers in the TCP stack. </ul> </p> <p> - This release also corrects some important bugs in the earlier STM32 releases: - <ul> - <li>Correct error handling in the mount() logic.</li> - <li> Fixed several STM32 DMA-related issues. Integrated and debugged STM32 DMA - functionality that was added in 0.4.12.</li> - <li>Fixed several bugs in the STM32 USB device-side driver.</li> - </ul> + And other less important bug fixes as detailed in the <a href="#currentrelease">ChangeLog</a>. </p> <p> - NOTE: This version, 4.14, is equivalent to what would have been called 0.4.14 - to follow 0.4.13. The zero has been eliminated from the front of the version - number to avoid confusion about the state of development: Some have interpreted - the leading zero to mean that the code is in some way unstable. That was not - the intent. Beginning in January 2010, I will switch to the 2010.nn versioning - as many others have done to avoid such confusion. + The primary focus of this release was standards compatibility, but a few new + features were added including a (1) Flash Translation Layer (FTL) that will + support filesystems on a FLASH device and (2) partial ports for the STM32F107VC + and HCS12 M9S12NE64 MCUs. Those ports are very incomplete as of this writing. </p> <table width ="100%"> @@ -1045,6 +1062,29 @@ </ul> </td> </tr> +<tr> + <td valign="top"><img height="20" width="20" src="favicon.ico"></td> + <td bgcolor="#5eaee1"> + <b>Frescale M68HSC12</b> + </td> +</tr> +<tr> + <td><br></td> + <td> + <p> + <b>MC9S12NE64</b>. + This port uses the Freescale DEMO9S12NE64 Evaluation Board with a GNU arm-elf toolchain* under Linux or Cygwin. + </p> + <ul> + <p> + <b>STATUS:</b> + This port only fragmentary as of NuttX-5.0. Some initial pieces appear in that + release, but much more is needed. Time permitting, the HCS12 port may be available + int NuttX5.1. + </p> + </ul> + </td> +</tr> <tr> <td valign="top"><img height="20" width="20" src="favicon.ico"></td> <td bgcolor="#5eaee1"> @@ -1525,7 +1565,7 @@ Other memory: <tr> <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> <td> - <a href="#currentrelease">ChangeLog for Current Releases</a><br> + <a href="#currentrelease">ChangeLog for the Current Releases</a><br> </td> </tr> <tr> @@ -1539,74 +1579,13 @@ Other memory: <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> - <a name="currentrelease">ChangeLog for Current Release</a> + <a name="currentrelease">ChangeLog for the Current Release</a> </td> </tr> </table> <ul><pre> -nuttx-4.14 2009-12-02 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - - * arch/arm/src/stm32/stm32_gpio.c - Add support for configure an input GPIO - to generate an EXTI interrupt. - * config/stm3210e-eval/src/up_buttons.c - Add support for on-board buttons. - * include/nuttx/rwbuffer.h -- Add generic support for read-ahead buffering - and write buffering that can be used in any block driver. - * include/nuttx/wqueue.h -- Added a generic worker thread that can used to - defer processing from an interrupt to a task. - * include/nuttx/sdio.h -- Defines a generic SD/SDIO interface can can be - bound to a MMC/SD driver to provide SDIO-based MMC/SD support. - * drivers/mmcsd/mmcsd_sdio.c -- Provides a an SDIO-based MMC/SD driver. - * arch/arm/src/stm32/stm32_sdio.c -- Provides an STM32 implementation of - the SDIO interface defined in include/nuttx/sdio.h. - * fs/fs_mount.c -- Correct error handling logic. If the bind() method - fails, then a reserved node is left in the tree. This causes subsequent - attempts to mount at the location to fail (reporting that the node - already exists). This is a problem for block drivers for removable - media: The bind method could fail repeatedly until media is inserted. - * arch/arm/src/stm32/chip.h & stm32_dma.c -- Fixed several definitions - that can cause compilation errors when DMA2 is enabled. - * arch/arm/src/stm32/stm32_dma.c - Integrated and debugged STM32 DMA - functionality that was added in 0.4.12. - * configs/stm3210e-eval/usbstorage - Add a configuration to exercise - the STM32 with the USB mass storage device class example - (examples/usbstorage). - * configs/mcu123-lpc214x/up_usbstrg - Move LPC-specific code from - examples/usbstorage to configs/mcu123-lpc214x. - * configs/stm321e-eval/up_usbstrg - Add STM32-specific logic for the - examples/usbstorage test. - * arch/arm/src/stm32/stm32_usbdev.c - Fix bugs in STM32 USB device-side - driver: (1) Need to disconnect after reset received, (2) Status setup - to recover from stall on TX endpoint. - -pascal-0.1.2 2008-02-10 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - - * Add logic to build and link with the ZDS-II toolchain - use with the z16f. - * Make sure that POFF header structures are aligned - * Standardized POFF file format to big-endian - * Break up large switch statements to lower complexity - and eliminate a compiler bug - * Changes so that runtime compiles with SDCC. - -buildroot-0.1.7 2009-06-26 &lt;spudmonkey@racsa.co.cr&gt; - - * configs/avr-defconfig-4.3.3: Added support for AVR to support a NuttX - port of the ATmega128. - * toolchain/nxflat: Added logic to build NuttX NXFLAT binding support tools - * toolchain/genromfs: Added support for the genromfs tool -</pre></ul> - -<table width ="100%"> - <tr bgcolor="#e4e4e4"> - <td> - <a name="pendingchanges">Unreleased Changes</a> - </td> - </tr> -</table> - -<ul><pre> -nuttx-5.0 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; +nuttx-5.0 2009-12-21 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * arch/hc: Adding framework to support m68hc11/12 * configs/demo9s12ne64: Configuration to support Freescale DEMO9S12NE64 @@ -1649,14 +1628,19 @@ nuttx-5.0 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; as a result, packets were not be ACKed by the recipient and transfers would sometimes stall. This is a very important bug fix (in fact, I don't understand how TCP/IP worked at all without this fix???) + * include/nuttx/arch.h and arch/*/common/up_udelay.c - Change argument + of up_udelay() to type useconds_t to avoid warnings when sizeof(int) + is 16-bits. + * drivers/mmcsd/* - Add casts in contant expressions to avoid warnings + when sizeof(int) is 16-bits. -pascal-2.0 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; +pascal-2.0 2010-12-21 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Updated to use standard C99 types in stdint.h and stdbool.h. This change was necessary for compatibility - with NuttX-5.0. + with NuttX-5.0 (any beyond). -buildroot-1.8 2010-xx-xx <spudmonkey@racsa.co.cr> +buildroot-1.8 2009-12-21 &lt;spudmonkey@racsa.co.cr&gt; * configs/cortexm3-defconfig-4.3.3: Added support for NuttX NXFLAT tools. @@ -1669,6 +1653,22 @@ buildroot-1.8 2010-xx-xx <spudmonkey@racsa.co.cr> * configs/m32c-defconfig-4.3.3: Update to m32c-defconfig-4.2.4 </pre></ul> +<table width ="100%"> + <tr bgcolor="#e4e4e4"> + <td> + <a name="pendingchanges">Unreleased Changes</a> + </td> + </tr> +</table> + +<ul><pre> +nuttx-5.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + +pascal-2.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + +buildroot-1.9 2010-xx-xx <spudmonkey@racsa.co.cr> +</pre></ul> + <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> From b8bd16889e5c1decdd93e235814839d282aeb956 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 22 Dec 2009 00:41:38 +0000 Subject: [PATCH 0558/1518] Update README info git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2408 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/README.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/README.html b/Documentation/README.html index 8a727506e4..b014caecad 100755 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -47,6 +47,8 @@ | | |- <a href="configs/c5471evm/include/README.txt">include/README.txt</a> | | |- <a href="configs/c5471evm/src/README.txt">src/README.txt</a> | | `- <a href="configs/c5471evm/README.txt"><b><i>README.txt</i></b></a> + | |- demo9s12ne64/ + | | `- <a href="configs/demo9s12ne64/README.txt"><b><i>README.txt</i></b></a> | |- eagle100/ | | |- <a href="configs/eagle100/include/README.txt">include/README.txt</a> | | |- <a href="configs/eagle100/src/README.txt">src/README.txt</a> From 7a5dffc0557898ad18003e3e1f266a1a8c750751 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 23 Dec 2009 20:46:41 +0000 Subject: [PATCH 0559/1518] Add lpc313x header files git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2414 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 299963f4ce..fe136065bf 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1005,6 +1005,10 @@ sint8 -> int8_t </ul> </td> </tr> +<tr> + <td><br></td> + <td><hr></td> +</tr> <tr> <td><br></td> <td> @@ -1664,6 +1668,9 @@ buildroot-1.8 2009-12-21 &lt;spudmonkey@racsa.co.cr&gt; <ul><pre> nuttx-5.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + * arch/arm/src/lpc313x and arch/arm/include/lpc313x: Added framework + to support the NXP LPC3131 MCU + pascal-2.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; buildroot-1.9 2010-xx-xx <spudmonkey@racsa.co.cr> From 5d50d09c54cdedd90f2b24448cb53d519cc54011 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 31 Dec 2009 20:23:07 +0000 Subject: [PATCH 0560/1518] README update + lpc313x now links to ISRAM addresses git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2471 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/README.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/README.html b/Documentation/README.html index b014caecad..2256921724 100755 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -9,7 +9,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX README Files</i></font></big></h1> - <p>Last Updated: October 14, 2009</p> + <p>Last Updated: December 31, 2009</p> </td> </tr> </table> @@ -49,6 +49,8 @@ | | `- <a href="configs/c5471evm/README.txt"><b><i>README.txt</i></b></a> | |- demo9s12ne64/ | | `- <a href="configs/demo9s12ne64/README.txt"><b><i>README.txt</i></b></a> + | |- ea3131/ + | | `- <a href="configs/ea3131/README.txt"><b><i>README.txt</i></b></a> | |- eagle100/ | | |- <a href="configs/eagle100/include/README.txt">include/README.txt</a> | | |- <a href="configs/eagle100/src/README.txt">src/README.txt</a> From dc7749080cbf243378f638aa886a5d0b955118e8 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 31 Dec 2009 20:39:23 +0000 Subject: [PATCH 0561/1518] update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2472 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index fe136065bf..a74262ce41 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: December 21, 2009</p> + <p>Last Updated: December 31, 2009</p> </td> </tr> </table> @@ -1670,6 +1670,9 @@ nuttx-5.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * arch/arm/src/lpc313x and arch/arm/include/lpc313x: Added framework to support the NXP LPC3131 MCU + * Add configs/ea3131. The LPC3131 port for the Embedded Artist EA3131 + (LPC3131) is code complete and waiting for me to get hardware in + hand. pascal-2.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 4ca7b94249eca74c6338c0628dbca518922f1143 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 31 Dec 2009 22:30:26 +0000 Subject: [PATCH 0562/1518] Add basic framework for SAM3U git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2473 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index a74262ce41..8f9bfd2a99 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1673,6 +1673,9 @@ nuttx-5.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Add configs/ea3131. The LPC3131 port for the Embedded Artist EA3131 (LPC3131) is code complete and waiting for me to get hardware in hand. + * arch/arm/src/sam3u, arch/arm/include/sam3u, and configs/sam3u-ek - + Added the basic framework needed to begin a port for the SAM3U-EK + development board. pascal-2.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 6d9e83fed5df74495ee066c7b78c7f51bcbcec57 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 16 Jan 2010 02:12:48 +0000 Subject: [PATCH 0563/1518] Add CRC32 to lib/; add tool to make lpc313x bootloader images git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2506 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 8f9bfd2a99..200a65597b 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: December 31, 2009</p> + <p>Last Updated: January 15, 2010</p> </td> </tr> </table> @@ -1676,6 +1676,8 @@ nuttx-5.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * arch/arm/src/sam3u, arch/arm/include/sam3u, and configs/sam3u-ek - Added the basic framework needed to begin a port for the SAM3U-EK development board. + * confgs/ea3131/tools: Added a tool to create a image suitable for + use with the LPC313x bootloader. pascal-2.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 7ea7d9fcc5ef56704514719ac96a97cbd65599be Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 22 Jan 2010 03:45:25 +0000 Subject: [PATCH 0564/1518] Add README git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2521 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/README.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/README.html b/Documentation/README.html index 2256921724..20df92f9cf 100755 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -9,7 +9,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX README Files</i></font></big></h1> - <p>Last Updated: December 31, 2009</p> + <p>Last Updated: January 21, 2009</p> </td> </tr> </table> @@ -90,6 +90,8 @@ | | |- <a href="configs/pjrc-8051/include/README.txt">include/README.txt</a> | | |- <a href="configs/pjrc-8051/src/README.txt">src/README.txt</a> | | `- <a href="configs/pjrc-8051/README.txt"><b><i>README.txt</i></b></a> + | |- sam3u-ek/ + | | `- <a href="configs/sam3u-ek/README.txt"><b><i>README.txt</i></b></a> | |- sim/ | | |- <a href="configs/sim/include/README.txt">include/README.txt</a> | | |- <a href="configs/sim/src/README.txt">src/README.txt</a> From 61794dff2bbf13014ebb7be656fb9e6b78652889 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 30 Jan 2010 05:10:39 +0000 Subject: [PATCH 0565/1518] Added NSH configure for SAM3U git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2531 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 200a65597b..361619ea90 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: January 15, 2010</p> + <p>Last Updated: January 29, 2010</p> </td> </tr> </table> @@ -1678,6 +1678,13 @@ nuttx-5.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; development board. * confgs/ea3131/tools: Added a tool to create a image suitable for use with the LPC313x bootloader. + * configs/sam3u-3k/ostest - Completed verification of the basic NuttX + OS test for the SAM3U. + * arch/arm/src/common/up_createstack - stack was always been cleared + when it was allocated. This is a good feature for monitoring the + stack during debug, but really hurts thread start-up performance. + Clearing is now done if CONFIG_DEBUG=y only. Changes was only made + for arm, but really should be made for all architectures. pascal-2.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 985a4e3139e8b057919999232a4e94597b540193 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 30 Jan 2010 18:04:23 +0000 Subject: [PATCH 0566/1518] Prep for 5.1 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2532 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 255 +++++++++++++++++++-------------------- 1 file changed, 127 insertions(+), 128 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 361619ea90..f98b743380 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: January 29, 2010</p> + <p>Last Updated: January 30, 2010</p> </td> </tr> </table> @@ -729,76 +729,58 @@ </tr> </table> -<p><b>nuttx-5.0 Release Notes</b>: +<p><b>nuttx-5.1 Release Notes</b>: <p> - This 47<sup>th</sup> release of NuttX was made on December 21, 2009 and is available for download from the + This 48<sup>th</sup> release of NuttX was made on January 30, 2010 and is available for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. The change log associated with the release is available <a href="#currentrelease">here</a>. Unreleased changes after this release are available in CVS. These unreleased changes are listed <a href="#pendingchanges">here</a>. </p> <p> - The previous NuttX release was 4.14. - The major revision number has been incremented to indicate that an - incompatibility with previous nuttx releases has been introduced. - This version adopts standard fixed width integer names as specified by the - ANSII C99 standard. - The core logic of NuttX is older than that standard and did not conform to it. + This release adds support for two new MCU architectures in various states of development: </p> +<ul> + <li> + <a href="http://www.atmel.com/products/at91/sam3landing.asp?family_id=605">AT91SAM3U</a> + <p> + This release adds support for the SAM3U-EK development board with the + <a href="http://www.atmel.com/dyn/products/product_card_mcu.asp?part_id=4562">AT91SAM3U4E</a>. + As with most NuttX architecutre releases, the release will be rolled out in + two parts: A basic port and an extended port. + </p> + <p> + NuttX-5.1 includes the basic port for the SAM3U-EK board. This release + passes the NuttX OS test and is proven to have a valid OS implementation. + It supports the basic boot-up, serial console and timer interrupts. A + configuration to support the NuttShell is also included. + </p> + <p> + The extended port will also include support for SDIO-based SD cards and + USB device (and possible LCD support). These extensions may or may not + happen by the Nuttx 5.2 release as my plate is kind of full now. + </p> + </li> + <li> + <a href="http://ics.nxp.com/products/lpc3000/lpc313x.lpc314x.lpc315x/">LPC3131</a> + <p> + This release also adds the complete implementation of the basic port for + the NXP LPC3131 MCU on the + <a href="http://www.embeddedartists.com/products/kits/lpc3131_kit.php">Embedded Artists EA3131</a> + board. That port, unfortunately has stalled due to tools issues. Those tool issues have + been resolved and I am confident that the verified basic port will be + available in NuttX-5.2. + </p> + <p> + The extended release will follow and should include SDIO-based SD card + support and device USB. + </p> + </li> +</ul> <p> - If you have applications running on nuttx-4.14, those applications should continue - to build and execute without problem on nuttx-5.0. - However, if you have device drivers or other OS-internal logic, you will probably - have to make some minor changes to your code to use this version. - Below is a summary of those changes: - <ul> - <li>If you include <code>sys/types.h</code> to get the non-standard, fixed width - integer types (<code>uint32</code>, <code>uint16</code>, <code>ubyte</code>, etc.), - that is no longer necessary. - <li>Instead, you will need to include <code>stdint.h</code> where the new fixed width - integer types are defined (<code>uint32_t</code>, <code>uint16_t</code>, <code>uint8_t</code>, etc.). - <li>You will have to change all occurrences of the following types: - <ul><pre> -uint32 -> uint32_t -uint16 -> uint16_t -ubyte -> uint8_t -uint8 -> uint8_t -sint32 -> int32_t -sint16 -> int16_t -sint8 -> int8_t -</pre></ul> - <li>In addition, the non-standard type <code>boolean</code> must replaced with the - standard type <code>bool</code>. - The type definition for <code>bool</code> is in <code>stdbool.h</code>. - </ul> -</p> -<p> - This change in typing caused small changes to many, many files. - The changes was verified that all configurations in the release still build correctly - (other than the SDCC-based configurations). - Regression testing was performed on a few configurations, but it is possible that minor build - issues still exist (if you encounter any, please let me know and I will - help you to fix them). -</p> -<p> - In the course of the regression testing, several important bugs unrelated - to the type changes were found and corrected. - Two of these are critical bugs: - <ul> - <li>Fixed an important error in the RX FIFO handling logic of the LM3S6918 - Ethernet driver. - <li>Corrected the handling of TCP sequence numbers in the TCP stack. - </ul> -</p> -<p> - And other less important bug fixes as detailed in the <a href="#currentrelease">ChangeLog</a>. -</p> -<p> - The primary focus of this release was standards compatibility, but a few new - features were added including a (1) Flash Translation Layer (FTL) that will - support filesystems on a FLASH device and (2) partial ports for the STM32F107VC - and HCS12 M9S12NE64 MCUs. Those ports are very incomplete as of this writing. + A few additional features and bugfixes of a minor nature were also incorporated + as detailed in the <a href="#currentrelease">ChangeLog</a>. </p> <table width ="100%"> @@ -970,7 +952,32 @@ sint8 -> int8_t driver; that implementation is complete but untested. </p> </ul> - </td> + </td> +</tr> +<tr> + <td><br></td> + <td><hr></td> +</tr> +<tr> + <td><br></td> + <td> + <b>NXP LPC3131</b>. The basic port for the NXP LPC3131 on the Embedded Artists EA3131 + development board was released in NuttX-5.1 with a GNU arm-elf or arm-eabi toolchain* under Linux or Cygwin. + </p> + <p> + + </p> + <ul> + <p> + <b>STATUS:</b> + The basic EA3131 port is complete in NuttX-5.1 but, unfortunately, has not yet been verfied. + That effort has stalled due to some tool-related issues. + Those tool issues have been resolved and I am confident that the verified basic EA3131 port will be + available in NuttX-5.2. The extended release will follow and should include SDIO-based SD card + support and device USB. + </p> + </ul> + </td> </tr> <tr> <td valign="top"><img height="20" width="20" src="favicon.ico"></td> @@ -1040,6 +1047,44 @@ sint8 -> int8_t </ul> </td> </tr> +<tr> + <td><br></td> + <td><hr></td> +</tr> +<tr> + <td><br></td> + <td> + <p> + <b>Atmel AT91SAM3U</b>. + This port uses the <a href=" http://www.atmel.com/">Atmel</a> SAM3U-EK + development board that features the AT91SAM3U4E MCU. + This port uses a GNU arm-elf or arm-eabi toolchain* under either Linux or Cygwin (with native Windows GNU + tools or Cygwin-based GNU tools). + </p> + <ul> + <p> + <b>STATUS:</b> + The basic SAM3U-EK port was released in NuttX version 5.1. The basic port includes boot-up + logic, interrupt driven serial console, and system timer interrupts. + That release passes the NuttX OS test and is proven to have a valid OS implementation. + A configuration to support the NuttShell is also included. + </p> + <p> + Subsequent NuttX releases will extend this port and add support for SDIO-based SD cards and + USB device (and possible LCD support). + These extensions may or may not happen by the Nuttx 5.2 release as my plate is kind of full now. + </p> + <p> + <b>Development Environments:</b> + 1) Linux with native Linux GNU toolchain, 2) Cygwin with Cygwin GNU toolchain, or 3) Cygwin + with Windows native toolchain (CodeSourcery or devkitARM). A DIY toolchain for Linux + or Cygwin is provided by the NuttX + <a href="http://sourceforge.net/project/showfiles.php?group_id=189573&package_id=224585">buildroot</a> + package. + </p> + </ul> + </td> +</tr> <tr> <td valign="top"><img height="20" width="20" src="favicon.ico"></td> <td bgcolor="#5eaee1"> @@ -1589,54 +1634,26 @@ Other memory: </table> <ul><pre> -nuttx-5.0 2009-12-21 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; +nuttx-5.1 2010-01-30 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - * arch/hc: Adding framework to support m68hc11/12 - * configs/demo9s12ne64: Configuration to support Freescale DEMO9S12NE64 - development board (MC9S12NE64 m68hcs12 processor). - * drivers/mtd/ftl.c - A FLASH translation layer (FTL) has been implemented. - This layer will convert a FLASH MTD interface into a block driver that - can be used with any file system. Good performance of this layer will - depend upon functioning write buffer support! - NOTE: FTL support is untested as of the initial check-in. - * Numerous minor changes for m68hc12 to eliminate compilation errors and - warnings due to the fact that it uses 16-bit integer types and for casts - between uint32 (32-bits) and an mc68hc12 pointer (16-bits). - * sys/types: Size of off_t and blkcnt_t should not depend on size of - int in the architecture; Removed non-standard type STATUS - * include/ - Added header files stdint.h, stdbool.h, cxx/cstdint, and - cxx/cstdbool - * Changed ALL references to non-standard fixed-size types (like uint32, - ubyte, etc.) to standard types (like uint32_t, uint8_t, etc.) from - stdint.h. Use type bool and {true, false} from stdbool. This effected - most of the files in the system! Almost all configurations have been - re-built and many have been re-verified in order to get confidence in - these changes. - * graphics/ and examples/nx - Fix numerous build errors that have been - introduced lately. NXGL has suffered some bit-rot from not being used - in some of the most recent ports. - * The misc/pascal NuttX add-on package has been updated to use the new - standard types from stdint.h and stdbool.h and re-integrated with NuttX. - The released pascal-2.0 will be the first version that contains the - compatible changes. - * arch/arm/src/lm3s/lm3s_ethernet.c - Fixed an important bug in the LM3S - ethernet driver: If full packet is received, the packet-too-big check - will fail because it needs to subtract 6 from the packet size (to - account for the 2-byte packet length and the 4-byte packet FCS in the - FIFO). - * net/accept.c - Fixed a bad assertion (only happens when debug is enabled). - * net/send.c net/uip/uip_tcpseqno.c - Fixed a critical error in the TCP/IP - logic. The NuttX port of uIP imcludes logic to send data ahead without - waiting for ACKs from the recipient; this greatly improves throughput. - However, the packet sequence number was not being updated correctly and, - as a result, packets were not be ACKed by the recipient and transfers - would sometimes stall. This is a very important bug fix (in fact, I - don't understand how TCP/IP worked at all without this fix???) - * include/nuttx/arch.h and arch/*/common/up_udelay.c - Change argument - of up_udelay() to type useconds_t to avoid warnings when sizeof(int) - is 16-bits. - * drivers/mmcsd/* - Add casts in contant expressions to avoid warnings - when sizeof(int) is 16-bits. + * arch/arm/src/lpc313x and arch/arm/include/lpc313x: Added framework + to support the NXP LPC3131 MCU + * Add configs/ea3131. The LPC3131 port for the Embedded Artist EA3131 + (LPC3131) is code complete and waiting for me to get hardware in + hand. + * arch/arm/src/sam3u, arch/arm/include/sam3u, and configs/sam3u-ek - + Added the basic framework needed to begin a port for the SAM3U-EK + development board. + * confgs/ea3131/tools: Added a tool to create a image suitable for + use with the LPC313x bootloader. + * configs/sam3u-3k/ostest - Completed verification of the basic NuttX + OS test for the SAM3U. + * arch/arm/src/common/up_createstack - stack was always been cleared + when it was allocated. This is a good feature for monitoring the + stack during debug, but really hurts thread start-up performance. + Clearing is now done if CONFIG_DEBUG=y only. Changes was only made + for arm, but really should be made for all architectures. + * configs/sam3u/nsh - Added NSH configuration for SAM3U pascal-2.0 2010-12-21 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; @@ -1666,25 +1683,7 @@ buildroot-1.8 2009-12-21 &lt;spudmonkey@racsa.co.cr&gt; </table> <ul><pre> -nuttx-5.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - - * arch/arm/src/lpc313x and arch/arm/include/lpc313x: Added framework - to support the NXP LPC3131 MCU - * Add configs/ea3131. The LPC3131 port for the Embedded Artist EA3131 - (LPC3131) is code complete and waiting for me to get hardware in - hand. - * arch/arm/src/sam3u, arch/arm/include/sam3u, and configs/sam3u-ek - - Added the basic framework needed to begin a port for the SAM3U-EK - development board. - * confgs/ea3131/tools: Added a tool to create a image suitable for - use with the LPC313x bootloader. - * configs/sam3u-3k/ostest - Completed verification of the basic NuttX - OS test for the SAM3U. - * arch/arm/src/common/up_createstack - stack was always been cleared - when it was allocated. This is a good feature for monitoring the - stack during debug, but really hurts thread start-up performance. - Clearing is now done if CONFIG_DEBUG=y only. Changes was only made - for arm, but really should be made for all architectures. +nuttx-5.2 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; pascal-2.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From a91097518d2e033e0c3d7835af66f749e016367f Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 31 Jan 2010 01:42:04 +0000 Subject: [PATCH 0567/1518] Fix problem in access PIOB and C git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2533 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index f98b743380..2e3127e685 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1685,6 +1685,10 @@ buildroot-1.8 2009-12-21 &lt;spudmonkey@racsa.co.cr&gt; <ul><pre> nuttx-5.2 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + * arch/arm/src/sam3u/sam3u_pio.c - Fix an address calculation error + that caused ports B & C to get mapped to the PIOA base address. + This is an important bugfix! (a patch is available) + pascal-2.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; buildroot-1.9 2010-xx-xx <spudmonkey@racsa.co.cr> From e1a87e5d7d27fab040bbc318f72de305efe45657 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 14 Mar 2010 15:10:16 +0000 Subject: [PATCH 0568/1518] Add strtod git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2541 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 2e3127e685..a11204a971 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: January 30, 2010</p> + <p>Last Updated: March 14, 2010</p> </td> </tr> </table> @@ -1688,6 +1688,9 @@ nuttx-5.2 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * arch/arm/src/sam3u/sam3u_pio.c - Fix an address calculation error that caused ports B & C to get mapped to the PIOA base address. This is an important bugfix! (a patch is available) + * arch/arm/src/lpc313x/lpc313x_boot.c - Fix an error in the vector + initialization was causing a memory fault. + * lib/lib_strtod.c - Add strtod() pascal-2.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 4065117eedadb8a8d584eae807841dc771ef436d Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 14 Mar 2010 17:54:16 +0000 Subject: [PATCH 0569/1518] Add config to enable floating point support git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2542 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 6770709efb..0d00497b9c 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -2397,6 +2397,10 @@ extern void up_ledoff(int led); <code>CONFIG_NOPRINTF_FIELDWIDTH</code>: sprintf-related logic is a little smaller if we do not support fieldwidthes </li> + <li> + <code>CONFIG_LIBC_FLOATINGPOINT</code>: By default, floating point + support in printf, sscanf, etc. is disabled. + </li> </ul> <h2>Allow for architecture optimized implementations</h2> From 3ec0372296e9798a80d34ef31559ebe0e0961a70 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 16 Mar 2010 00:59:09 +0000 Subject: [PATCH 0570/1518] Bug fixes by David Hewson git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2545 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index a11204a971..fc1e226bcf 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: March 14, 2010</p> + <p>Last Updated: March 15, 2010</p> </td> </tr> </table> @@ -1691,6 +1691,8 @@ nuttx-5.2 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * arch/arm/src/lpc313x/lpc313x_boot.c - Fix an error in the vector initialization was causing a memory fault. * lib/lib_strtod.c - Add strtod() + * lpc3131/ea3131 - Several bring fixes submitted by David Hewson. The + lpc3131 is almost there! Thanks David! pascal-2.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From f94f6ca6d32a7492e595bff60b42cdd644b1b176 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 17 Mar 2010 02:31:41 +0000 Subject: [PATCH 0571/1518] Add NSH configuration for the lpc313x git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2549 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index fc1e226bcf..c1570d720a 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: March 15, 2010</p> + <p>Last Updated: March 16, 2010</p> </td> </tr> </table> @@ -1693,6 +1693,11 @@ nuttx-5.2 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * lib/lib_strtod.c - Add strtod() * lpc3131/ea3131 - Several bring fixes submitted by David Hewson. The lpc3131 is almost there! Thanks David! + * arch/arm/src/arm/up_head.S - Corrected backward conditional compilation + that selects if vectors are located at 0x0000:0000 or 0xffff:f000. + This fixes the last show stopper bug in the lpc313x bring-up. + * configs/ea3131/nsh - Added a NuttShell (NSH) configuration for the + EA3131. pascal-2.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 4d7e9305491543ff6e9cb0e78d36616d179361e8 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 19 Mar 2010 01:14:31 +0000 Subject: [PATCH 0572/1518] Prep for 5.2 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2550 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 123 ++++++++++++--------------------------- 1 file changed, 38 insertions(+), 85 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index c1570d720a..082ca97b30 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: March 16, 2010</p> + <p>Last Updated: March 18, 2010</p> </td> </tr> </table> @@ -729,55 +729,27 @@ </tr> </table> -<p><b>nuttx-5.1 Release Notes</b>: +<p><b>nuttx-5.2 Release Notes</b>: <p> - This 48<sup>th</sup> release of NuttX was made on January 30, 2010 and is available for download from the + This 49<sup>th</sup> release of NuttX was made on March 18, 2010 and is available for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. The change log associated with the release is available <a href="#currentrelease">here</a>. Unreleased changes after this release are available in CVS. These unreleased changes are listed <a href="#pendingchanges">here</a>. </p> <p> - This release adds support for two new MCU architectures in various states of development: + This release completes the verification of the basic port for the NXP + <a href="http://ics.nxp.com/products/lpc3000/lpc313x.lpc314x.lpc315x/">LPC3131</a> MCU + on the <a href="http://www.embeddedartists.com/products/kits/lpc3131_kit.php">Embedded Artists EA3131</a> board. + This basic port includes basic boot-up, serial console, and timer interrupts. This port + has been verified on the using the NuttX OS test and includes a working + implementation of the NuttShell (NSH). +</p> +<p> + An extended release will follow and should include SDIO-based SD card + support and device USB. </p> -<ul> - <li> - <a href="http://www.atmel.com/products/at91/sam3landing.asp?family_id=605">AT91SAM3U</a> - <p> - This release adds support for the SAM3U-EK development board with the - <a href="http://www.atmel.com/dyn/products/product_card_mcu.asp?part_id=4562">AT91SAM3U4E</a>. - As with most NuttX architecutre releases, the release will be rolled out in - two parts: A basic port and an extended port. - </p> - <p> - NuttX-5.1 includes the basic port for the SAM3U-EK board. This release - passes the NuttX OS test and is proven to have a valid OS implementation. - It supports the basic boot-up, serial console and timer interrupts. A - configuration to support the NuttShell is also included. - </p> - <p> - The extended port will also include support for SDIO-based SD cards and - USB device (and possible LCD support). These extensions may or may not - happen by the Nuttx 5.2 release as my plate is kind of full now. - </p> - </li> - <li> - <a href="http://ics.nxp.com/products/lpc3000/lpc313x.lpc314x.lpc315x/">LPC3131</a> - <p> - This release also adds the complete implementation of the basic port for - the NXP LPC3131 MCU on the - <a href="http://www.embeddedartists.com/products/kits/lpc3131_kit.php">Embedded Artists EA3131</a> - board. That port, unfortunately has stalled due to tools issues. Those tool issues have - been resolved and I am confident that the verified basic port will be - available in NuttX-5.2. - </p> - <p> - The extended release will follow and should include SDIO-based SD card - support and device USB. - </p> - </li> -</ul> <p> A few additional features and bugfixes of a minor nature were also incorporated as detailed in the <a href="#currentrelease">ChangeLog</a>. @@ -961,19 +933,19 @@ <tr> <td><br></td> <td> - <b>NXP LPC3131</b>. The basic port for the NXP LPC3131 on the Embedded Artists EA3131 - development board was released in NuttX-5.1 with a GNU arm-elf or arm-eabi toolchain* under Linux or Cygwin. - </p> - <p> - + <b>NXP <a href="http://ics.nxp.com/products/lpc3000/lpc313x.lpc314x.lpc315x/">LPC3131</a></b>. + The basic port for the NXP LPC3131 on the <a href="http://www.embeddedartists.com/products/kits/lpc3131_kit.php">Embedded Artists EA3131</a> + development board was released in NuttX-5.1 with a GNU arm-elf or arm-eabi toolchain* under Linux or Cygwin + (but was not functional until NuttX-5.2). </p> <ul> <p> <b>STATUS:</b> - The basic EA3131 port is complete in NuttX-5.1 but, unfortunately, has not yet been verfied. - That effort has stalled due to some tool-related issues. - Those tool issues have been resolved and I am confident that the verified basic EA3131 port will be - available in NuttX-5.2. The extended release will follow and should include SDIO-based SD card + The basic EA3131 port is complete and verified in NuttX-5.2 + This basic port includes basic boot-up, serial console, and timer interrupts. + This port has been verified on the using the NuttX OS test and includes a working + implementation of the NuttShell (NSH). + An extended release will follow and should include SDIO-based SD card support and device USB. </p> </ul> @@ -1072,7 +1044,7 @@ <p> Subsequent NuttX releases will extend this port and add support for SDIO-based SD cards and USB device (and possible LCD support). - These extensions may or may not happen by the Nuttx 5.2 release as my plate is kind of full now. + These extensions may or may not happen by the Nuttx 5.3 release as my plate is kind of full now. </p> <p> <b>Development Environments:</b> @@ -1634,26 +1606,21 @@ Other memory: </table> <ul><pre> -nuttx-5.1 2010-01-30 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; +nuttx-5.2 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - * arch/arm/src/lpc313x and arch/arm/include/lpc313x: Added framework - to support the NXP LPC3131 MCU - * Add configs/ea3131. The LPC3131 port for the Embedded Artist EA3131 - (LPC3131) is code complete and waiting for me to get hardware in - hand. - * arch/arm/src/sam3u, arch/arm/include/sam3u, and configs/sam3u-ek - - Added the basic framework needed to begin a port for the SAM3U-EK - development board. - * confgs/ea3131/tools: Added a tool to create a image suitable for - use with the LPC313x bootloader. - * configs/sam3u-3k/ostest - Completed verification of the basic NuttX - OS test for the SAM3U. - * arch/arm/src/common/up_createstack - stack was always been cleared - when it was allocated. This is a good feature for monitoring the - stack during debug, but really hurts thread start-up performance. - Clearing is now done if CONFIG_DEBUG=y only. Changes was only made - for arm, but really should be made for all architectures. - * configs/sam3u/nsh - Added NSH configuration for SAM3U + * arch/arm/src/sam3u/sam3u_pio.c - Fix an address calculation error + that caused ports B & C to get mapped to the PIOA base address. + This is an important bugfix! (a patch is available) + * arch/arm/src/lpc313x/lpc313x_boot.c - Fix an error in the vector + initialization was causing a memory fault. + * lib/lib_strtod.c - Add strtod() + * lpc3131/ea3131 - Several bring fixes submitted by David Hewson. The + lpc3131 is almost there! Thanks David! + * arch/arm/src/arm/up_head.S - Corrected backward conditional compilation + that selects if vectors are located at 0x0000:0000 or 0xffff:f000. + This fixes the last show stopper bug in the lpc313x bring-up. + * configs/ea3131/nsh - Added a NuttShell (NSH) configuration for the + EA3131. pascal-2.0 2010-12-21 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; @@ -1683,21 +1650,7 @@ buildroot-1.8 2009-12-21 &lt;spudmonkey@racsa.co.cr&gt; </table> <ul><pre> -nuttx-5.2 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - - * arch/arm/src/sam3u/sam3u_pio.c - Fix an address calculation error - that caused ports B & C to get mapped to the PIOA base address. - This is an important bugfix! (a patch is available) - * arch/arm/src/lpc313x/lpc313x_boot.c - Fix an error in the vector - initialization was causing a memory fault. - * lib/lib_strtod.c - Add strtod() - * lpc3131/ea3131 - Several bring fixes submitted by David Hewson. The - lpc3131 is almost there! Thanks David! - * arch/arm/src/arm/up_head.S - Corrected backward conditional compilation - that selects if vectors are located at 0x0000:0000 or 0xffff:f000. - This fixes the last show stopper bug in the lpc313x bring-up. - * configs/ea3131/nsh - Added a NuttShell (NSH) configuration for the - EA3131. +nuttx-5.3 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; pascal-2.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From a9f32ec06ca8c032a4c1b1a88da0d8156c80760f Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 28 Mar 2010 21:45:37 +0000 Subject: [PATCH 0573/1518] update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2565 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 082ca97b30..f79e045f8d 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: March 18, 2010</p> + <p>Last Updated: March 28, 2010</p> </td> </tr> </table> @@ -1652,6 +1652,18 @@ buildroot-1.8 2009-12-21 &lt;spudmonkey@racsa.co.cr&gt; <ul><pre> nuttx-5.3 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + * arch/arm/src/lpc313x/lpc313x_usbdev.c - USB driver for the LPC313x + contributed by David Hewson. + * configs/ea3131/src/up_ubstrgc.c, configs/ea3131/usbserial, + configs/ea3131/usbstorage - USB storage and USB serial example support + contributed by David Hewson. + * Several important compilation error fixes in lpc313x and (dualspeed) USB + code also contributed by David Hewson. + * arch/arm/src/sam3u/sam3u_dmac.c - DMA support for the AT90SAM3U. + (incomplete on initial checkin). + * arch/arm/src/sam3u/sam3u_hsmci.c - SD memory card support for AT90SAM3U + (incomplete on initial checkin). + pascal-2.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; buildroot-1.9 2010-xx-xx <spudmonkey@racsa.co.cr> From 88c7b68b5718aed0daf7cc7deebb0875369256a8 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 4 Apr 2010 16:40:18 +0000 Subject: [PATCH 0574/1518] lpc313x update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2574 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index f79e045f8d..267f93e993 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: March 28, 2010</p> + <p>Last Updated: April 4, 2010</p> </td> </tr> </table> @@ -1660,9 +1660,10 @@ nuttx-5.3 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Several important compilation error fixes in lpc313x and (dualspeed) USB code also contributed by David Hewson. * arch/arm/src/sam3u/sam3u_dmac.c - DMA support for the AT90SAM3U. - (incomplete on initial checkin). + (untested on initial checkin). * arch/arm/src/sam3u/sam3u_hsmci.c - SD memory card support for AT90SAM3U (incomplete on initial checkin). + * drivers/usbdev - Several important fixes to the USB mass storage driver pascal-2.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 3e16c9317806ba04835e53d746259f608ff7bf7e Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 9 Apr 2010 01:14:24 +0000 Subject: [PATCH 0575/1518] lpc2378 port contributed by Rommel Marcelo git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2579 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 267f93e993..af1cfd2d9c 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: April 4, 2010</p> + <p>Last Updated: April 8, 2010</p> </td> </tr> </table> @@ -1664,6 +1664,10 @@ nuttx-5.3 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * arch/arm/src/sam3u/sam3u_hsmci.c - SD memory card support for AT90SAM3U (incomplete on initial checkin). * drivers/usbdev - Several important fixes to the USB mass storage driver + submitted by David Hewson. + * configs/olimex-lpc2378, arch/arm/include/lpc2378, and arch/arm/src/lpc2378 - + Basic port of the NXP 2378 on the Olimex board contributed by + Rommel Marcelo. pascal-2.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 6a1b3d2c783de38265844505a4b59e250f8fd116 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 11 Apr 2010 18:07:49 +0000 Subject: [PATCH 0576/1518] Fix PIO interface bug git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2586 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index af1cfd2d9c..203ae6e888 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: April 8, 2010</p> + <p>Last Updated: April 11, 2010</p> </td> </tr> </table> @@ -1668,6 +1668,9 @@ nuttx-5.3 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * configs/olimex-lpc2378, arch/arm/include/lpc2378, and arch/arm/src/lpc2378 - Basic port of the NXP 2378 on the Olimex board contributed by Rommel Marcelo. + * arch/arm/src/sam3u/sam3u_internal.h - Fixed a critical bug in the AT91SAM3U + PIO decoding. No PIOs greater than 15 could be used on any port! Obviously, + no one has been using this port. pascal-2.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 022af50c0feb6a59055c120ef43e5ada96a98454 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 11 Apr 2010 19:44:36 +0000 Subject: [PATCH 0577/1518] Prep for 5.3 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2589 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 110 ++++++++++++++++++++++++++------------ Documentation/README.html | 6 ++- 2 files changed, 80 insertions(+), 36 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 203ae6e888..8dd0eaa498 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -729,31 +729,37 @@ </tr> </table> -<p><b>nuttx-5.2 Release Notes</b>: +<p><b>nuttx-5.3 Release Notes</b>: <p> - This 49<sup>th</sup> release of NuttX was made on March 18, 2010 and is available for download from the + This 50<sup>th</sup> release of NuttX was made on April 11, 2010 and is available for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. The change log associated with the release is available <a href="#currentrelease">here</a>. Unreleased changes after this release are available in CVS. These unreleased changes are listed <a href="#pendingchanges">here</a>. </p> <p> - This release completes the verification of the basic port for the NXP - <a href="http://ics.nxp.com/products/lpc3000/lpc313x.lpc314x.lpc315x/">LPC3131</a> MCU - on the <a href="http://www.embeddedartists.com/products/kits/lpc3131_kit.php">Embedded Artists EA3131</a> board. - This basic port includes basic boot-up, serial console, and timer interrupts. This port - has been verified on the using the NuttX OS test and includes a working - implementation of the NuttShell (NSH). + This release suport for one new achitecture: </p> +<ul> + <li>A basic port for the NXP LPC2378 MCU on the Olimex-LPC2378 development board was contributed by Rommel Marcelo.</li> +</ul> <p> - An extended release will follow and should include SDIO-based SD card - support and device USB. + And extensions to two existing architures: </p> +<ul> + <li>David Hewson contributed a dual-speed (full/high) USB device-side driver + for the NXP LPC3131 on the Embedded Artists EA3131 development board.</li> + <li>A DMA driver and a high speed MCI driver for the Atmel AT91SAM3U are + included (but not fully tested in this release).</li> +</ul> <p> - A few additional features and bugfixes of a minor nature were also incorporated - as detailed in the <a href="#currentrelease">ChangeLog</a>. + Two important bugfix was also included: </p> +<ul> + <li>An important fix to the USB mass storage driver was contributed by David Hewson.</li> + <li>A serious error in the AT91SAM3U PIO handling was fixed.</li> +</ul> <table width ="100%"> <tr bgcolor="#e4e4e4"> @@ -845,6 +851,34 @@ <td><br></td> <td><hr></td> </tr> +<tr> + <td><br></td> + <td> + <p> + <b>NXP LPC2378</b>. + Support is provided for the NXP LPC2378 MCU. In particular, + support is provided for the Olimex-LPC2378 development board. + This port was contributed by Rommel Marcelo is was first released in NuttX-5.3. + This port also used the GNU arm-elf toolchain* under Linux or Cygwin. + </p> + <ul> + <p> + <b>STATUS:</b> + This port boots and passes the OS test (examples/ostest) and includes a + working includes a working implementation of the NuttShell (<a href="NuttShell.html">(NSH)</a>). + The port is complete and verified. + As of NuttX 5.3, the port includes only basic timer interrupts and serial console support. + </p> + <p> + <b>Development Environments:</b> (Same as for the NXP LPC214x). + </p> + </ul> + </td> +</tr> +<tr> + <td><br></td> + <td><hr></td> +</tr> <tr> <td><br></td> <td> @@ -934,8 +968,8 @@ <td><br></td> <td> <b>NXP <a href="http://ics.nxp.com/products/lpc3000/lpc313x.lpc314x.lpc315x/">LPC3131</a></b>. - The basic port for the NXP LPC3131 on the <a href="http://www.embeddedartists.com/products/kits/lpc3131_kit.php">Embedded Artists EA3131</a> - development board was released in NuttX-5.1 with a GNU arm-elf or arm-eabi toolchain* under Linux or Cygwin + The port for the NXP LPC3131 on the <a href="http://www.embeddedartists.com/products/kits/lpc3131_kit.php">Embedded Artists EA3131</a> + development board was first released in NuttX-5.1 with a GNU arm-elf or arm-eabi toolchain* under Linux or Cygwin (but was not functional until NuttX-5.2). </p> <ul> @@ -943,10 +977,10 @@ <b>STATUS:</b> The basic EA3131 port is complete and verified in NuttX-5.2 This basic port includes basic boot-up, serial console, and timer interrupts. - This port has been verified on the using the NuttX OS test and includes a working - implementation of the NuttShell (NSH). - An extended release will follow and should include SDIO-based SD card - support and device USB. + This port was extended in NuttX 5.3 with a USB high speed driver contributed by David Hewson. + This port has been verified on the using the NuttX OS test, USB serial and mass storage + tests and includes a working implementation of the NuttShell (<a href="NuttShell.html">(NSH)</a>). + An extended release will follow and should include SDIO-based SD card support. </p> </ul> </td> @@ -1606,21 +1640,26 @@ Other memory: </table> <ul><pre> -nuttx-5.2 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; +nuttx-5.3 2010-04-11 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - * arch/arm/src/sam3u/sam3u_pio.c - Fix an address calculation error - that caused ports B & C to get mapped to the PIOA base address. - This is an important bugfix! (a patch is available) - * arch/arm/src/lpc313x/lpc313x_boot.c - Fix an error in the vector - initialization was causing a memory fault. - * lib/lib_strtod.c - Add strtod() - * lpc3131/ea3131 - Several bring fixes submitted by David Hewson. The - lpc3131 is almost there! Thanks David! - * arch/arm/src/arm/up_head.S - Corrected backward conditional compilation - that selects if vectors are located at 0x0000:0000 or 0xffff:f000. - This fixes the last show stopper bug in the lpc313x bring-up. - * configs/ea3131/nsh - Added a NuttShell (NSH) configuration for the - EA3131. + * arch/arm/src/lpc313x/lpc313x_usbdev.c - USB driver for the LPC313x + contributed by David Hewson. + * configs/ea3131/src/up_ubstrgc.c, configs/ea3131/usbserial, + configs/ea3131/usbstorage - USB storage and USB serial example support + contributed by David Hewson. + * Several important compilation error fixes in lpc313x and (dualspeed) USB + code also contributed by David Hewson. + * arch/arm/src/sam3u/sam3u_dmac.c - DMA support for the AT90SAM3U. + * arch/arm/src/sam3u/sam3u_hsmci.c - SD memory card support for AT90SAM3U + (Neither the DMA nor the HSMCI driver are functional on the initial checkin). + * drivers/usbdev - Several important fixes to the USB mass storage driver + submitted by David Hewson. + * configs/olimex-lpc2378, arch/arm/include/lpc2378, and arch/arm/src/lpc2378 - + Basic port of the NXP 2378 on the Olimex board contributed by + Rommel Marcelo. + * arch/arm/src/sam3u/sam3u_internal.h - Fixed a critical bug in the AT91SAM3U + PIO decoding. No PIOs greater than 15 could be used on any port! Obviously, + no one has been using this port. pascal-2.0 2010-12-21 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; @@ -1650,7 +1689,7 @@ buildroot-1.8 2009-12-21 &lt;spudmonkey@racsa.co.cr&gt; </table> <ul><pre> -nuttx-5.3 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; +nuttx-5.3 2010-04-11 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * arch/arm/src/lpc313x/lpc313x_usbdev.c - USB driver for the LPC313x contributed by David Hewson. @@ -1660,9 +1699,8 @@ nuttx-5.3 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * Several important compilation error fixes in lpc313x and (dualspeed) USB code also contributed by David Hewson. * arch/arm/src/sam3u/sam3u_dmac.c - DMA support for the AT90SAM3U. - (untested on initial checkin). * arch/arm/src/sam3u/sam3u_hsmci.c - SD memory card support for AT90SAM3U - (incomplete on initial checkin). + (Neither the DMA nor the HSMCI driver are functional on the initial checkin). * drivers/usbdev - Several important fixes to the USB mass storage driver submitted by David Hewson. * configs/olimex-lpc2378, arch/arm/include/lpc2378, and arch/arm/src/lpc2378 - @@ -1672,6 +1710,8 @@ nuttx-5.3 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; PIO decoding. No PIOs greater than 15 could be used on any port! Obviously, no one has been using this port. +nuttx-5.3 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + pascal-2.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; buildroot-1.9 2010-xx-xx <spudmonkey@racsa.co.cr> diff --git a/Documentation/README.html b/Documentation/README.html index 20df92f9cf..686ed824b4 100755 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -9,7 +9,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX README Files</i></font></big></h1> - <p>Last Updated: January 21, 2009</p> + <p>Last Updated: Aprill 11, 2009</p> </td> </tr> </table> @@ -86,6 +86,10 @@ | | |- <a href="configs/olimex-strp711/include/README.txt">include/README.txt</a> | | |- <a href="configs/olimex-strp711/src/README.txt">src/README.txt</a> | | `- <a href="configs/olimex-strp711/README.txt"><b><i>README.txt</i></b></a> + | |- olimex-lpc2378/ + | | |- <a href="configs/olimex-lpc2378/include/README.txt">include/README.txt</a> + | | |- <a href="configs/olimex-lpc2378/src/README.txt">src/README.txt</a> + | | `- <a href="configs/olimex-lpc2378/README.txt"><b><i>README.txt</i></b></a> | |- pjrc-8051/ | | |- <a href="configs/pjrc-8051/include/README.txt">include/README.txt</a> | | |- <a href="configs/pjrc-8051/src/README.txt">src/README.txt</a> From 2e79c1f3ee1d4869f6a2dda95299af0c5efe6c32 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 14 Apr 2010 01:17:42 +0000 Subject: [PATCH 0578/1518] Add a README git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2592 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/README.html | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Documentation/README.html b/Documentation/README.html index 686ed824b4..885deaccf0 100755 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -143,6 +143,8 @@ | `- <a href="graphics/README.txt"><b><i>README.txt</i></b></a> |- libxx/ | `- <a href="libxx/README.txt"><b><i>README.txt</i></b></a> - `- netutils/ - |- <a href="netutils/telnetd/README.txt">telnetd/README.txt</a> - `- <a href="netutils/README"><b><i>README</a></a> + |- netutils/ + | |- <a href="netutils/telnetd/README.txt">telnetd/README.txt</a> + | `- <a href="netutils/README"><b><i>README</i></b></a> + `- tools/ + `- <a href="tols/README.txt"><b><i>README.txt</i></b></a> \ No newline at end of file From 3020c0c2215e556dd8373014e5c9c37ea32ed643 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 17 Apr 2010 01:53:49 +0000 Subject: [PATCH 0579/1518] Add configuration to select LCD driver for NX git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2596 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NXGraphicsSubsystem.html | 6 +++++- Documentation/NuttX.html | 25 +++---------------------- Documentation/NuttxPortingGuide.html | 7 ++++++- 3 files changed, 14 insertions(+), 24 deletions(-) diff --git a/Documentation/NXGraphicsSubsystem.html b/Documentation/NXGraphicsSubsystem.html index 22aa5f9625..a712bfa6ea 100644 --- a/Documentation/NXGraphicsSubsystem.html +++ b/Documentation/NXGraphicsSubsystem.html @@ -12,7 +12,7 @@ <h1><big><font color="#3c34ec"> <i>NX Graphics Subsystem</i> </font></big></h1> - <p>Last Updated: December 16, 2008</p> + <p>Last Updated: April 16, 2010</p> </td> </tr> </table> @@ -2606,6 +2606,10 @@ int nxf_convert_32bpp(FAR uint32_t *dest, uint16_t height, <dt><code>CONFIG_NX_PACKEDMSFIRST</code>: <dd>If a pixel depth of less than 8-bits is used, then NX needs to know if the pixels pack from the MS to LS or from LS to MS + <dt><code>CONFIG_NX_LCDDRIVER</code>: + <dd>By default, NX builds to use a framebuffer driver (see <code>include/nuttx/fb.h</code>). + If this option is defined, NX will build to use an LCD driver (see <code>include/nuttx/lcd.h</code>). + </li> </dl> </ul> diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 8dd0eaa498..53171e5b37 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: April 11, 2010</p> + <p>Last Updated: April 14, 2010</p> </td> </tr> </table> @@ -1689,28 +1689,9 @@ buildroot-1.8 2009-12-21 &lt;spudmonkey@racsa.co.cr&gt; </table> <ul><pre> -nuttx-5.3 2010-04-11 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; +nuttx-5.4 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - * arch/arm/src/lpc313x/lpc313x_usbdev.c - USB driver for the LPC313x - contributed by David Hewson. - * configs/ea3131/src/up_ubstrgc.c, configs/ea3131/usbserial, - configs/ea3131/usbstorage - USB storage and USB serial example support - contributed by David Hewson. - * Several important compilation error fixes in lpc313x and (dualspeed) USB - code also contributed by David Hewson. - * arch/arm/src/sam3u/sam3u_dmac.c - DMA support for the AT90SAM3U. - * arch/arm/src/sam3u/sam3u_hsmci.c - SD memory card support for AT90SAM3U - (Neither the DMA nor the HSMCI driver are functional on the initial checkin). - * drivers/usbdev - Several important fixes to the USB mass storage driver - submitted by David Hewson. - * configs/olimex-lpc2378, arch/arm/include/lpc2378, and arch/arm/src/lpc2378 - - Basic port of the NXP 2378 on the Olimex board contributed by - Rommel Marcelo. - * arch/arm/src/sam3u/sam3u_internal.h - Fixed a critical bug in the AT91SAM3U - PIO decoding. No PIOs greater than 15 could be used on any port! Obviously, - no one has been using this port. - -nuttx-5.3 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + * include/nuttx/lcd.h - Defines an LCD interface. pascal-2.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 0d00497b9c..b2359dd9e7 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@ <h1><big><font color="#3c34ec"> <i>NuttX RTOS Porting Guide</i> </font></big></h1> - <p>Last Updated: December 16, 2009</p> + <p>Last Updated: April 16, 2010</p> </td> </tr> </table> @@ -2850,6 +2850,11 @@ extern void up_ledoff(int led); If a pixel depth of less than 8-bits is used, then NX needs to know if the pixels pack from the MS to LS or from LS to MS </li> + <li> + <code>CONFIG_NX_LCDDRIVER</code>: + By default, NX builds to use a framebuffer driver (see <code>include/nuttx/fb.h</code>). + If this option is defined, NX will build to use an LCD driver (see <code>include/nuttx/lcd.h</code>). + </li> <li> <code>CONFIG_NX_MOUSE</code>: Build in support for mouse input. From 07550ad5c91a034d8445d052acbc5642d4cd3f8e Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 17 Apr 2010 11:42:47 +0000 Subject: [PATCH 0580/1518] update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2601 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 53171e5b37..bad56cd408 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: April 14, 2010</p> + <p>Last Updated: April 16, 2010</p> </td> </tr> </table> @@ -1692,6 +1692,7 @@ buildroot-1.8 2009-12-21 &lt;spudmonkey@racsa.co.cr&gt; nuttx-5.4 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * include/nuttx/lcd.h - Defines an LCD interface. + * graphics/nxglib/fb and lcd - Support LCD and framebuffer rasterizers for NX. pascal-2.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From aca4fca9cdf9abdc4e26b6012615ed2545836c4c Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 17 Apr 2010 14:12:11 +0000 Subject: [PATCH 0581/1518] Updated README's git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2603 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index bad56cd408..4b8d9ebe23 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -865,7 +865,7 @@ <p> <b>STATUS:</b> This port boots and passes the OS test (examples/ostest) and includes a - working includes a working implementation of the NuttShell (<a href="NuttShell.html">(NSH)</a>). + working implementation of the NuttShell (<a href="NuttShell.html">NSH</a>). The port is complete and verified. As of NuttX 5.3, the port includes only basic timer interrupts and serial console support. </p> @@ -926,10 +926,8 @@ <ul> <p> <b>STATUS:</b> - This port is in progress. Coding is complete on the basic port (timer, serial console, SPI). - Verified support for the i.MX1 will be announced in a future release of NuttX (work was - been temporarily stopped to support the Luminary LM3S6918 and I have not yet worked around - some development tool issues.). + This port has stalled due to development tool issues. + Coding is complete on the basic port (timer, serial console, SPI). </p> </ul> </td> @@ -978,9 +976,9 @@ The basic EA3131 port is complete and verified in NuttX-5.2 This basic port includes basic boot-up, serial console, and timer interrupts. This port was extended in NuttX 5.3 with a USB high speed driver contributed by David Hewson. - This port has been verified on the using the NuttX OS test, USB serial and mass storage + This port has been verified using the NuttX OS test, USB serial and mass storage tests and includes a working implementation of the NuttShell (<a href="NuttShell.html">(NSH)</a>). - An extended release will follow and should include SDIO-based SD card support. + An extended release may follow and should include SDIO-based SD card support. </p> </ul> </td> From fb7845d7e3e1bae2b3f75770ab7acc4c580b069f Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 20 Apr 2010 02:20:42 +0000 Subject: [PATCH 0582/1518] sam3u LCD driver is code complete (but untested) git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2619 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index b2359dd9e7..fa7646e171 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@ <h1><big><font color="#3c34ec"> <i>NuttX RTOS Porting Guide</i> </font></big></h1> - <p>Last Updated: April 16, 2010</p> + <p>Last Updated: April 19, 2010</p> </td> </tr> </table> @@ -2855,6 +2855,14 @@ extern void up_ledoff(int led); By default, NX builds to use a framebuffer driver (see <code>include/nuttx/fb.h</code>). If this option is defined, NX will build to use an LCD driver (see <code>include/nuttx/lcd.h</code>). </li> + <li> + <code>CONFIG_LCD_MAXPOWER/code>: + The full-on power setting for an LCD device. + </li> + <li> + <code>CONFIG_LCD_MAXCONTRAST/code>: + The maximum contrast value for an LCD device. + </li> <li> <code>CONFIG_NX_MOUSE</code>: Build in support for mouse input. From e612a4fc7cd7665edb72baa352ef632f1eee2e73 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 24 Apr 2010 00:27:11 +0000 Subject: [PATCH 0583/1518] Prep for 5.4 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2626 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NXGraphicsSubsystem.html | 77 +++++++++++++++-------- Documentation/NuttX.html | 84 +++++++++++--------------- 2 files changed, 88 insertions(+), 73 deletions(-) diff --git a/Documentation/NXGraphicsSubsystem.html b/Documentation/NXGraphicsSubsystem.html index a712bfa6ea..382ca06dcc 100644 --- a/Documentation/NXGraphicsSubsystem.html +++ b/Documentation/NXGraphicsSubsystem.html @@ -12,7 +12,7 @@ <h1><big><font color="#3c34ec"> <i>NX Graphics Subsystem</i> </font></big></h1> - <p>Last Updated: April 16, 2010</p> + <p>Last Updated: April 23, 2010</p> </td> </tr> </table> @@ -212,7 +212,7 @@ </tr> <tr> <td><small>Figure 1. - This sceen shot shows the final frame for the NuttX example at <code>examples/nx</code> + This scren shot shows the final frame for the NuttX example at <code>examples/nx</code> running on the simulated, Linux x86 platform with simulated framebuffer output to an X window. This picture shows to framed windows with (blank) toolbars. @@ -256,12 +256,20 @@ <i>back-end</i> logic. This back-end supports only a primitive set of graphic and rendering operations. </li> - <li><b>Framebuffer Device Interface</b>. - NX supports any graphics device using the NuttX framebuffer <i>driver</i> - interface. - (However, the dependency of NX on framebuffer drivers is minimal and the - logic could be extended to other interfaces -- such as a serial LCD -- with - some minimal effort). + <li><b>Device Interface</b>. + NX supports any graphics device either of two device interfaces: + <ul> + <li> + Any device with random accesss video memory using the NuttX framebuffer driver interface + (see <code>include/nuttx/fb.h</code>). + </li> + <li> + Any LCD-like device than can accept raster line <i>runs</i> through a parallel or serial interface + (see <code>include/nuttx/lcd.h</code>). + By default, NX is configured to use the frame buffer driver unless <code>CONFIG_NX_LCDDRIVER</code> is defined =y in your NuttX configuration file. + </li> + </ul> + </li> <li><b>Transparent to NX Client</b>. The window client on &quot;sees&quot; the sub-window that is operates in and does not need to be concerned with the virtual, vertical space (other @@ -310,7 +318,7 @@ <p> NXGLIB is a standalone library that contains low-level graphics utilities and - direct framebuffer rendering logic. NX is built on top NXGLIB. + direct framebuffer or LCD rendering logic. NX is built on top NXGLIB. </p> <h3>1.3.2 <a name="nx1">NX (<code>NXSU</code> and <code>NXMU</code>)</a></h3> @@ -335,7 +343,7 @@ <p><b>NXNULL?</b> At one time, I also envisoned a <i>NULL</i> front-end that did not support windowing - at all but, rather, simply provided the entire framebuffer memory as one dumb window. + at all but, rather, simply provided the entire framebuffer or LCD memory as one dumb window. This has the advantage that the same NX APIs can be used on the one dumb window as for the other NX windows. This would be in the NuttX spirit of scalability. @@ -412,7 +420,7 @@ Only those APIs intended for application usage are documented here See <code>include/nuttx/nxglib.h</code> for the full set of APIs; those APIs might be of interest if you are rendering directly into - framebuffer memory. + framebuffer or LCD memory. </p> <h3>2.2.1 <a name="nxgltypes">NXGL Types</a></h3> @@ -922,7 +930,7 @@ void (*kbdin)(NXWINDOW hwnd, uint8_t nch, FAR const uint8_t *ch, FAR void *arg); #ifdef CONFIG_NX_MULTIUSER int nx_runinstance(FAR const char *mqname, FAR struct fb_vtable_s *fb); -#define nx_run(fb) nx_runinstance(NX_DEFAULT_SERVER_MQNAME, fb) +#define nx_run(fb) nx_runinstance(NX_DEFAULT_SERVER_MQNAME, dev) #endif </pre></ul> <p> @@ -945,8 +953,8 @@ int nx_runinstance(FAR const char *mqname, FAR struct fb_vtable_s *fb); <dt><code>mqname</code> <dd> - The name for the server incoming message queue - <dt><code>fb</code> - <dd>Vtable &quot;object&quot; of the framebuffer &quot;driver&quot; to use + <dt><code>dev</code> + <dd>Framebuffer or LCD driver &quot;object&quot; to be used </dl></ul> </p> <p> @@ -1016,7 +1024,7 @@ NXHANDLE nx_connectinstance(FAR const char *svrmqname); #include &lt;nuttx/nx.h&gt; #ifndef CONFIG_NX_MULTIUSER -NXHANDLE nx_open(FAR struct fb_vtable_s *fb); +NXHANDLE nx_open(FAR struct fb_vtable_s *dev); #endif </pre></ul> <p> @@ -1032,8 +1040,8 @@ NXHANDLE nx_open(FAR struct fb_vtable_s *fb); <p> <b>Input Parameters:</b> <ul><dl> - <dt><code>fb</code> - <dd>Vtable &quot;object&quot; of the framebuffer &quot;driver&quot; to use + <dt><code>dev</code> + <dd>Frame buffer or LCD driver &quot;object&quot; to be used. <dt><code>cb</code> <dd>Callbacks used to process received NX server messages </dl></ul> @@ -2525,8 +2533,8 @@ int nxf_convert_32bpp(FAR uint32_t *dest, uint16_t height, <dt><code>graphics/nxglib</code> <dd>The NuttX tiny graphics library. The directory contains generic utilities support operations on primitive graphics objects - and logic to rasterize directly into a framebuffer. - It has no concept of windows (other than the one, framebuffer window). + and logic to rasterize directly into a framebuffer or through an LCD driver interface. + It has no concept of windows (other than the one, framebuffer or LCD window). <dt><code>graphics/nxbe</code> <dd>This is the <i>back-end</i> of a tiny windowing system. @@ -2708,12 +2716,14 @@ make </pre></ul> </li> <li> - A preferred configuration extends the test with a simulated framebuffer driver - that uses an X window as a framebuffer. - This configuration uses the configuration file at <code>configs/sim/nx/defconfig-x11</code>. - This is a superior test configuration because the X window appears at your desktop - and you can see the NX output. - This preferred configuration can be built as follows: + <p> + A preferred configuration extends the test with a simulated framebuffer driver + that uses an X window as a framebuffer. + This configuration uses the configuration file at <code>configs/sim/nx/defconfig-x11</code>. + This is a superior test configuration because the X window appears at your desktop + and you can see the NX output. + This preferred configuration can be built as follows: + </p> <ul><pre> cd &lt;NuttX-Directory&gt;/tools ./configure sim/nx @@ -2722,6 +2732,23 @@ cp &lt;NuttX-Directory&gt;/configs/sim/nx/defconfig-x11 .config make ./nuttx </pre></ul> + <p> + <i>Update:</i> + The sim target has suffered some bit-rot over the years and so the following caveats need to be added: + <ul> + <li> + The X target does not build under recent Cygwin configurations. + </li> + <li> + The X target does not build under current Ubuntu distributions; + it fails to locate the X header files. + </li> + <li> + The sim target itself is broken under 64-bit Linux. + This is because the sim target is based upon some assembly language setjmp/longjmp logic that only works on 32-bit systems. + </li> + </ul> + </p> </li> </ol> <p> diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 4b8d9ebe23..3da1c04a47 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: April 16, 2010</p> + <p>Last Updated: April 23, 2010</p> </td> </tr> </table> @@ -729,37 +729,39 @@ </tr> </table> -<p><b>nuttx-5.3 Release Notes</b>: +<p><b>nuttx-5.4 Release Notes</b>: <p> - This 50<sup>th</sup> release of NuttX was made on April 11, 2010 and is available for download from the + This 51<sup>st</sup> release of NuttX was made on April 23, 2010 and is available for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. The change log associated with the release is available <a href="#currentrelease">here</a>. Unreleased changes after this release are available in CVS. These unreleased changes are listed <a href="#pendingchanges">here</a>. </p> <p> - This release suport for one new achitecture: + This release includes one new, important extension to the + <a href="http://www.nuttx.org/NXGraphicsSubsystem.html">NX graphics system</a>: + <ul> + <p> + NX was develop a couple years back on hardware that supported only framebuffer + devices, that is, video hardware with video memory directly converts the memroy + content to video. However, most MCUs that NuttX focuses on do not support such + video memory; rather, that typically only support LCDs via parallel or serial + interfaces. + </p> + <p> + This release of NuttX extends NX so that now renders directly to the LCD device + via its serial or parallel interface. No in-memory copy of the screen memory + need be maintained so this solution should also work in MCUs with very limited + SRAM. + </p> + </ul> </p> -<ul> - <li>A basic port for the NXP LPC2378 MCU on the Olimex-LPC2378 development board was contributed by Rommel Marcelo.</li> -</ul> <p> - And extensions to two existing architures: + This initial release of this feature includes the verified NX extensions plus + a driver for the HX8347, 16-bit parallel LCD. This LCD supports 16-bit RGB + (5:6:5). </p> -<ul> - <li>David Hewson contributed a dual-speed (full/high) USB device-side driver - for the NXP LPC3131 on the Embedded Artists EA3131 development board.</li> - <li>A DMA driver and a high speed MCI driver for the Atmel AT91SAM3U are - included (but not fully tested in this release).</li> -</ul> -<p> - Two important bugfix was also included: -</p> -<ul> - <li>An important fix to the USB mass storage driver was contributed by David Hewson.</li> - <li>A serious error in the AT91SAM3U PIO handling was fixed.</li> -</ul> <table width ="100%"> <tr bgcolor="#e4e4e4"> @@ -1061,9 +1063,9 @@ <p> <b>Atmel AT91SAM3U</b>. This port uses the <a href=" http://www.atmel.com/">Atmel</a> SAM3U-EK - development board that features the AT91SAM3U4E MCU. - This port uses a GNU arm-elf or arm-eabi toolchain* under either Linux or Cygwin (with native Windows GNU - tools or Cygwin-based GNU tools). + development board that features the AT91SAM3U4E MCU. + This port uses a GNU arm-elf or arm-eabi toolchain* under either Linux or Cygwin (with native Windows GNU + tools or Cygwin-based GNU tools). </p> <ul> <p> @@ -1072,11 +1074,14 @@ logic, interrupt driven serial console, and system timer interrupts. That release passes the NuttX OS test and is proven to have a valid OS implementation. A configuration to support the NuttShell is also included. + NuttX version 5.4 adds support for the HX8347 LCD on the SAM3U-EK board. + This LCD support includes an example using the + <a href=" http://www.nuttx.org/NXGraphicsSubsystem.html">NX graphics system</a>. </p> <p> Subsequent NuttX releases will extend this port and add support for SDIO-based SD cards and USB device (and possible LCD support). - These extensions may or may not happen by the Nuttx 5.3 release as my plate is kind of full now. + These extensions may or may not happen by the Nuttx 5.5 release as my plate is kind of full now. </p> <p> <b>Development Environments:</b> @@ -1638,26 +1643,12 @@ Other memory: </table> <ul><pre> -nuttx-5.3 2010-04-11 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; +nuttx-5.4 2010-04-23 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - * arch/arm/src/lpc313x/lpc313x_usbdev.c - USB driver for the LPC313x - contributed by David Hewson. - * configs/ea3131/src/up_ubstrgc.c, configs/ea3131/usbserial, - configs/ea3131/usbstorage - USB storage and USB serial example support - contributed by David Hewson. - * Several important compilation error fixes in lpc313x and (dualspeed) USB - code also contributed by David Hewson. - * arch/arm/src/sam3u/sam3u_dmac.c - DMA support for the AT90SAM3U. - * arch/arm/src/sam3u/sam3u_hsmci.c - SD memory card support for AT90SAM3U - (Neither the DMA nor the HSMCI driver are functional on the initial checkin). - * drivers/usbdev - Several important fixes to the USB mass storage driver - submitted by David Hewson. - * configs/olimex-lpc2378, arch/arm/include/lpc2378, and arch/arm/src/lpc2378 - - Basic port of the NXP 2378 on the Olimex board contributed by - Rommel Marcelo. - * arch/arm/src/sam3u/sam3u_internal.h - Fixed a critical bug in the AT91SAM3U - PIO decoding. No PIOs greater than 15 could be used on any port! Obviously, - no one has been using this port. + * include/nuttx/lcd.h - Defines an LCD interface. + * graphics/nxglib/fb and lcd - Support LCD and framebuffer rasterizers for NX. + * configs/sam3u-ek/src/up_lcd.c - LCD driver for LCD on SAM3U-EK development + board. pascal-2.0 2010-12-21 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; @@ -1687,10 +1678,7 @@ buildroot-1.8 2009-12-21 &lt;spudmonkey@racsa.co.cr&gt; </table> <ul><pre> -nuttx-5.4 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - - * include/nuttx/lcd.h - Defines an LCD interface. - * graphics/nxglib/fb and lcd - Support LCD and framebuffer rasterizers for NX. +nuttx-5.5 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; pascal-2.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From d77a4d6cb0ee59725690c9704e9f6b2b79ad1450 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 25 Apr 2010 21:24:12 +0000 Subject: [PATCH 0584/1518] Add skeleton of ENC28J60 ethernet driver git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2627 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 3da1c04a47..e3c7774b77 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1649,6 +1649,7 @@ nuttx-5.4 2010-04-23 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * graphics/nxglib/fb and lcd - Support LCD and framebuffer rasterizers for NX. * configs/sam3u-ek/src/up_lcd.c - LCD driver for LCD on SAM3U-EK development board. + * configs/sam3u-ek/nx - NX graphics configuration for the SAM3U-EK pascal-2.0 2010-12-21 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 4e5c67bf657877e4ea1af5bda568b194ec9da40f Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 1 May 2010 19:21:06 +0000 Subject: [PATCH 0585/1518] Add nettest config for str-p711 using enc28j60 git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2642 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index e3c7774b77..e86046858f 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: April 23, 2010</p> + <p>Last Updated: May 1, 2010</p> </td> </tr> </table> @@ -1681,6 +1681,12 @@ buildroot-1.8 2009-12-21 &lt;spudmonkey@racsa.co.cr&gt; <ul><pre> nuttx-5.5 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + * drivers/net/enc28j60.c - Microchip ENC28J60 SPI ethernet chip driver. + (untested on original check-in). + * configs/olimex-str7p11/nettest - examples/nettest configuration using + the ENC28J60 driver on the Olimex STMicro STR-P711. + (unverified on original check-in) + pascal-2.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; buildroot-1.9 2010-xx-xx <spudmonkey@racsa.co.cr> From 24708b829d2f4bfcc0b3072f3402dce7ec394720 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 2 May 2010 21:58:00 +0000 Subject: [PATCH 0586/1518] Add XTI support git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2645 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index e86046858f..63e59af745 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: May 1, 2010</p> + <p>Last Updated: May 2, 2010</p> </td> </tr> </table> @@ -1686,6 +1686,10 @@ nuttx-5.5 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * configs/olimex-str7p11/nettest - examples/nettest configuration using the ENC28J60 driver on the Olimex STMicro STR-P711. (unverified on original check-in) + * configs/olimex-str7p11/src/up_enc28j60.c - Add ENC28J60 initialization + logic. + * arch/arm/src/str7x/str7x_xti.c - Add basic XTI support (external + interrupts). pascal-2.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From e3a83d119ac7d7e99b474470344d61e737c964f1 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 4 May 2010 01:28:47 +0000 Subject: [PATCH 0587/1518] Basic enc29j80 init logic exercised git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2650 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 63e59af745..b44b4a43bc 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -897,8 +897,9 @@ Two configurations have been verified: (1) The board boots and passes the OS test with console output visible on UART0, and the NuttShell <a href="NuttShell.html">(NSH)</a> is fully functional with interrupt driven serial console. An SPI driver is available - but untested (because the Olimex card slot appears to accept only MMC cards; I have - only SD cards). Additional features are needed: USB driver, MMC integration, to name two. + but only partially tested. Additional features are needed: USB driver, MMC/SD integration, + to name two. And ENC29J60 Ethernet driver for add-on hardware is under development and + should be available in the NuttX 5.5 release. </p> <p> <b>Development Environments:</b> From e09179951f365b4df393fce5dafe8ec1483bb419 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Thu, 6 May 2010 00:08:02 +0000 Subject: [PATCH 0588/1518] Add ENC28J60 Interrupt git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2651 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index b44b4a43bc..349cf84c84 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: May 2, 2010</p> + <p>Last Updated: May 4, 2010</p> </td> </tr> </table> @@ -897,8 +897,10 @@ Two configurations have been verified: (1) The board boots and passes the OS test with console output visible on UART0, and the NuttShell <a href="NuttShell.html">(NSH)</a> is fully functional with interrupt driven serial console. An SPI driver is available - but only partially tested. Additional features are needed: USB driver, MMC/SD integration, - to name two. And ENC29J60 Ethernet driver for add-on hardware is under development and + but only partially tested. Additional features are needed: USB driver, MMC integration, + to name two (the slot on the board appears to accept on MMC card dimensions; I have only + SD cards). + An SPI-based ENC29J60 Ethernet driver for add-on hardware is under development and should be available in the NuttX 5.5 release. </p> <p> @@ -1689,6 +1691,8 @@ nuttx-5.5 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; (unverified on original check-in) * configs/olimex-str7p11/src/up_enc28j60.c - Add ENC28J60 initialization logic. + * configs/olimex-str7p11/src/up_spi.c - Fixed some bugs; added support + for ENC28J60. * arch/arm/src/str7x/str7x_xti.c - Add basic XTI support (external interrupts). From 29606ecb71b7a4cc2f7cde44db43c1472410475f Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 7 May 2010 04:20:12 +0000 Subject: [PATCH 0589/1518] Add LM3S6965 configuration git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2655 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 349cf84c84..58afda7b58 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: May 4, 2010</p> + <p>Last Updated: May 6, 2010</p> </td> </tr> </table> @@ -998,7 +998,7 @@ <td><br></td> <td> <p> - <b>Luminary LM3S6918</b>. + <b>Luminary/TI LM3S6918</b>. This port uses the <a href=" http://www.micromint.com/">Micromint</a> Eagle-100 development board with a GNU arm-elf toolchain* under either Linux or Cygwin. </p> @@ -1025,6 +1025,29 @@ <td><br></td> <td><hr></td> </tr> +<tr> + <td><br></td> + <td> + <p> + <b>Luminary/TI LM3S6965</b>. + This port uses the Stellaris LM3S6965 Evalution Kit with a GNU arm-elf toolchain* + under either Linux or Cygwin. + </p> + <ul> + <p> + <b>STATUS:</b> + This port is available in the source tree, but is still under development. + </p> + <p> + <b>Development Environments:</b> See the Eagle-100 above. + </p> + </ul> + </td> +</tr> +<tr> + <td><br></td> + <td><hr></td> +</tr> <tr> <td><br></td> <td> @@ -1695,6 +1718,10 @@ nuttx-5.5 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; for ENC28J60. * arch/arm/src/str7x/str7x_xti.c - Add basic XTI support (external interrupts). + * arch/arm/src/lm3s and arch/arm/include/lm3s - Add definitions for + LM3S6965 + * configs/lm3s6965-ek - Add configuration for Stellaris LM3S6965 + Evaluation Kit. pascal-2.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From ae78cafe4aa0bc7a5ee62e8086fb6d536df0549f Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 8 May 2010 03:10:51 +0000 Subject: [PATCH 0590/1518] Add floating point support to printf git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2656 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 58afda7b58..798726f26d 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: May 6, 2010</p> + <p>Last Updated: May 7, 2010</p> </td> </tr> </table> @@ -1722,6 +1722,11 @@ nuttx-5.5 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; LM3S6965 * configs/lm3s6965-ek - Add configuration for Stellaris LM3S6965 Evaluation Kit. + * lib/lib_dtoa.c and lib/lib_dtoa.c - printf will not printf floating + point values if you select CONFIG_LIBC_FLOATINGPOINT in your + configuration file. Contributed by Yolande Cates. NOTE: these + floating point operations have not been well tested and may not + be portable to all floating point implementations. pascal-2.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From b6d65bea5f16eb7dc5fb1f3b28df9e7662db3512 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 9 May 2010 16:36:07 +0000 Subject: [PATCH 0591/1518] Add LM3S6965 NSH configuration + Prep for 5.5 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2659 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 125 ++++++++++++++++++++++---------------- Documentation/README.html | 6 +- 2 files changed, 78 insertions(+), 53 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 798726f26d..45f81b5491 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: May 7, 2010</p> + <p>Last Updated: May 9, 2010</p> </td> </tr> </table> @@ -729,39 +729,51 @@ </tr> </table> -<p><b>nuttx-5.4 Release Notes</b>: +<p><b>nuttx-5.5 Release Notes</b>: <p> - This 51<sup>st</sup> release of NuttX was made on April 23, 2010 and is available for download from the + This 52<sup>nd</sup> release of NuttX was made on May 9, 2010 and is available for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. The change log associated with the release is available <a href="#currentrelease">here</a>. Unreleased changes after this release are available in CVS. These unreleased changes are listed <a href="#pendingchanges">here</a>. </p> <p> - This release includes one new, important extension to the - <a href="http://www.nuttx.org/NXGraphicsSubsystem.html">NX graphics system</a>: + This relese includes one new port, some new drivers and some important bugfixes: <ul> - <p> - NX was develop a couple years back on hardware that supported only framebuffer - devices, that is, video hardware with video memory directly converts the memroy - content to video. However, most MCUs that NuttX focuses on do not support such - video memory; rather, that typically only support LCDs via parallel or serial - interfaces. + <li><p> + NuttX was ported to the Luminary/TI LM3S6965 Ethernet Evaluation Kit. + At present, that port includes an OS test configuration and a NuttShell + (NSH) configuration with telnet support. </p> <p> - This release of NuttX extends NX so that now renders directly to the LCD device - via its serial or parallel interface. No in-memory copy of the screen memory - need be maintained so this solution should also work in MCUs with very limited - SRAM. - </p> + MMC/SD and Networking support are provided but not thoroughly verified + in this release: Current development efforts are focused on porting the + NuttX window system (NX) to work with the Evaluation Kits OLED display. + </p></li> + <li><p> + A NuttX Ethernet driver for the Microchip ENC28J60 SPI Ethernet chip is + available in the source tree (but has not yet been fully verified because + I haven't properly connected it to hardware yet). + </p></li> + <li><p> + The Olimex STR-P711 NuttX port was extended to support the ENC28J60 and + some new networking configurations were added. The ENC28J60 has not + been tested on the STR-P711, however, because of hardware issues (I don't + think the USB powered board provides enough power for the ENC28J60 and + I don't have the right wall wart yet). + </p></li> + <li><p> + Along the way, external interrupt support (XTI) was added to the STMicro + STR-P711 port and some important bugs were fixed in the STR-P711 SPI + driver. + </p></li> + <li><p> + Corrected an important UDP reference counting error. It was not a serious + error, but it trigger an assertion was IS a serious error. + </p></li> </ul> </p> -<p> - This initial release of this feature includes the verified NX extensions plus - a driver for the HX8347, 16-bit parallel LCD. This LCD supports 16-bit RGB - (5:6:5). -</p> <table width ="100%"> <tr bgcolor="#e4e4e4"> @@ -1030,16 +1042,27 @@ <td> <p> <b>Luminary/TI LM3S6965</b>. - This port uses the Stellaris LM3S6965 Evalution Kit with a GNU arm-elf toolchain* + This port uses the Stellaris LM3S6965 Ethernet Evalution Kit with a GNU arm-elf toolchain* under either Linux or Cygwin. </p> <ul> <p> <b>STATUS:</b> - This port is available in the source tree, but is still under development. + This port was released in NuttX 5.5. + Features are the same as with the Eagle-100 LM3S6918 described above. + The examples/ostest configuration has been successfully verified and an + NSH configuration with telnet support is available. + MMC/SD and Networking support was not been thoroughly verified: + Current development efforts are focused on porting the NuttX window system (NX) + to work with the Evaluation Kits OLED display. </p> + <p><small> + <b>NOTE</b>: As it is configured now, you MUST have a network connected. + Otherwise, the NSH prompt will not come up because the Ethernet + driver is waiting for the network to come up. + </small></p> <p> - <b>Development Environments:</b> See the Eagle-100 above. + <b>Development Environments:</b> See the Eagle-100 LM3S6918 above. </p> </ul> </td> @@ -1669,13 +1692,32 @@ Other memory: </table> <ul><pre> -nuttx-5.4 2010-04-23 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; +nuttx-5.5 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - * include/nuttx/lcd.h - Defines an LCD interface. - * graphics/nxglib/fb and lcd - Support LCD and framebuffer rasterizers for NX. - * configs/sam3u-ek/src/up_lcd.c - LCD driver for LCD on SAM3U-EK development - board. - * configs/sam3u-ek/nx - NX graphics configuration for the SAM3U-EK + * drivers/net/enc28j60.c - Microchip ENC28J60 SPI ethernet chip driver. + (untested on original check-in). + * configs/olimex-str7p11/nettest - examples/nettest configuration using + the ENC28J60 driver on the Olimex STMicro STR-P711. + (unverified on original check-in) + * configs/olimex-str7p11/src/up_enc28j60.c - Add ENC28J60 initialization + logic. + * configs/olimex-str7p11/src/up_spi.c - Fixed some bugs; added support + for ENC28J60. + * arch/arm/src/str7x/str7x_xti.c - Add basic XTI support (external + interrupts). + * arch/arm/src/lm3s and arch/arm/include/lm3s - Add definitions for + LM3S6965 + * configs/lm3s6965-ek - Add configuration for Stellaris LM3S6965 + Evaluation Kit (including basic examples/ostest configuration) + * lib/lib_dtoa.c and lib/lib_dtoa.c - printf will not printf floating + point values if you select CONFIG_LIBC_FLOATINGPOINT in your + configuration file. Contributed by Yolande Cates. NOTE: these + floating point operations have not been well tested and may not + be portable to all floating point implementations. + * configs/lm3s6965-ek/nsh - Added NuttShell (NSH) configuration for + the LM3S6965 Evaluation Kit. Includes both serial and telnet + interfaces. + * net/net_close.c - Correct a UDP reference counting error pascal-2.0 2010-12-21 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; @@ -1705,28 +1747,7 @@ buildroot-1.8 2009-12-21 &lt;spudmonkey@racsa.co.cr&gt; </table> <ul><pre> -nuttx-5.5 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - - * drivers/net/enc28j60.c - Microchip ENC28J60 SPI ethernet chip driver. - (untested on original check-in). - * configs/olimex-str7p11/nettest - examples/nettest configuration using - the ENC28J60 driver on the Olimex STMicro STR-P711. - (unverified on original check-in) - * configs/olimex-str7p11/src/up_enc28j60.c - Add ENC28J60 initialization - logic. - * configs/olimex-str7p11/src/up_spi.c - Fixed some bugs; added support - for ENC28J60. - * arch/arm/src/str7x/str7x_xti.c - Add basic XTI support (external - interrupts). - * arch/arm/src/lm3s and arch/arm/include/lm3s - Add definitions for - LM3S6965 - * configs/lm3s6965-ek - Add configuration for Stellaris LM3S6965 - Evaluation Kit. - * lib/lib_dtoa.c and lib/lib_dtoa.c - printf will not printf floating - point values if you select CONFIG_LIBC_FLOATINGPOINT in your - configuration file. Contributed by Yolande Cates. NOTE: these - floating point operations have not been well tested and may not - be portable to all floating point implementations. +nuttx-5.6 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; pascal-2.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; diff --git a/Documentation/README.html b/Documentation/README.html index 885deaccf0..572f976aff 100755 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -9,7 +9,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX README Files</i></font></big></h1> - <p>Last Updated: Aprill 11, 2009</p> + <p>Last Updated: May 8, 2010</p> </td> </tr> </table> @@ -66,6 +66,10 @@ | | |- <a href="configs/ez80f910200zco/ostest/README.txt">ostest/README.txt</a> | | |- <a href="configs/ez80f910200zco/poll/README.txt">poll/README.txt</a> | | `- <a href="configs/ez80f910200zco/README.txt"><b><i>README.txt</i></b></a> + | |- lm3s6965-ek/ + | | |- <a href="configs/lm3s6965-ek/include/README.txt">include/README.txt</a> + | | |- <a href="configs/lm3s6965-ek/src/README.txt">src/README.txt</a> + | | `- <a href="configs/lm3s6965-ek/README.txt"><b><i>README.txt</i></b></a> | |- m68332evb/ | | |- <a href="configs/m68332evb/include/README.txt">include/README.txt</a> | | `- <a href="configs/m68332evb/src/README.txt">src/README.txt</a> From 7bef4d83f0fbaaf1151e4bbbfc35faa510e813a2 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Tue, 11 May 2010 03:55:28 +0000 Subject: [PATCH 0592/1518] Add skeleton of P14201 driver git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2664 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 45f81b5491..e454ffd39a 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: May 9, 2010</p> + <p>Last Updated: May 10, 2010</p> </td> </tr> </table> @@ -1749,6 +1749,8 @@ buildroot-1.8 2009-12-21 &lt;spudmonkey@racsa.co.cr&gt; <ul><pre> nuttx-5.6 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + * drivers/lcd/p14201.c - Driver for RiT P14201 series OLED. + pascal-2.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; buildroot-1.9 2010-xx-xx <spudmonkey@racsa.co.cr> From 7c23ed0b1f5f9ffc3f964ec5a5a0642132980ac2 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 15 May 2010 01:15:52 +0000 Subject: [PATCH 0593/1518] In progress changes for OLED display work git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2669 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 6 ++- Documentation/NuttxPortingGuide.html | 73 ++++++++++++++++++++++++++-- 2 files changed, 73 insertions(+), 6 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index e454ffd39a..05b31b4b1c 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: May 10, 2010</p> + <p>Last Updated: May 12, 2010</p> </td> </tr> </table> @@ -1749,7 +1749,9 @@ buildroot-1.8 2009-12-21 &lt;spudmonkey@racsa.co.cr&gt; <ul><pre> nuttx-5.6 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - * drivers/lcd/p14201.c - Driver for RiT P14201 series OLED. + * drivers/lcd/p14201.c - Driver for RiT P14201 series 128x96 4-bit OLED. + * configs/lm3s6965-ek/nx - NX graphics configuration for the LM3S6965 + Ethernet Evaluation Kit. pascal-2.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index fa7646e171..020d667fe8 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@ <h1><big><font color="#3c34ec"> <i>NuttX RTOS Porting Guide</i> </font></big></h1> - <p>Last Updated: April 19, 2010</p> + <p>Last Updated: May 13, 2010</p> </td> </tr> </table> @@ -2483,7 +2483,21 @@ extern void up_ledoff(int led); </li> </ul> -<h2>SPI-based MMC/SD driver</h2> +<h2>Device Drivers</h2> +<h3>SPI driver</h3> +<ul> + <li> + <code>CONFIG_SPI_OWNBUS - Set if there is only one active device + on the SPI bus. No locking or SPI configuration will be performed. + It is not necessary for clients to lock, re-configure, etc.. + </li> + <li> + <code>CONFIG_SPI_EXCHANGE</code>: Driver supports a single exchange method + (vs a recvblock() and sndblock ()methods) + </li> +</ul> + +<h3>SPI-based MMC/SD driver</h3> <ul> <li> <code>CONFIG_MMCSD_NSLOTS</code>: Number of MMC/SD slots supported by the driver. Default is one. @@ -2496,7 +2510,7 @@ extern void up_ledoff(int led); </li> </ul> -<h2>SDIO-based MMC/SD driver</h2> +<h3>SDIO-based MMC/SD driver</h3> <ul> <li> <code>CONFIG_FS_READAHEAD</code>: Enable read-ahead buffering @@ -2515,8 +2529,59 @@ extern void up_ledoff(int led); </li> </ul> +<h3>RiT P14201 OLED driver</h3> +<ul> + <li> + <code>CONFIG_LCD_P14201</code>: Enable P14201 support + </li> + <li> + <code>CONFIG_P14201_SPIMODE</code>: Controls the SPI mode + </li> + <li> + <code>CONFIG_P14201_FREQUENCY</code>: Define to use a different bus frequency + </li> + <li> + <code>CONFIG_P14201_NINTERFACES</code>: + Specifies the number of physical P14201 devices that will be supported. + </li> + <li> + <code>CONFIG_P14201_FRAMEBUFFER</code>: + If defined, accesses will be performed using an in-memory copy of the OLEDs GDDRAM. + This cost of this buffer is 128 * 96 / 2 = 6Kb. + If this is defined, then the driver will be fully functioned. + If not, then it will have the following limitations: + <ul> + <li>Reading graphics memory cannot be supported, and</li> + <li>All pixel writes must be aligned to byte boundaries.</li> + </ul> + </li> +</ul> + +<h3>ENC28J60 Ethernet Driver Configuration Settings</h3> +<ul> + <li> + <code>CONFIG_NET_ENC28J60</code>: Enabled ENC28J60 support + </li> + <li> + <code>CONFIG_ENC28J60_SPIMODE</code>: Controls the SPI mode + </li> + <li> + <code>CONFIG_ENC28J60_FREQUENCY</code>: Define to use a different bus frequency + </li> + <li> + <code>CONFIG_ENC28J60_NINTERFACES</code>: + Specifies the number of physical ENC28J60 devices that will be supported. + </li> + <li> + <code>CONFIG_ENC28J60_STATS</code>: Collect network statistics + </li> + <li> + <code>CONFIG_ENC28J60_HALFDUPPLEX</code>: Default is full duplex + </li> +</ul> + <h2>Network Support</h2> -<h3>TCP/IP and UDP support via uIP</h2> +<h3>TCP/IP and UDP support via uIP</h3> <ul> <li> <code>CONFIG_NET</code>: Enable or disable all network features From 210682a690b6889250d29de8f290529e437821b9 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 15 May 2010 18:57:24 +0000 Subject: [PATCH 0594/1518] Finish framebuffer support git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2672 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 020d667fe8..ffaba7a73f 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -2548,12 +2548,13 @@ extern void up_ledoff(int led); <code>CONFIG_P14201_FRAMEBUFFER</code>: If defined, accesses will be performed using an in-memory copy of the OLEDs GDDRAM. This cost of this buffer is 128 * 96 / 2 = 6Kb. - If this is defined, then the driver will be fully functioned. + If this is defined, then the driver will be fully functional. If not, then it will have the following limitations: <ul> <li>Reading graphics memory cannot be supported, and</li> <li>All pixel writes must be aligned to byte boundaries.</li> </ul> + The latter limitation effectively reduces the 128x96 disply to 64x96. </li> </ul> From e54e4b3951030903421ae86d4e3b807ef9602a8f Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 26 May 2010 13:02:39 +0000 Subject: [PATCH 0595/1518] Add LPC313x I2C+SPI drivers and fixes for USB driver git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2702 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 05b31b4b1c..702eeaf0c6 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: May 12, 2010</p> + <p>Last Updated: May 26, 2010</p> </td> </tr> </table> @@ -1752,6 +1752,19 @@ nuttx-5.6 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; * drivers/lcd/p14201.c - Driver for RiT P14201 series 128x96 4-bit OLED. * configs/lm3s6965-ek/nx - NX graphics configuration for the LM3S6965 Ethernet Evaluation Kit. + * graphics/ - Numerous fixes to get the P14201 4-bpp greyscale display + working (there may still be some minor issues .. see the TODO list). + * arch/arm/include/lpc17xx and arch/arm/src/lpc17xxx - Began port for + NXP LPC1768 + * drivers/mtd/m25px.c - Add support for M25P1 flash part (See NOTE) + * include/nuttx/i2c.h - Extended I2C interface definition to handle + multiple transfers (See NOTE). + * include/nuttx/usbdev.h - Corrected an important macro definition + needed to correctly handle USB null packet transfers (See NOTE). + * arch/arm/src/lpc313x - New drivers: I2C and SPI. Plus several + important LPC313x USB bug fixes (See NOTE). + + NOTE: Contributed by David Hewson. pascal-2.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 09b298c5ec5eb20c6354ed44bcfb69d63fa03ce4 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 4 Jun 2010 19:07:13 +0000 Subject: [PATCH 0596/1518] Fix HTML error git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2724 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index ffaba7a73f..e5ea927762 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -373,7 +373,7 @@ Used to disable all interrupts. </li> <li> - <code>void irqrestore(irqstate_t flags)<code>: + <code>void irqrestore(irqstate_t flags)</code>: Used to restore interrupt enables to the same state as before <code>irqsave()</code> was called. </li> </ul> From 20e326098d19c35938c8fcd9d1429514b5f0bdf4 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Fri, 4 Jun 2010 19:15:26 +0000 Subject: [PATCH 0597/1518] Fix HTML error git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2725 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index e5ea927762..d9e1652893 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -517,12 +517,12 @@ <ul> <li><code>arch/c5471</code>: Replaced with <code>arch/arm/include/c5471</code> and - <code>arch/arm/src/c5471<code>. + <code>arch/arm/src/c5471</code>. </li> <li><code>arch/dm320</code>: Replaced with <code>arch/arm/include/dm320</code> and - <code>arch/arm/src/dm320<code>. + <code>arch/arm/src/dm320</code>. </li> </ul> <p> @@ -583,7 +583,7 @@ <li> <code>src/</code>: This directory contains board specific drivers. - This directory will be linked as <config>arch/</code><i>&lt;arch-name&gt;</i><code>/src/board</config> at configuration + This directory will be linked as <config>arch/</code><i>&lt;arch-name&gt;</i><code>/src/board</code> at configuration time and will be integrated into the build system. </li> <li> @@ -2267,7 +2267,7 @@ extern void up_ledoff(int led); instrumentation is selected. Set to zero to disable. </li> <li> - <code>CONFIG_START_YEAR, CONFIG_START_MONTH, CONFIG_START_DAY - + <code>CONFIG_START_YEAR</code>, <code>CONFIG_START_MONTH</code>, <code>CONFIG_START_DAY</code> - Used to initialize the internal time logic. </li> <li> @@ -2487,7 +2487,7 @@ extern void up_ledoff(int led); <h3>SPI driver</h3> <ul> <li> - <code>CONFIG_SPI_OWNBUS - Set if there is only one active device + <code>CONFIG_SPI_OWNBUS</code> - Set if there is only one active device on the SPI bus. No locking or SPI configuration will be performed. It is not necessary for clients to lock, re-configure, etc.. </li> @@ -2783,7 +2783,7 @@ extern void up_ledoff(int led); CONFIG_THTTPD_TILDE_MAP1 and &quot;public_html&quot; forCONFIG_THTTPD_TILDE_MAP2. </li> <li> - <code>CONFIG_THTTPD_GENERATE_INDICES + <code>CONFIG_THTTPD_GENERATE_INDICES</code>: </li> <li> <code>CONFIG_THTTPD_URLPATTERN</code>: If defined, then it will be used to match @@ -2922,11 +2922,11 @@ extern void up_ledoff(int led); If this option is defined, NX will build to use an LCD driver (see <code>include/nuttx/lcd.h</code>). </li> <li> - <code>CONFIG_LCD_MAXPOWER/code>: + <code>CONFIG_LCD_MAXPOWER</code>: The full-on power setting for an LCD device. </li> <li> - <code>CONFIG_LCD_MAXCONTRAST/code>: + <code>CONFIG_LCD_MAXCONTRAST</code>: The maximum contrast value for an LCD device. </li> <li> From 5ad8b1146acb8fbf3a1750f65a21fc15e55599cc Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 5 Jun 2010 15:34:31 +0000 Subject: [PATCH 0598/1518] Prep for 5.6 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2727 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 207 ++++++++++++++++++++++----------------- 1 file changed, 118 insertions(+), 89 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 702eeaf0c6..035207ac66 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: May 26, 2010</p> + <p>Last Updated: June 5, 2010</p> </td> </tr> </table> @@ -487,6 +487,34 @@ </p> </tr> +<tr> + <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> + <td bgcolor="#5eaee1"> + <b>FLASH Support</b> + </td> +</tr> +<tr> + <td><br></td> + <td> + <p> + <li><i>MTD</i>-inspired interface for <i>M</i>emory <i>T</i>echnology <i>D</i>evices.</li> + </p> +</tr> +<tr> + <td><br></td> + <td> + <p> + <li><i>FTL</i>. Simple <i>F</i>lash <i>T</i>ranslation <i>L</i>ayer support file systems on FLASH.</li> + </p> +</tr> +<tr> + <td><br></td> + <td> + <p> + <li>Support for SPI-based FLASH devices.</li> + </p> +</tr> + <tr> <td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td> <td bgcolor="#5eaee1"> @@ -504,7 +532,7 @@ <td><br></td> <td> <p> - <li>USB device controller drivers available for the NXP LPC214x and TI DM320.</li> + <li>USB device controller drivers available for the NXP LPC214x, LPC313x, STMicro STM32 and TI DM320.</li> </p> </tr> <tr> @@ -535,12 +563,19 @@ <li>Framebuffer drivers.</li> </p> </tr> +<tr> + <td><br></td> + <td> + <p> + <li>LCD drivers for both parallel and SPI LCDs and OLEDs.</li> + </p> +</tr> <tr> <td><br></td> <td> <p> <li> - NX: A graphics library, tiny windowing system and tiny font support. + NX: A graphics library, tiny windowing system and tiny font support that works with either framebuffer or LCD drivers. Documented in the <a href="NXGraphicsSubsystem.html">NX Graphics Subsystem</a> manual. </li> @@ -729,52 +764,44 @@ </tr> </table> -<p><b>nuttx-5.5 Release Notes</b>: +<p><b>nuttx-5.6 Release Notes</b>: <p> - This 52<sup>nd</sup> release of NuttX was made on May 9, 2010 and is available for download from the + This 53<sup>rd</sup> release of NuttX was made on June 5, 2010 and is available for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. The change log associated with the release is available <a href="#currentrelease">here</a>. Unreleased changes after this release are available in CVS. These unreleased changes are listed <a href="#pendingchanges">here</a>. </p> <p> - This relese includes one new port, some new drivers and some important bugfixes: + This release includes one several new drivers for existing NuttX ports: <ul> - <li><p> - NuttX was ported to the Luminary/TI LM3S6965 Ethernet Evaluation Kit. - At present, that port includes an OS test configuration and a NuttShell - (NSH) configuration with telnet support. - </p> - <p> - MMC/SD and Networking support are provided but not thoroughly verified - in this release: Current development efforts are focused on porting the - NuttX window system (NX) to work with the Evaluation Kits OLED display. - </p></li> - <li><p> - A NuttX Ethernet driver for the Microchip ENC28J60 SPI Ethernet chip is - available in the source tree (but has not yet been fully verified because - I haven't properly connected it to hardware yet). - </p></li> - <li><p> - The Olimex STR-P711 NuttX port was extended to support the ENC28J60 and - some new networking configurations were added. The ENC28J60 has not - been tested on the STR-P711, however, because of hardware issues (I don't - think the USB powered board provides enough power for the ENC28J60 and - I don't have the right wall wart yet). - </p></li> - <li><p> - Along the way, external interrupt support (XTI) was added to the STMicro - STR-P711 port and some important bugs were fixed in the STR-P711 SPI - driver. - </p></li> - <li><p> - Corrected an important UDP reference counting error. It was not a serious - error, but it trigger an assertion was IS a serious error. - </p></li> + <li> + This port adds support for the RiT displays P14201 4-bpp, greyscale OLED. + 4-bpp greyscale support was integrated into the NX graphics sub-system and + verified using the TI/Luminary LP3S6965 Ethernet Evaluation Kit. + </li> + <li> + The MP25Px driver was extended for the M24P1 FLASH part (see NOTE). + </li> + <li> + An I2C driver and (basic) SPI driver were added for the NXP LPC313x port. + The I2C interface definition was extended to efficiently handle multiple I2C + transfers (See NOTE). + </li> </ul> </p> - +<p> + As well as a few, important USB-related bugfixes (See the ChangeLog for details). +</p> +<p> + This release also includes the beginnings of a port for the NXP LPC1768 MCU. However, + it is too early for that port to be useful (stay tuned for a future announcement of the + availability of the verified LPC1768 port). +</p> +<p> + <small><b>NOTE</b>: Contributed by David Hewson where noted.</small> +</p> <table width ="100%"> <tr bgcolor="#e4e4e4"> <td> @@ -847,7 +874,7 @@ This port boots and passes the OS test (examples/ostest). The port is complete and verified. As of NuttX 0.3.17, the port includes: timer interrupts, serial console, USB driver, and SPI-based MMC/SD card - support. A verified NuttShell <a href="NuttShell.html">(NSH)</a> + support. A verified NuttShell (<a href="NuttShell.html">NSH</a>) configuration is also available. </p> <p> @@ -907,7 +934,7 @@ <b>STATUS:</b> Integration is complete on the basic port (boot logic, system time, serial console). Two configurations have been verified: (1) The board boots and passes the OS test - with console output visible on UART0, and the NuttShell <a href="NuttShell.html">(NSH)</a> + with console output visible on UART0, and the NuttShell (<a href="NuttShell.html">NSH</a>) is fully functional with interrupt driven serial console. An SPI driver is available but only partially tested. Additional features are needed: USB driver, MMC integration, to name two (the slot on the board appears to accept on MMC card dimensions; I have only @@ -993,9 +1020,10 @@ The basic EA3131 port is complete and verified in NuttX-5.2 This basic port includes basic boot-up, serial console, and timer interrupts. This port was extended in NuttX 5.3 with a USB high speed driver contributed by David Hewson. + David also contributed I2C and SPI drivers plus several important LPC313x USB bug fixes + that appear in the NuttX 5.6 release. This port has been verified using the NuttX OS test, USB serial and mass storage - tests and includes a working implementation of the NuttShell (<a href="NuttShell.html">(NSH)</a>). - An extended release may follow and should include SDIO-based SD card support. + tests and includes a working implementation of the NuttShell (<a href="NuttShell.html">NSH</a>). </p> </ul> </td> @@ -1076,10 +1104,10 @@ <td> <p> <b>STMicro STM32F103x</b>. - This port uses the <a href=" http://www.st.com/">STMicro</a> STM3210E-EVAL - development board that features the STM32F103ZET6 MCU. - This port uses a GNU arm-elf toolchain* under either Linux or Cygwin (with native Windows GNU - tools or Cygwin-based GNU tools). + This port uses the <a href=" http://www.st.com/">STMicro</a> STM3210E-EVAL development board that + features the STM32F103ZET6 MCU. + This port uses a GNU arm-elf toolchain* under either Linux or Cygwin (with native Windows GNU + tools or Cygwin-based GNU tools). </p> <ul> <p> @@ -1143,6 +1171,30 @@ </ul> </td> </tr> +<tr> + <td><br></td> + <td><hr></td> +</tr> +<tr> + <td><br></td> + <td> + <p> + <b>NXP LPC1768</b>. + </p> + <ul> + <p> + <b>STATUS:</b> + Some initial files for the LPCP17xx family were released in NuttX 5.6, but that port is not yet ready for general use + (I, in fact, still do not have hardware in hand). + Look for the announcement of the LPC1768 NuttX port in a future release. + </p> + <p> + <b>Development Environments:</b> + Same as for the other Cortex-M3 ports. + </p> + </ul> + </td> +</tr> <tr> <td valign="top"><img height="20" width="20" src="favicon.ico"></td> <td bgcolor="#5eaee1"> @@ -1692,32 +1744,26 @@ Other memory: </table> <ul><pre> -nuttx-5.5 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; +5.6 2010-06-05 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - * drivers/net/enc28j60.c - Microchip ENC28J60 SPI ethernet chip driver. - (untested on original check-in). - * configs/olimex-str7p11/nettest - examples/nettest configuration using - the ENC28J60 driver on the Olimex STMicro STR-P711. - (unverified on original check-in) - * configs/olimex-str7p11/src/up_enc28j60.c - Add ENC28J60 initialization - logic. - * configs/olimex-str7p11/src/up_spi.c - Fixed some bugs; added support - for ENC28J60. - * arch/arm/src/str7x/str7x_xti.c - Add basic XTI support (external - interrupts). - * arch/arm/src/lm3s and arch/arm/include/lm3s - Add definitions for - LM3S6965 - * configs/lm3s6965-ek - Add configuration for Stellaris LM3S6965 - Evaluation Kit (including basic examples/ostest configuration) - * lib/lib_dtoa.c and lib/lib_dtoa.c - printf will not printf floating - point values if you select CONFIG_LIBC_FLOATINGPOINT in your - configuration file. Contributed by Yolande Cates. NOTE: these - floating point operations have not been well tested and may not - be portable to all floating point implementations. - * configs/lm3s6965-ek/nsh - Added NuttShell (NSH) configuration for - the LM3S6965 Evaluation Kit. Includes both serial and telnet - interfaces. - * net/net_close.c - Correct a UDP reference counting error + * drivers/lcd/p14201.c - Driver for RiT P14201 series 128x96 4-bit OLED. + * configs/lm3s6965-ek/nx - NX graphics configuration for the LM3S6965 + Ethernet Evaluation Kit. + * graphics/ - Numerous fixes to get the P14201 4-bpp greyscale display + working (there may still be some minor issues .. see the TODO list). + * arch/arm/include/lpc17xx and arch/arm/src/lpc17xxx - Began port for + NXP LPC1768. As of the 5.6 release, there is a complete set of + LPC17xx header files defining all bits in all LPC17xx registers, + but little else (I still do not have hardware in hand). + * drivers/mtd/m25px.c - Add support for M25P1 flash part (See NOTE) + * include/nuttx/i2c.h - Extended I2C interface definition to handle + multiple transfers (See NOTE). + * include/nuttx/usbdev.h - Corrected an important macro definition + needed to correctly handle USB null packet transfers (See NOTE). + * arch/arm/src/lpc313x - New drivers: I2C and SPI. Plus several + important LPC313x USB bug fixes (See NOTE). + + NOTE: Contributed by David Hewson. pascal-2.0 2010-12-21 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; @@ -1747,24 +1793,7 @@ buildroot-1.8 2009-12-21 &lt;spudmonkey@racsa.co.cr&gt; </table> <ul><pre> -nuttx-5.6 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - - * drivers/lcd/p14201.c - Driver for RiT P14201 series 128x96 4-bit OLED. - * configs/lm3s6965-ek/nx - NX graphics configuration for the LM3S6965 - Ethernet Evaluation Kit. - * graphics/ - Numerous fixes to get the P14201 4-bpp greyscale display - working (there may still be some minor issues .. see the TODO list). - * arch/arm/include/lpc17xx and arch/arm/src/lpc17xxx - Began port for - NXP LPC1768 - * drivers/mtd/m25px.c - Add support for M25P1 flash part (See NOTE) - * include/nuttx/i2c.h - Extended I2C interface definition to handle - multiple transfers (See NOTE). - * include/nuttx/usbdev.h - Corrected an important macro definition - needed to correctly handle USB null packet transfers (See NOTE). - * arch/arm/src/lpc313x - New drivers: I2C and SPI. Plus several - important LPC313x USB bug fixes (See NOTE). - - NOTE: Contributed by David Hewson. +nuttx-5.7 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; pascal-2.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From a00bdff06d182898f6f8b8bb5637f907ede7f833 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 6 Jun 2010 17:11:15 +0000 Subject: [PATCH 0599/1518] Add interrupt control logic git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2733 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 035207ac66..50849cf6cb 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: June 5, 2010</p> + <p>Last Updated: June 6, 2010</p> </td> </tr> </table> @@ -1795,6 +1795,11 @@ buildroot-1.8 2009-12-21 &lt;spudmonkey@racsa.co.cr&gt; <ul><pre> nuttx-5.7 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + * configs/nucleus2g - Add ostest configuration for the Nucleus 2G + LPC1768 board from 2G Engineering (http://www.2g-eng.com/) + * arch/arm/src/lpc17xx - Added basic LPC17xx boot-up logic, + interrupt handling, and GPIO configuration. + pascal-2.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; buildroot-1.9 2010-xx-xx <spudmonkey@racsa.co.cr> From 7616bdf704a5353881d42211e356b6c768274d8e Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 12 Jun 2010 01:29:35 +0000 Subject: [PATCH 0600/1518] Add README for Nucleus2G git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2740 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/README.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/README.html b/Documentation/README.html index 572f976aff..8b95f247ac 100755 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -86,6 +86,8 @@ | | |- <a href="configs/ntosd-dm320/include/README.txt">include/README.txt</a> | | |- <a href="configs/ntosd-dm320/src/README.txt">src/README.txt</a> | | `- <a href="configs/ntosd-dm320/README.txt"><b><i>README.txt</i></b></a> + | |- nucleus2g/ + | | `- <a href="configs/nucleus2g/README.txt"><b><i>README.txt</i></b></a> | |- olimex-strp711/ | | |- <a href="configs/olimex-strp711/include/README.txt">include/README.txt</a> | | |- <a href="configs/olimex-strp711/src/README.txt">src/README.txt</a> From aa2a0830566ee82b4ac95eccd54d51833f438328 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 23 Jun 2010 02:19:16 +0000 Subject: [PATCH 0601/1518] Prep for 5.7 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2760 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 100 +++++++++++++++++++-------------------- 1 file changed, 50 insertions(+), 50 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 50849cf6cb..8e30d28625 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: June 6, 2010</p> + <p>Last Updated: June 22, 2010</p> </td> </tr> </table> @@ -764,43 +764,41 @@ </tr> </table> -<p><b>nuttx-5.6 Release Notes</b>: +<p><b>nuttx-5.7 Release Notes</b>: <p> - This 53<sup>rd</sup> release of NuttX was made on June 5, 2010 and is available for download from the + This 54<sup>th</sup> release of NuttX was made on June 22, 2010 and is available for download from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. The change log associated with the release is available <a href="#currentrelease">here</a>. Unreleased changes after this release are available in CVS. These unreleased changes are listed <a href="#pendingchanges">here</a>. </p> <p> - This release includes one several new drivers for existing NuttX ports: + This release adds basic support for one new ARM Cortex-M3 architecture: <ul> <li> - This port adds support for the RiT displays P14201 4-bpp, greyscale OLED. - 4-bpp greyscale support was integrated into the NX graphics sub-system and - verified using the TI/Luminary LP3S6965 Ethernet Evaluation Kit. + Added support for NXP LPC1768 MCU as provided on the Nucleus 2G board from + <a href="http://www.2g-eng.com">2G Engineering</a>. </li> <li> - The MP25Px driver was extended for the M24P1 FLASH part (see NOTE). + Some initial files for the LPC17xx family were released in NuttX 5.6, but the + first functional release for the NXP LPC1768/Nucleus2G occured with NuttX 5.7. </li> <li> - An I2C driver and (basic) SPI driver were added for the NXP LPC313x port. - The I2C interface definition was extended to efficiently handle multiple I2C - transfers (See NOTE). + That initial basic release included timer interrupts and a serial console and was + verified using the NuttX OS test. + </li> + <li> + That release includes a verified NuttShell (NSH) configuration + (see the <a href="http://www.nuttx.org/NuttShell.html">NSH User Guide</a>). + Also included are unverified SPI and USB device drivers. </li> </ul> </p> <p> - As well as a few, important USB-related bugfixes (See the ChangeLog for details). -</p> -<p> - This release also includes the beginnings of a port for the NXP LPC1768 MCU. However, - it is too early for that port to be useful (stay tuned for a future announcement of the - availability of the verified LPC1768 port). -</p> -<p> - <small><b>NOTE</b>: Contributed by David Hewson where noted.</small> + Further efforts include: (1) development of a DMA support library, (2) SPI-based MMC/SD + support, and (3) verification of the USB driver. Watch for announcement of the completed + LPC1768 port expected in NuttX-5.8. </p> <table width ="100%"> <tr bgcolor="#e4e4e4"> @@ -1139,7 +1137,7 @@ <td> <p> <b>Atmel AT91SAM3U</b>. - This port uses the <a href=" http://www.atmel.com/">Atmel</a> SAM3U-EK + This port uses the <a href="http://www.atmel.com/">Atmel</a> SAM3U-EK development board that features the AT91SAM3U4E MCU. This port uses a GNU arm-elf or arm-eabi toolchain* under either Linux or Cygwin (with native Windows GNU tools or Cygwin-based GNU tools). @@ -1180,17 +1178,34 @@ <td> <p> <b>NXP LPC1768</b>. + This port uses the Nucleus 2G board from <a href="http://www.2g-eng.com/">2G Engineering</a> + featuring the NXP LPC1768 MCU. + This port uses a GNU arm-elf or arm-eabi toolchain* under either Linux or Cygwin (with native Windows GNU + tools or Cygwin-based GNU tools). </p> <ul> <p> <b>STATUS:</b> - Some initial files for the LPCP17xx family were released in NuttX 5.6, but that port is not yet ready for general use - (I, in fact, still do not have hardware in hand). - Look for the announcement of the LPC1768 NuttX port in a future release. + Some initial files for the LPC17xx family were released in NuttX 5.6, but the first + functional release for the NXP LPC1768/Nucleus2G occured with NuttX 5.7. + That initial basic release included timer interrupts and a serial console and was + verified using the NuttX OS test (<code>examples/ostest</code>). + That release includes a verified NuttShell (NSH) configuration + (see the <a href="http://www.nuttx.org/NuttShell.html">NSH User Guide</a>). + Also included are unverified SPI and USB device drivers. + </p> + <p> + Current efforts include: (1) development of a DMA support library, (2) SPI-based MMC/SD + support, and (3) verification of the USB driver. + Watch for announcement of the completed LPC1768 port expected in NuttX-5.8. </p> <p> <b>Development Environments:</b> - Same as for the other Cortex-M3 ports. + 1) Linux with native Linux GNU toolchain, 2) Cygwin with Cygwin GNU toolchain, or 3) Cygwin + with Windows native toolchain (CodeSourcery or devkitARM). A DIY toolchain for Linux + or Cygwin is provided by the NuttX + <a href="http://sourceforge.net/project/showfiles.php?group_id=189573&package_id=224585">buildroot</a> + package. </p> </ul> </td> @@ -1744,26 +1759,16 @@ Other memory: </table> <ul><pre> -5.6 2010-06-05 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; +nuttx-5.7 2010-06-22 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - * drivers/lcd/p14201.c - Driver for RiT P14201 series 128x96 4-bit OLED. - * configs/lm3s6965-ek/nx - NX graphics configuration for the LM3S6965 - Ethernet Evaluation Kit. - * graphics/ - Numerous fixes to get the P14201 4-bpp greyscale display - working (there may still be some minor issues .. see the TODO list). - * arch/arm/include/lpc17xx and arch/arm/src/lpc17xxx - Began port for - NXP LPC1768. As of the 5.6 release, there is a complete set of - LPC17xx header files defining all bits in all LPC17xx registers, - but little else (I still do not have hardware in hand). - * drivers/mtd/m25px.c - Add support for M25P1 flash part (See NOTE) - * include/nuttx/i2c.h - Extended I2C interface definition to handle - multiple transfers (See NOTE). - * include/nuttx/usbdev.h - Corrected an important macro definition - needed to correctly handle USB null packet transfers (See NOTE). - * arch/arm/src/lpc313x - New drivers: I2C and SPI. Plus several - important LPC313x USB bug fixes (See NOTE). - - NOTE: Contributed by David Hewson. + * configs/nucleus2g - Add ostest configuration for the Nucleus 2G + LPC1768 board from 2G Engineering (http://www.2g-eng.com/) + * arch/arm/src/lpc17xx - Added basic LPC17xx boot-up logic, + interrupt handling, and GPIO configuration. + * configs/nucleus2g/ostest - Completed bring-up of LPC1768 on + the Nucleus2G board using the examples/ostest + * configs/nucleus2g/nsh - Added and verified a NuttShell (NSH) + configuration for the LPC1768 on the Nucleus2G board. pascal-2.0 2010-12-21 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; @@ -1793,12 +1798,7 @@ buildroot-1.8 2009-12-21 &lt;spudmonkey@racsa.co.cr&gt; </table> <ul><pre> -nuttx-5.7 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; - - * configs/nucleus2g - Add ostest configuration for the Nucleus 2G - LPC1768 board from 2G Engineering (http://www.2g-eng.com/) - * arch/arm/src/lpc17xx - Added basic LPC17xx boot-up logic, - interrupt handling, and GPIO configuration. +nuttx-5.8 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; pascal-2.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From c37ab26194791f0e2fa7fe0e02d2fd78ad59cef4 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Wed, 30 Jun 2010 23:12:17 +0000 Subject: [PATCH 0602/1518] update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2766 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 8e30d28625..5d1600b9d2 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: June 22, 2010</p> + <p>Last Updated: June 30, 2010</p> </td> </tr> </table> @@ -1437,6 +1437,29 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1); <ul> </td> </tr> +<tr> + <td><br></td> + <td><hr></td> +</tr> +<tr> + <td><br></td> + <td> + <p> + <b>XTRS: TRS-80 Model I/III/4/4P Emulator for Unix</b>. + A very similar Z80 port is available for <a href="http://www.tim-mann.org/xtrs.html">XTRS</a>, + the TRS-80 Model I/III/4/4P Emulator for Unix. + That port also uses the <a href="http://sdcc.sourceforge.net/">SDCC</a> toolchain + under Linux or Cygwin (verified using version 2.6.0). + </p> + <ul> + <p> + <b>STATUS:</b> + Basically the same as for the Z80 instruction set simulator. + This port was contributed by Jacques Pelletier. + </p> + <ul> + </td> +</tr> <tr> <td valign="top"><img height="20" width="20" src="favicon.ico"></td> <td bgcolor="#5eaee1"> @@ -1800,6 +1823,11 @@ buildroot-1.8 2009-12-21 &lt;spudmonkey@racsa.co.cr&gt; <ul><pre> nuttx-5.8 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; + * configs/nucleus2g/src/up_nsh.c and up_ssp.c - Add support + for SPI-based MMC/SD cards and integrate into the NSH example. + * arch/arm/src/lm3s/lm3s_vectors.S - Correct vectors for GPIOC & D + interrupts. + pascal-2.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; buildroot-1.9 2010-xx-xx <spudmonkey@racsa.co.cr> From af46b8e73c13b71524c19ce431223079d715a720 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 3 Jul 2010 01:35:53 +0000 Subject: [PATCH 0603/1518] GPIO debug-related fixes git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2767 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttXBanner.html | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Documentation/NuttXBanner.html b/Documentation/NuttXBanner.html index f9f7b26126..35d44bfa5e 100644 --- a/Documentation/NuttXBanner.html +++ b/Documentation/NuttXBanner.html @@ -20,6 +20,10 @@ <img src="http://sflogo.sourceforge.net/sflogo.php?group_id=189573&type=8" width="80" height="15" border="0" alt="Get NuttX at SourceForge.net. Fast, secure and Free Open Source software downloads" /> </a> </td> + <td width="100" height="100" rowspan="2"> + <a href="http://download.famouswhy.com/nuttx/" target="_blank"> + <img src="http://download.famouswhy.com/awards/Famous_Software_Award_Logo.png" alt="NuttX" style="border:0" width="100"></a> + </td> </tr> <tr> <td align="left" valign="bottom"> From cf48d7bbfefcb81b4e20ef28b889bda1a1d31427 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 3 Jul 2010 04:58:51 +0000 Subject: [PATCH 0604/1518] Fix missing PCONP bit definition to enable GPIO git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2768 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 5d1600b9d2..fdbbc9f228 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: June 30, 2010</p> + <p>Last Updated: July 2, 2010</p> </td> </tr> </table> @@ -1827,6 +1827,8 @@ nuttx-5.8 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; for SPI-based MMC/SD cards and integrate into the NSH example. * arch/arm/src/lm3s/lm3s_vectors.S - Correct vectors for GPIOC & D interrupts. + * arch/arm/src/lpc17xx/lp17_clockconfig.c - Power was not being + provided to GPIO module. This is a critical bugfix! pascal-2.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 6d64de01a6129372c06eb8dea40457369b9d1a14 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sat, 3 Jul 2010 15:32:45 +0000 Subject: [PATCH 0605/1518] Add NTFS mklinks discussion git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2769 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index fdbbc9f228..b735eacd3d 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: July 2, 2010</p> + <p>Last Updated: July 3, 2010</p> </td> </tr> </table> @@ -1606,6 +1606,10 @@ m68k, m68hc11, m68hc12, and SuperH ports.</blockquote> specific directories in place. These copied directories make work a little more complex, but otherwise work well. </p> + <p><small> + NOTE: In this environment, it should be possible to use the NTFS <code>mklink</code> command to create links. + This should only require a minor modification to the build scripts (see <code>tools/winlink.sh</code> script). + </small></p> <li> <b>Dependencies</b> NuttX uses the GCC compiler's <code>-M</code> option to generate make dependencies. These @@ -1661,6 +1665,12 @@ m68k, m68hc11, m68hc12, and SuperH ports.</blockquote> to build NuttX. However, that environment has not been used as of this writing. </p> + <p><small> + NOTE: One of the members on the <a href="http://tech.groups.yahoo.com/group/nuttx/">NuttX forum</a> + reported that they successful built NuttX using such a GNUWin32-based, Windows native environment. + They reported that the only necessary change was to the use the NTFS mklink command to create links + (see <code>tools/winlink.sh</code> script). + </small></p> </td> </tr> </table></center> From ca7fac2359292c736a9cbf4b4b3ae2db3ec4ecc9 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 4 Jul 2010 13:50:14 +0000 Subject: [PATCH 0606/1518] Fix SSP0 hard fault git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2771 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index b735eacd3d..9d5530b024 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1839,6 +1839,10 @@ nuttx-5.8 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; interrupts. * arch/arm/src/lpc17xx/lp17_clockconfig.c - Power was not being provided to GPIO module. This is a critical bugfix! + * arch/arm/src/lpc17xx/lpc17_serial.c - Improved logic to handle + missed TX interrupts. + * arch/arm/src/lpc17xx/lpc17_ssp.c - Fix a hard fault during SSP + initialization. pascal-2.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; From 8dbb5b304711fbd4a56ab76d33cea631cb689c10 Mon Sep 17 00:00:00 2001 From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> Date: Sun, 4 Jul 2010 14:54:42 +0000 Subject: [PATCH 0607/1518] Add another frame git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2772 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttXBanner.html | 12 +------ Documentation/NuttXLinks.html | 60 ++++++++++++++++++++++++++++++++++ Documentation/index.html | 10 ++++-- 3 files changed, 69 insertions(+), 13 deletions(-) create mode 100755 Documentation/NuttXLinks.html diff --git a/Documentation/NuttXBanner.html b/Documentation/NuttXBanner.html index 35d44bfa5e..c47c8b066e 100644 --- a/Documentation/NuttXBanner.html +++ b/Documentation/NuttXBanner.html @@ -8,22 +8,12 @@ <td width="80" height="100" rowspan="2"> <img src="NuttX.png" width="80"> </td> - <td bgcolor="#e4e4e4" height="20"> - <a href="http://nuttx.sourceforge.net" target="_top">Home</a> ... - <a href="http://sourceforge.net/projects/nuttx/develop" target="_top">Project</a> ... - <a href="http://tech.groups.yahoo.com/group/nuttx/" target="_top">Forum</a> ... - <a href="http://sourceforge.net/projects/nuttx/files/" target="_top">Downloads</a> ... - <a href="freeports.html">Free Ports</a> - </td> + <td bgcolor="#e4e4e4" height="20">&nbsp</td> <td width="100" align="center"> <a href="http://sourceforge.net/projects/nuttx" target="_top"> <img src="http://sflogo.sourceforge.net/sflogo.php?group_id=189573&type=8" width="80" height="15" border="0" alt="Get NuttX at SourceForge.net. Fast, secure and Free Open Source software downloads" /> </a> </td> - <td width="100" height="100" rowspan="2"> - <a href="http://download.famouswhy.com/nuttx/" target="_blank"> - <img src="http://download.famouswhy.com/awards/Famous_Software_Award_Logo.png" alt="NuttX" style="border:0" width="100"></a> - </td> </tr> <tr> <td align="left" valign="bottom"> diff --git a/Documentation/NuttXLinks.html b/Documentation/NuttXLinks.html new file mode 100755 index 0000000000..a853692f42 --- /dev/null +++ b/Documentation/NuttXLinks.html @@ -0,0 +1,60 @@ +<html> +<head> + <title>NuttX Links</title> +</head> +<body background="backgd.gif"> +<table width="100%> + <tr> + <td colspan="2">&nbsp</td> + </tr> + <tr> + <td valign="top" width="22"> + <img height="20" width="20" src="favicon.ico"> + </td> + <td bgcolor="#e4e4e4"> + <font color="#3c34ec"><i><b>Links</b></i></font> + </td> + </tr> + <tr> + <td>&nbsp</td> + <td> + <li><a href="http://www.nuttx.org/NuttX.html" target="main">Home</a></li> + <li><a href="http://sourceforge.net/projects/nuttx/develop" target="_top">Project</a></li> + <li><a href="http://freshmeat.net/projects/nuttx/" target="_top">FreshMeat</a></li> + <li><a href="http://tech.groups.yahoo.com/group/nuttx/" target="_top">Forum</a></li> + <li><a href="http://sourceforge.net/projects/nuttx/files/" target="_top">Downloads</a></li> + <li><a href="http://sourceforge.net/projects/nuttx/files/buildroot" target="_top">Toolchains</a></li> + <li><a href="http://nuttx.cvs.sourceforge.net/nuttx/" target="_top">Browse CVS</a></li> + <li><a href="freeports.html" target="header">Free Ports</a></li> + </td> + </tr> + <tr> + <td valign="top" width="22"> + <img height="20" width="20" src="favicon.ico"> + </td> + <td bgcolor="#e4e4e4"> + <font color="#3c34ec"><i><b>Documentation</b></i></font> + </td> + </tr> + <tr> + <td>&nbsp</td> + <td> + <li><a href="NuttxUserGuide.html" target="main">User Guide</a></li> + <li><a href="NuttxPortingGuide.html" target="main">Porting Guide</a></li> + <li><a href="NuttShell.html" target="main">NuttShell (NSH)</a></li> + <li><a href="NuttXNxFlat.html" target="main">NXFLAT</a></li> + <li><a href="NXGraphicsSubsystem.html" target="main">NX Graphics</a></li> + <li><a href="README.html" target="main">NuttX README</a></tdli + <li><a href="ChangeLog.txt" target="main">Change Log</a></li> + <li><a href="TODO.txt" target="main">To-Do List</a></li> + </tr> + <tr> + <td colspan="2" align="center" valign="top"> + <a href="http://download.famouswhy.com/nuttx/" target="_blank"> + <img src="http://download.famouswhy.com/awards/Famous_Software_Award_Logo.png" alt="NuttX" style="border:0"> + </a> + </td> + </tr> +</table> +</body> +</html> \ No newline at end of file diff --git a/Documentation/index.html b/Documentation/index.html index cdf699dff7..b2f1687e4c 100644 --- a/Documentation/index.html +++ b/Documentation/index.html @@ -4,10 +4,16 @@ </head> <frameset rows="96,*" framespacing="0" border="0" frameborder="0"> <frame name="header" scrolling="no" target="main" src="NuttXBanner.html" marginwidth="0" marginheight="0"> - <frame name="main" src="NuttX.html"> + <frameset cols="15%,*"> + <frame name="links" scrolling="no" target="main" src="NuttXLinks.html" marginwidth="0" marginheight="0"> + <frame name="main" src="NuttX.html"> + </frameset> <noframes> <body> - <p>This page uses frames, but your browser doesn't support them.</p> + <p> + This page uses frames, but your browser doesn't support them. + Try this <a href="http://www.nuttx.org/NuttX.html">link</a>. + </p> </body> From 83f5b14dc974cde8c2b20b7747b3be34903fc23b Mon Sep 17 00:00:00 2001 From: patacongo Date: Mon, 5 Jul 2010 22:11:09 +0000 Subject: [PATCH 0608/1518] HTML error git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2774 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttXLinks.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttXLinks.html b/Documentation/NuttXLinks.html index a853692f42..d2abd68b33 100755 --- a/Documentation/NuttXLinks.html +++ b/Documentation/NuttXLinks.html @@ -44,7 +44,7 @@
      • NuttShell (NSH)
      • NXFLAT
      • NX Graphics
      • -
      • NuttX READMEREADME Files
      • Change Log
      • To-Do List
      • From d5c4ca043f0c2cba0eb671899218b02b4ff43ea6 Mon Sep 17 00:00:00 2001 From: patacongo Date: Thu, 8 Jul 2010 03:04:04 +0000 Subject: [PATCH 0609/1518] More IGMP logic git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2779 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 9d5530b024..6ca1dbb545 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@
        User Guide
        Porting Guide
        - NuttX RTOS
        - Project
        - Home + + + + + + + + + + +
        + NuttX RTOS +
        + Project
        +
        + Home +

        NuttX RTOS

        -

        Last Updated: July 3, 2010

        +

        Last Updated: July 7, 2010

        @@ -1843,6 +1843,12 @@ nuttx-5.8 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> missed TX interrupts. * arch/arm/src/lpc17xx/lpc17_ssp.c - Fix a hard fault during SSP initialization. + * configs/nucleus2g/src/up_led.c - Change how LEDs are controlled + so that they can be used both for NuttX instrumentation and + by application software. + * include/net/uip/igmp.h and uip-igmp.h - Add header files ini + preparation for NuttX IGMP support + * net/uip/uip_igmpinit.c, uip_igmpgroup.c - Add IGMP logic. pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From 2e9c7c48b25374f2543af2ffdcd105a48d0664f6 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 11 Jul 2010 18:31:35 +0000 Subject: [PATCH 0610/1518] Add beginning of IGMP test git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2787 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 6ca1dbb545..700137d1b9 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

        NuttX RTOS

        -

        Last Updated: July 7, 2010

        +

        Last Updated: July 11, 2010

        @@ -1848,7 +1848,9 @@ nuttx-5.8 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> by application software. * include/net/uip/igmp.h and uip-igmp.h - Add header files ini preparation for NuttX IGMP support - * net/uip/uip_igmpinit.c, uip_igmpgroup.c - Add IGMP logic. + * net/uip/uip_igmp*.c - Add IGMP support (untested on initial + checkin). + * examples/igmp - Add a trivial test for IGMP (much more is needed) pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From f1d00ca95f78251fe882c7e0c70558785749e101 Mon Sep 17 00:00:00 2001 From: patacongo Date: Mon, 12 Jul 2010 16:18:44 +0000 Subject: [PATCH 0611/1518] IGMP confi options git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2789 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index d9e1652893..9275258de7 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

        NuttX RTOS Porting Guide

        -

        Last Updated: May 13, 2010

        +

        Last Updated: July 12, 2010

        @@ -2464,6 +2464,11 @@ extern void up_ledoff(int led); structures. The system manages a pool of preallocated watchdog structures to minimize dynamic allocations +
      • + CONFIG_PREALLOC_IGMPGROUPS: Pre-allocated IGMP groups are used + Only if needed from interrupt level group created (by the IGMP server). + Default: 4 +
      • CONFIG_DEV_PIPE_SIZE: Size, in bytes, of the buffer to allocated for pipe and FIFO support (default is 1024). @@ -2645,6 +2650,14 @@ extern void up_ledoff(int led); CONFIG_NET_ICMP_PING: Provide interfaces to support application level support for sending ECHO (ping) requests and associating ECHO replies.
      • +
      • + CONFIG_NET_IGMP: Enable IGMPv2 client support. +
      • +
      • + CONFIG_PREALLOC_IGMPGROUPS: Pre-allocated IGMP groups are used + Only if needed from interrupt level group created (by the IGMP server). + Default: 4 +
      • CONFIG_NET_PINGADDRCONF: Use "ping" packet for setting IP address
      • From f4a9ce9044e4f9e540a1d763981d52e6c6103037 Mon Sep 17 00:00:00 2001 From: patacongo Date: Tue, 13 Jul 2010 02:29:09 +0000 Subject: [PATCH 0612/1518] IGMP debug fixes git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2790 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 700137d1b9..6b2a545d98 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -452,7 +452,7 @@

        -

      • TCP/IP, UDP, ICMP stacks.
      • +
      • TCP/IP, UDP, ICMP, IGMPv2 (client) stacks.
      • From 6f0be135006d2402e108c483c403283f8df58c72 Mon Sep 17 00:00:00 2001 From: patacongo Date: Fri, 16 Jul 2010 03:01:05 +0000 Subject: [PATCH 0613/1518] LPC17xx USBDEV driver now compiles (still untested) git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2805 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 6b2a545d98..d42fbb8e32 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

        NuttX RTOS

        -

        Last Updated: July 11, 2010

        +

        Last Updated: July 15, 2010

        @@ -1851,6 +1851,11 @@ nuttx-5.8 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> * net/uip/uip_igmp*.c - Add IGMP support (untested on initial checkin). * examples/igmp - Add a trivial test for IGMP (much more is needed) + * configs/nucleus2g/usbserial and usbstorage - Add USB configurations + for testing purposes. + * arch/arm/src/common/up_internal.h, cortexm3/up_assert.c, + */*_vectors.S - Correct compilations errors when CONFIG_ARCH_INTERRUPTSTACK + is enabled (feature still not tested) pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From 0fb7ac79c962e643908f5d2ce9cafcdb8f33ec13 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 18 Jul 2010 15:30:23 +0000 Subject: [PATCH 0614/1518] Prep for 5.8 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2810 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 133 +++++++++++++++++++-------------------- 1 file changed, 66 insertions(+), 67 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index d42fbb8e32..04d2cd4618 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

        NuttX RTOS

        -

        Last Updated: July 15, 2010

        +

        Last Updated: July 18, 2010

        @@ -764,42 +764,53 @@ -

        nuttx-5.7 Release Notes: +

        nuttx-5.8 Release Notes:

        - This 54th release of NuttX was made on June 22, 2010 and is available for download from the + This 55th release of NuttX was made on July 18, 2010 and is available for download from the SourceForge website. The change log associated with the release is available here. Unreleased changes after this release are available in CVS. These unreleased changes are listed here.

        - This release adds basic support for one new ARM Cortex-M3 architecture: -

          -
        • - Added support for NXP LPC1768 MCU as provided on the Nucleus 2G board from - 2G Engineering. -
        • -
        • - Some initial files for the LPC17xx family were released in NuttX 5.6, but the - first functional release for the NXP LPC1768/Nucleus2G occured with NuttX 5.7. -
        • -
        • - That initial basic release included timer interrupts and a serial console and was - verified using the NuttX OS test. -
        • -
        • - That release includes a verified NuttShell (NSH) configuration - (see the NSH User Guide). - Also included are unverified SPI and USB device drivers. -
        • -
        + This includes several important bugfixes: +

        +
          +
        • Corrects some interrupt vectoring for the TI/Stellarix LM3S port,
        • +
        • Correct initialization logic for NXP LPC17xxx NuttX ports: Power was not being provided to the GPIO module!
        • +
        • Corrected (but did not verify) implementation of the optional interrupt stack feature (all Cortex M3 architectures), and
        • +
        • Correct a HardFault in the LPC17xx SSP driver.
        • +
        +

        + Additional minor fixes are also included as detailed in the ChangeLog.

        - Further efforts include: (1) development of a DMA support library, (2) SPI-based MMC/SD - support, and (3) verification of the USB driver. Watch for announcement of the completed - LPC1768 port expected in NuttX-5.8. + Several new features have been fully developed and included in this release, but + full verification of most of these new features has been blocked for a variety + of issues:

        +
          +
        • + Added microSD support for the NuttShell (NSH) configuration in the Nucleus2G LPC1768 port. + For reasons that have not yet been determined, I have not successfully accessed the microSD card as of this writing. +
        • +
        • + Two USB configurations were also added for the Nucleus2G board: + One to support the USB serial device and one for the USB mass storage device. + Some testing of the USB driver was performed, but full verification is stalled for an OTG style USB cable. +
        • +
        • + LEDs now work correctly on the Nucleus2G LPC1768 board. +
        • +
        • + The uIP-based NuttX networking subsystem now supports IGMPv2 client. + IGMP (Internet Group Multicast Protocol) network "appliances" to join into multicast groups. + Outbound traffic to enter and leave multicast groups has been verified, but full verification will require a switch capable of multicast. + Issues associated with the receipt of multicast packets are likely. +
        • +
        +
        @@ -1190,14 +1201,11 @@ functional release for the NXP LPC1768/Nucleus2G occured with NuttX 5.7. That initial basic release included timer interrupts and a serial console and was verified using the NuttX OS test (examples/ostest). - That release includes a verified NuttShell (NSH) configuration + That release included a verified NuttShell (NSH) configuration (see the NSH User Guide). - Also included are unverified SPI and USB device drivers. -

        -

        - Current efforts include: (1) development of a DMA support library, (2) SPI-based MMC/SD - support, and (3) verification of the USB driver. - Watch for announcement of the completed LPC1768 port expected in NuttX-5.8. + The NSH configuration support the Nucleus2G's microSD slot and additional configurations + are available to exercise the the USB serial and USB mass storage devices. + However, as of this writing neight the SPI nor the USB device drivers are fully verified.

        Development Environments: @@ -1792,16 +1800,31 @@ Other memory:

          -nuttx-5.7 2010-06-22 Gregory Nutt <spudmonkey@racsa.co.cr>
          +nuttx-5.8 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
           
          -	* configs/nucleus2g - Add ostest configuration for the Nucleus 2G
          -	  LPC1768 board from 2G Engineering (http://www.2g-eng.com/)
          -	* arch/arm/src/lpc17xx - Added basic LPC17xx boot-up logic,
          -	  interrupt handling, and GPIO configuration.
          -	* configs/nucleus2g/ostest - Completed bring-up of LPC1768 on
          -	  the Nucleus2G board using the examples/ostest
          -	* configs/nucleus2g/nsh - Added and verified a NuttShell (NSH)
          -	  configuration for the LPC1768 on the Nucleus2G board.
          +	* configs/nucleus2g/src/up_nsh.c and up_ssp.c - Add support
          +	  for SPI-based MMC/SD cards and integrate into the NSH example.
          +	* arch/arm/src/lm3s/lm3s_vectors.S - Correct vectors for GPIOC & D
          +	  interrupts.
          +	* arch/arm/src/lpc17xx/lp17_clockconfig.c - Power was not being
          +	  provided to GPIO module.  This is a critical bugfix!
          +	* arch/arm/src/lpc17xx/lpc17_serial.c - Improved logic to handle
          +	  missed TX interrupts.
          +	* arch/arm/src/lpc17xx/lpc17_ssp.c - Fix a hard fault during SSP
          +	  initialization.
          +	* configs/nucleus2g/src/up_led.c - Change how LEDs are controlled
          +	  so that they can be used both for NuttX instrumentation and
          +	  by application software.
          +	* include/net/uip/igmp.h and uip-igmp.h - Add header files ini
          +	  preparation for NuttX IGMP support
          +	* net/uip/uip_igmp*.c - Add IGMP support (untested on initial
          +	  checkin).
          +	* examples/igmp - Add a trivial test for IGMP (much more is needed)
          +	* configs/nucleus2g/usbserial and usbstorage - Add USB configurations
          +	  for testing purposes.
          +	* arch/arm/src/common/up_internal.h, cortexm3/up_assert.c,
          +	  */*_vectors.S - Correct compilations errors when CONFIG_ARCH_INTERRUPTSTACK
          +	  is enabled (feature still not tested)
           
           pascal-2.0 2010-12-21 Gregory Nutt <spudmonkey@racsa.co.cr>
           
          @@ -1831,31 +1854,7 @@ buildroot-1.8 2009-12-21 <spudmonkey@racsa.co.cr>
           
           
           
            -nuttx-5.8 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
            -
            -	* configs/nucleus2g/src/up_nsh.c and up_ssp.c - Add support
            -	  for SPI-based MMC/SD cards and integrate into the NSH example.
            -	* arch/arm/src/lm3s/lm3s_vectors.S - Correct vectors for GPIOC & D
            -	  interrupts.
            -	* arch/arm/src/lpc17xx/lp17_clockconfig.c - Power was not being
            -	  provided to GPIO module.  This is a critical bugfix!
            -	* arch/arm/src/lpc17xx/lpc17_serial.c - Improved logic to handle
            -	  missed TX interrupts.
            -	* arch/arm/src/lpc17xx/lpc17_ssp.c - Fix a hard fault during SSP
            -	  initialization.
            -	* configs/nucleus2g/src/up_led.c - Change how LEDs are controlled
            -	  so that they can be used both for NuttX instrumentation and
            -	  by application software.
            -	* include/net/uip/igmp.h and uip-igmp.h - Add header files ini
            -	  preparation for NuttX IGMP support
            -	* net/uip/uip_igmp*.c - Add IGMP support (untested on initial
            -	  checkin).
            -	* examples/igmp - Add a trivial test for IGMP (much more is needed)
            -    * configs/nucleus2g/usbserial and usbstorage - Add USB configurations
            -      for testing purposes.
            -    * arch/arm/src/common/up_internal.h, cortexm3/up_assert.c,
            -      */*_vectors.S - Correct compilations errors when CONFIG_ARCH_INTERRUPTSTACK
            -      is enabled (feature still not tested)
            +nuttx-5.9 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
             
             pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
             
            
            From fb3d7314572bbb436c7905da21245c0e6c1f1a3e Mon Sep 17 00:00:00 2001
            From: patacongo 
            Date: Tue, 27 Jul 2010 12:39:19 +0000
            Subject: [PATCH 0615/1518] Add instructions for 32-bit sim build
            
            git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2814 42af7a65-404d-4744-a932-0658087f49c3
            ---
             Documentation/NXGraphicsSubsystem.html | 3 ++-
             1 file changed, 2 insertions(+), 1 deletion(-)
            
            diff --git a/Documentation/NXGraphicsSubsystem.html b/Documentation/NXGraphicsSubsystem.html
            index 382ca06dcc..55bf92f182 100644
            --- a/Documentation/NXGraphicsSubsystem.html
            +++ b/Documentation/NXGraphicsSubsystem.html
            @@ -12,7 +12,7 @@
                   

            NX Graphics Subsystem

            -

            Last Updated: April 23, 2010

            +

            Last Updated: July 27, 2010

            @@ -2746,6 +2746,7 @@ make
          • The sim target itself is broken under 64-bit Linux. This is because the sim target is based upon some assembly language setjmp/longjmp logic that only works on 32-bit systems. +

            NOTE: There is a workaround in this case; you can build for 32-bit execution on a 64-bit machine by adding -m3 to the CFLAGS and -m32 -m elf_i38 to the LDFLAGS.

          From d8e2f1f522b12d87aa34c92c9a0d7b18178997c3 Mon Sep 17 00:00:00 2001 From: patacongo Date: Fri, 30 Jul 2010 12:41:02 +0000 Subject: [PATCH 0616/1518] Fix workaround description git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2818 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NXGraphicsSubsystem.html | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Documentation/NXGraphicsSubsystem.html b/Documentation/NXGraphicsSubsystem.html index 55bf92f182..c128c220ad 100644 --- a/Documentation/NXGraphicsSubsystem.html +++ b/Documentation/NXGraphicsSubsystem.html @@ -2746,7 +2746,11 @@ make
        • The sim target itself is broken under 64-bit Linux. This is because the sim target is based upon some assembly language setjmp/longjmp logic that only works on 32-bit systems. -

          NOTE: There is a workaround in this case; you can build for 32-bit execution on a 64-bit machine by adding -m3 to the CFLAGS and -m32 -m elf_i38 to the LDFLAGS.

          +

          NOTE: There is a workaround in this case: + You can build for 32-bit execution on a 64-bit machine by adding -m3 to the CFLAGS and -m32 -m elf_i386 to the LDFLAGS. + See the patch file 0001-Quick-hacks-to-build-sim-nsh-ostest-on-x86_64-as-32-.patch + that can be found in NuttX files. +

        From a197314b01ad2f89f2137895935f6e91b5b0a881 Mon Sep 17 00:00:00 2001 From: patacongo Date: Fri, 6 Aug 2010 16:14:02 +0000 Subject: [PATCH 0617/1518] DHCP-related documentation updates/warning fixes git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2824 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttShell.html | 62 +++++++++++++++++++++++++++++++++++- 1 file changed, 61 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index 4cc4c41255..74170efee3 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -8,7 +8,7 @@

        NuttShell (NSH)

        -

        Last Updated: June 08, 2009

        +

        Last Updated: July 06, 2010

        @@ -2099,6 +2099,23 @@ nsh> Description + CONFIG_NET=y + + Of course, networking must be enabled. + + + + CONFIG_NSOCKET_DESCRIPTORS + + And, of course, you must allocate some socket descriptors. + + + + CONFIG_NET_TCP=y + + TCP/IP support is required for telnet (as well as various other TCP-related configuration settings). + + CONFIG_EXAMPLES_NSH_IOBUFFER_SIZE Determines the size of the I/O buffer to use for sending/ @@ -2139,6 +2156,49 @@ nsh> +

        + If you use DHCPC, then some special configuration network options are + required. These include: +

        + +
        + + + + + + + + + + + + + + + + + + + + + + + + +
        ConfigurationDescription
        CONFIG_NET=y + Of course, networking must be enabled. +
        CONFIG_NSOCKET_DESCRIPTORS + And, of course, you must allocate some socket descriptors. +
        CONFIG_NET_UDP=y + UDP support is required for DHCP (as well as various other UDP-related configuration settings). +
        CONFIG_NET_BROADCAST=y + UDP broadcast support is needed. +
        CONFIG_NET_BUFSIZE=650 (or larger) + Per RFC2131 (p. 9), the DHCP client must be prepared to receive DHCP messages of up to + 576 bytes (excluding Ethernet, IP, or UDP headers and FCS). +
        +

        If CONFIG_EXAMPLES_NSH_ROMFSETC is selected, then the following additional configuration setting apply: From 5966f664d66d638bcd24e6ec61dab7ff66d4e6ad Mon Sep 17 00:00:00 2001 From: patacongo Date: Fri, 6 Aug 2010 22:32:09 +0000 Subject: [PATCH 0618/1518] Add RSS and gmane links git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2825 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttXLinks.html | 5 +++++ Documentation/rss.gif | Bin 0 -> 451 bytes 2 files changed, 5 insertions(+) create mode 100755 Documentation/rss.gif diff --git a/Documentation/NuttXLinks.html b/Documentation/NuttXLinks.html index d2abd68b33..fdf99dedbc 100755 --- a/Documentation/NuttXLinks.html +++ b/Documentation/NuttXLinks.html @@ -26,6 +26,7 @@

      • Toolchains
      • Browse CVS
      • Free Ports
      • +
      • gmane
      • @@ -55,6 +56,10 @@ + +   + + \ No newline at end of file diff --git a/Documentation/rss.gif b/Documentation/rss.gif new file mode 100755 index 0000000000000000000000000000000000000000..c81ac37573dd930467aae63f60e52fa6eeff10c3 GIT binary patch literal 451 zcmV;!0X+UkNk%w1VI%+!0M!5h|7HOH|NlQ40sqLPeKP|8npfpk0O6Z=#zX+{T>#Z~ zME{RO`(yy{&Ab14BIsBE_+kM6_3r=R%*s#^@uheB^X~tJGx55a*@9KwQUKIf5&zb^ z|8NoX+RXjInca_O{@~2%pm+bHX8*W|{I-b7MgZ4iBLA&-+hro>VG-6%0Op@}|LfiV znN{R>F723R?RhinmuCOw)t^BF*mp!B4gvi0?&!3c>{|fzUjY5|?)sKh&Rrq^00000 z00000A^8LV00000EC2ui03-ko000KyK-pkOEEtJzTSQ+zm70xtk7uu^;)2M>FFe}QpUPGSfK6aj%^7%2%4C@kjw2B|JO&$MASVD2qhh6}n{#S3B@i4T9b*&#v$bNkt%(5$4FNX^01gZW8V3Ol z2FA$B%)L#D4mJTX01+fD3m%Rt+T7j;D$)Ro06PH{Fll2K69(>L@S0C@PY4K2I0z*< tCKM=`fFJ_{009RUJa`Y$6(0gA1ZdpIv7^V29%}>v06VhAx-kF% literal 0 HcmV?d00001 From 7d363fe209185b8a50b8d6e9bd8193febc23ab69 Mon Sep 17 00:00:00 2001 From: patacongo Date: Fri, 6 Aug 2010 22:41:07 +0000 Subject: [PATCH 0619/1518] Fix alignment git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2826 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttXLinks.html | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Documentation/NuttXLinks.html b/Documentation/NuttXLinks.html index fdf99dedbc..27d7c52f77 100755 --- a/Documentation/NuttXLinks.html +++ b/Documentation/NuttXLinks.html @@ -8,7 +8,7 @@   - + @@ -30,7 +30,7 @@ - + @@ -56,8 +56,9 @@ -   + + From c9b789f53c0218a2d3b1f0a30e1f9d515049a09d Mon Sep 17 00:00:00 2001 From: patacongo Date: Fri, 6 Aug 2010 23:11:47 +0000 Subject: [PATCH 0620/1518] gmane needs target=top git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2827 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttXLinks.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttXLinks.html b/Documentation/NuttXLinks.html index 27d7c52f77..77e96bcac7 100755 --- a/Documentation/NuttXLinks.html +++ b/Documentation/NuttXLinks.html @@ -26,7 +26,7 @@
      • Toolchains
      • Browse CVS
      • Free Ports
      • -
      • gmane
      • +
      • gmane
      • From ca477192f992fe695b0814efa9d800ec1c4b3743 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 7 Aug 2010 01:48:15 +0000 Subject: [PATCH 0621/1518] Misc USB device driver debug git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2828 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 04d2cd4618..879237f535 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

        NuttX RTOS

        -

        Last Updated: July 18, 2010

        +

        Last Updated: August 5, 2010

        @@ -1856,6 +1856,10 @@ buildroot-1.8 2009-12-21 <spudmonkey@racsa.co.cr>
           nuttx-5.9 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
           
          +	* examples/nsh/nsh_telnetd.c - Fix compilation errors that happen
          +	  when both DHCPC and TELNETD are enabled in the Nuttshell.
          +
          +
           pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
           
           buildroot-1.9 2010-xx-xx 
          
          From f962f933ab71fcfaee2d49b0a415ebad70f28465 Mon Sep 17 00:00:00 2001
          From: patacongo 
          Date: Sun, 8 Aug 2010 13:33:10 +0000
          Subject: [PATCH 0622/1518] Fix rectangle logic
          
          git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2831 42af7a65-404d-4744-a932-0658087f49c3
          ---
           Documentation/NuttX.html      | 6 ++++--
           Documentation/NuttXLinks.html | 6 +++---
           2 files changed, 7 insertions(+), 5 deletions(-)
          
          diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html
          index 879237f535..9efbe55ec4 100644
          --- a/Documentation/NuttX.html
          +++ b/Documentation/NuttX.html
          @@ -8,7 +8,7 @@
             
               
                 

          NuttX RTOS

          -

          Last Updated: August 5, 2010

          +

          Last Updated: August 7, 2010

          @@ -1858,7 +1858,9 @@ nuttx-5.9 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> * examples/nsh/nsh_telnetd.c - Fix compilation errors that happen when both DHCPC and TELNETD are enabled in the Nuttshell. - + * graphics/nxglib/fb/nxglib_moverectangle.c - Fix a logic error + that caused an uninitialized variable warning. I still don't + have a test to prove that the changes are correct. pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> diff --git a/Documentation/NuttXLinks.html b/Documentation/NuttXLinks.html index 77e96bcac7..972ae8b0ec 100755 --- a/Documentation/NuttXLinks.html +++ b/Documentation/NuttXLinks.html @@ -25,8 +25,8 @@
        • Downloads
        • Toolchains
        • Browse CVS
        • -
        • Free Ports
        • gmane
        • +
        • Free Ports
        • @@ -58,9 +58,9 @@   - + - \ No newline at end of file + From 0b851665c35fa84f14031bb4fb92aa7cef033434 Mon Sep 17 00:00:00 2001 From: patacongo Date: Tue, 10 Aug 2010 04:22:06 +0000 Subject: [PATCH 0623/1518] update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2838 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 9efbe55ec4..f722906148 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

          NuttX RTOS

          -

          Last Updated: August 7, 2010

          +

          Last Updated: August 9, 2010

          @@ -1861,6 +1861,13 @@ nuttx-5.9 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> * graphics/nxglib/fb/nxglib_moverectangle.c - Fix a logic error that caused an uninitialized variable warning. I still don't have a test to prove that the changes are correct. + * configs/olimex-lpc2378 - Add support for the CodeSourcery toolchain + under Linux (contributed by Alan Carvalho de Assis). + * arch/arm/src/lpc17xx/lpc17_gpio.c - Fix an imporation GPIO configuration + bug: When attempting to set no pull-up or pull-down (floating), + it would, instead, select pull-down. + * arch/arm/src/lm3s/lm3s_gpioirq.c - Fix warning for returning a value + from functions returning void (contributed by Tiago Maluta). pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From 239a6bffb3bda916830fdb04c381fd31e3a74350 Mon Sep 17 00:00:00 2001 From: patacongo Date: Thu, 12 Aug 2010 01:49:25 +0000 Subject: [PATCH 0624/1518] Add changes for LM3S9B96 git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2841 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index f722906148..fc0fdf2f47 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

          NuttX RTOS

          -

          Last Updated: August 9, 2010

          +

          Last Updated: August 11, 2010

          @@ -1868,6 +1868,11 @@ nuttx-5.9 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> it would, instead, select pull-down. * arch/arm/src/lm3s/lm3s_gpioirq.c - Fix warning for returning a value from functions returning void (contributed by Tiago Maluta). + * netutils/dhcpc/dhcpc.c -- lease_time is not in host order + * examples/uip/main.c - if DHCPC is selected, this example now shows + the assigned IP address. + * arch/arm/src/lm3s and arch/arm/include/lm3s - Definitions for the + TI LM3S9B96 contributed by Tiago Maluta. pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From 8d4c709df58705bccb47f17c315f9e1ee136eb57 Mon Sep 17 00:00:00 2001 From: patacongo Date: Fri, 13 Aug 2010 03:47:09 +0000 Subject: [PATCH 0625/1518] update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2848 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index fc0fdf2f47..62cbcf5124 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

          NuttX RTOS

          -

          Last Updated: August 11, 2010

          +

          Last Updated: August 12, 2010

          @@ -1868,11 +1868,17 @@ nuttx-5.9 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> it would, instead, select pull-down. * arch/arm/src/lm3s/lm3s_gpioirq.c - Fix warning for returning a value from functions returning void (contributed by Tiago Maluta). - * netutils/dhcpc/dhcpc.c -- lease_time is not in host order + * netutils/dhcpc/dhcpc.c -- lease_time was not in host order * examples/uip/main.c - if DHCPC is selected, this example now shows the assigned IP address. * arch/arm/src/lm3s and arch/arm/include/lm3s - Definitions for the TI LM3S9B96 contributed by Tiago Maluta. + * arch/arm/src/lm3s/lm3s_gioirq.c - Fix a logic error in the address + table lookup. + * arch/arm/src/lm3s/lm3s_gioirq.c - Also needs to enable the global + GPIO interrupts. + * arch/arm/src/lm3s/lm3s_internal.h and lm3s_gpio.c - Fixed the encoding + of GPIO port number that limited support for GPIO ports to 8 pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From 009e2592e35b4a4b0dc6d1c6cba2529c03066f9d Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 14 Aug 2010 03:51:03 +0000 Subject: [PATCH 0626/1518] paging documentation git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2851 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttXDemandPaging.html | 417 +++++++++++++++++++++++++++ 1 file changed, 417 insertions(+) create mode 100755 Documentation/NuttXDemandPaging.html diff --git a/Documentation/NuttXDemandPaging.html b/Documentation/NuttXDemandPaging.html new file mode 100755 index 0000000000..d6a6c340c3 --- /dev/null +++ b/Documentation/NuttXDemandPaging.html @@ -0,0 +1,417 @@ + + +On-Demand Paging + + +

          + + + + +
          +

          On-Demand Paging

          +

          >>> Under Construction <<<

          +

          Last Updated: August 12, 2010

          +
          +

          + + + + + +
          +

          Table of Contents

          +
          + +
          + + + + + + + + + + + + + + + + + + +
          + + + + + +
          + Terminolgy +
          +
          + + + + + +
          + Initialization +
          +
          + + + + + +
          + Page Faults +
          +
          + + + + + +
          + Fill Initiation +
          +
          + + + + + +
          + Fill Complete +
          +
          + + + + + +
          + Task Resumption +
          +
          + + + + + +
          +

          Terminolgy

          +
          + +
          +
          g_waitingforfill
          +
          An OS list that is used to hold the TCBs of tasks that are waiting for a page fill.
          +
          g_pendingfill
          +
          A variable that holds a reference to the TCB of the thread that is currently be re-filled.
          +
          g_pgworker
          +
          The process ID of of the thread that will perform the page fills.
          +
          pg_callback()
          +
          The callback function that is invoked from a driver when the fill is complete.
          +
          pg_miss()
          +
          The function that is called from chip-specific code to handle a page fault.
          +
          TCB
          +
          Task Control Block
          +
          + + + + + +
          +

          Initialization

          +
          + +

          + The following declarations will be added. +

            +
          • + g_waitingforfill. + A doubly linked list that will be used to implement a prioritized list of the TCBs of tasks that are waiting for a page fill. +
          • +
          • + g_pgworker. + The process ID of of the thread that will perform the page fills +
          • +
          +

          +

          + During OS initialization in sched/os_start.c, the following steps + will be performed: +

            +
          • + The g_waitingforfill queue will be initialized. +
          • +
          • + The special, page fill worker thread, will be started. + The pid of the page will worker thread will be saved in g_pgworker. + Note that we need a special worker thread to perform fills; + we cannot use the "generic" worker thread facility because we cannot be + assured that all actions called by that worker thread will always be resident in memory. +
          • +
          +

          +

          + Declarations for g_waitingforfill, g_pgworker, and other + internal, private definitions will be provided in sched/pg_internal.h. + All public definitions that should be used by the chip-specific code will be available + in include/nuttx/page.h and include/nuttx/arch.h. +

          + + + + + +
          +

          Page Faults

          +
          + +

          + Page fault exception handling. + Page fault handling is performed by the function pg_miss(). + This function is called from architecture-specific memory segmentation + fault handling logic. This function will perform the following + operations: +

            +
          1. + Sanity checking. + This function will ASSERT if the currently executing task is the page fill worker thread. + The page fill worker thread is how the the page fault is resolved and all logic associated with the page fill worker + must be "locked" and always present in memory. +
          2. +
          3. + Block the currently executing task. + This function will call up_block_task() to block the task at the head of the ready-to-run list. + This should cause an interrupt level context switch to the next highest priority task. + The blocked task will be marked with state TSTATE_WAIT_PAGEFILL and will be retained in the g_waitingforfill prioritized task list. +
          4. +
          5. + Boost the page fill worker thread priority. + Check the priority of the task at the head of the g_waitingforfill list. + If the priority of that task is higher than the current priority of the page fill worker thread, then boost the priority of the page fill worker thread to that priority. +
          6. +
          7. + Signal the page fill worker thread. + Is there a page already being filled? + If not then signal the page fill worker thread to start working on the queued page fill requests. +
          8. +
          +

          +

          + When signaled from pg_miss(), the page fill worker thread will be awakenend and will initiate the fill operation. +

          +

          + Input Parameters. + None -- The head of the ready-to-run list is assumed to be that task that caused the exception. + The current task context should already be saved in the TCB of that task. + No additional inputs are required. +

          +

          + Assumptions. +

            +
          • + It is assumed that this function is called from the level of an exception handler and that all interrupts are disabled. +
          • +
          • + The pg_miss() must be "locked" in memory. + Calling pg_miss() cannot cause a nested page fault. +
          • +
          • + It is assumed that currently executing task (the one at the head of the ready-to-run list) is the one that cause the fault. + This will always be true unless the page fault occurred in an interrupt handler. + Interrupt handling logic must always be available and "locked" into memory so that page faults never come from interrupt handling. +
          • +
          • + The chip-specific page fault exception handling has already verified that the exception did not occur from interrupt/exception handling logic. +
          • +
          • + As mentioned above, the task causing the page fault must not be the page fill worker thread because that is the only way to complete the page fill. +
          • +
          • + Chip specific logic will map the virtual address space into three regions: +
              +
            1. + A .text region containing "locked-in-memory" code that is always avaialable and will never cause a page fault. +
            2. +
            3. + A .text region containing pages that can be assigned allocated, mapped to various virtual addresses, and filled from some mass storage medium. +
            4. +
            5. + And a fixed RAM space for .bss, .text, and .heap. +
            6. +
            +
          • +
          +

          +

          + Locking code in Memory. + One way to accomplish this would be a two phase link: +

            +
          • + In the first phase, create a partially linked objected containing all interrupt/exception handling logic, the page fill worker thread plus all parts of the IDLE thread (which must always be available for execution). +
          • +
          • + All of the .text and .rodata sections of this partial link should be collected into a single section. +
          • +
          • + The second link would link the partially linked object along with the remaining object to produce the final binary. + The linker script should position the "special" section so that it lies in a reserved, "non-swappable" region. +
          +

          + + + + + +
          +

          Fill Initiation

          +
          + +

          + The page fill worker thread will be awakened on one of two conditions: +

            +
          • + When signaled by pg_miss(), the page fill worker thread will be awakenend (see above), or +
          • +
          • + From pg_fillcomplete() after completing last fill (see below). +
          • +
          +

          + +

          + The page fill worker thread will maintain a static variable called _TCB *g_pendingfill. + If not fill is in progress, g_pendingfill will be NULL. + Otherwise, will point to the TCB of the task which is receiving the fill that is in progess. +

          + +

          + When awakened from pg_miss(), no fill will be in progress and g_pendingfill will be NULL. + In this case, the page fill worker thread will call pg_startfill(). + That function will perform the following operations: +

            +
          • + Call up_allocpage(vaddr, &page). + This chip-specific function will set aside page in memory and map to virtual address (vaddr). + If all pages available pages are in-use (the typical case), + this function will select a page in-use, un-map it, and make it available. +
          • +
          • + Call the chip-specific function up_fillpage(page, pg_callback). + This will start asynchronous page fill. + The page fill worker thread will provide a callback function, pg_callback, + that will be called when the page fill is finished (or an error occurs). + This callback will probably from interrupt level. +
          • +
          • + Restore default priority of the page fill worker thread's default priority and wait to be signaled for the next event -- the fill completion event. +
          • +
          +

          +

          + While the fill is in progress, other tasks may execute. + If another page fault occurs during this time, the faulting task will be blocked and its TCB will be added (in priority order) to g_waitingforfill. + But no action will be taken until the current page fill completes. + NOTE: The IDLE task must also be fully locked in memory. + The IDLE task cannot be blocked. + It the case where all tasks are blocked waiting for a page fill, the IDLE task must still be available to run. +

          + The chip-specific functions, up_allocpage(vaddr, &page) and up_fillpage(page, pg_callback) + will be prototyped in include/nuttx/arch.h +

          + + + + + +
          +

          Fill Complete

          +
          + +

          + When the chip-specific driver completes the page fill, it will call the pg_callback() that was provided to up_fillpage. + pg_callback() will probably be called from driver interrupt-level logic. + The driver ill provide the result of the fill as an argument. + NOTE: pg_callback() must also be locked in memory. +

          +

          + When pg_callback() is called, it will perform the following operations: +

            +
          • + Verify that g_pendingfill is non-NULL. +
          • +
          • + If the priority of thread in g_pendingfill is higher than page fill worker thread, boost work thread to that level. +
          • +
          • + Signal the page fill worker thread. +
          • +
          +

          + + + + + +
          +

          Task Resumption

          +
          + +

          + When the page fill worker thread is awakened and g_pendingfill is non-NULL (and other state variables are in concurrence), + the page fill thread will know that is was awakened because of a page fill completion event. + In this case, the page fill worker thread will: +

            +
          • + Verify consistency of state information and g_pendingfill. +
          • +
          • + Verify that the page fill completed successfully, and if so, +
          • +
          • + Call up_unblocktask(g_pendingfill) to make the task that just received the fill ready-to-run. +
          • +
          • + Check if the g_waitingforfill list is empty. + If not: +
              +
            • + Remove the highest priority task waiting for a page fill from g_waitingforfill, +
            • +
            • + Save the task's TCB in g_pendingfill, +
            • +
            • + If the priority of the thread in g_pendingfill, is higher in priority than the default priority of the page fill worker thread, then set the priority of the page fill worker thread to that priority. +
            • +
            • + Call pg_startfill() which will start the next fill (as described above). +
            • +
            +
          • +
          • + Otherwise, +
              +
            • + Set g_pendingfill to NULL. +
            • +
            • + Restore the default priority of the page fill worker thread. +
            • +
            • + Wait for the next fill related event (a new page fault). +
            • +
            +
          • +
          +

          + + + \ No newline at end of file From 458623695bcc838a4c753a976c46ee06cdc46cd3 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 14 Aug 2010 16:42:20 +0000 Subject: [PATCH 0627/1518] update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2852 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttXDemandPaging.html | 400 ++++++++++++++++++++------- 1 file changed, 307 insertions(+), 93 deletions(-) diff --git a/Documentation/NuttXDemandPaging.html b/Documentation/NuttXDemandPaging.html index d6a6c340c3..cf4bb0ce42 100755 --- a/Documentation/NuttXDemandPaging.html +++ b/Documentation/NuttXDemandPaging.html @@ -30,7 +30,19 @@ - Terminolgy + Introduction + + + +   + + Overview + + + +   + + Terminology @@ -41,54 +53,36 @@ + + + + -
          + NuttX Common Logic Design Description +
            Initialization
          - - - - - - + -
            Page Faults
          - - - - - - + -
            Fill Initiation
          - - - - - - + -
            Fill Complete
          - - - - - - + @@ -96,15 +90,72 @@
            Task Resumption
          + + + + + + + + + + + + + + + +
          + Architecture-Specific Support Requirements +
            + Memory Organization +
            + Architecture-Specific Functions +
          + + +
          -

          Terminolgy

          +

          Introduction

          +

          Overview

          + +

          + This document summarizes the design of NuttX on-demand page. + This feature permits embedded MCUs with some limited RAM space to execute large programs some some non-random access media. + This feature was first discussed in this email thread: + http://tech.groups.yahoo.com/group/nuttx/message/213. +

          +

          + What kind of platforms can support NuttX on-demang paging? +

            +
          1. + The MCU should have some large, probably low-cost non-volatile storage such as serial FLASH or an SD card. + This storage probably does not support non-random access (otherwise, why not just execute the program directly on the storage media). + SD and serial FLASH are inexpensive and do not require very many pins and SPI support is prevalent in just about all MCUs. + This large serial FLASH would contain a big program. Perhaps a program of several megabytes in size. +
          2. +
          3. + The MCU must have a (relatively) small block of fast SRAM from which it can execute code. + A size of, say 256Kb (or 192Kb as in the ea3131) would be sufficient for many applications. +
          4. +
          5. + The MCU has an MMU (again like the ea3131). +
          6. +
          +

          +

          + If the platforms meets these requirement, then NuttX can provide on-demand paging: + It can copy .text from the large program in non-volatile media into RAM as needed to execute the huge program from the small RAM. +

          + +

          Terminology

          g_waitingforfill
          @@ -124,11 +175,14 @@
          -

          Initialization

          +

          NuttX Common Logic Design Description

          + +

          Initialization

          +

          The following declarations will be added.

            @@ -165,13 +219,7 @@ in include/nuttx/page.h and include/nuttx/arch.h.

            - - - - -
            -

            Page Faults

            -
            +

            Page Faults

            Page fault exception handling. @@ -184,7 +232,7 @@ Sanity checking. This function will ASSERT if the currently executing task is the page fill worker thread. The page fill worker thread is how the the page fault is resolved and all logic associated with the page fill worker - must be "locked" and always present in memory. + must be "locked" and always present in memory.

          • Block the currently executing task. @@ -220,13 +268,13 @@ It is assumed that this function is called from the level of an exception handler and that all interrupts are disabled.
          • - The pg_miss() must be "locked" in memory. + The pg_miss() must be "locked" in memory. Calling pg_miss() cannot cause a nested page fault.
          • It is assumed that currently executing task (the one at the head of the ready-to-run list) is the one that cause the fault. This will always be true unless the page fault occurred in an interrupt handler. - Interrupt handling logic must always be available and "locked" into memory so that page faults never come from interrupt handling. + Interrupt handling logic must always be available and "locked" into memory so that page faults never come from interrupt handling.
          • The chip-specific page fault exception handling has already verified that the exception did not occur from interrupt/exception handling logic. @@ -234,20 +282,6 @@
          • As mentioned above, the task causing the page fault must not be the page fill worker thread because that is the only way to complete the page fill.
          • -
          • - Chip specific logic will map the virtual address space into three regions: -
              -
            1. - A .text region containing "locked-in-memory" code that is always avaialable and will never cause a page fault. -
            2. -
            3. - A .text region containing pages that can be assigned allocated, mapped to various virtual addresses, and filled from some mass storage medium. -
            4. -
            5. - And a fixed RAM space for .bss, .text, and .heap. -
            6. -
            -

          @@ -266,13 +300,7 @@

        - - - - -
        -

        Fill Initiation

        -
        +

        Fill Initiation

        The page fill worker thread will be awakened on one of two conditions: @@ -298,48 +326,49 @@ That function will perform the following operations:

        • - Call up_allocpage(vaddr, &page). - This chip-specific function will set aside page in memory and map to virtual address (vaddr). + Call the architecture-specific function up_checkmapping() to see if the page fill + still needs to be performed. + In certain conditions, the page fault may occur on several threads and be queued multiple times. + In this corner case, the blocked task will simply be restarted (see the logic below for the + case of normal completion of the fill operation). +
        • +
        • + Call up_allocpage(tcb, &vpage). + This chip-specific function will set aside page in memory and map to virtual address (vpage). If all pages available pages are in-use (the typical case), this function will select a page in-use, un-map it, and make it available. -
        • -
        • - Call the chip-specific function up_fillpage(page, pg_callback). - This will start asynchronous page fill. - The page fill worker thread will provide a callback function, pg_callback, - that will be called when the page fill is finished (or an error occurs). - This callback will probably from interrupt level. -
        • -
        • - Restore default priority of the page fill worker thread's default priority and wait to be signaled for the next event -- the fill completion event. -
        • + +
        • + Call the chip-specific function up_fillpage(page, pg_callback). + This will start asynchronous page fill. + The page fill worker thread will provide a callback function, pg_callback, + that will be called when the page fill is finished (or an error occurs). + This callback will probably from interrupt level. +
        • +
        • + Restore default priority of the page fill worker thread's default priority and wait to be signaled for the next event -- the fill completion event. +

        While the fill is in progress, other tasks may execute. If another page fault occurs during this time, the faulting task will be blocked and its TCB will be added (in priority order) to g_waitingforfill. But no action will be taken until the current page fill completes. - NOTE: The IDLE task must also be fully locked in memory. + NOTE: The IDLE task must also be fully locked in memory. The IDLE task cannot be blocked. It the case where all tasks are blocked waiting for a page fill, the IDLE task must still be available to run.

        - The chip-specific functions, up_allocpage(vaddr, &page) and up_fillpage(page, pg_callback) + The chip-specific functions, up_allocpage(tcb, &vpage) and up_fillpage(page, pg_callback) will be prototyped in include/nuttx/arch.h

        - - - - -
        -

        Fill Complete

        -
        +

        Fill Complete

        When the chip-specific driver completes the page fill, it will call the pg_callback() that was provided to up_fillpage. pg_callback() will probably be called from driver interrupt-level logic. The driver ill provide the result of the fill as an argument. - NOTE: pg_callback() must also be locked in memory. + NOTE: pg_callback() must also be locked in memory.

        When pg_callback() is called, it will perform the following operations: @@ -356,13 +385,7 @@

      - - - - -
      -

      Task Resumption

      -
      +

      Task Resumption

      When the page fill worker thread is awakened and g_pendingfill is non-NULL (and other state variables are in concurrence), @@ -412,6 +435,197 @@

      + + + + + +
      +

      Architecture-Specific Support Requirements

      +
      + +

      Memory Organization

      + +

      + Chip specific logic will map the virtual and physical address spaces into three general regions: +

        +
      1. + A .text region containing "locked-in-memory" code that is always avaialable and will never cause a page fault. + This locked memory is loaded at boot time and remains resident for all time. + This memory regions must include: +
          +
        • + All logic for all interrupt pathes. + All interrupt logic must be locked in memory because the design present here will not support page faults from interrupt handlers. + This includes the page fault handling logic and pg_miss() that is called from the page fault handler. + It also includes the pg_callback() function that wakes up the page fill worker thread + and whatever chip-specific logic that calls pg_callback(). +
        • +
        • + All logic for the IDLE thread. + The IDLE thread must always be ready to run and cannot be blocked for any reason. +
        • +
        • + All of the page fill worker thread must be locked in memory. + This thread must execute in order to unblock any thread waiting for a fill. + It this thread were to block, there would be no way to complete the fills! +
        +
      2. +
      3. + A .text region containing pages that can be assigned allocated, mapped to various virtual addresses, and filled from some mass storage medium. +
      4. +
      5. + And a fixed RAM space for .bss, .text, and .heap. +
      6. +
      +

      +

      + This memory organization is illustrated in the following table. + Notice that: +

        +
      • + There is a one-to-one relationship between pages in the virtual address space and between pages of .text in the non-volatile mass storage device. +
      • +
      • + There are, however, far fewer physical pages available than virtual pages. + Only a subset of physical pages will be mapped to virtual pages at any given time. + This mapping will be performed on-demand as needed for program execution. +
      +

      + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      SRAMVirtual Address SpaceNon-Volatile Storage
       DATA 
       Virtual Page n (n > m)Stored Page n
       Virtual Page n-1Stored Page n-1
      DATA......
      Physical Page m (m < n)......
      Physical Page m-1......
      .........
      Physical Page 1Virtual Page 1Stored Page 1
      Locked MemoryLocked MemoryMemory Resident
      + +

      + As an example, suppose that the size of the SRAM is 192Kb (as in the NXP LPC3131). And suppose further that: +

        +
      • + The size of the locked, memory resident .text area is 32Kb, and +
      • +
      • + The size of the DATA area is 64Kb. +
      • +
      • + The size of one, managed page is 1Kb. +
      • +
      • + The size of the whole .text image on the non-volatile, mass storage device is 1024Kb. +
      • +
      +

      + Then, the size of the locked, memory resident code is 32Kb (32 pages). + The size of the physical page region is 96Kb (96 pages), and the + size of the data region is 64 pages. + And the size of the virtual paged region must then be greater than or equal to (1024-32) or 992 pages (m). +

      + +

      Architecture-Specific Functions

      + +

      + Standard functions that should already be provided in the architecture port: +

      +
        +
        + void up_block_task(FAR _TCB *tcb, tstate_t task_state); +
        +
        + The currently executing task at the head of the ready to run list must be stopped. + Save its context and move it to the inactive list specified by task_state. + This function is called by the on-demand paging logic in order to block the task that requires the + page fill, and to +
        +
        + void up_unblock_task(FAR _TCB *tcb); +
        +
        + A task is currently in an inactive task list but has been prepped to execute. + Move the TCB to the ready-to-run list, restore its context, and start execution. + This function will be called +
        +
      + +

      + New, additional functions that must be implemented just for on-demand paging support: +

      + +
        +
        + int up_checkmapping(FAR _TCB *tcb); +
        +
        + The function up_checkmapping() returns an indication that checks if the page fill still needs to performed or not. + In certain conditions, the page fault may occur on several threads and be queued multiple times. + This function will prevent the same page from be filled multiple times. +
        +
        + int up_allocpage(FAR _TCB *tcb, FAR void *vpage); +
        +
        + This chip-specific function will set aside page in memory and map to its correct virtual address. + Architecture-specific context information saved within the TCB will provide the function with the information need to identify the virtual miss address. + This function will return the allocated physical page address in paddr. + The size of a physical page is determined by the configuration setting CONFIG_PAGING_PAGESIZE. + NOTE: This function must always return a page allocation. + If all pages available pages are in-use (the typical case), then this function will select a page in-use, un-map it, and make it available. +
        +
        int up_fillpage(FAR _TCB *tcb, FAR const void *vpage, void (*pg_callback)(FAR _TCB *tcb, int result)); +
        + The actual filling of the page with data from the non-volatile, be performed by a separate call to the architecture-specific function, up_fillpage(). + This will start asynchronous page fill. + The common logic will provide a callback function, pg_callback, that will be called when the page fill is finished (or an error occurs). + This callback is assumed to occur from an interrupt level when the device driver completes the fill operation. + +
      - \ No newline at end of file + From e6b88aa39887954c9d8fe60d2a603b0f040050e9 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 15 Aug 2010 15:02:45 +0000 Subject: [PATCH 0628/1518] Completes demand paging core implementation git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2853 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttXDemandPaging.html | 178 +++++++++++++++++---------- 1 file changed, 111 insertions(+), 67 deletions(-) diff --git a/Documentation/NuttXDemandPaging.html b/Documentation/NuttXDemandPaging.html index cf4bb0ce42..fb0894d6be 100755 --- a/Documentation/NuttXDemandPaging.html +++ b/Documentation/NuttXDemandPaging.html @@ -72,7 +72,7 @@   - Fill Initiation + Fill Initiation @@ -160,14 +160,14 @@
      g_waitingforfill
      An OS list that is used to hold the TCBs of tasks that are waiting for a page fill.
      -
      g_pendingfill
      +
      g_pendingfilltcb
      A variable that holds a reference to the TCB of the thread that is currently be re-filled.
      g_pgworker
      The process ID of of the thread that will perform the page fills.
      pg_callback()
      The callback function that is invoked from a driver when the fill is complete.
      pg_miss()
      -
      The function that is called from chip-specific code to handle a page fault.
      +
      The function that is called from architecture-specific code to handle a page fault.
      TCB
      Task Control Block
      @@ -215,8 +215,10 @@

      Declarations for g_waitingforfill, g_pgworker, and other internal, private definitions will be provided in sched/pg_internal.h. - All public definitions that should be used by the chip-specific code will be available - in include/nuttx/page.h and include/nuttx/arch.h. + All public definitions that should be used by the architecture-specific code will be available + in include/nuttx/page.h. + Most architecture-specific functions are declared in include/nuttx/arch.h, + but for the case of this paging logic, those architecture specific functions are instead declared in include/nuttx/page.h.

      Page Faults

      @@ -244,6 +246,7 @@ Boost the page fill worker thread priority. Check the priority of the task at the head of the g_waitingforfill list. If the priority of that task is higher than the current priority of the page fill worker thread, then boost the priority of the page fill worker thread to that priority. + Thus, the page fill worker thread will always run at the priority of the highest priority task that is waiting for a fill.
    17. Signal the page fill worker thread. @@ -277,51 +280,46 @@ Interrupt handling logic must always be available and "locked" into memory so that page faults never come from interrupt handling.
    18. - The chip-specific page fault exception handling has already verified that the exception did not occur from interrupt/exception handling logic. + The architecture-specific page fault exception handling has already verified that the exception did not occur from interrupt/exception handling logic.
    19. As mentioned above, the task causing the page fault must not be the page fill worker thread because that is the only way to complete the page fill.
    20. -

      - Locking code in Memory. - One way to accomplish this would be a two phase link: -

        -
      • - In the first phase, create a partially linked objected containing all interrupt/exception handling logic, the page fill worker thread plus all parts of the IDLE thread (which must always be available for execution). -
      • -
      • - All of the .text and .rodata sections of this partial link should be collected into a single section. -
      • -
      • - The second link would link the partially linked object along with the remaining object to produce the final binary. - The linker script should position the "special" section so that it lies in a reserved, "non-swappable" region. -
      -

      Fill Initiation

      - The page fill worker thread will be awakened on one of two conditions: + The page fill worker thread will be awakened on one of three conditions:

      • - When signaled by pg_miss(), the page fill worker thread will be awakenend (see above), or + When signaled by pg_miss(), the page fill worker thread will be awakenend (see above),
      • - From pg_fillcomplete() after completing last fill (see below). + From pg_callback() after completing last fill (when CONFIG_PAGING_BLOCKINGFILL is defined... see below), or +
      • +
      • + A configurable timeout expires with no activity. + This timeout can be used to detect failure conditions such things as fills that never complete.

      - The page fill worker thread will maintain a static variable called _TCB *g_pendingfill. - If not fill is in progress, g_pendingfill will be NULL. - Otherwise, will point to the TCB of the task which is receiving the fill that is in progess. + The page fill worker thread will maintain a static variable called _TCB *g_pendingfilltcb. + If no fill is in progress, g_pendingfilltcb will be NULL. + Otherwise, it will point to the TCB of the task which is receiving the fill that is in progess.

      +
        + NOTE: + I think that this is the only state in which a TCB does not reside in some list. + Here is it in limbo, outside of the normally queuing while the page file is in progress. + While here, it will be marked with TSTATE_TASK_INVALID. +

      - When awakened from pg_miss(), no fill will be in progress and g_pendingfill will be NULL. + When awakened from pg_miss(), no fill will be in progress and g_pendingfilltcb will be NULL. In this case, the page fill worker thread will call pg_startfill(). That function will perform the following operations:

        @@ -334,50 +332,73 @@
      • Call up_allocpage(tcb, &vpage). - This chip-specific function will set aside page in memory and map to virtual address (vpage). - If all pages available pages are in-use (the typical case), + This architecture-specific function will set aside page in memory and map to virtual address (vpage). + If all available pages are in-use (the typical case), this function will select a page in-use, un-map it, and make it available.
      • - Call the chip-specific function up_fillpage(page, pg_callback). - This will start asynchronous page fill. - The page fill worker thread will provide a callback function, pg_callback, - that will be called when the page fill is finished (or an error occurs). - This callback will probably from interrupt level. -
      • -
      • - Restore default priority of the page fill worker thread's default priority and wait to be signaled for the next event -- the fill completion event. + Call the architecture-specific function up_fillpage(). + Two versions of the up_fillpage function are supported -- a blocking and a non-blocking version based upon the configuratin setting CONFIG_PAGING_BLOCKINGFILL. +
          +
        • + If CONFIG_PAGING_BLOCKINGFILL is defined, then up_fillpage is blocking call. + In this case, up_fillpage() will accept only (1) a reference to the TCB that requires the fill. + Architecture-specific context information within the TCB will be sufficient to perform the fill. + And (2) the (virtual) address of the allocated page to be filled. + The resulting status of the fill will be provided by return value from up_fillpage(). +
        • +
        • + If CONFIG_PAGING_BLOCKINGFILL is defined, then up_fillpage is non-blocking call. + In this case up_fillpage() will accept an additional argument: + The page fill worker thread will provide a callback function, pg_callback. + This function is non-blocking, it will start an asynchronous page fill. + After calling the non-blocking up_fillpage(), the page fill worker thread will wait to be signaled for the next event -- the fill completion event. + The callback function will be called when the page fill is finished (or an error occurs). + The resulting status of the fill will be providing as an argument to the callback functions. + This callback will probably occur from interrupt level. +

      - While the fill is in progress, other tasks may execute. - If another page fault occurs during this time, the faulting task will be blocked and its TCB will be added (in priority order) to g_waitingforfill. + In any case, while the fill is in progress, other tasks may execute. + If another page fault occurs during this time, the faulting task will be blocked, its TCB will be added (in priority order) to g_waitingforfill, and the priority of the page worker task may be boosted. But no action will be taken until the current page fill completes. NOTE: The IDLE task must also be fully locked in memory. The IDLE task cannot be blocked. It the case where all tasks are blocked waiting for a page fill, the IDLE task must still be available to run.

      - The chip-specific functions, up_allocpage(tcb, &vpage) and up_fillpage(page, pg_callback) + The architecture-specific functions, up_checkmapping(), up_allocpage(tcb, &vpage) and up_fillpage(page, pg_callback) will be prototyped in include/nuttx/arch.h

      Fill Complete

      - When the chip-specific driver completes the page fill, it will call the pg_callback() that was provided to up_fillpage. - pg_callback() will probably be called from driver interrupt-level logic. - The driver ill provide the result of the fill as an argument. + For the blocking up_fillpage(), the result of the fill will be returned directly from the call to up_fillpage. +

      +

      + For the non-blocking up_fillpage(), the architecture-specific driver call the pg_callback() that was provided to up_fillpage() when the fill completes. + In this case, the pg_callback() will probably be called from driver interrupt-level logic. + The driver will provide the result of the fill as an argument to the callback function. NOTE: pg_callback() must also be locked in memory.

      - When pg_callback() is called, it will perform the following operations: + In this non-blocking case, the callback pg_callback() will perform the following operations when it is notified that the fill has completed:

      • - Verify that g_pendingfill is non-NULL. + Verify that g_pendingfilltcb is non-NULL.
      • - If the priority of thread in g_pendingfill is higher than page fill worker thread, boost work thread to that level. + Find the higher priority between the task waiting for the fill to complete in g_pendingfilltcb and the task waiting at the head of the g_waitingforfill list. + That will be the priority of he highest priority task waiting for a fill. +
      • +
      • + If this higher priority is higher than current page fill worker thread, then boost worker thread's priority to that level. + Thus, the page fill worker thread will always run at the priority of the highest priority task that is waiting for a fill. +
      • +
      • + Save the result of the fill operation.
      • Signal the page fill worker thread. @@ -388,18 +409,20 @@

        Task Resumption

        - When the page fill worker thread is awakened and g_pendingfill is non-NULL (and other state variables are in concurrence), - the page fill thread will know that is was awakened because of a page fill completion event. - In this case, the page fill worker thread will: + For the non-blocking up_fillpage(), the page fill worker thread will detect that the page fill is complete when it is awakened with g_pendingfilltcb non-NULL and fill completion status from pg_callback. + In the non-blocking case, the page fill worker thread will know that the page fill is complete when up_fillpage() returns. +

        +

        + In this either, the page fill worker thread will:

        • - Verify consistency of state information and g_pendingfill. + Verify consistency of state information and g_pendingfilltcb.
        • Verify that the page fill completed successfully, and if so,
        • - Call up_unblocktask(g_pendingfill) to make the task that just received the fill ready-to-run. + Call up_unblocktask(g_pendingfilltcb) to make the task that just received the fill ready-to-run.
        • Check if the g_waitingforfill list is empty. @@ -409,10 +432,10 @@ Remove the highest priority task waiting for a page fill from g_waitingforfill,
        • - Save the task's TCB in g_pendingfill, + Save the task's TCB in g_pendingfilltcb,
        • - If the priority of the thread in g_pendingfill, is higher in priority than the default priority of the page fill worker thread, then set the priority of the page fill worker thread to that priority. + If the priority of the thread in g_pendingfilltcb, is higher in priority than the default priority of the page fill worker thread, then set the priority of the page fill worker thread to that priority.
        • Call pg_startfill() which will start the next fill (as described above). @@ -423,7 +446,7 @@ Otherwise,
          • - Set g_pendingfill to NULL. + Set g_pendingfilltcb to NULL.
          • Restore the default priority of the page fill worker thread. @@ -447,6 +470,7 @@

            Memory Organization

            + Memory Regions. Chip specific logic will map the virtual and physical address spaces into three general regions:

            1. @@ -459,7 +483,7 @@ All interrupt logic must be locked in memory because the design present here will not support page faults from interrupt handlers. This includes the page fault handling logic and pg_miss() that is called from the page fault handler. It also includes the pg_callback() function that wakes up the page fill worker thread - and whatever chip-specific logic that calls pg_callback(). + and whatever architecture-specific logic that calls pg_callback().
            2. All logic for the IDLE thread. @@ -547,6 +571,7 @@

              + Example. As an example, suppose that the size of the SRAM is 192Kb (as in the NXP LPC3131). And suppose further that:

              • @@ -563,16 +588,35 @@

              - Then, the size of the locked, memory resident code is 32Kb (32 pages). + Then, the size of the locked, memory resident code is 32Kb (m=32 pages). The size of the physical page region is 96Kb (96 pages), and the size of the data region is 64 pages. - And the size of the virtual paged region must then be greater than or equal to (1024-32) or 992 pages (m). + And the size of the virtual paged region must then be greater than or equal to (1024-32) or 992 pages (n). +

              + +

              + Building the Locked, In-Memory Image. + One way to accomplish this would be a two phase link: +

                +
              • + In the first phase, create a partially linked objected containing all interrupt/exception handling logic, the page fill worker thread plus all parts of the IDLE thread (which must always be available for execution). +
              • +
              • + All of the .text and .rodata sections of this partial link should be collected into a single section. +
              • +
              • + The second link would link the partially linked object along with the remaining object to produce the final binary. + The linker script should position the "special" section so that it lies in a reserved, "non-swappable" region. +

              Architecture-Specific Functions

              - Standard functions that should already be provided in the architecture port: + Most standard, architecture-specific functions are declared in include/nuttx/arch.h. + However, for the case of this paging logic, the architecture specific functions are declared in include/nuttx/page.h. + Standard, architecture-specific functions that should already be provided in the architecture port. + The following are used by the common paging logic:

                @@ -603,7 +647,7 @@ int up_checkmapping(FAR _TCB *tcb);
                - The function up_checkmapping() returns an indication that checks if the page fill still needs to performed or not. + The function up_checkmapping() returns an indication if the page fill still needs to performed or not. In certain conditions, the page fault may occur on several threads and be queued multiple times. This function will prevent the same page from be filled multiple times.
                @@ -611,18 +655,18 @@ int up_allocpage(FAR _TCB *tcb, FAR void *vpage);
                - This chip-specific function will set aside page in memory and map to its correct virtual address. - Architecture-specific context information saved within the TCB will provide the function with the information need to identify the virtual miss address. - This function will return the allocated physical page address in paddr. - The size of a physical page is determined by the configuration setting CONFIG_PAGING_PAGESIZE. + This architecture-specific function will set aside page in memory and map to its correct virtual address. + Architecture-specific context information saved within the TCB will provide the function with the information needed to identify the virtual miss address. + This function will return the allocated physical page address in vpage. + The size of the underlying physical page is determined by the configuration setting CONFIG_PAGING_PAGESIZE. NOTE: This function must always return a page allocation. - If all pages available pages are in-use (the typical case), then this function will select a page in-use, un-map it, and make it available. + If all available pages are in-use (the typical case), then this function will select a page in-use, un-map it, and make it available.
                int up_fillpage(FAR _TCB *tcb, FAR const void *vpage, void (*pg_callback)(FAR _TCB *tcb, int result));
                - The actual filling of the page with data from the non-volatile, be performed by a separate call to the architecture-specific function, up_fillpage(). + The actual filling of the page with data from the non-volatile, must be performed by a separate call to the architecture-specific function, up_fillpage(). This will start asynchronous page fill. - The common logic will provide a callback function, pg_callback, that will be called when the page fill is finished (or an error occurs). + The common paging logic will provide a callback function, pg_callback, that will be called when the page fill is finished (or an error occurs). This callback is assumed to occur from an interrupt level when the device driver completes the fill operation.
              From c1909a79a2ea37f503a0041ad6e4f6c2d709ad1b Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 15 Aug 2010 15:13:34 +0000 Subject: [PATCH 0629/1518] Demand paging documentation git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2854 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 17 ++++++++++++++++- Documentation/NuttXDemandPaging.html | 8 ++++---- Documentation/NuttXLinks.html | 1 + 3 files changed, 21 insertions(+), 5 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 62cbcf5124..203651a679 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

              NuttX RTOS

              -

              Last Updated: August 12, 2010

              +

              Last Updated: August 14, 2010

              @@ -344,6 +344,14 @@

              + +
              + +

              +

            3. On-demand paging.
            4. +

              + +
              @@ -1879,6 +1887,9 @@ nuttx-5.9 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> GPIO interrupts. * arch/arm/src/lm3s/lm3s_internal.h and lm3s_gpio.c - Fixed the encoding of GPIO port number that limited support for GPIO ports to 8 + * sched/pg_*.c and *.c and include/nuttx/page.h - Implemented the + common, core logic for on-demand paging. See + http://www.nuttx.org/NuttXDemandPaging.html for details. pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> @@ -1928,6 +1939,10 @@ buildroot-1.9 2010-xx-xx NX Graphics Subsystem + + + Demand Paging + NuttX README Files diff --git a/Documentation/NuttXDemandPaging.html b/Documentation/NuttXDemandPaging.html index fb0894d6be..1d54ec0911 100755 --- a/Documentation/NuttXDemandPaging.html +++ b/Documentation/NuttXDemandPaging.html @@ -127,7 +127,7 @@

              Overview

              - This document summarizes the design of NuttX on-demand page. + This document summarizes the design of NuttX on-demand paging. This feature permits embedded MCUs with some limited RAM space to execute large programs some some non-random access media. This feature was first discussed in this email thread: http://tech.groups.yahoo.com/group/nuttx/message/213. @@ -143,15 +143,15 @@

            5. The MCU must have a (relatively) small block of fast SRAM from which it can execute code. - A size of, say 256Kb (or 192Kb as in the ea3131) would be sufficient for many applications. + A size of, say 256Kb (or 192Kb as in the NXP LPC3131) would be sufficient for many applications.
            6. - The MCU has an MMU (again like the ea3131). + The MCU has an MMU (again like the NXP LPC3131).

            - If the platforms meets these requirement, then NuttX can provide on-demand paging: + If the platform meets these requirement, then NuttX can provide on-demand paging: It can copy .text from the large program in non-volatile media into RAM as needed to execute the huge program from the small RAM.

            diff --git a/Documentation/NuttXLinks.html b/Documentation/NuttXLinks.html index 972ae8b0ec..681dc9329f 100755 --- a/Documentation/NuttXLinks.html +++ b/Documentation/NuttXLinks.html @@ -45,6 +45,7 @@
          • NuttShell (NSH)
          • NXFLAT
          • NX Graphics
          • +
          • Demand Paging
          • README Files
          • Change Log
          • To-Do List
          • From b12fa96569023993490d0bed1c5aafeb84f60988 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 15 Aug 2010 15:24:08 +0000 Subject: [PATCH 0630/1518] update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2855 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttXDemandPaging.html | 4 ++-- Documentation/NuttxPortingGuide.html | 17 ++++++++++++++--- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/Documentation/NuttXDemandPaging.html b/Documentation/NuttXDemandPaging.html index 1d54ec0911..dc0d5d6ae2 100755 --- a/Documentation/NuttXDemandPaging.html +++ b/Documentation/NuttXDemandPaging.html @@ -128,7 +128,7 @@

            This document summarizes the design of NuttX on-demand paging. - This feature permits embedded MCUs with some limited RAM space to execute large programs some some non-random access media. + This feature permits embedded MCUs with some limited RAM space to execute large programs from some non-random access media. This feature was first discussed in this email thread: http://tech.groups.yahoo.com/group/nuttx/message/213.

            @@ -152,7 +152,7 @@

            If the platform meets these requirement, then NuttX can provide on-demand paging: - It can copy .text from the large program in non-volatile media into RAM as needed to execute the huge program from the small RAM. + It can copy .text from the large program in non-volatile media into RAM as needed to execute a huge program from the small RAM.

            Terminology

            diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 9275258de7..428537f654 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

            NuttX RTOS Porting Guide

            -

            Last Updated: July 12, 2010

            +

            Last Updated: August 14, 2010

            @@ -98,7 +98,8 @@ 4.2.3 sched_process_timer()
            4.2.4 irq_dispatch()
          - 4.3 LED Support + 4.3 On-Demand Paging
          + 4.4 LED Support
            4.3.1 Header Files
            4.3.2 LED Definitions
            @@ -1483,7 +1484,17 @@ The system can be re-made subsequently by just typing make. the appropriate, registered handling logic.

            -

            4.3 LED Support

            +

            4.3 On-Demand Paging

            + +

            + The NuttX On-Demand Paging feature permits embedded MCUs with some limited RAM space to execute large programs from some non-random access media. + If the platform meets certiain requirements, then NuttX can provide on-demand paging: + It can copy .text from the large program in non-volatile media into RAM as needed to execute a huge program from the small RAM. + Design and porting issues for this feature are discussed in a sepate document. + Please see the NuttX Demand Paging design document for further information. +

            + +

            4.4 LED Support

            A board architecture may or may not have LEDs. From f9060631fc60d35b9e61248f359b1c532021666b Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 15 Aug 2010 16:50:25 +0000 Subject: [PATCH 0631/1518] Add logic to drop the priority of the page fill task git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2857 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttXDemandPaging.html | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/Documentation/NuttXDemandPaging.html b/Documentation/NuttXDemandPaging.html index dc0d5d6ae2..3246e070d0 100755 --- a/Documentation/NuttXDemandPaging.html +++ b/Documentation/NuttXDemandPaging.html @@ -160,7 +160,7 @@

            g_waitingforfill
            An OS list that is used to hold the TCBs of tasks that are waiting for a page fill.
            -
            g_pendingfilltcb
            +
            g_pftcb
            A variable that holds a reference to the TCB of the thread that is currently be re-filled.
            g_pgworker
            The process ID of of the thread that will perform the page fills.
            @@ -307,8 +307,8 @@

            - The page fill worker thread will maintain a static variable called _TCB *g_pendingfilltcb. - If no fill is in progress, g_pendingfilltcb will be NULL. + The page fill worker thread will maintain a static variable called _TCB *g_pftcb. + If no fill is in progress, g_pftcb will be NULL. Otherwise, it will point to the TCB of the task which is receiving the fill that is in progess.

              @@ -319,7 +319,7 @@

            - When awakened from pg_miss(), no fill will be in progress and g_pendingfilltcb will be NULL. + When awakened from pg_miss(), no fill will be in progress and g_pftcb will be NULL. In this case, the page fill worker thread will call pg_startfill(). That function will perform the following operations:

              @@ -387,10 +387,10 @@ In this non-blocking case, the callback pg_callback() will perform the following operations when it is notified that the fill has completed:
              • - Verify that g_pendingfilltcb is non-NULL. + Verify that g_pftcb is non-NULL.
              • - Find the higher priority between the task waiting for the fill to complete in g_pendingfilltcb and the task waiting at the head of the g_waitingforfill list. + Find the higher priority between the task waiting for the fill to complete in g_pftcb and the task waiting at the head of the g_waitingforfill list. That will be the priority of he highest priority task waiting for a fill.
              • @@ -409,20 +409,20 @@

                Task Resumption

                - For the non-blocking up_fillpage(), the page fill worker thread will detect that the page fill is complete when it is awakened with g_pendingfilltcb non-NULL and fill completion status from pg_callback. + For the non-blocking up_fillpage(), the page fill worker thread will detect that the page fill is complete when it is awakened with g_pftcb non-NULL and fill completion status from pg_callback. In the non-blocking case, the page fill worker thread will know that the page fill is complete when up_fillpage() returns.

                In this either, the page fill worker thread will:

                • - Verify consistency of state information and g_pendingfilltcb. + Verify consistency of state information and g_pftcb.
                • Verify that the page fill completed successfully, and if so,
                • - Call up_unblocktask(g_pendingfilltcb) to make the task that just received the fill ready-to-run. + Call up_unblocktask(g_pftcb) to make the task that just received the fill ready-to-run.
                • Check if the g_waitingforfill list is empty. @@ -432,10 +432,10 @@ Remove the highest priority task waiting for a page fill from g_waitingforfill,
                • - Save the task's TCB in g_pendingfilltcb, + Save the task's TCB in g_pftcb,
                • - If the priority of the thread in g_pendingfilltcb, is higher in priority than the default priority of the page fill worker thread, then set the priority of the page fill worker thread to that priority. + If the priority of the thread in g_pftcb, is higher in priority than the default priority of the page fill worker thread, then set the priority of the page fill worker thread to that priority.
                • Call pg_startfill() which will start the next fill (as described above). @@ -446,7 +446,7 @@ Otherwise,
                  • - Set g_pendingfilltcb to NULL. + Set g_pftcb to NULL.
                  • Restore the default priority of the page fill worker thread. From e07692f46b5ccf82f70301a787d2bbd815601817 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 15 Aug 2010 21:50:50 +0000 Subject: [PATCH 0632/1518] Document on-demand paging configuration settings git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2858 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 40 ++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 428537f654..6150823fb1 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -2375,6 +2375,46 @@ extern void up_ledoff(int led);
                  +

                  + OS setup related to on-demand paging: +

                  + + +

                  + If CONFIG_PAGING is selected, then the following also apply: +

                  +
                    +
                  • + CONFIG_PAGING_DEFPRIO: + The default, minimum priority of the page fill worker thread. + The priority of the page fill work thread will be boosted boosted dynmically so that it matches the priority of the task on behalf of which it peforms the fill. + This defines the minimum priority that will be used. + Default: 50. +
                  • +
                  • + CONFIG_PAGING_STACKSIZE : + Defines the size of the allocated stack for the page fill worker thread. + Default: 1024. +
                  • +
                  • + CONFIG_PAGING_BLOCKINGFILL: + The architecture specific up_fillpage() function may be blocking or non-blocking. + If defined, this setting indicates that the up_fillpage() implementation will block until the transfer is completed. + Default: Undefined (non-blocking). +
                  • +
                  • + CONFIG_PAGING_TIMEOUT_TICKS: + If defined, the implementation will monitor the (asynchronous) page fill logic. + If the fill takes longer than this number if microseconds, then a fatal error will be declared. + Default: No timeouts monitored. +
                  • +

                  The following can be used to disable categories of APIs supported by the OS. If the compiler supports weak functions, then it From 7e1f9e742783d190932e0a5d167f0eb604e1ebb3 Mon Sep 17 00:00:00 2001 From: patacongo Date: Tue, 17 Aug 2010 01:37:39 +0000 Subject: [PATCH 0633/1518] Add on-demand paging support to ARM9 prefetch abort handler git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2860 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 6150823fb1..13a4775ef3 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

                  NuttX RTOS Porting Guide

                  -

                  Last Updated: August 14, 2010

                  +

                  Last Updated: August 16, 2010

                  @@ -2390,6 +2390,26 @@ extern void up_ledoff(int led); If CONFIG_PAGING is selected, then the following also apply:

                    + +
                  • + CONFIG_PAGING_PAGESIZE: + The size of one managed page. + This must be a value supported by the processor's memory management unit. +
                  • +
                  • + CONFIG_PAGING_NLOCKED: + This is the number of locked pages in the memory map. + The locked address region will then be from CONFIG_DRAM_VSTART through + (CONFIG_DRAM_VSTART + CONFIG_PAGING_PAGESIZE*CONFIG_PAGING_NLOCKED) +
                  • +
                  • + CONFIG_PAGING_NPAGES: + The number of pages in the paged region of the memory map. + This paged region then begins at + (CONFIG_DRAM_VSTART + CONFIG_PAGING_PAGESIZE*CONFIG_PAGING_NLOCKED) + and continues until (CONFIG_DRAM_VSTART + + CONFIG_PAGING_PAGESIZE*(CONFIG_PAGING_NLOCKED + CONFIG_PAGING_NPAGES) +
                  • CONFIG_PAGING_DEFPRIO: The default, minimum priority of the page fill worker thread. From 62c67eca5f1165bb3df2706382756246caf3fe3d Mon Sep 17 00:00:00 2001 From: patacongo Date: Wed, 18 Aug 2010 23:27:36 +0000 Subject: [PATCH 0634/1518] Fix compile error in usbdev_serial.c git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2867 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 203651a679..7f3f8a3fa2 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                    NuttX RTOS

                    -

                    Last Updated: August 14, 2010

                    +

                    Last Updated: August 18, 2010

                    @@ -1890,6 +1890,8 @@ nuttx-5.9 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> * sched/pg_*.c and *.c and include/nuttx/page.h - Implemented the common, core logic for on-demand paging. See http://www.nuttx.org/NuttXDemandPaging.html for details. + * drivers/usbdev/usbdev_serial.c - Correct compilation errors that + occur if CONFIG_USBDEV_DUALSPEED is selected. pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From de637c5e158aba9bd6f9e2d5be38f1322f9a9f67 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 21 Aug 2010 19:17:39 +0000 Subject: [PATCH 0635/1518] Basic page allocation logic git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2874 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 7f3f8a3fa2..646275895d 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                    NuttX RTOS

                    -

                    Last Updated: August 18, 2010

                    +

                    Last Updated: August 21, 2010

                    @@ -1008,6 +1008,7 @@ This port uses the Neuros OSD with a GNU arm-elf toolchain* under Linux or Cygwin. + The port was performed using the OSD v1.0, development board.

                      From fcef745b21bcee9810b5a1d90d97f8c7c99540c9 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 22 Aug 2010 00:48:43 +0000 Subject: [PATCH 0636/1518] Update On-demand paging documentation git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2877 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 86 ++++++++++++++++++++++------ 1 file changed, 70 insertions(+), 16 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 13a4775ef3..e0947657b3 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

                      NuttX RTOS Porting Guide

                      -

                      Last Updated: August 16, 2010

                      +

                      Last Updated: August 21, 2010

                      @@ -2390,7 +2390,6 @@ extern void up_ledoff(int led); If CONFIG_PAGING is selected, then the following also apply:

                        -
                      • CONFIG_PAGING_PAGESIZE: The size of one managed page. @@ -2403,30 +2402,68 @@ extern void up_ledoff(int led); (CONFIG_DRAM_VSTART + CONFIG_PAGING_PAGESIZE*CONFIG_PAGING_NLOCKED)
                      • - CONFIG_PAGING_NPAGES: - The number of pages in the paged region of the memory map. - This paged region then begins at - (CONFIG_DRAM_VSTART + CONFIG_PAGING_PAGESIZE*CONFIG_PAGING_NLOCKED) - and continues until (CONFIG_DRAM_VSTART + - CONFIG_PAGING_PAGESIZE*(CONFIG_PAGING_NLOCKED + CONFIG_PAGING_NPAGES) + CONFIG_PAGING_LOCKED_PBASE and CONFIG_PAGING_LOCKED_VBASE: + These may be defined to determine the base address of the locked page regions. + If neither are defined, the logic will be set the bases to CONFIG_DRAM_START + and CONFIG_DRAM_VSTART (i.e., it assumes that the base address of the locked + region is at the beginning of RAM). + NOTE: + In some architectures, it may be necessary to take some memory from the beginning + of this region for vectors or for a page table. + In such cases, CONFIG_PAGING_LOCKED_P/VBASE should take that into consideration + to prevent overlapping the locked memory region and the system data at the beginning of SRAM. +
                      • +
                      • + CONFIG_PAGING_NPPAGED: + This is the number of physical pages available to support the paged text region. + This paged region begins at + (CONFIG_PAGING_LOCKED_PBASE + CONFIG_PAGING_PAGESIZE*CONFIG_PAGING_NPPAGED) + and continues until + (CONFIG_PAGING_LOCKED_PBASE + CONFIG_PAGING_PAGESIZE*(CONFIG_PAGING_NLOCKED + + CONFIG_PAGING_NPPAGED) +
                      • +
                      • + CONFIG_PAGING_NVPAGED: + This actual size of the paged text region (in pages). + This is also the number of virtual pages required to support the entire paged region. + The on-demand paging feature is intended to support only the case where the virtual paged text + area is much larger the available physical pages. + Otherwise, why would you enable on-demand paging? +
                      • +
                      • + CONFIG_PAGING_NDATA: + This is the number of data pages in the memory map. + The data region will extend to the end of RAM unless overridden by a setting in the configuration file. + NOTE: + In some architectures, it may be necessary to take some memory from the end of RAM for page tables + or other system usage. + The configuration settings and linker directives must be cognizant of that: + CONFIG_PAGING_NDATA should be defined to prevent the data region from extending all the way to the end of memory.
                      • CONFIG_PAGING_DEFPRIO: The default, minimum priority of the page fill worker thread. - The priority of the page fill work thread will be boosted boosted dynmically so that it matches the priority of the task on behalf of which it peforms the fill. - This defines the minimum priority that will be used. - Default: 50. + The priority of the page fill work thread will be boosted boosted dynmically so that it matches the + priority of the task on behalf of which it peforms the fill. + This defines the minimum priority that will be used. Default: 50.
                      • - CONFIG_PAGING_STACKSIZE : - Defines the size of the allocated stack for the page fill worker thread. - Default: 1024. + CONFIG_PAGING_STACKSIZE: + Defines the size of the allocated stack for the page fill worker thread. Default: 1024.
                      • CONFIG_PAGING_BLOCKINGFILL: The architecture specific up_fillpage() function may be blocking or non-blocking. - If defined, this setting indicates that the up_fillpage() implementation will block until the transfer is completed. - Default: Undefined (non-blocking). + If defined, this setting indicates that the up_fillpage() implementation will block until the + transfer is completed. Default: Undefined (non-blocking). +
                      • +
                      • + CONFIG_PAGING_WORKPERIOD: + The page fill worker thread will wake periodically even if there is no mapping to do. + This selection controls that wake-up period (in microseconds). + This wake-up a failsafe that will handle any cases where a single is lost (that would + really be a bug and shouldn't happen!) + and also supports timeouts for case of non-blocking, asynchronous fills (see CONFIG_PAGING_TIMEOUT_TICKS).
                      • CONFIG_PAGING_TIMEOUT_TICKS: @@ -2434,6 +2471,23 @@ extern void up_ledoff(int led); If the fill takes longer than this number if microseconds, then a fatal error will be declared. Default: No timeouts monitored.
                      • +

                        + Some architecture-specific settings. + Defaults are architecture specific. + If you don't know what you are doing, it is best to leave these undefined and try the system defaults: +

                        +
                      • + CONFIG_PAGING_VECPPAGE: + This the physical address of the page in memory to be mapped to the vector address. +
                      • +
                      • + CONFIG_PAGING_VECL2PADDR: + This is the physical address of the L2 page table entry to use for the vector mapping. +
                      • +
                      • + CONFIG_PAGING_VECL2VADDR: + This is the virtual address of the L2 page table entry to use for the vector mapping. +

                      The following can be used to disable categories of APIs supported From 2fe27b850b655de26f0b1203c859f5bfd3ae90fa Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 22 Aug 2010 03:44:18 +0000 Subject: [PATCH 0637/1518] Fix demand-paging compilation errors git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2879 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 646275895d..a6890231a3 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1881,11 +1881,11 @@ nuttx-5.9 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> * examples/uip/main.c - if DHCPC is selected, this example now shows the assigned IP address. * arch/arm/src/lm3s and arch/arm/include/lm3s - Definitions for the - TI LM3S9B96 contributed by Tiago Maluta. + TI LM3S9B96 contributed by Tiago Maluta. * arch/arm/src/lm3s/lm3s_gioirq.c - Fix a logic error in the address table lookup. * arch/arm/src/lm3s/lm3s_gioirq.c - Also needs to enable the global - GPIO interrupts. + GPIO interrupts. * arch/arm/src/lm3s/lm3s_internal.h and lm3s_gpio.c - Fixed the encoding of GPIO port number that limited support for GPIO ports to 8 * sched/pg_*.c and *.c and include/nuttx/page.h - Implemented the @@ -1893,6 +1893,10 @@ nuttx-5.9 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> http://www.nuttx.org/NuttXDemandPaging.html for details. * drivers/usbdev/usbdev_serial.c - Correct compilation errors that occur if CONFIG_USBDEV_DUALSPEED is selected. + * configs/ea3131/pgnsh - Add an NSH configuration with on-demand paging + enabled. This is not expected to be a functionality configuration (at + least not yet); it was created in order to debug the on-demand paging + feature. pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From 4f9a0c6e33e13becd3b7c9128f31f4e52a07dc88 Mon Sep 17 00:00:00 2001 From: patacongo Date: Wed, 25 Aug 2010 11:03:59 +0000 Subject: [PATCH 0638/1518] Extend CodeSourcery & production OSD support to other configs git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2884 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index a6890231a3..fb06f8805e 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                      NuttX RTOS

                      -

                      Last Updated: August 21, 2010

                      +

                      Last Updated: August 24, 2010

                      @@ -1872,7 +1872,7 @@ nuttx-5.9 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> have a test to prove that the changes are correct. * configs/olimex-lpc2378 - Add support for the CodeSourcery toolchain under Linux (contributed by Alan Carvalho de Assis). - * arch/arm/src/lpc17xx/lpc17_gpio.c - Fix an imporation GPIO configuration + * arch/arm/src/lpc17xx/lpc17_gpio.c - Fix an important GPIO configuration bug: When attempting to set no pull-up or pull-down (floating), it would, instead, select pull-down. * arch/arm/src/lm3s/lm3s_gpioirq.c - Fix warning for returning a value @@ -1897,6 +1897,10 @@ nuttx-5.9 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> enabled. This is not expected to be a functionality configuration (at least not yet); it was created in order to debug the on-demand paging feature. + * configs/ntosd-dm320/*/Make.defs - Codesourcery and devkitARM toolchains + now supported for the Neuros OSD. + * configs/ntosd-dm320 and arch/arm/src/dm320 - Add support for the + Neuros production OSD (changes contributed by bf.nuttx). pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From 2ab444fb31fb72b223e9ff7e9f2c9d01c8eaca76 Mon Sep 17 00:00:00 2001 From: patacongo Date: Thu, 26 Aug 2010 01:16:40 +0000 Subject: [PATCH 0639/1518] Prep for 5.9 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2887 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 184 +++++++++++++++++++-------------------- 1 file changed, 88 insertions(+), 96 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index fb06f8805e..b9b873e1e2 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                      NuttX RTOS

                      -

                      Last Updated: August 24, 2010

                      +

                      Last Updated: August 25, 2010

                      @@ -772,52 +772,61 @@ -

                      nuttx-5.8 Release Notes: +

                      nuttx-5.9 Release Notes:

                      - This 55th release of NuttX was made on July 18, 2010 and is available for download from the + This 56th release of NuttX was made on August 25, 2010 and is available for download from the SourceForge website. The change log associated with the release is available here. Unreleased changes after this release are available in CVS. These unreleased changes are listed here. +

                      + This release is difficult to categorize; + NuttX-5.9 was really released because there were too many changes accumulating in CVS -- + a few important, some large, unverified implementations, and a couple of important bugfixes. +
                        +
                      • + By far biggest change in this release is the complete implementation of on-demand paging support. + This feature will allow you to execute large programs on a mass storage device (such as SPI FLASH) in a small RAM. + All of the core on-demand paging logic was completed + (see NuttXDemandPaging.html) + and support was implemented for the ARM-9 family. + A test configuration is in place for the NXP LPC3131. + It has been verified that this new logic does not interfere with normal fixed-page ARM9 operation, but otherwise this new on-demand paging feature is untested. +
                      • +
                      • + Add support for the CodeSourcery toolchain to the Olimex-lpc2378 port and for the Neuros OSD port. +
                      • +
                      • + The Neuros OSD port has been updated to work with the production v1.0 OSD + (previously there was NuttX support only for the development board). +
                      • +
                      • + And some miscellaneous feature enhancements as detailed in the ChangeLog. +
                      • +

                      This includes several important bugfixes: +

                        +
                      • + NXP LPC17xx - Fixed a critical bug in the GPIO configuratino logic: + When attempting to set no pull-up or pull-down (floating), it would, instead, select pull-down. +
                      • +
                      • + TI/Luminary LM3Sxxxx - Fixed (1) a logic error in an address table lookup, + (2) GPIO port encoding the limited support to only 8 GPIO ports. +
                      • +
                      • + Corrected the lease time in the DHCPC implementation: + It was not in host byte order. +
                      • +
                      • + And several other less important bugs as documented in the ChangeLog: + Warnings, cornercase compilation problems, etc. +
                      • +

                      -
                        -
                      • Corrects some interrupt vectoring for the TI/Stellarix LM3S port,
                      • -
                      • Correct initialization logic for NXP LPC17xxx NuttX ports: Power was not being provided to the GPIO module!
                      • -
                      • Corrected (but did not verify) implementation of the optional interrupt stack feature (all Cortex M3 architectures), and
                      • -
                      • Correct a HardFault in the LPC17xx SSP driver.
                      • -
                      -

                      - Additional minor fixes are also included as detailed in the ChangeLog. -

                      -

                      - Several new features have been fully developed and included in this release, but - full verification of most of these new features has been blocked for a variety - of issues: -

                      -
                        -
                      • - Added microSD support for the NuttShell (NSH) configuration in the Nucleus2G LPC1768 port. - For reasons that have not yet been determined, I have not successfully accessed the microSD card as of this writing. -
                      • -
                      • - Two USB configurations were also added for the Nucleus2G board: - One to support the USB serial device and one for the USB mass storage device. - Some testing of the USB driver was performed, but full verification is stalled for an OTG style USB cable. -
                      • -
                      • - LEDs now work correctly on the Nucleus2G LPC1768 board. -
                      • -
                      • - The uIP-based NuttX networking subsystem now supports IGMPv2 client. - IGMP (Internet Group Multicast Protocol) network "appliances" to join into multicast groups. - Outbound traffic to enter and leave multicast groups has been verified, but full verification will require a switch capable of multicast. - Issues associated with the receipt of multicast packets are likely. -
                      • -
                      @@ -1043,6 +1052,11 @@ This port has been verified using the NuttX OS test, USB serial and mass storage tests and includes a working implementation of the NuttShell (NSH).

                      +

                      + Support for on-demand paging has been developed for the EA3131. + That support would all execute of a program in SPI FLASH by paging code sections out of SPI flash as needed. + However, as of this writing, I have not had the opportunity to verify this new feature. +

                      @@ -1207,14 +1221,16 @@

                      STATUS: Some initial files for the LPC17xx family were released in NuttX 5.6, but the first - functional release for the NXP LPC1768/Nucleus2G occured with NuttX 5.7. - That initial basic release included timer interrupts and a serial console and was + functional release for the NXP LPC1768/Nucleus2G occured with NuttX 5.7 with some + additional enhancements through NuttX-5.9. + That initial, 5.6, basic release included timer interrupts and a serial console and was verified using the NuttX OS test (examples/ostest). - That release included a verified NuttShell (NSH) configuration + Configurations available include include a verified NuttShell (NSH) configuration (see the NSH User Guide). The NSH configuration support the Nucleus2G's microSD slot and additional configurations are available to exercise the the USB serial and USB mass storage devices. - However, as of this writing neight the SPI nor the USB device drivers are fully verified. + However, due to some technical reasons, neither the SPI nor the USB device drivers are fully verified. + (Although it has been reported to me that the SPI microSD is functional on other platforms).

                      Development Environments: @@ -1809,61 +1825,7 @@ Other memory:

                        -nuttx-5.8 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                        -
                        -	* configs/nucleus2g/src/up_nsh.c and up_ssp.c - Add support
                        -	  for SPI-based MMC/SD cards and integrate into the NSH example.
                        -	* arch/arm/src/lm3s/lm3s_vectors.S - Correct vectors for GPIOC & D
                        -	  interrupts.
                        -	* arch/arm/src/lpc17xx/lp17_clockconfig.c - Power was not being
                        -	  provided to GPIO module.  This is a critical bugfix!
                        -	* arch/arm/src/lpc17xx/lpc17_serial.c - Improved logic to handle
                        -	  missed TX interrupts.
                        -	* arch/arm/src/lpc17xx/lpc17_ssp.c - Fix a hard fault during SSP
                        -	  initialization.
                        -	* configs/nucleus2g/src/up_led.c - Change how LEDs are controlled
                        -	  so that they can be used both for NuttX instrumentation and
                        -	  by application software.
                        -	* include/net/uip/igmp.h and uip-igmp.h - Add header files ini
                        -	  preparation for NuttX IGMP support
                        -	* net/uip/uip_igmp*.c - Add IGMP support (untested on initial
                        -	  checkin).
                        -	* examples/igmp - Add a trivial test for IGMP (much more is needed)
                        -	* configs/nucleus2g/usbserial and usbstorage - Add USB configurations
                        -	  for testing purposes.
                        -	* arch/arm/src/common/up_internal.h, cortexm3/up_assert.c,
                        -	  */*_vectors.S - Correct compilations errors when CONFIG_ARCH_INTERRUPTSTACK
                        -	  is enabled (feature still not tested)
                        -
                        -pascal-2.0 2010-12-21 Gregory Nutt <spudmonkey@racsa.co.cr>
                        -
                        -	* Updated to use standard C99 types in stdint.h and
                        -	  stdbool.h.  This change was necessary for compatibility
                        -	  with NuttX-5.0 (any beyond).
                        -
                        -buildroot-1.8 2009-12-21 <spudmonkey@racsa.co.cr>
                        -
                        -	* configs/cortexm3-defconfig-4.3.3: Added support for NuttX NXFLAT
                        -	  tools.
                        -	* configs/arm7tdmi-defconfig-4.3.3: Update to arm7tdmi-defconfig-4.2.4.
                        -	  Also builds NuttX NXFLAT tools.
                        -	* configs/m68hc12-defconfig-4.3.3: Update to m68ch11-defconfig.
                        -	* configs/m68hc12-defconfig-3.4.6: There are problems building GCC
                        -	  4.3.3 for the hc12.
                        -	* configs/m32c-defconfig-4.2.4: Added genromfs
                        -	* configs/m32c-defconfig-4.3.3: Update to m32c-defconfig-4.2.4
                        -
                      - - - - - -
                      - Unreleased Changes -
                      - -
                        -nuttx-5.9 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                        +nuttx-5.9 2010-08-25 Gregory Nutt <spudmonkey@racsa.co.cr>
                         
                         	* examples/nsh/nsh_telnetd.c - Fix compilation errors that happen
                         	  when both DHCPC and TELNETD are enabled in the Nuttshell.
                        @@ -1902,6 +1864,36 @@ nuttx-5.9 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                         	* configs/ntosd-dm320 and arch/arm/src/dm320 - Add support for the
                         	  Neuros production OSD (changes contributed by bf.nuttx).
                         
                        +pascal-2.0 2010-12-21 Gregory Nutt <spudmonkey@racsa.co.cr>
                        +
                        +	* Updated to use standard C99 types in stdint.h and
                        +	  stdbool.h.  This change was necessary for compatibility
                        +	  with NuttX-5.0 (any beyond).
                        +
                        +buildroot-1.8 2009-12-21 <spudmonkey@racsa.co.cr>
                        +
                        +	* configs/cortexm3-defconfig-4.3.3: Added support for NuttX NXFLAT
                        +	  tools.
                        +	* configs/arm7tdmi-defconfig-4.3.3: Update to arm7tdmi-defconfig-4.2.4.
                        +	  Also builds NuttX NXFLAT tools.
                        +	* configs/m68hc12-defconfig-4.3.3: Update to m68ch11-defconfig.
                        +	* configs/m68hc12-defconfig-3.4.6: There are problems building GCC
                        +	  4.3.3 for the hc12.
                        +	* configs/m32c-defconfig-4.2.4: Added genromfs
                        +	* configs/m32c-defconfig-4.3.3: Update to m32c-defconfig-4.2.4
                        +
                      + + + + + +
                      + Unreleased Changes +
                      + +
                        +nuttx-5.10 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                        +
                         pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                         
                         buildroot-1.9 2010-xx-xx 
                        
                        From dcc05183a5d381b44680aa031a37c3bee2b9978a Mon Sep 17 00:00:00 2001
                        From: patacongo 
                        Date: Sat, 28 Aug 2010 02:44:03 +0000
                        Subject: [PATCH 0640/1518] update
                        
                        git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2892 42af7a65-404d-4744-a932-0658087f49c3
                        ---
                         Documentation/NuttX.html | 12 +++++++++++-
                         1 file changed, 11 insertions(+), 1 deletion(-)
                        
                        diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html
                        index b9b873e1e2..f7f2e499c3 100644
                        --- a/Documentation/NuttX.html
                        +++ b/Documentation/NuttX.html
                        @@ -8,7 +8,7 @@
                           
                             
                               

                        NuttX RTOS

                        -

                        Last Updated: August 25, 2010

                        +

                        Last Updated: August 27, 2010

                        @@ -1894,6 +1894,16 @@ buildroot-1.8 2009-12-21 <spudmonkey@racsa.co.cr>
                           nuttx-5.10 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                           
                          +	* configs/ea3131/locked - Create logic to support a two pass build
                          +	  process:  The first pass forces critical logic into the locked text
                          +	  region, the second pass builds the NuttX executable more-or-less as
                          +	  normal.
                          +	* Makefile, arch/arm/src/Makefile, configs/ea3131 - Add logic to
                          +	  support a two-pass final link.  This logic is only in place in
                          +	  the arch/arm/src/Makefile for now.
                          +	* arch/arm/src/lpc17xx/lpc17_internal.h - Add missing parentheses in
                          +	  macros definitions (patch submitted by Tiago Maluta).
                          +
                           pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                           
                           buildroot-1.9 2010-xx-xx 
                          
                          From 4fb60ab7bfba10fb82037ca473939ea0a9b9fed5 Mon Sep 17 00:00:00 2001
                          From: patacongo 
                          Date: Sat, 28 Aug 2010 18:06:51 +0000
                          Subject: [PATCH 0641/1518] Replace CONFIG_EXAMPLE with CONFIG_APP_DIR
                          
                          git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2893 42af7a65-404d-4744-a932-0658087f49c3
                          ---
                           Documentation/NuttxPortingGuide.html | 55 ++++++++++++++++++++++++++--
                           1 file changed, 51 insertions(+), 4 deletions(-)
                          
                          diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html
                          index e0947657b3..0df7896996 100644
                          --- a/Documentation/NuttxPortingGuide.html
                          +++ b/Documentation/NuttxPortingGuide.html
                          @@ -12,7 +12,7 @@
                                 

                          NuttX RTOS Porting Guide

                          -

                          Last Updated: August 21, 2010

                          +

                          Last Updated: August 27, 2010

                          @@ -2211,8 +2211,55 @@ extern void up_ledoff(int led);
                          • - CONFIG_EXAMPLE: identifies the subdirectory in examples - that will be used in the build. +

                            + CONFIG_APP_DIR: Ldentifies the directory that builds the application to link with NuttX. + This symbol must be assigned to the path to the application build directory relative to the NuttX top build direcory. + As an an example, there are several example applicatins in the NuttX examples/ sub-directory. + To use one of these example applications, say nsh, you would set CONFIG_APP_DIR=examples/nsh. + If you had an application directory and the NuttX directory both within another directory like this: +

                              +build
                              + |-nuttx
                              + |  |
                              + |  `- Makefile
                              + `-application
                              +    |
                              +    `- Makefile
                              +
                            + Then you would set CONFIG_APP_DIR=../application. +

                            +

                            + The application direction must contain Makefile and this make file must support the following targets: +

                              +
                            • + libapp$(LIBEXT) (usually libapp.a). + libapp.a is a static library ( an archive) that contains all of application object files. +
                            • +
                            • + clean. + Do whatever is appropriate to clean the application directories for a fresh build. +
                            • +
                            • + distclean. + Clean everthing -- auto-generated files, symbolic links etc. -- so that the directory contents are the same as the contents in your configuration management system. + This is only done when you change the NuttX configuration. +
                            • +
                            • + depend. + Make or update the application build dependencies. +
                            • +
                            +

                            +

                            + When this application is invoked it will receive the setting TOPDIR like: +

                              + $(MAKE) -C $(CONFIG_APP_DIR) TOPDIR="$(TOPDIR)" <target> +
                            +

                            +

                            + TOPDIR is the full path to the NuttX directory. + It can be used, for example, to include makefile fragments (e.g., .config or Make.defs) or to set up include file paths. +

                          • CONFIG_DEBUG: enables built-in debug options @@ -2925,7 +2972,7 @@ extern void up_ledoff(int led);
                          • CONFIG_THTTPD_URLPATTERN: If defined, then it will be used to match - and verify referrers. + and verify referrers.
                          From bc0ccccca840b70b65aa489e3ba6c107535308f4 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 29 Aug 2010 14:27:58 +0000 Subject: [PATCH 0642/1518] Two pass build for on-demand paging now works git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2896 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 18 ++++++++++-- Documentation/NuttxPortingGuide.html | 44 ++++++++++++++++++++++++---- 2 files changed, 55 insertions(+), 7 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index f7f2e499c3..80b7d5bd16 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                          NuttX RTOS

                          -

                          Last Updated: August 27, 2010

                          +

                          Last Updated: August 28, 2010

                          @@ -1903,8 +1903,22 @@ nuttx-5.10 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> the arch/arm/src/Makefile for now. * arch/arm/src/lpc17xx/lpc17_internal.h - Add missing parentheses in macros definitions (patch submitted by Tiago Maluta). + * Documents/NuttxPortingGuide.html, configs/README.txt, etc. - + Replaced CONFIG_EXAMPLE with CONFIG_APP_DIR (see documents for + desciption). This allows NuttX application code to be built + outside of the examples/ directory. -pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> + For people who have their own configurations and/or Makefiles, + you will need to make a couple of changes: + + - Replace all occurrences of CONFIG_EXAMPLE=foobar with + CONFIG_APP_DIR=examples/foobar in all of the configuration + files. + - Replace any occurrences of examples/$(CONFIG_EXAMPLE) with + $(CONFIG_APP_DIR) + - Replace any occurrences of lib$(CONFIG_EXAMPLE)$(LIBEXT) + with libapp$(LIBEXT) in your Makefiles. + - Check any other occurrences of CONFIG_EXAMPLE.pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> buildroot-1.9 2010-xx-xx
                        diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 0df7896996..2f3d8af8f7 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

                        NuttX RTOS Porting Guide

                        -

                        Last Updated: August 27, 2010

                        +

                        Last Updated: August 29, 2010

                        @@ -2178,6 +2178,7 @@ extern void up_ledoff(int led); The start address of DRAM (virtual)
                      +

                      Build Options

                      General build options:

                      @@ -2206,9 +2207,9 @@ extern void up_ledoff(int led); have been defined in the configurations Make.defs file.
                    - -

                    General OS setup

                    - +

                    + Building application code: +

                    • @@ -2261,6 +2262,38 @@ build It can be used, for example, to include makefile fragments (e.g., .config or Make.defs) or to set up include file paths.

                    • +
                    +

                    + Two-pass Build Options. + If the 2 pass build option is selected, then these options configure the make system build a extra link object. + This link object is assumed to be an incremental (relative) link object, but could be a static library (archive) + (some modification to this Makefile would be required if CONFIG_PASS1_OBJECT is an archive). + Pass 1 1ncremental (relative) link objects should be put into the processor-specific source directory + where other link objects will be created - ff the pass1 obect is an archive, it could go anywhere. +

                    +
                      +
                    • + CONFIG_BUILD_2PASS: + Enables the two pass build options. +
                    • +
                    +

                    + When the two pass build option is enabled, the following also apply: +

                    +
                      +
                    • + CONFIG_PASS1_OBJECT: The name of the first pass object. +
                    • +
                    • CONFIG_PASS1_BUILDIR: + The path, relative to the top NuttX build directory to directory that contains the Makefile to build the first pass object. + The Makefile must support the following targets: +
                        +
                      • The special target arch/$(CONFIG_ARCH)/src/$(CONFIG_PASS1_OBJECT), and
                      • +
                      • The usual depend, clean, and distclean targets.
                      • +
                      +
                    + +

                    General OS setup

                  • CONFIG_DEBUG: enables built-in debug options
                  • @@ -2434,7 +2467,8 @@ build

                  - If CONFIG_PAGING is selected, then the following also apply: + If CONFIG_PAGING is selected, then you will probabaly need CONFIG_BUILD_2PASS to correctly position + the code and the following configuration options also apply:

                  • From 099a9cf7f1e33db957291ef0dc8569339b6b2014 Mon Sep 17 00:00:00 2001 From: patacongo Date: Tue, 31 Aug 2010 02:21:12 +0000 Subject: [PATCH 0643/1518] Add paging debug instrumentation git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2899 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 80b7d5bd16..fe69cc76a6 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                    NuttX RTOS

                    -

                    Last Updated: August 28, 2010

                    +

                    Last Updated: August 30, 2010

                    @@ -1864,7 +1864,7 @@ nuttx-5.9 2010-08-25 Gregory Nutt <spudmonkey@racsa.co.cr> * configs/ntosd-dm320 and arch/arm/src/dm320 - Add support for the Neuros production OSD (changes contributed by bf.nuttx). -pascal-2.0 2010-12-21 Gregory Nutt <spudmonkey@racsa.co.cr> +pascal-2.0 2009-12-21 Gregory Nutt <spudmonkey@racsa.co.cr> * Updated to use standard C99 types in stdint.h and stdbool.h. This change was necessary for compatibility @@ -1920,7 +1920,18 @@ nuttx-5.10 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> with libapp$(LIBEXT) in your Makefiles. - Check any other occurrences of CONFIG_EXAMPLE.pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> + * arch/arm/src/lpc313x/lpc313x_spi.c - Fix compilation error when + when CONFIG_DEBUG is enabled. + +pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> + buildroot-1.9 2010-xx-xx + + * configs/arm926t-defconfig-4.3.3: update arm926t-defconfig-4.2.4 + * configs/arm926t-defconfig-nxflat: NXFLAT-only configuration for + arm926 + * toolchain/gdb/gdb.mk - Remove ncurses dependency from gdb_target target. +
                  From aeceaffcfe94bfa3ea6c7be3dcc526a88bd49801 Mon Sep 17 00:00:00 2001 From: patacongo Date: Fri, 3 Sep 2010 15:14:28 +0000 Subject: [PATCH 0644/1518] Add LM3S8962 support git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2914 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index fe69cc76a6..ceb05ec3a1 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                  NuttX RTOS

                  -

                  Last Updated: August 30, 2010

                  +

                  Last Updated: September 3, 2010

                  @@ -1922,6 +1922,10 @@ nuttx-5.10 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> * arch/arm/src/lpc313x/lpc313x_spi.c - Fix compilation error when when CONFIG_DEBUG is enabled. + * arch/arm/src/lm3s and arch/arm/include/lm3s - Support for the + lm3s8962 contributed by Larry Arnold. + * configs/lm328962-ek - Support for the TI/Stellaris EKC-LM3S8962 + board (also contributed by Larry Arnold). pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> @@ -1931,6 +1935,9 @@ buildroot-1.9 2010-xx-xx * configs/arm926t-defconfig-nxflat: NXFLAT-only configuration for arm926 * toolchain/gdb/gdb.mk - Remove ncurses dependency from gdb_target target. + * toolchain/gdb/gdb.mk - Added --disable-werror to GDB configuration line. + GDB 6.8 won't build because the tarball was released with -Werror enabled and + the build stops on the first warning.
                From 633b389fd49078f0b910045382733888fa83eed3 Mon Sep 17 00:00:00 2001 From: patacongo Date: Fri, 3 Sep 2010 17:31:58 +0000 Subject: [PATCH 0645/1518] Add EKC-LM3S8962 info git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2916 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index ceb05ec3a1..064e6a9e79 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1131,6 +1131,27 @@

                + +
                + +

                + Luminary/TI Stellaris EKC-LM3S8962 Ethernet+CAN Evaluation Kit. + This port uses the Stellaris EKC-LM3S8962 Ethernet+CAN Evalution Kit with a GNU arm-elf toolchain* + under either Linux or Cygwin. +

                +
                  +

                  + STATUS: + This port was released in NuttX 5.10. + Features are the same as with the Eagle-100 LM3S6918 described above. +

                  +
                + + + +
                +
                +
                From ba20c932d8e4bbf0ea1739a7aa756bf03095c4d0 Mon Sep 17 00:00:00 2001 From: patacongo Date: Fri, 3 Sep 2010 17:41:39 +0000 Subject: [PATCH 0646/1518] Forgot to mention contributor git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2917 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 064e6a9e79..67d628ca0b 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1135,9 +1135,10 @@

                - Luminary/TI Stellaris EKC-LM3S8962 Ethernet+CAN Evaluation Kit. + Luminary/TI LM3S8962. This port uses the Stellaris EKC-LM3S8962 Ethernet+CAN Evalution Kit with a GNU arm-elf toolchain* under either Linux or Cygwin. + Contributed by Larry Arnold.

                  From 5686ad9dbe4cf1317587eca31d3705fcb39f811a Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 5 Sep 2010 19:13:48 +0000 Subject: [PATCH 0647/1518] paging debug fixes git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2922 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 67d628ca0b..4ea3c1f50f 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                  NuttX RTOS

                  -

                  Last Updated: September 3, 2010

                  +

                  Last Updated: September 5, 2010

                  @@ -1948,6 +1948,10 @@ nuttx-5.10 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> lm3s8962 contributed by Larry Arnold. * configs/lm328962-ek - Support for the TI/Stellaris EKC-LM3S8962 board (also contributed by Larry Arnold). + * arch/arm/src/lpc313x/lpc313x_boot.c - The call to lpc313x_boardinitialized() + should not be conditioned on CONFIG_ARCH_LEDs being defined! + * arch/arm/src/lpc313x/ - APB0 and APB1 cannot lie in different + sections; they are too close together. pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From ea9632faaa263a373e0ddfbdb0cc20187789ab61 Mon Sep 17 00:00:00 2001 From: patacongo Date: Wed, 8 Sep 2010 01:53:23 +0000 Subject: [PATCH 0648/1518] Prep for 5.10 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2928 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 120 +++++++++++++++++++++++++-------------- 1 file changed, 77 insertions(+), 43 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 4ea3c1f50f..9a6087152d 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                  NuttX RTOS

                  -

                  Last Updated: September 5, 2010

                  +

                  Last Updated: September 7, 2010

                  @@ -772,58 +772,72 @@ -

                  nuttx-5.9 Release Notes: +

                  nuttx-5.10 Release Notes:

                  - This 56th release of NuttX was made on August 25, 2010 and is available for download from the + This 57th release of NuttX, Version 5.10, was made on September 7, 2010 and is available for download from the SourceForge website. The change log associated with the release is available here. Unreleased changes after this release are available in CVS. These unreleased changes are listed here. -

                  - This release is difficult to categorize; - NuttX-5.9 was really released because there were too many changes accumulating in CVS -- - a few important, some large, unverified implementations, and a couple of important bugfixes. -
                    -
                  • - By far biggest change in this release is the complete implementation of on-demand paging support. - This feature will allow you to execute large programs on a mass storage device (such as SPI FLASH) in a small RAM. - All of the core on-demand paging logic was completed - (see NuttXDemandPaging.html) - and support was implemented for the ARM-9 family. - A test configuration is in place for the NXP LPC3131. - It has been verified that this new logic does not interfere with normal fixed-page ARM9 operation, but otherwise this new on-demand paging feature is untested. -
                  • -
                  • - Add support for the CodeSourcery toolchain to the Olimex-lpc2378 port and for the Neuros OSD port. -
                  • -
                  • - The Neuros OSD port has been updated to work with the production v1.0 OSD - (previously there was NuttX support only for the development board). -
                  • -
                  • - And some miscellaneous feature enhancements as detailed in the ChangeLog. -
                  • -

                  - This includes several important bugfixes: + This release includes a combination of some new features as well as several bugfixes. + New features include:

                  • - NXP LPC17xx - Fixed a critical bug in the GPIO configuratino logic: - When attempting to set no pull-up or pull-down (floating), it would, instead, select pull-down. + TI/Luminary Stellaris LM3S9B96. + Header file changes contributed by Tiago Maluta.
                  • - TI/Luminary LM3Sxxxx - Fixed (1) a logic error in an address table lookup, - (2) GPIO port encoding the limited support to only 8 GPIO ports. + TI/Luminary Stellaris LM3S8962. + Header file changes and support for the Stellaris LM3S8962 Ethernet+CAN Evaluation Board contributed by Larry Arnold.
                  • - Corrected the lease time in the DHCPC implementation: - It was not in host byte order. + On-Demand Paging Support. + The basic logic for the On-Demand Paging feature is complete, implemented for the NXP LPC3131, and partially tested. + See On-Demand Paging Documentation. + Some additional test infrastructure will be needed in order to complete the verification. + See the EA3131 README file for details.
                  • - And several other less important bugs as documented in the ChangeLog: - Warnings, cornercase compilation problems, etc. + Two Pass Build Support. + The make system now supports a two pass build where a relocatable, partially linked object is created on the first pass and that object is linked with the NuttX libraris to produce the final executable on the second pass. + This two pass build is currently only used to support the On-Demand paging feature: + The first pass link forces critical logic into the locked text region; + the second pass builds the NuttX executable more-or-less as normal. +
                  • + CONFIG_APP_DIR. + Generalized the way in which applications are built and linked with NuttX. + The new configuration CONFIG_APP_DIR replaces CONFIG_EXAMPLE. + CONFIG_EXAMPLE used to identify the sub-directory within the NuttX examples/ directory that held the example application to be built. + That made it awkward to configure to build an application that resided outside of the NuttX examples/ directory. + CONFIG_APP_DIR is more general; + it can be used to refer to any directory containing the application to be built. +
                      +

                      + For people who have their own configurations and/or Makefiles, you will need to make a couple of changes: +

                        +
                      • + Replace all occurrences of CONFIG_EXAMPLE=foobar with CONFIG_APP_DIR=examples/foobar in all of the configuration files. +
                      • +
                      • + Replace any occurrences of examples/$(CONFIG_EXAMPLE) with $(CONFIG_APP_DIR) +
                      • +
                      • + Replace any occurrences of lib$(CONFIG_EXAMPLE)$(LIBEXT) with libapp$(LIBEXT) in your Makefiles. +
                      • +
                      • + Check any other occurrences of CONFIG_EXAMPLE. +
                      • +
                      +

                      +
                    +
                  • +
                  • + Other. + Several bugfixes are included as well as code changes to eliminate some warnings. + See the ChangeLog for details.

                  @@ -1153,6 +1167,20 @@

                  + +
                  + +

                  + Luminary/TI LM3S9B96. + Header file support was contributed by Tiago Maluta for this part. + However, no complete board support configuration is available as of this writing. +

                  + + + +
                  +
                  +
                  @@ -1244,15 +1272,15 @@ STATUS: Some initial files for the LPC17xx family were released in NuttX 5.6, but the first functional release for the NXP LPC1768/Nucleus2G occured with NuttX 5.7 with some - additional enhancements through NuttX-5.9. + additional enhancements through NuttX-5.9. That initial, 5.6, basic release included timer interrupts and a serial console and was verified using the NuttX OS test (examples/ostest). - Configurations available include include a verified NuttShell (NSH) configuration + Configurations available include include a verified NuttShell (NSH) configuration (see the NSH User Guide). The NSH configuration support the Nucleus2G's microSD slot and additional configurations are available to exercise the the USB serial and USB mass storage devices. - However, due to some technical reasons, neither the SPI nor the USB device drivers are fully verified. - (Although it has been reported to me that the SPI microSD is functional on other platforms). + However, due to some technical reasons, neither the SPI nor the USB device drivers are fully verified. + (Although it has been reported to me that the SPI microSD is functional on other platforms).

                  Development Environments: @@ -1933,14 +1961,14 @@ nuttx-5.10 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> For people who have their own configurations and/or Makefiles, you will need to make a couple of changes: - - Replace all occurrences of CONFIG_EXAMPLE=foobar with + - Replace all occurrences of CONFIG_EXAMPLE=foobar with CONFIG_APP_DIR=examples/foobar in all of the configuration files. - Replace any occurrences of examples/$(CONFIG_EXAMPLE) with $(CONFIG_APP_DIR) - Replace any occurrences of lib$(CONFIG_EXAMPLE)$(LIBEXT) with libapp$(LIBEXT) in your Makefiles. - - Check any other occurrences of CONFIG_EXAMPLE.pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> + - Check any other occurrences of CONFIG_EXAMPLE. * arch/arm/src/lpc313x/lpc313x_spi.c - Fix compilation error when when CONFIG_DEBUG is enabled. @@ -1952,6 +1980,12 @@ nuttx-5.10 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> should not be conditioned on CONFIG_ARCH_LEDs being defined! * arch/arm/src/lpc313x/ - APB0 and APB1 cannot lie in different sections; they are too close together. + * arch/arm/src/lpc313x/lpc13x_boot.c - Resetting all of the clocking + had a side effect of wiping out the first 6 words of memory where the + interrupt vectors are located (and also not resetting the fractional + dividers). This is not usually noticeable because the IRQ vectors + are after this point, but really causes problems if you want to handle + data and prefectch aborts which are within this zeroed region. pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From e307606fbf8fb320a4cb3edb50ac853b744a873c Mon Sep 17 00:00:00 2001 From: patacongo Date: Wed, 8 Sep 2010 02:09:49 +0000 Subject: [PATCH 0649/1518] Forgot to move some text git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2929 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 99 +++++++++++++--------------------------- 1 file changed, 31 insertions(+), 68 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 9a6087152d..75653312ac 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1875,74 +1875,7 @@ Other memory:

                    -nuttx-5.9 2010-08-25 Gregory Nutt <spudmonkey@racsa.co.cr>
                    -
                    -	* examples/nsh/nsh_telnetd.c - Fix compilation errors that happen
                    -	  when both DHCPC and TELNETD are enabled in the Nuttshell.
                    -	* graphics/nxglib/fb/nxglib_moverectangle.c - Fix a logic error
                    -	  that caused an uninitialized variable warning.  I still don't 
                    -	  have a test to prove that the changes are correct.
                    -	* configs/olimex-lpc2378 - Add support for the CodeSourcery toolchain
                    -	  under Linux (contributed by Alan Carvalho de Assis).
                    -	* arch/arm/src/lpc17xx/lpc17_gpio.c - Fix an important GPIO configuration
                    -	  bug:  When attempting to set no pull-up or pull-down (floating),
                    -	  it would, instead, select pull-down.
                    -	* arch/arm/src/lm3s/lm3s_gpioirq.c - Fix warning for returning a value
                    -	  from functions returning void (contributed by Tiago Maluta).
                    -	* netutils/dhcpc/dhcpc.c -- lease_time was not in host order
                    -	* examples/uip/main.c - if DHCPC is selected, this example now shows
                    -	  the assigned IP address.
                    -	* arch/arm/src/lm3s and arch/arm/include/lm3s - Definitions for the
                    -	  TI LM3S9B96 contributed by Tiago Maluta.
                    -	* arch/arm/src/lm3s/lm3s_gioirq.c - Fix a logic error in the address
                    -	  table lookup.
                    -	* arch/arm/src/lm3s/lm3s_gioirq.c - Also needs to enable the global
                    -	  GPIO interrupts.
                    -	* arch/arm/src/lm3s/lm3s_internal.h and lm3s_gpio.c - Fixed the encoding
                    -	  of GPIO port number that limited support for GPIO ports to 8
                    -	* sched/pg_*.c and *.c and include/nuttx/page.h - Implemented the
                    -	  common, core logic for on-demand paging. See
                    -	  http://www.nuttx.org/NuttXDemandPaging.html for details.
                    -	* drivers/usbdev/usbdev_serial.c - Correct compilation errors that
                    -	  occur if CONFIG_USBDEV_DUALSPEED is selected.
                    -	* configs/ea3131/pgnsh - Add an NSH configuration with on-demand paging
                    -	  enabled.  This is not expected to be a functionality configuration (at
                    -	  least not yet); it was created in order to debug the on-demand paging
                    -	  feature.
                    -	* configs/ntosd-dm320/*/Make.defs - Codesourcery and devkitARM toolchains
                    -	  now supported for the Neuros OSD.
                    -	* configs/ntosd-dm320 and arch/arm/src/dm320 - Add support for the
                    -	  Neuros production OSD (changes contributed by bf.nuttx).
                    -
                    -pascal-2.0 2009-12-21 Gregory Nutt <spudmonkey@racsa.co.cr>
                    -
                    -	* Updated to use standard C99 types in stdint.h and
                    -	  stdbool.h.  This change was necessary for compatibility
                    -	  with NuttX-5.0 (any beyond).
                    -
                    -buildroot-1.8 2009-12-21 <spudmonkey@racsa.co.cr>
                    -
                    -	* configs/cortexm3-defconfig-4.3.3: Added support for NuttX NXFLAT
                    -	  tools.
                    -	* configs/arm7tdmi-defconfig-4.3.3: Update to arm7tdmi-defconfig-4.2.4.
                    -	  Also builds NuttX NXFLAT tools.
                    -	* configs/m68hc12-defconfig-4.3.3: Update to m68ch11-defconfig.
                    -	* configs/m68hc12-defconfig-3.4.6: There are problems building GCC
                    -	  4.3.3 for the hc12.
                    -	* configs/m32c-defconfig-4.2.4: Added genromfs
                    -	* configs/m32c-defconfig-4.3.3: Update to m32c-defconfig-4.2.4
                    -
                  - - - - - -
                  - Unreleased Changes -
                  - -
                    -nuttx-5.10 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                    +nuttx-5.10 2010-09-07 Gregory Nutt <spudmonkey@racsa.co.cr>
                     
                     	* configs/ea3131/locked - Create logic to support a two pass build
                     	  process:  The first pass forces critical logic into the locked text
                    @@ -1987,6 +1920,36 @@ nuttx-5.10 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                     	  are after this point, but really causes problems if you want to handle
                     	  data and prefectch aborts which are within this zeroed region.
                     
                    +pascal-2.0 2009-12-21 Gregory Nutt <spudmonkey@racsa.co.cr>
                    +
                    +	* Updated to use standard C99 types in stdint.h and
                    +	  stdbool.h.  This change was necessary for compatibility
                    +	  with NuttX-5.0 (any beyond).
                    +
                    +buildroot-1.8 2009-12-21 <spudmonkey@racsa.co.cr>
                    +
                    +	* configs/cortexm3-defconfig-4.3.3: Added support for NuttX NXFLAT
                    +	  tools.
                    +	* configs/arm7tdmi-defconfig-4.3.3: Update to arm7tdmi-defconfig-4.2.4.
                    +	  Also builds NuttX NXFLAT tools.
                    +	* configs/m68hc12-defconfig-4.3.3: Update to m68ch11-defconfig.
                    +	* configs/m68hc12-defconfig-3.4.6: There are problems building GCC
                    +	  4.3.3 for the hc12.
                    +	* configs/m32c-defconfig-4.2.4: Added genromfs
                    +	* configs/m32c-defconfig-4.3.3: Update to m32c-defconfig-4.2.4
                    +
                  + + + + + +
                  + Unreleased Changes +
                  + +
                    +nuttx-5.11 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                    +
                     pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                     
                     buildroot-1.9 2010-xx-xx 
                    
                    From 61753a1b78cf46bee794d5922c21463d94ca7776 Mon Sep 17 00:00:00 2001
                    From: patacongo 
                    Date: Wed, 8 Sep 2010 17:38:44 +0000
                    Subject: [PATCH 0650/1518] Implement SD-based paging for EA3131
                    
                    git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2931 42af7a65-404d-4744-a932-0658087f49c3
                    ---
                     Documentation/NuttX.html             | 10 +++++++++-
                     Documentation/NuttxPortingGuide.html |  8 +++++++-
                     2 files changed, 16 insertions(+), 2 deletions(-)
                    
                    diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html
                    index 75653312ac..427f08687b 100644
                    --- a/Documentation/NuttX.html
                    +++ b/Documentation/NuttX.html
                    @@ -8,7 +8,7 @@
                       
                         
                           

                    NuttX RTOS

                    -

                    Last Updated: September 7, 2010

                    +

                    Last Updated: September 8, 2010

                    @@ -1950,6 +1950,14 @@ buildroot-1.8 2009-12-21 <spudmonkey@racsa.co.cr>
                       nuttx-5.11 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                       
                      +	* configs/ea3131/src/up_fillpage.c - Added new configuration item
                      +	  CONFIG_PAGING_BINPATH.  If CONFIG_PAGING_BINPATH is defined, then it
                      +	  is the full path to a file on a mounted file system that contains
                      +	  a binary image of the NuttX executable.  Pages will be filled by
                      +	  reading from offsets into this file that correspond to virtual
                      +	  fault addresses.  up_fillpage.c implements logic to perform page
                      +	  files using the CONFIG_PAGING_BINPATH file.
                      +
                       pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                       
                       buildroot-1.9 2010-xx-xx 
                      diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html
                      index 2f3d8af8f7..2237afa01f 100644
                      --- a/Documentation/NuttxPortingGuide.html
                      +++ b/Documentation/NuttxPortingGuide.html
                      @@ -12,7 +12,7 @@
                             

                      NuttX RTOS Porting Guide

                      -

                      Last Updated: August 29, 2010

                      +

                      Last Updated: September 8, 2010

                      @@ -2294,6 +2294,7 @@ build

                    General OS setup

                    +
                    • CONFIG_DEBUG: enables built-in debug options
                    • @@ -2569,6 +2570,11 @@ build CONFIG_PAGING_VECL2VADDR: This is the virtual address of the L2 page table entry to use for the vector mapping. +
                    • + CONFIG_PAGING_BINPATH: + If CONFIG_PAGING_BINPATH is defined, then it is the full path to a file on a mounted file system that contains a binary image of the NuttX executable. + Pages will be filled by reading from offsets into this file that correspond to virtual fault addresses. +

                    The following can be used to disable categories of APIs supported From 03f38ddb79b67fa070896e96742895934d5b40fd Mon Sep 17 00:00:00 2001 From: patacongo Date: Wed, 8 Sep 2010 22:06:38 +0000 Subject: [PATCH 0651/1518] Add some SD file paging logic git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2932 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 2237afa01f..5272846bcc 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -2575,6 +2575,24 @@ build If CONFIG_PAGING_BINPATH is defined, then it is the full path to a file on a mounted file system that contains a binary image of the NuttX executable. Pages will be filled by reading from offsets into this file that correspond to virtual fault addresses. +

                  • + CONFIG_PAGING_MOUNTPT: + If CONFIG_PAGING_BINPATH is defined, additional options may be provided to control the initialization of underlying devices. + CONFIG_PAGING_MOUNTPT identifies the mountpoint to be used if a device is mounted. +
                  • +
                  • + CONFIG_PAGING_MINOR: + Some mount operations require a "minor" number to identify the specific device instance. + Default: 0 +
                  • +
                  • + CONFIG_PAGING_SDSLOT: + If CONFIG_PAGING_BINPATH is defined, additional options may be provided to control the initialization of underlying devices. + CONFIG_PAGING_SDSLOT identifies the slot number of the SD device to initialize. + This must be undefined if SD is not being used. + This should be defined to be zero for the typical device that has only a single slot (See CONFIG_MMCSD_NSLOTS). + If defined, CONFIG_PAGING_SDSLOT will instruct certain board-specific logic to initialize the media in this SD slot. +

                  The following can be used to disable categories of APIs supported From 8a1b11da8babef48ad243136a66691fd509baa29 Mon Sep 17 00:00:00 2001 From: patacongo Date: Fri, 10 Sep 2010 02:34:19 +0000 Subject: [PATCH 0652/1518] Fix race condition when semaphore wait is interrupted by a signl git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2935 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 427f08687b..403d0d6977 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                  NuttX RTOS

                  -

                  Last Updated: September 8, 2010

                  +

                  Last Updated: September 9, 2010

                  @@ -1262,10 +1262,19 @@

                  NXP LPC1768. - This port uses the Nucleus 2G board from 2G Engineering - featuring the NXP LPC1768 MCU. - This port uses a GNU arm-elf or arm-eabi toolchain* under either Linux or Cygwin (with native Windows GNU - tools or Cygwin-based GNU tools). + Configurations are available for two boards: +

                    +
                  • + The Nucleus 2G board from 2G Engineering, and +
                  • +
                  • + The mbed board from mbed.org (Contributed by Dave Marples). +
                  • +
                  +

                  +

                  + Both boards feature the NXP LPC1768 MCU and a GNU arm-elf or arm-eabi toolchain* under + either Linux or Cygwin (with native Windows GNU tools or Cygwin-based GNU tools).

                    @@ -1282,6 +1291,9 @@ However, due to some technical reasons, neither the SPI nor the USB device drivers are fully verified. (Although it has been reported to me that the SPI microSD is functional on other platforms).

                    +

                    + Support for the mbed board was contributed by Dave Marples and released in NuttX-5.11. +

                    Development Environments: 1) Linux with native Linux GNU toolchain, 2) Cygwin with Cygwin GNU toolchain, or 3) Cygwin @@ -1957,6 +1969,11 @@ nuttx-5.11 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> reading from offsets into this file that correspond to virtual fault addresses. up_fillpage.c implements logic to perform page files using the CONFIG_PAGING_BINPATH file. + * configs/mbed - Add configuration to support the mbed.org LPC1768 + board (Contributed by Dave Marples). + * sched/sem_wait.c and sem_waitirq.c - Eliminate a race condition + that can occur when a semaphore wait is interrupt by a signal. + (see email thread: http://tech.groups.yahoo.com/group/nuttx/message/530) pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From 18d07b7ddf10e40bf3d6f4e99402356ea8ab2f7d Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 11 Sep 2010 01:58:26 +0000 Subject: [PATCH 0653/1518] Add M25Px as paging source git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2937 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 5272846bcc..ed94849e79 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

                    NuttX RTOS Porting Guide

                    -

                    Last Updated: September 8, 2010

                    +

                    Last Updated: September 10, 2010

                    @@ -2593,6 +2593,21 @@ build This should be defined to be zero for the typical device that has only a single slot (See CONFIG_MMCSD_NSLOTS). If defined, CONFIG_PAGING_SDSLOT will instruct certain board-specific logic to initialize the media in this SD slot. +
                  • + CONFIG_PAGING_M25PX: + Use the m25px.c FLASH driver. + If this is selected, then the MTD interface to the MP25x device will be used to support paging. +
                  • +
                  • + CONFIG_PAGING_M25PX_BINOFFSET: + If CONFIG_PAGING_M25PX is defined then CONFIG_PAGING_M25PX_BINOFFSET will be used to specify the offset in bytes into the FLASH device where the NuttX binary image is located. + Default: 0 +
                  • +
                  • + CONFIG_PAGING_M25PX_SPIPORT: + If CONFIG_PAGING_M25PX is defined and the device has multiple SPI busses (ports), then this configuration should be set to indicate which SPI port the M25Px device is connected. + Default: 0 +

                  The following can be used to disable categories of APIs supported From 8e23ff0628904f3bd5da06d4846b891337bff3e0 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 11 Sep 2010 03:24:26 +0000 Subject: [PATCH 0654/1518] Back out M25P support -- its not ready yet git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2939 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index ed94849e79..63b2dc864d 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -2596,7 +2596,7 @@ build

                • CONFIG_PAGING_M25PX: Use the m25px.c FLASH driver. - If this is selected, then the MTD interface to the MP25x device will be used to support paging. + If this is selected, then the MTD interface to the M25Px device will be used to support paging.
                • CONFIG_PAGING_M25PX_BINOFFSET: From 1d62041d04e0f42c1ca627f8d501ef05ea91d3a1 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 12 Sep 2010 02:22:13 +0000 Subject: [PATCH 0655/1518] Add driver for Atmel AT45DB161 FLASH git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2940 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 +++- Documentation/NuttxPortingGuide.html | 17 +++++++++++------ 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 403d0d6977..afe46fc193 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                  NuttX RTOS

                  -

                  Last Updated: September 9, 2010

                  +

                  Last Updated: September 11, 2010

                  @@ -1974,6 +1974,8 @@ nuttx-5.11 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> * sched/sem_wait.c and sem_waitirq.c - Eliminate a race condition that can occur when a semaphore wait is interrupt by a signal. (see email thread: http://tech.groups.yahoo.com/group/nuttx/message/530) + * drivers/mtd/at45db.c - Add a driver for the Atmel AT45DB161D 4Mbit + SPI FLASH part (untested on initial check-in). pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 63b2dc864d..7666a29dfd 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

                  NuttX RTOS Porting Guide

                  -

                  Last Updated: September 10, 2010

                  +

                  Last Updated: September 11, 2010

                  @@ -2596,16 +2596,21 @@ build
                • CONFIG_PAGING_M25PX: Use the m25px.c FLASH driver. - If this is selected, then the MTD interface to the M25Px device will be used to support paging. + If this is selected, then the MTD interface to the M25Px device will be used to support paging.
                • - CONFIG_PAGING_M25PX_BINOFFSET: - If CONFIG_PAGING_M25PX is defined then CONFIG_PAGING_M25PX_BINOFFSET will be used to specify the offset in bytes into the FLASH device where the NuttX binary image is located. + CONFIG_PAGING_AT45DB: + Use the at45db.c FLASH driver. + If this is selected, then the MTD interface to the Atmel AT45DB device will be used to support paging. +
                • +
                • + CONFIG_PAGING_BINOFFSET: + If CONFIG_PAGING_M25PX or CONFIG_PAGING_AT45DB is defined then CONFIG_PAGING_BINOFFSET will be used to specify the offset in bytes into the FLASH device where the NuttX binary image is located. Default: 0
                • - CONFIG_PAGING_M25PX_SPIPORT: - If CONFIG_PAGING_M25PX is defined and the device has multiple SPI busses (ports), then this configuration should be set to indicate which SPI port the M25Px device is connected. + CONFIG_PAGING_SPIPORT: + If CONFIG_PAGING_M25PX or CONFIG_PAGING_AT45DB is defined and the device has multiple SPI busses (ports), then this configuration should be set to indicate which SPI port the device is connected. Default: 0
                From 01f6b684de551be5b1a60b9aa8f04fad86cb47ec Mon Sep 17 00:00:00 2001 From: patacongo Date: Wed, 29 Sep 2010 02:07:39 +0000 Subject: [PATCH 0656/1518] Fix bug in prio inheritance test git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2951 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index afe46fc193..69a99ddc5a 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                NuttX RTOS

                -

                Last Updated: September 11, 2010

                +

                Last Updated: September 28, 2010

                @@ -1976,6 +1976,8 @@ nuttx-5.11 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> (see email thread: http://tech.groups.yahoo.com/group/nuttx/message/530) * drivers/mtd/at45db.c - Add a driver for the Atmel AT45DB161D 4Mbit SPI FLASH part (untested on initial check-in). + * examples/ostest/prioinherit.c - Need to reinitialize globals if + test is ran repeatedly in a loop. pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From 6665f7fda834f145632cd5deee922e4d06937342 Mon Sep 17 00:00:00 2001 From: patacongo Date: Wed, 29 Sep 2010 02:19:29 +0000 Subject: [PATCH 0657/1518] corrections to the lm3s8962 port git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2952 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 69a99ddc5a..b90591958b 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1976,6 +1976,9 @@ nuttx-5.11 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> (see email thread: http://tech.groups.yahoo.com/group/nuttx/message/530) * drivers/mtd/at45db.c - Add a driver for the Atmel AT45DB161D 4Mbit SPI FLASH part (untested on initial check-in). + * arch/arm/src/lm3s and arch/arm/include/lm3s - Corrections for the + lm3s8962 port contributed by Larry Arnold. That port is purported + to work correctly with these changes in place. * examples/ostest/prioinherit.c - Need to reinitialize globals if test is ran repeatedly in a loop. From 53d138c1942df11dd3bca9d577e14c105723f3db Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 2 Oct 2010 00:55:32 +0000 Subject: [PATCH 0658/1518] Prep for 5.11 Release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2960 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 159 +++++++++++---------------------------- 1 file changed, 42 insertions(+), 117 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index b90591958b..89170b1b39 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                NuttX RTOS

                -

                Last Updated: September 28, 2010

                +

                Last Updated: October 1, 2010

                @@ -772,72 +772,39 @@ -

                nuttx-5.10 Release Notes: +

                nuttx-5.11 Release Notes:

                - This 57th release of NuttX, Version 5.10, was made on September 7, 2010 and is available for download from the + This 58th release of NuttX, Version 5.11, was made on October 1, 2010 and is available for download from the SourceForge website. The change log associated with the release is available here. Unreleased changes after this release are available in CVS. These unreleased changes are listed here.

                - This release includes a combination of some new features as well as several bugfixes. - New features include: + This is primarily a bugfix release and includes some important corrections to the code:

                • - TI/Luminary Stellaris LM3S9B96. - Header file changes contributed by Tiago Maluta. + One very important bug fixes a race condition that can occur using + semaphores that can be awakened by signals. Under this particular + race condition, a task could hang waiting for a semaphore.
                • - TI/Luminary Stellaris LM3S8962. - Header file changes and support for the Stellaris LM3S8962 Ethernet+CAN Evaluation Board contributed by Larry Arnold. + Corrections to lm3s8962 port contributed by Larry Arnold. That + port is purported to work correctly with these changes in place. +
                • +
                +

                +

                + Plus less critical bugfixes as detailed in the ChangeLog. New features + include: +

                  +
                • + * A new configuration to support the mbed.org LPC1768 board (Contributed + by Dave Marples), and
                • - On-Demand Paging Support. - The basic logic for the On-Demand Paging feature is complete, implemented for the NXP LPC3131, and partially tested. - See On-Demand Paging Documentation. - Some additional test infrastructure will be needed in order to complete the verification. - See the EA3131 README file for details. -
                • -
                • - Two Pass Build Support. - The make system now supports a two pass build where a relocatable, partially linked object is created on the first pass and that object is linked with the NuttX libraris to produce the final executable on the second pass. - This two pass build is currently only used to support the On-Demand paging feature: - The first pass link forces critical logic into the locked text region; - the second pass builds the NuttX executable more-or-less as normal. -
                • - CONFIG_APP_DIR. - Generalized the way in which applications are built and linked with NuttX. - The new configuration CONFIG_APP_DIR replaces CONFIG_EXAMPLE. - CONFIG_EXAMPLE used to identify the sub-directory within the NuttX examples/ directory that held the example application to be built. - That made it awkward to configure to build an application that resided outside of the NuttX examples/ directory. - CONFIG_APP_DIR is more general; - it can be used to refer to any directory containing the application to be built. -
                    -

                    - For people who have their own configurations and/or Makefiles, you will need to make a couple of changes: -

                      -
                    • - Replace all occurrences of CONFIG_EXAMPLE=foobar with CONFIG_APP_DIR=examples/foobar in all of the configuration files. -
                    • -
                    • - Replace any occurrences of examples/$(CONFIG_EXAMPLE) with $(CONFIG_APP_DIR) -
                    • -
                    • - Replace any occurrences of lib$(CONFIG_EXAMPLE)$(LIBEXT) with libapp$(LIBEXT) in your Makefiles. -
                    • -
                    • - Check any other occurrences of CONFIG_EXAMPLE. -
                    • -
                    -

                    -
                  -
                • -
                • - Other. - Several bugfixes are included as well as code changes to eliminate some warnings. - See the ChangeLog for details. + * A driver for the Atmel AT45DB161D 4Mbit SPI FLASH part.

                @@ -1887,50 +1854,28 @@ Other memory:
                  -nuttx-5.10 2010-09-07 Gregory Nutt <spudmonkey@racsa.co.cr>
                  +nuttx-5.11 2010-10-01 Gregory Nutt <spudmonkey@racsa.co.cr>
                   
                  -	* configs/ea3131/locked - Create logic to support a two pass build
                  -	  process:  The first pass forces critical logic into the locked text
                  -	  region, the second pass builds the NuttX executable more-or-less as
                  -	  normal.
                  -	* Makefile, arch/arm/src/Makefile, configs/ea3131 - Add logic to
                  -	  support a two-pass final link.  This logic is only in place in
                  -	  the arch/arm/src/Makefile for now.
                  -	* arch/arm/src/lpc17xx/lpc17_internal.h - Add missing parentheses in
                  -	  macros definitions (patch submitted by Tiago Maluta).
                  -	* Documents/NuttxPortingGuide.html, configs/README.txt, etc. -
                  -	  Replaced CONFIG_EXAMPLE with CONFIG_APP_DIR (see documents for
                  -	  desciption).  This allows NuttX application code to be built
                  -	  outside of the examples/ directory.
                  -
                  -	  For people who have their own configurations and/or Makefiles,
                  -	  you will need to make a couple of changes:
                  -
                  -      - Replace all occurrences of CONFIG_EXAMPLE=foobar with
                  -	    CONFIG_APP_DIR=examples/foobar in all of the configuration
                  -	    files.
                  -	  - Replace any occurrences of examples/$(CONFIG_EXAMPLE) with
                  -	    $(CONFIG_APP_DIR)
                  -	  - Replace any occurrences of lib$(CONFIG_EXAMPLE)$(LIBEXT)
                  -	    with libapp$(LIBEXT) in your Makefiles.
                  -	  - Check any other occurrences of CONFIG_EXAMPLE.
                  -
                  -	* arch/arm/src/lpc313x/lpc313x_spi.c - Fix compilation error when
                  -	  when CONFIG_DEBUG is enabled.
                  -	* arch/arm/src/lm3s and arch/arm/include/lm3s - Support for the
                  -	  lm3s8962 contributed by Larry Arnold.
                  -	* configs/lm328962-ek - Support for the TI/Stellaris EKC-LM3S8962
                  -	  board (also contributed by Larry Arnold).
                  -	* arch/arm/src/lpc313x/lpc313x_boot.c - The call to lpc313x_boardinitialized()
                  -	  should not be conditioned on CONFIG_ARCH_LEDs being defined!
                  -	* arch/arm/src/lpc313x/ - APB0 and APB1 cannot lie in different
                  -	  sections; they are too close together.
                  -	* arch/arm/src/lpc313x/lpc13x_boot.c - Resetting all of the clocking
                  -	  had a side effect of wiping out the first 6 words of memory where the
                  -	  interrupt vectors are located (and also not resetting the fractional
                  -	  dividers).  This is not usually noticeable because the IRQ vectors
                  -	  are after this point, but really causes problems if you want to handle
                  -	  data and prefectch aborts which are within this zeroed region.
                  +	* configs/ea3131/src/up_fillpage.c - Added new configuration item
                  +	  CONFIG_PAGING_BINPATH.  If CONFIG_PAGING_BINPATH is defined, then it
                  +	  is the full path to a file on a mounted file system that contains
                  +	  a binary image of the NuttX executable.  Pages will be filled by
                  +	  reading from offsets into this file that correspond to virtual
                  +	  fault addresses.  up_fillpage.c implements logic to perform page
                  +	  files using the CONFIG_PAGING_BINPATH file.
                  +	* configs/mbed - Add configuration to support the mbed.org LPC1768
                  +	  board (Contributed by Dave Marples).
                  +	* sched/sem_wait.c and sem_waitirq.c - Eliminate a race condition
                  +	  that can occur when a semaphore wait is interrupt by a signal.
                  +	  (see email thread: http://tech.groups.yahoo.com/group/nuttx/message/530)
                  +	* drivers/mtd/at45db.c - Add a driver for the Atmel AT45DB161D 4Mbit
                  +	  SPI FLASH part (untested on initial check-in).
                  +	* arch/arm/src/lm3s and arch/arm/include/lm3s - Corrections for the
                  +	  lm3s8962 port contributed by Larry Arnold.  That port is purported
                  +	  to work correctly with these changes in place.
                  +	* examples/ostest/prioinherit.c - Need to reinitialize globals if
                  +	  test is ran repeatedly in a loop.
                  +	* configs/ez80f910200zco - Updated to used ZDS-II 4.11.1
                   
                   pascal-2.0 2009-12-21 Gregory Nutt <spudmonkey@racsa.co.cr>
                   
                  @@ -1960,27 +1905,7 @@ buildroot-1.8 2009-12-21 <spudmonkey@racsa.co.cr>
                   
                   
                   
                    -nuttx-5.11 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                    -
                    -	* configs/ea3131/src/up_fillpage.c - Added new configuration item
                    -	  CONFIG_PAGING_BINPATH.  If CONFIG_PAGING_BINPATH is defined, then it
                    -	  is the full path to a file on a mounted file system that contains
                    -	  a binary image of the NuttX executable.  Pages will be filled by
                    -	  reading from offsets into this file that correspond to virtual
                    -	  fault addresses.  up_fillpage.c implements logic to perform page
                    -	  files using the CONFIG_PAGING_BINPATH file.
                    -	* configs/mbed - Add configuration to support the mbed.org LPC1768
                    -	  board (Contributed by Dave Marples).
                    -	* sched/sem_wait.c and sem_waitirq.c - Eliminate a race condition
                    -	  that can occur when a semaphore wait is interrupt by a signal.
                    -	  (see email thread: http://tech.groups.yahoo.com/group/nuttx/message/530)
                    -	* drivers/mtd/at45db.c - Add a driver for the Atmel AT45DB161D 4Mbit
                    -	  SPI FLASH part (untested on initial check-in).
                    -	* arch/arm/src/lm3s and arch/arm/include/lm3s - Corrections for the
                    -	  lm3s8962 port contributed by Larry Arnold.  That port is purported
                    -	  to work correctly with these changes in place.
                    -	* examples/ostest/prioinherit.c - Need to reinitialize globals if
                    -	  test is ran repeatedly in a loop.
                    +nuttx-5.12 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                     
                     pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                     
                    
                    From f628645612bdf7a2c59d72c3eb0e54ac1b03daca Mon Sep 17 00:00:00 2001
                    From: patacongo 
                    Date: Fri, 8 Oct 2010 12:33:31 +0000
                    Subject: [PATCH 0659/1518] Add Cygwin build note
                    
                    git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2979 42af7a65-404d-4744-a932-0658087f49c3
                    ---
                     Documentation/README.html | 6 +++++-
                     1 file changed, 5 insertions(+), 1 deletion(-)
                    
                    diff --git a/Documentation/README.html b/Documentation/README.html
                    index 8b95f247ac..f52fb4a3c9 100755
                    --- a/Documentation/README.html
                    +++ b/Documentation/README.html
                    @@ -9,7 +9,7 @@
                       
                         
                           

                    NuttX README Files

                    -

                    Last Updated: May 8, 2010

                    +

                    Last Updated: October 8, 2010

                    @@ -43,6 +43,8 @@ | | `- z80/README.txt | `- README.txt |- configs/ + | |- avr32dev1/ + | | `- README.txt | |- c5471evm/ | | |- include/README.txt | | |- src/README.txt @@ -73,6 +75,8 @@ | |- m68332evb/ | | |- include/README.txt | | `- src/README.txt + | |- mbed/ + | | `- README.txt | |- mcu123-lpc214x/ | | |- include/README.txt | | |- src/README.txt From 3377bff74557613dd15face72f522965bcaf86c7 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 9 Oct 2010 20:58:50 +0000 Subject: [PATCH 0660/1518] Add clock initialization logic git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2985 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 89170b1b39..9f1fd03aae 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                    NuttX RTOS

                    -

                    Last Updated: October 1, 2010

                    +

                    Last Updated: October 9, 2010

                    @@ -1907,6 +1907,16 @@ buildroot-1.8 2009-12-21 <spudmonkey@racsa.co.cr>
                       nuttx-5.12 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                       
                      +	* arch/avr - Add a place to support AVR family processors.
                      +	* arch/avr/include/avr32 and arch/avr/src/avr32 - Add support for AVR32
                      +	  (all of the AVR32 is a work in progress).
                      +	* arch/avr/include/at91uc3 and arch/avr/src/at91uc3 - Add support
                      +	  for the AT91 UC3A/B family of AVR32 MCUs.
                      +	* confgs/avr32dev1 - Add support for the Atmel AVR32DEV1 board featuring
                      +	  the AT91UC3B0256 MCU.  This board is produced by www.mcuzone.com.
                      +	* include/stdlib.h, lib/Makefile and lib/lib_abs.c - Add abs().
                      +
                      +
                       pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                       
                       buildroot-1.9 2010-xx-xx 
                      
                      From 08743ccf9ad46eacd2ddd47a1f4bfed9e2880bbb Mon Sep 17 00:00:00 2001
                      From: patacongo 
                      Date: Sat, 9 Oct 2010 21:12:49 +0000
                      Subject: [PATCH 0661/1518] Add labs(), llabs(), and imaxabs()
                      
                      git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2986 42af7a65-404d-4744-a932-0658087f49c3
                      ---
                       Documentation/NuttX.html | 5 +++--
                       1 file changed, 3 insertions(+), 2 deletions(-)
                      
                      diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html
                      index 9f1fd03aae..99d372ebbe 100644
                      --- a/Documentation/NuttX.html
                      +++ b/Documentation/NuttX.html
                      @@ -1914,8 +1914,9 @@ nuttx-5.12 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                       	  for the AT91 UC3A/B family of AVR32 MCUs.
                       	* confgs/avr32dev1 - Add support for the Atmel AVR32DEV1 board featuring
                       	  the AT91UC3B0256 MCU.  This board is produced by www.mcuzone.com.
                      -	* include/stdlib.h, lib/Makefile and lib/lib_abs.c - Add abs().
                      -
                      +	* include/stdlib.h, lib/Makefile, lib/lib_abs.c, lib/lib_labs.c,
                      +	  lib_labs.c, lib_llabs.c, lib_imaxabs.c - Add abs(), labs(), llabs(), and
                      +	  imaxabs().
                       
                       pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                       
                      
                      From 87c6359f30daa46cab61794f5edfffd65328e9b9 Mon Sep 17 00:00:00 2001
                      From: patacongo 
                      Date: Mon, 18 Oct 2010 15:41:36 +0000
                      Subject: [PATCH 0662/1518] update
                      
                      git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3037 42af7a65-404d-4744-a932-0658087f49c3
                      ---
                       Documentation/NuttX.html | 28 +++++++++++++++++++++++++++-
                       1 file changed, 27 insertions(+), 1 deletion(-)
                      
                      diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html
                      index 99d372ebbe..dd767ff36f 100644
                      --- a/Documentation/NuttX.html
                      +++ b/Documentation/NuttX.html
                      @@ -8,7 +8,7 @@
                         
                           
                             

                      NuttX RTOS

                      -

                      Last Updated: October 9, 2010

                      +

                      Last Updated: October 18, 2010

                      @@ -1321,6 +1321,32 @@
                    + + + + Atmel AVR32 + + + +
                    + +

                    + AV32DEV1. + This port uses the www.mcuzon.com AVRDEV1 board based on the Atmel AT91UC3B0256 MCU. + This port requires a special GNU avr32 toolchain available from atmel.com website. + This is a windows native toolchain and so can be used only under Cygwin on Windows. +

                    +
                      +

                      + STATUS: + This port is currently under development. + All code is complete for the basic NuttX port including header files for all AT91UC3* peripherals. + Testing of this port is underway now. + It is hoped that the first, released AVR32 port will appear in version 5.12 of NuttX, probably near the beginning of September, 2010. +

                      +
                    + + From e09c062c88f969163a74ab67be953e5476a1f982 Mon Sep 17 00:00:00 2001 From: patacongo Date: Wed, 27 Oct 2010 01:46:08 +0000 Subject: [PATCH 0663/1518] Fix a signal trampoline bug git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3053 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 94 +++++++++++++++++++--------------------- 1 file changed, 45 insertions(+), 49 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index dd767ff36f..fe9110565c 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                    NuttX RTOS

                    -

                    Last Updated: October 18, 2010

                    +

                    Last Updated: October 26, 2010

                    @@ -772,10 +772,10 @@ -

                    nuttx-5.11 Release Notes: +

                    nuttx-5.12 Release Notes:

                    - This 58th release of NuttX, Version 5.11, was made on October 1, 2010 and is available for download from the + This 59th release of NuttX, Version 5.12, was made on October 26, 2010 and is available for download from the SourceForge website. The change log associated with the release is available here. Unreleased changes after this release are available in CVS. @@ -785,26 +785,29 @@ This is primarily a bugfix release and includes some important corrections to the code:

                    • - One very important bug fixes a race condition that can occur using - semaphores that can be awakened by signals. Under this particular - race condition, a task could hang waiting for a semaphore. -
                    • -
                    • - Corrections to lm3s8962 port contributed by Larry Arnold. That - port is purported to work correctly with these changes in place. + Fixed an important error in the signal trampoline logic. Essentially, + interrupts are re-enabled while the signal handler executes, but the + logic to re-disable the interrupts before returning from the signal + handler trampoline was missing. Under certain circumstances, this + can cause stack corruption. This was discovered by David Hewson on + an ARM9 platform, but since the code has been leveraged, the bug has + been propogated from ARM to Cortex-M3, AVR32, M16C, SH1, ZNEO, eZ80, + Z8, and Z80 -- almost every architecture. The correction has been + incorporated for all architectures but only verified on a few.

                    - Plus less critical bugfixes as detailed in the ChangeLog. New features - include: + Other notable changes in NuttX-5.12 include:

                    • - * A new configuration to support the mbed.org LPC1768 board (Contributed - by Dave Marples), and + A complete port for the AVR32 (AT91UC3B0256) is incorporated in the + source tree. Testing of this port is underway now. This release + was made before verifying this port in order to get the important + bugfix in place.
                    • - * A driver for the Atmel AT45DB161D 4Mbit SPI FLASH part. + Other miscellaneous bugfix and enhancements as noted in the ChangeLog.

                    @@ -1342,7 +1345,8 @@ This port is currently under development. All code is complete for the basic NuttX port including header files for all AT91UC3* peripherals. Testing of this port is underway now. - It is hoped that the first, released AVR32 port will appear in version 5.12 of NuttX, probably near the beginning of September, 2010. + The untest AVR32 is present in the 5.12 release of NuttX. + It is hoped that the first, verified AVR32 port will be released in version 5.13 of NuttX.

                  @@ -1880,28 +1884,31 @@ Other memory:
                    -nuttx-5.11 2010-10-01 Gregory Nutt <spudmonkey@racsa.co.cr>
                    +nuttx-5.12 2010-10-26 Gregory Nutt <spudmonkey@racsa.co.cr>
                     
                    -	* configs/ea3131/src/up_fillpage.c - Added new configuration item
                    -	  CONFIG_PAGING_BINPATH.  If CONFIG_PAGING_BINPATH is defined, then it
                    -	  is the full path to a file on a mounted file system that contains
                    -	  a binary image of the NuttX executable.  Pages will be filled by
                    -	  reading from offsets into this file that correspond to virtual
                    -	  fault addresses.  up_fillpage.c implements logic to perform page
                    -	  files using the CONFIG_PAGING_BINPATH file.
                    -	* configs/mbed - Add configuration to support the mbed.org LPC1768
                    -	  board (Contributed by Dave Marples).
                    -	* sched/sem_wait.c and sem_waitirq.c - Eliminate a race condition
                    -	  that can occur when a semaphore wait is interrupt by a signal.
                    -	  (see email thread: http://tech.groups.yahoo.com/group/nuttx/message/530)
                    -	* drivers/mtd/at45db.c - Add a driver for the Atmel AT45DB161D 4Mbit
                    -	  SPI FLASH part (untested on initial check-in).
                    -	* arch/arm/src/lm3s and arch/arm/include/lm3s - Corrections for the
                    -	  lm3s8962 port contributed by Larry Arnold.  That port is purported
                    -	  to work correctly with these changes in place.
                    -	* examples/ostest/prioinherit.c - Need to reinitialize globals if
                    -	  test is ran repeatedly in a loop.
                    -	* configs/ez80f910200zco - Updated to used ZDS-II 4.11.1
                    +	* arch/avr - Add a place to support AVR family processors.
                    +	* arch/avr/include/avr32 and arch/avr/src/avr32 - Add support for AVR32
                    +	  (all of the AVR32 is a work in progress).
                    +	* arch/avr/include/at91uc3 and arch/avr/src/at91uc3 - Add support
                    +	  for the AT91 UC3A/B family of AVR32 MCUs.
                    +	* confgs/avr32dev1 - Add support for the Atmel AVR32DEV1 board featuring
                    +	  the AT91UC3B0256 MCU.  This board is produced by www.mcuzone.com.
                    +	* include/stdlib.h, lib/Makefile, lib/lib_abs.c, lib/lib_labs.c,
                    +	  lib_labs.c, lib_llabs.c, lib_imaxabs.c - Add abs(), labs(), llabs(), and
                    +	  imaxabs().
                    +	* Add include/inttypes.h
                    +	* arch/hc/src/mc9s12ne64 - This hcs12 port grew a few more files.  But it
                    +	  is still a long way from complete.
                    +	* arch/*/src/*/*_sigdeliver.c - Fixed a serious error in the signal
                    +	  trampoline logic.  Essentially, interrupts are re-enabled while the
                    +	  signal handler executes, but the logic to re-disable the interrupts
                    +	  before returning from the signal handler trampoline was missing.  Under
                    +	  certain circumstances, this can cause stack corruption.  This was
                    +	  discovered by David Hewson on an ARM9 platform, but since the code
                    +	  has been leveraged, the bug has been propogated from ARM to Cortex-M3,
                    +	  AVR32, M16C, SH1, ZNEO, eZ80, Z8, and Z80 -- almost every architecture.
                    +	  The correction has been incorporated for all architectures but only
                    +	  verified on a few.
                     
                     pascal-2.0 2009-12-21 Gregory Nutt <spudmonkey@racsa.co.cr>
                     
                    @@ -1931,18 +1938,7 @@ buildroot-1.8 2009-12-21 <spudmonkey@racsa.co.cr>
                     
                     
                     
                      -nuttx-5.12 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                      -
                      -	* arch/avr - Add a place to support AVR family processors.
                      -	* arch/avr/include/avr32 and arch/avr/src/avr32 - Add support for AVR32
                      -	  (all of the AVR32 is a work in progress).
                      -	* arch/avr/include/at91uc3 and arch/avr/src/at91uc3 - Add support
                      -	  for the AT91 UC3A/B family of AVR32 MCUs.
                      -	* confgs/avr32dev1 - Add support for the Atmel AVR32DEV1 board featuring
                      -	  the AT91UC3B0256 MCU.  This board is produced by www.mcuzone.com.
                      -	* include/stdlib.h, lib/Makefile, lib/lib_abs.c, lib/lib_labs.c,
                      -	  lib_labs.c, lib_llabs.c, lib_imaxabs.c - Add abs(), labs(), llabs(), and
                      -	  imaxabs().
                      +nuttx-5.13 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                       
                       pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                       
                      
                      From 5932d41f247332cae094b6d04675bf2ec1a3383b Mon Sep 17 00:00:00 2001
                      From: patacongo 
                      Date: Wed, 27 Oct 2010 20:54:11 +0000
                      Subject: [PATCH 0664/1518] Add strnlen()
                      
                      git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3054 42af7a65-404d-4744-a932-0658087f49c3
                      ---
                       Documentation/NuttX.html             | 5 ++++-
                       Documentation/NuttxPortingGuide.html | 5 +++--
                       Documentation/NuttxUserGuide.html    | 1 +
                       3 files changed, 8 insertions(+), 3 deletions(-)
                      
                      diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html
                      index fe9110565c..6fffb5cdfd 100644
                      --- a/Documentation/NuttX.html
                      +++ b/Documentation/NuttX.html
                      @@ -8,7 +8,7 @@
                         
                           
                             

                      NuttX RTOS

                      -

                      Last Updated: October 26, 2010

                      +

                      Last Updated: October 27, 2010

                      @@ -1940,6 +1940,9 @@ buildroot-1.8 2009-12-21 <spudmonkey@racsa.co.cr>
                         nuttx-5.13 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                         
                        +	* lib/lib_strnlen.c -- Added POSIX 2008 strnlen() function.  Contributed
                        +	  by Michael Hrabanek.
                        +
                         pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                         
                         buildroot-1.9 2010-xx-xx 
                        diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html
                        index 7666a29dfd..a750a04a2f 100644
                        --- a/Documentation/NuttxPortingGuide.html
                        +++ b/Documentation/NuttxPortingGuide.html
                        @@ -2664,8 +2664,9 @@ build
                         

                        CONFIG_ARCH_MEMCPY, CONFIG_ARCH_MEMCMP, CONFIG_ARCH_MEMMOVE, CONFIG_ARCH_MEMSET, CONFIG_ARCH_STRCMP, CONFIG_ARCH_STRCPY, - CONFIG_ARCH_STRNCPY, CONFIG_ARCH_STRLEN, CONFIG_ARCH_BZERO, - CONFIG_ARCH_KMALLOC, CONFIG_ARCH_KZMALLOC, ONFIG_ARCH_KFREE, + CONFIG_ARCH_STRNCPY, CONFIG_ARCH_STRLEN, CONFIG_ARCH_STRNLEN, + CONFIG_ARCH_BZERO, CONFIG_ARCH_KMALLOC, CONFIG_ARCH_KZMALLOC, + ONFIG_ARCH_KFREE,

                      diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 024e0392de..53bdad919d 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -6410,6 +6410,7 @@ char *strchr(const char *s, int c); FAR char *strdup(const char *s); const char *strerror(int); size_t strlen(const char *); +size_t strnlen(const char *, size_t); char *strcat(char *, const char *); char *strncat(char *, const char *, size_t); int strcmp(const char *, const char *); From 7051c5eac50644a8db419e3ea165a1e090e4dfd1 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 30 Oct 2010 00:51:45 +0000 Subject: [PATCH 0665/1518] Fix big-time naming error -- what was I thinking? git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3060 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 6fffb5cdfd..31e38abf0f 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -801,7 +801,7 @@ Other notable changes in NuttX-5.12 include:
                      • - A complete port for the AVR32 (AT91UC3B0256) is incorporated in the + A complete port for the AVR32 (AT32UC3B0256) is incorporated in the source tree. Testing of this port is underway now. This release was made before verifying this port in order to get the important bugfix in place. @@ -1335,7 +1335,7 @@

                        AV32DEV1. - This port uses the www.mcuzon.com AVRDEV1 board based on the Atmel AT91UC3B0256 MCU. + This port uses the www.mcuzon.com AVRDEV1 board based on the Atmel AT32UC3B0256 MCU. This port requires a special GNU avr32 toolchain available from atmel.com website. This is a windows native toolchain and so can be used only under Cygwin on Windows.

                        @@ -1343,7 +1343,7 @@

                        STATUS: This port is currently under development. - All code is complete for the basic NuttX port including header files for all AT91UC3* peripherals. + All code is complete for the basic NuttX port including header files for all AT32UC3* peripherals. Testing of this port is underway now. The untest AVR32 is present in the 5.12 release of NuttX. It is hoped that the first, verified AVR32 port will be released in version 5.13 of NuttX. @@ -1889,10 +1889,10 @@ nuttx-5.12 2010-10-26 Gregory Nutt <spudmonkey@racsa.co.cr> * arch/avr - Add a place to support AVR family processors. * arch/avr/include/avr32 and arch/avr/src/avr32 - Add support for AVR32 (all of the AVR32 is a work in progress). - * arch/avr/include/at91uc3 and arch/avr/src/at91uc3 - Add support - for the AT91 UC3A/B family of AVR32 MCUs. + * arch/avr/include/at32uc3 and arch/avr/src/at32uc3 - Add support + for the AVR32 UC3A/B family of AVR32 MCUs. * confgs/avr32dev1 - Add support for the Atmel AVR32DEV1 board featuring - the AT91UC3B0256 MCU. This board is produced by www.mcuzone.com. + the AT32UC3B0256 MCU. This board is produced by www.mcuzone.com. * include/stdlib.h, lib/Makefile, lib/lib_abs.c, lib/lib_labs.c, lib_labs.c, lib_llabs.c, lib_imaxabs.c - Add abs(), labs(), llabs(), and imaxabs(). @@ -1942,6 +1942,8 @@ nuttx-5.13 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> * lib/lib_strnlen.c -- Added POSIX 2008 strnlen() function. Contributed by Michael Hrabanek. + * Fix wild, consistent naming error. For some reason, I called the at32uc3* + parts at91uc* everywhere. Fixed by changing lots of files. pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From 0fc93da297af02704d2c2d5f187d21ac5e3ec78b Mon Sep 17 00:00:00 2001 From: patacongo Date: Fri, 5 Nov 2010 03:48:09 +0000 Subject: [PATCH 0666/1518] The AVR32 port now passes the OS test git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3075 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 31e38abf0f..56817e3ce3 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                        NuttX RTOS

                        -

                        Last Updated: October 27, 2010

                        +

                        Last Updated: November 4, 2010

                        @@ -1335,18 +1335,23 @@

                        AV32DEV1. - This port uses the www.mcuzon.com AVRDEV1 board based on the Atmel AT32UC3B0256 MCU. + This port uses the www.mcuzone.com AVRDEV1 board based on the Atmel AT32UC3B0256 MCU. This port requires a special GNU avr32 toolchain available from atmel.com website. This is a windows native toolchain and so can be used only under Cygwin on Windows.

                          STATUS: - This port is currently under development. + This port is nearing he completion of development. All code is complete for the basic NuttX port including header files for all AT32UC3* peripherals. - Testing of this port is underway now. - The untest AVR32 is present in the 5.12 release of NuttX. - It is hoped that the first, verified AVR32 port will be released in version 5.13 of NuttX. + The untested AVR32 code was present in the 5.12 release of NuttX. + Since then, the basic RTOS port has solidified; + the port successfully passes the NuttX OS test (examples/ostest). + A NuttShell (NSH) configuration is in place see the NSH User Guide) + and is under test now. + The basic, verified port will be released in NuttX-5.13. + A complete port will include drivers for additional AVR32 UC3 devices -- like SPI and USB --- and will be available in a later release, + time permitting.

                        @@ -1944,6 +1949,10 @@ nuttx-5.13 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> by Michael Hrabanek. * Fix wild, consistent naming error. For some reason, I called the at32uc3* parts at91uc* everywhere. Fixed by changing lots of files. + * configs/avr32dev1/ostest - The AVR32 port now successfully passes the + examples/ostest. We have a good AVR32 port! + * configs/avr32dev1/nsh - Added a configuration to support the NuttShell + (NSH). Testing of this configuration is just beginning. pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From 4e6c1cb2201b12d1444fa6a7513f172aa44c5d3e Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 6 Nov 2010 02:42:59 +0000 Subject: [PATCH 0667/1518] Progress debugging serial driver git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3078 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 56817e3ce3..d3fff7c9bb 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                        NuttX RTOS

                        -

                        Last Updated: November 4, 2010

                        +

                        Last Updated: November 5, 2010

                        @@ -1952,7 +1952,10 @@ nuttx-5.13 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> * configs/avr32dev1/ostest - The AVR32 port now successfully passes the examples/ostest. We have a good AVR32 port! * configs/avr32dev1/nsh - Added a configuration to support the NuttShell - (NSH). Testing of this configuration is just beginning. + (NSH). As of this writing, here is a problem receiving serial data (this + is, very likely, my hardware setup). + * lib/lib_open.c - Fix an error in fdopen when a valid file desciptor does + not refer to an open file. pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From e7e008f0cb53f3ab599a286ff3cac86061ccfa8f Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 6 Nov 2010 15:55:07 +0000 Subject: [PATCH 0668/1518] Add support for the Olimex LPC1766-STK board git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3079 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 187 ++++++++++++++++++++++----------------- 1 file changed, 104 insertions(+), 83 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index d3fff7c9bb..1a25852be4 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                        NuttX RTOS

                        -

                        Last Updated: November 5, 2010

                        +

                        Last Updated: November 6, 2010

                        @@ -785,15 +785,15 @@ This is primarily a bugfix release and includes some important corrections to the code:
                        • - Fixed an important error in the signal trampoline logic. Essentially, - interrupts are re-enabled while the signal handler executes, but the - logic to re-disable the interrupts before returning from the signal - handler trampoline was missing. Under certain circumstances, this - can cause stack corruption. This was discovered by David Hewson on - an ARM9 platform, but since the code has been leveraged, the bug has - been propogated from ARM to Cortex-M3, AVR32, M16C, SH1, ZNEO, eZ80, - Z8, and Z80 -- almost every architecture. The correction has been - incorporated for all architectures but only verified on a few. + Fixed an important error in the signal trampoline logic. Essentially, + interrupts are re-enabled while the signal handler executes, but the + logic to re-disable the interrupts before returning from the signal + handler trampoline was missing. Under certain circumstances, this + can cause stack corruption. This was discovered by David Hewson on + an ARM9 platform, but since the code has been leveraged, the bug has + been propogated from ARM to Cortex-M3, AVR32, M16C, SH1, ZNEO, eZ80, + Z8, and Z80 -- almost every architecture. The correction has been + incorporated for all architectures but only verified on a few.

                        @@ -801,13 +801,13 @@ Other notable changes in NuttX-5.12 include:
                        • - A complete port for the AVR32 (AT32UC3B0256) is incorporated in the - source tree. Testing of this port is underway now. This release - was made before verifying this port in order to get the important - bugfix in place. + A complete port for the AVR32 (AT32UC3B0256) is incorporated in the + source tree. Testing of this port is underway now. This release + was made before verifying this port in order to get the important + bugfix in place.
                        • - Other miscellaneous bugfix and enhancements as noted in the ChangeLog. + Other miscellaneous bugfix and enhancements as noted in the ChangeLog.

                        @@ -1038,8 +1038,8 @@

                        Support for on-demand paging has been developed for the EA3131. - That support would all execute of a program in SPI FLASH by paging code sections out of SPI flash as needed. - However, as of this writing, I have not had the opportunity to verify this new feature. + That support would all execute of a program in SPI FLASH by paging code sections out of SPI flash as needed. + However, as of this writing, I have not had the opportunity to verify this new feature.

                      @@ -1231,20 +1231,24 @@

                      - NXP LPC1768. - Configurations are available for two boards: + NXP LPC1766 and LPC1768. + Configurations are available for three boards:

                      • - The Nucleus 2G board from 2G Engineering, and + The Nucleus 2G board from 2G Engineering (LPC1768),
                      • - The mbed board from mbed.org (Contributed by Dave Marples). + The mbed board from mbed.org (LPC1768, Contributed by Dave Marples), and +
                      • +
                      • + The LPC1766-sTK board from Olimex (LPC1766).

                      - Both boards feature the NXP LPC1768 MCU and a GNU arm-elf or arm-eabi toolchain* under - either Linux or Cygwin (with native Windows GNU tools or Cygwin-based GNU tools). + The Nucleus 2G and the mbed boards feature the NXP LPC1768 MCU; + the Olimex LPC1766-STK board features an LPC1766. + All use a GNU arm-elf or arm-eabi toolchain* under either Linux or Cygwin (with native Windows GNU tools or Cygwin-based GNU tools).

                        @@ -1264,6 +1268,11 @@

                        Support for the mbed board was contributed by Dave Marples and released in NuttX-5.11.

                        +

                        + Support for the Olimex-LPC1766 is newly added to NuttX and is still undergoing development, + test, and integration. + Basic support for this board is expected in NuttX-5.13. +

                        Development Environments: 1) Linux with native Linux GNU toolchain, 2) Cygwin with Cygwin GNU toolchain, or 3) Cygwin @@ -1344,12 +1353,21 @@ STATUS: This port is nearing he completion of development. All code is complete for the basic NuttX port including header files for all AT32UC3* peripherals. - The untested AVR32 code was present in the 5.12 release of NuttX. - Since then, the basic RTOS port has solidified; - the port successfully passes the NuttX OS test (examples/ostest). - A NuttShell (NSH) configuration is in place see the NSH User Guide) - and is under test now. - The basic, verified port will be released in NuttX-5.13. + The untested AVR32 code was present in the 5.12 release of NuttX. + Since then, the basic RTOS port has solidified: +

                          +
                        • + The port successfully passes the NuttX OS test (examples/ostest). +
                        • +
                        • + A NuttShell (NSH) configuration is in place see the NSH User Guide). + Testing of that configuration has been postponed (because it got bumped by the Olimex LPC1766-STK port). + Current Status: I think I have a hardware problem with my serial port setup. + There is a good chance that the NSH port is complete and functionality, but I am not yet able to demonstrate that. + At present, I get nothing coming in the serial RXD line (probably because it is configured wrong or I have the MAX232 connected wrong). +
                        • +
                        + The basic, port (including the verified examples/ostest configuration) will be released in NuttX-5.13. A complete port will include drivers for additional AVR32 UC3 devices -- like SPI and USB --- and will be available in a later release, time permitting.

                        @@ -1403,7 +1421,7 @@

                        STATUS: Initial source files released in nuttx-0.4.2. - At this point, the port has not been integrated; the target cannot be built + At this point, the port has not been integrated; the target cannot be built because the GNU m16c-elf-ld link fails with the following message:

                          @@ -1891,47 +1909,47 @@ Other memory:
                             nuttx-5.12 2010-10-26 Gregory Nutt <spudmonkey@racsa.co.cr>
                             
                            -	* arch/avr - Add a place to support AVR family processors.
                            -	* arch/avr/include/avr32 and arch/avr/src/avr32 - Add support for AVR32
                            -	  (all of the AVR32 is a work in progress).
                            -	* arch/avr/include/at32uc3 and arch/avr/src/at32uc3 - Add support
                            -	  for the AVR32 UC3A/B family of AVR32 MCUs.
                            -	* confgs/avr32dev1 - Add support for the Atmel AVR32DEV1 board featuring
                            -	  the AT32UC3B0256 MCU.  This board is produced by www.mcuzone.com.
                            -	* include/stdlib.h, lib/Makefile, lib/lib_abs.c, lib/lib_labs.c,
                            -	  lib_labs.c, lib_llabs.c, lib_imaxabs.c - Add abs(), labs(), llabs(), and
                            -	  imaxabs().
                            -	* Add include/inttypes.h
                            -	* arch/hc/src/mc9s12ne64 - This hcs12 port grew a few more files.  But it
                            -	  is still a long way from complete.
                            -	* arch/*/src/*/*_sigdeliver.c - Fixed a serious error in the signal
                            -	  trampoline logic.  Essentially, interrupts are re-enabled while the
                            -	  signal handler executes, but the logic to re-disable the interrupts
                            -	  before returning from the signal handler trampoline was missing.  Under
                            -	  certain circumstances, this can cause stack corruption.  This was
                            -	  discovered by David Hewson on an ARM9 platform, but since the code
                            -	  has been leveraged, the bug has been propogated from ARM to Cortex-M3,
                            -	  AVR32, M16C, SH1, ZNEO, eZ80, Z8, and Z80 -- almost every architecture.
                            -	  The correction has been incorporated for all architectures but only
                            -	  verified on a few.
                            +    * arch/avr - Add a place to support AVR family processors.
                            +    * arch/avr/include/avr32 and arch/avr/src/avr32 - Add support for AVR32
                            +      (all of the AVR32 is a work in progress).
                            +    * arch/avr/include/at32uc3 and arch/avr/src/at32uc3 - Add support
                            +      for the AVR32 UC3A/B family of AVR32 MCUs.
                            +    * confgs/avr32dev1 - Add support for the Atmel AVR32DEV1 board featuring
                            +      the AT32UC3B0256 MCU.  This board is produced by www.mcuzone.com.
                            +    * include/stdlib.h, lib/Makefile, lib/lib_abs.c, lib/lib_labs.c,
                            +      lib_labs.c, lib_llabs.c, lib_imaxabs.c - Add abs(), labs(), llabs(), and
                            +      imaxabs().
                            +    * Add include/inttypes.h
                            +    * arch/hc/src/mc9s12ne64 - This hcs12 port grew a few more files.  But it
                            +      is still a long way from complete.
                            +    * arch/*/src/*/*_sigdeliver.c - Fixed a serious error in the signal
                            +      trampoline logic.  Essentially, interrupts are re-enabled while the
                            +      signal handler executes, but the logic to re-disable the interrupts
                            +      before returning from the signal handler trampoline was missing.  Under
                            +      certain circumstances, this can cause stack corruption.  This was
                            +      discovered by David Hewson on an ARM9 platform, but since the code
                            +      has been leveraged, the bug has been propogated from ARM to Cortex-M3,
                            +      AVR32, M16C, SH1, ZNEO, eZ80, Z8, and Z80 -- almost every architecture.
                            +      The correction has been incorporated for all architectures but only
                            +      verified on a few.
                             
                             pascal-2.0 2009-12-21 Gregory Nutt <spudmonkey@racsa.co.cr>
                             
                            -	* Updated to use standard C99 types in stdint.h and
                            -	  stdbool.h.  This change was necessary for compatibility
                            -	  with NuttX-5.0 (any beyond).
                            +    * Updated to use standard C99 types in stdint.h and
                            +      stdbool.h.  This change was necessary for compatibility
                            +      with NuttX-5.0 (any beyond).
                             
                             buildroot-1.8 2009-12-21 <spudmonkey@racsa.co.cr>
                             
                            -	* configs/cortexm3-defconfig-4.3.3: Added support for NuttX NXFLAT
                            -	  tools.
                            -	* configs/arm7tdmi-defconfig-4.3.3: Update to arm7tdmi-defconfig-4.2.4.
                            -	  Also builds NuttX NXFLAT tools.
                            -	* configs/m68hc12-defconfig-4.3.3: Update to m68ch11-defconfig.
                            -	* configs/m68hc12-defconfig-3.4.6: There are problems building GCC
                            -	  4.3.3 for the hc12.
                            -	* configs/m32c-defconfig-4.2.4: Added genromfs
                            -	* configs/m32c-defconfig-4.3.3: Update to m32c-defconfig-4.2.4
                            +    * configs/cortexm3-defconfig-4.3.3: Added support for NuttX NXFLAT
                            +      tools.
                            +    * configs/arm7tdmi-defconfig-4.3.3: Update to arm7tdmi-defconfig-4.2.4.
                            +      Also builds NuttX NXFLAT tools.
                            +    * configs/m68hc12-defconfig-4.3.3: Update to m68ch11-defconfig.
                            +    * configs/m68hc12-defconfig-3.4.6: There are problems building GCC
                            +      4.3.3 for the hc12.
                            +    * configs/m32c-defconfig-4.2.4: Added genromfs
                            +    * configs/m32c-defconfig-4.3.3: Update to m32c-defconfig-4.2.4
                             
                          @@ -1945,29 +1963,32 @@ buildroot-1.8 2009-12-21 <spudmonkey@racsa.co.cr>
                             nuttx-5.13 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                             
                            -	* lib/lib_strnlen.c -- Added POSIX 2008 strnlen() function.  Contributed
                            -	  by Michael Hrabanek.
                            -	* Fix wild, consistent naming error.  For some reason, I called the at32uc3*
                            -	  parts at91uc* everywhere.  Fixed by changing lots of files.
                            -	* configs/avr32dev1/ostest - The AVR32 port now successfully passes the
                            -	  examples/ostest.  We have a good AVR32 port!
                            -	* configs/avr32dev1/nsh - Added a configuration to support the NuttShell
                            -	  (NSH). As of this writing, here is a problem receiving serial data (this
                            -	  is, very likely, my hardware setup).
                            -	* lib/lib_open.c - Fix an error in fdopen when a valid file desciptor does
                            -	  not refer to an open file.
                            +    * lib/lib_strnlen.c -- Added POSIX 2008 strnlen() function.  Contributed
                            +      by Michael Hrabanek.
                            +    * Fix wild, consistent naming error.  For some reason, I called the at32uc3*
                            +      parts at91uc* everywhere.  Fixed by changing lots of files and directories.
                            +    * configs/avr32dev1/ostest - The AVR32 port now successfully passes the
                            +      examples/ostest.  We have a good AVR32 port!
                            +    * configs/avr32dev1/nsh - Added a configuration to support the NuttShell
                            +      (NSH). As of this writing, here is a problem receiving serial data (this
                            +      is, very likely, my hardware setup).
                            +    * lib/lib_open.c - Fix an error in fdopen when a valid file desciptor does
                            +      not refer to an open file.
                            +    * configs/olimex-lpc1766stk - Add support for the Olimex LPC1766-STK
                            +      development board. (Initial check-in is just a clone of the Nucleus-2G
                            +      LPC1768 board logic).
                             
                             pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                             
                             buildroot-1.9 2010-xx-xx 
                             
                            -	* configs/arm926t-defconfig-4.3.3: update arm926t-defconfig-4.2.4
                            -	* configs/arm926t-defconfig-nxflat: NXFLAT-only configuration for
                            -	  arm926
                            -	* toolchain/gdb/gdb.mk - Remove ncurses dependency from gdb_target target.
                            -	* toolchain/gdb/gdb.mk - Added --disable-werror to GDB configuration line.
                            -	  GDB 6.8 won't build because the tarball was released with -Werror enabled and
                            -	  the build stops on the first warning.
                            +    * configs/arm926t-defconfig-4.3.3: update arm926t-defconfig-4.2.4
                            +    * configs/arm926t-defconfig-nxflat: NXFLAT-only configuration for
                            +      arm926
                            +    * toolchain/gdb/gdb.mk - Remove ncurses dependency from gdb_target target.
                            +    * toolchain/gdb/gdb.mk - Added --disable-werror to GDB configuration line.
                            +      GDB 6.8 won't build because the tarball was released with -Werror enabled and
                            +      the build stops on the first warning.
                             
                             
                          From b882ecf752bf1037c589e2189ac629fe99d5c6fc Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 6 Nov 2010 17:01:13 +0000 Subject: [PATCH 0669/1518] Config documentation update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3082 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/README.html | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/Documentation/README.html b/Documentation/README.html index f52fb4a3c9..a062381026 100755 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -9,7 +9,7 @@

                          NuttX README Files

                          -

                          Last Updated: October 8, 2010

                          +

                          Last Updated: November 5, 2010

                          @@ -92,14 +92,16 @@ | | `- README.txt | |- nucleus2g/ | | `- README.txt - | |- olimex-strp711/ - | | |- include/README.txt - | | |- src/README.txt - | | `- README.txt + | |- olimex-lpc1766stk/ + | | `- README.txt | |- olimex-lpc2378/ | | |- include/README.txt | | |- src/README.txt | | `- README.txt + | |- olimex-strp711/ + | | |- include/README.txt + | | |- src/README.txt + | | `- README.txt | |- pjrc-8051/ | | |- include/README.txt | | |- src/README.txt From 9ceabf0abf1883713e8e7a88c497aef46da2423a Mon Sep 17 00:00:00 2001 From: patacongo Date: Wed, 10 Nov 2010 01:40:41 +0000 Subject: [PATCH 0670/1518] Prep for 5.13 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3093 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 152 ++++++++++++++++++++------------------- 1 file changed, 78 insertions(+), 74 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 1a25852be4..996ffea4c7 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                          NuttX RTOS

                          -

                          Last Updated: November 6, 2010

                          +

                          Last Updated: November 9, 2010

                          @@ -772,42 +772,66 @@ -

                          nuttx-5.12 Release Notes: +

                          nuttx-5.13 Release Notes:

                          - This 59th release of NuttX, Version 5.12, was made on October 26, 2010 and is available for download from the + This 60th release of NuttX, Version 5.13, was made on November 9, 2010 and is available for download from the SourceForge website. The change log associated with the release is available here. Unreleased changes after this release are available in CVS. These unreleased changes are listed here.

                          - This is primarily a bugfix release and includes some important corrections to the code: + Headlines for this release include:

                          • - Fixed an important error in the signal trampoline logic. Essentially, - interrupts are re-enabled while the signal handler executes, but the - logic to re-disable the interrupts before returning from the signal - handler trampoline was missing. Under certain circumstances, this - can cause stack corruption. This was discovered by David Hewson on - an ARM9 platform, but since the code has been leveraged, the bug has - been propogated from ARM to Cortex-M3, AVR32, M16C, SH1, ZNEO, eZ80, - Z8, and Z80 -- almost every architecture. The correction has been - incorporated for all architectures but only verified on a few. -
                          • -
                          -

                          -

                          - Other notable changes in NuttX-5.12 include: -

                            -
                          • - A complete port for the AVR32 (AT32UC3B0256) is incorporated in the - source tree. Testing of this port is underway now. This release - was made before verifying this port in order to get the important - bugfix in place. +

                            + AVR32, www.mcuzone.com AVR32DEV1 +

                              +

                              + The port for the www.mcuzone.com AVRDEV1 board based on the Atmel + AT32UC3B0256 MCU was (almost) fully integrated. The port now + successfully passes the NuttX OS test (examples/ostest). A + NuttShell (NSH) configuration is in place (see the + NSH User Guide). + Testing of that NSH configuration, however, has been postponed + (because it got bumped by the Olimex LPC1766-STK port -- see below) +

                              +

                              + Current Status: I think I have a hardware problem with my serial + port setup. There is a good chance that the NSH port is complete + and functional, but I am not yet able to demonstrate that. At + present, I get nothing coming in the serial RXD line (probably + because the pins are configured wrong or I have the MAX232 + connected wrong). +

                              +

                              + A complete port will include drivers for additional AVR32 UC3 + devices -- like SPI and USB --- and will be available in a later + release, time permitting. +

                              +
                            +

                          • - Other miscellaneous bugfix and enhancements as noted in the ChangeLog. +

                            + LPC1766, Olimex LPC1766-STK +

                              +

                              + Support for the Olimex-LPC1766 is newly added to NuttX and is + still undergoing development, test, and integration. Verified + configurations for the NuttX OS test and for the NuttShell (NSH, + see the NSH User Guide). + Additional USB configurations are in the release as well, but + they have not yet been verified. Goals for NuttX-5.14 include: + (1) An Ethernet driver, (2) Verified USB support, and (3) SD + card support. +

                              +
                            +

                            +
                          • +
                          • + Additional changes and bugfixes as detailed in the ChangeLog.

                          @@ -1247,8 +1271,8 @@

                          The Nucleus 2G and the mbed boards feature the NXP LPC1768 MCU; - the Olimex LPC1766-STK board features an LPC1766. - All use a GNU arm-elf or arm-eabi toolchain* under either Linux or Cygwin (with native Windows GNU tools or Cygwin-based GNU tools). + the Olimex LPC1766-STK board features an LPC1766. + All use a GNU arm-elf or arm-eabi toolchain* under either Linux or Cygwin (with native Windows GNU tools or Cygwin-based GNU tools).

                            @@ -1271,7 +1295,11 @@

                            Support for the Olimex-LPC1766 is newly added to NuttX and is still undergoing development, test, and integration. - Basic support for this board is expected in NuttX-5.13. + Verified configurations for the NuttX OS test and for the NuttShell (NSH, + see the NSH User Guide) + were released in NuttX-5.13. + Additional USB configurations are in the release as well, but they have not yet been verified. + Goals for NuttX-5.14 include: (1) An Ethernet driver, (2) Verified USB support, and (3) SD card support.

                            Development Environments: @@ -1351,7 +1379,7 @@

                              STATUS: - This port is nearing he completion of development. + This port is has completed all basic development, but there is more that needs to be done. All code is complete for the basic NuttX port including header files for all AT32UC3* peripherals. The untested AVR32 code was present in the 5.12 release of NuttX. Since then, the basic RTOS port has solidified: @@ -1360,14 +1388,14 @@ The port successfully passes the NuttX OS test (examples/ostest).

                            • - A NuttShell (NSH) configuration is in place see the NSH User Guide). + A NuttShell (NSH) configuration is in place (see the NSH User Guide). Testing of that configuration has been postponed (because it got bumped by the Olimex LPC1766-STK port). Current Status: I think I have a hardware problem with my serial port setup. - There is a good chance that the NSH port is complete and functionality, but I am not yet able to demonstrate that. - At present, I get nothing coming in the serial RXD line (probably because it is configured wrong or I have the MAX232 connected wrong). + There is a good chance that the NSH port is complete and functional, but I am not yet able to demonstrate that. + At present, I get nothing coming in the serial RXD line (probably because the pins are configured wrong or I have the MAX232 connected wrong).
                            • -
                            - The basic, port (including the verified examples/ostest configuration) will be released in NuttX-5.13. +
                          + The basic, port (including the verified examples/ostest configuration) was be released in NuttX-5.13. A complete port will include drivers for additional AVR32 UC3 devices -- like SPI and USB --- and will be available in a later release, time permitting.

                          @@ -1907,31 +1935,22 @@ Other memory:
                            -nuttx-5.12 2010-10-26 Gregory Nutt <spudmonkey@racsa.co.cr>
                            +nuttx-5.13 2010-11-09 Gregory Nutt <spudmonkey@racsa.co.cr>
                             
                            -    * arch/avr - Add a place to support AVR family processors.
                            -    * arch/avr/include/avr32 and arch/avr/src/avr32 - Add support for AVR32
                            -      (all of the AVR32 is a work in progress).
                            -    * arch/avr/include/at32uc3 and arch/avr/src/at32uc3 - Add support
                            -      for the AVR32 UC3A/B family of AVR32 MCUs.
                            -    * confgs/avr32dev1 - Add support for the Atmel AVR32DEV1 board featuring
                            -      the AT32UC3B0256 MCU.  This board is produced by www.mcuzone.com.
                            -    * include/stdlib.h, lib/Makefile, lib/lib_abs.c, lib/lib_labs.c,
                            -      lib_labs.c, lib_llabs.c, lib_imaxabs.c - Add abs(), labs(), llabs(), and
                            -      imaxabs().
                            -    * Add include/inttypes.h
                            -    * arch/hc/src/mc9s12ne64 - This hcs12 port grew a few more files.  But it
                            -      is still a long way from complete.
                            -    * arch/*/src/*/*_sigdeliver.c - Fixed a serious error in the signal
                            -      trampoline logic.  Essentially, interrupts are re-enabled while the
                            -      signal handler executes, but the logic to re-disable the interrupts
                            -      before returning from the signal handler trampoline was missing.  Under
                            -      certain circumstances, this can cause stack corruption.  This was
                            -      discovered by David Hewson on an ARM9 platform, but since the code
                            -      has been leveraged, the bug has been propogated from ARM to Cortex-M3,
                            -      AVR32, M16C, SH1, ZNEO, eZ80, Z8, and Z80 -- almost every architecture.
                            -      The correction has been incorporated for all architectures but only
                            -      verified on a few.
                            +    * lib/lib_strnlen.c -- Added POSIX 2008 strnlen() function.  Contributed
                            +      by Michael Hrabanek.
                            +    * Fix wild, consistent naming error.  For some reason, I called the at32uc3*
                            +      parts at91uc* everywhere.  Fixed by changing lots of files and directories.
                            +    * configs/avr32dev1/ostest - The AVR32 port now successfully passes the
                            +      examples/ostest.  We have a good AVR32 port!
                            +    * configs/avr32dev1/nsh - Added a configuration to support the NuttShell
                            +      (NSH). As of this writing, here is a problem receiving serial data (this
                            +      is, very likely, my hardware setup).
                            +    * lib/lib_open.c - Fix an error in fdopen when a valid file desciptor does
                            +      not refer to an open file.
                            +    * configs/olimex-lpc1766stk - Add support for the Olimex LPC1766-STK
                            +      development board.  The OS test and NSH configurations (only) have been
                            +      verified.
                             
                             pascal-2.0 2009-12-21 Gregory Nutt <spudmonkey@racsa.co.cr>
                             
                            @@ -1961,22 +1980,7 @@ buildroot-1.8 2009-12-21 <spudmonkey@racsa.co.cr>
                             
                             
                             
                              -nuttx-5.13 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                              -
                              -    * lib/lib_strnlen.c -- Added POSIX 2008 strnlen() function.  Contributed
                              -      by Michael Hrabanek.
                              -    * Fix wild, consistent naming error.  For some reason, I called the at32uc3*
                              -      parts at91uc* everywhere.  Fixed by changing lots of files and directories.
                              -    * configs/avr32dev1/ostest - The AVR32 port now successfully passes the
                              -      examples/ostest.  We have a good AVR32 port!
                              -    * configs/avr32dev1/nsh - Added a configuration to support the NuttShell
                              -      (NSH). As of this writing, here is a problem receiving serial data (this
                              -      is, very likely, my hardware setup).
                              -    * lib/lib_open.c - Fix an error in fdopen when a valid file desciptor does
                              -      not refer to an open file.
                              -    * configs/olimex-lpc1766stk - Add support for the Olimex LPC1766-STK
                              -      development board. (Initial check-in is just a clone of the Nucleus-2G
                              -      LPC1768 board logic).
                              +nuttx-5.14 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                               
                               pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                               
                              
                              From 6c1b90609efd584d9db6c78609e3cbcdafc3c4d2 Mon Sep 17 00:00:00 2001
                              From: patacongo 
                              Date: Fri, 12 Nov 2010 04:21:23 +0000
                              Subject: [PATCH 0671/1518] Add PHY init logic
                              
                              git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3100 42af7a65-404d-4744-a932-0658087f49c3
                              ---
                               Documentation/NuttX.html | 7 ++++++-
                               1 file changed, 6 insertions(+), 1 deletion(-)
                              
                              diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html
                              index 996ffea4c7..a7d04ce999 100644
                              --- a/Documentation/NuttX.html
                              +++ b/Documentation/NuttX.html
                              @@ -8,7 +8,7 @@
                                 
                                   
                                     

                              NuttX RTOS

                              -

                              Last Updated: November 9, 2010

                              +

                              Last Updated: November 11, 2010

                              @@ -1982,6 +1982,11 @@ buildroot-1.8 2009-12-21 <spudmonkey@racsa.co.cr>
                                 nuttx-5.14 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                                 
                                +	* configs/olimex-lpc1766stk/nettest - Add examples/nettest configuration to
                                +	  verify the LPC17xx ethernet driver currently under development.
                                +	* arch/arm/src/lpc17xx/lpc17xx_ethernet.c/.h - Began development of
                                +	  the LPC17xx Ethernet driver.
                                +
                                 pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                                 
                                 buildroot-1.9 2010-xx-xx 
                                
                                From 77dc473cdadcf67dbbe8453284fec3f4a972c337 Mon Sep 17 00:00:00 2001
                                From: patacongo 
                                Date: Wed, 17 Nov 2010 12:08:25 +0000
                                Subject: [PATCH 0672/1518] Fix error in timer_settime()
                                
                                git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3117 42af7a65-404d-4744-a932-0658087f49c3
                                ---
                                 Documentation/NuttX.html | 5 ++++-
                                 1 file changed, 4 insertions(+), 1 deletion(-)
                                
                                diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html
                                index a7d04ce999..77473f2535 100644
                                --- a/Documentation/NuttX.html
                                +++ b/Documentation/NuttX.html
                                @@ -8,7 +8,7 @@
                                   
                                     
                                       

                                NuttX RTOS

                                -

                                Last Updated: November 11, 2010

                                +

                                Last Updated: November 17, 2010

                                @@ -1986,6 +1986,9 @@ nuttx-5.14 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> verify the LPC17xx ethernet driver currently under development. * arch/arm/src/lpc17xx/lpc17xx_ethernet.c/.h - Began development of the LPC17xx Ethernet driver. + * sched/timer_settime.c - Fix an error in set-up of one-shot timer. It was + using the repititive timer value (which is zero in the one-shot case, + always resulting in a 10Ms timer! Found and fixed by Wilton Tong. pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From 4f7c280b35e1fd7ad7d47455bb3b509d9a7f0b99 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 20 Nov 2010 00:39:29 +0000 Subject: [PATCH 0673/1518] Fix Cortex-M3 nested interrupt hard fault git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3119 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 77473f2535..5f5ee193b7 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                                NuttX RTOS

                                -

                                Last Updated: November 17, 2010

                                +

                                Last Updated: November 19, 2010

                                @@ -1989,6 +1989,11 @@ nuttx-5.14 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> * sched/timer_settime.c - Fix an error in set-up of one-shot timer. It was using the repititive timer value (which is zero in the one-shot case, always resulting in a 10Ms timer! Found and fixed by Wilton Tong. + * arch/arm/src/lpc17xx/lpc17_vector.S, stm32/stm32_vector.S, lm3s/lm3s_vector.S, + sam3u/sam3u_vector.S -- Fixed a hard fault problem that can occur if certain + types of interrupts are pending at the time another interrupt returns + (SYSTICK). This has not been verified on all plaform, but is a critical + fixed that is needed by all Cortex-M3 NuttX users. pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From 37be1287f6f708f91b147c132b0c94ff032fcfaf Mon Sep 17 00:00:00 2001 From: patacongo Date: Wed, 24 Nov 2010 02:48:11 +0000 Subject: [PATCH 0674/1518] Add thttpd configuration git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3126 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 5f5ee193b7..8a3ee79c6b 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                                NuttX RTOS

                                -

                                Last Updated: November 19, 2010

                                +

                                Last Updated: November 23, 2010

                                @@ -1985,7 +1985,7 @@ nuttx-5.14 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> * configs/olimex-lpc1766stk/nettest - Add examples/nettest configuration to verify the LPC17xx ethernet driver currently under development. * arch/arm/src/lpc17xx/lpc17xx_ethernet.c/.h - Began development of - the LPC17xx Ethernet driver. + the LPC17xx Ethernet driver. Driver in CVS functional after 2010-11-23. * sched/timer_settime.c - Fix an error in set-up of one-shot timer. It was using the repititive timer value (which is zero in the one-shot case, always resulting in a 10Ms timer! Found and fixed by Wilton Tong. @@ -1994,6 +1994,8 @@ nuttx-5.14 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> types of interrupts are pending at the time another interrupt returns (SYSTICK). This has not been verified on all plaform, but is a critical fixed that is needed by all Cortex-M3 NuttX users. + * configs/olimex-lpc1766stk/thttpd - Add a THTTPD configuration for the + Olimex LPC2766-STK board. pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From 29353ec009aebb035f830e870741433f39f29a8f Mon Sep 17 00:00:00 2001 From: patacongo Date: Thu, 25 Nov 2010 20:32:51 +0000 Subject: [PATCH 0675/1518] Restore uip_arp_ipin() git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3131 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index a750a04a2f..9cf518cb52 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -2921,6 +2921,9 @@ build
                              • CONFIG_NET_ARPTAB_SIZE: The size of the ARP table
                              • +
                              • + CONFIG_NET_ARP_IPIN: Harvest IP/MAC address mappings for the ARP table from incoming IP packets. +
                              • CONFIG_NET_BROADCAST: Incoming UDP broadcast support
                              • From eebdc489575f603732109c00d6418caf3b5c447b Mon Sep 17 00:00:00 2001 From: patacongo Date: Fri, 26 Nov 2010 05:26:27 +0000 Subject: [PATCH 0676/1518] Fix un-acked backlog coordinatin bug git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3133 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 8a3ee79c6b..06982ae192 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                                NuttX RTOS

                                -

                                Last Updated: November 23, 2010

                                +

                                Last Updated: November 25, 2010

                                @@ -1996,6 +1996,12 @@ nuttx-5.14 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> fixed that is needed by all Cortex-M3 NuttX users. * configs/olimex-lpc1766stk/thttpd - Add a THTTPD configuration for the Olimex LPC2766-STK board. + * net/uip/uip_tcpappsend.c - Correct an important logic bug in some uIP state + data the is used to manage retransmissions. The uIP logic was incompatible + with the retransmission logic of net/send.c in one place. The final error + was that the final packet in a sequence of packets was too large! In the + THTTPD example, this would leave some garbage at the bottom of the display + (or worse). I don't know why I haven't see this bug before??? pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From 83c8203cc4bbf4b090767b63beb580341a72a123 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 27 Nov 2010 18:46:40 +0000 Subject: [PATCH 0677/1518] Prep for 5.14 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3137 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 170 +++++++++++++++++---------------------- 1 file changed, 75 insertions(+), 95 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 06982ae192..4522d860a4 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                                NuttX RTOS

                                -

                                Last Updated: November 25, 2010

                                +

                                Last Updated: November 27, 2010

                                @@ -772,69 +772,58 @@ -

                                nuttx-5.13 Release Notes: +

                                nuttx-5.14 Release Notes:

                                - This 60th release of NuttX, Version 5.13, was made on November 9, 2010 and is available for download from the + This 61st release of NuttX, Version 5.14, was made on November 27, 2010 and is available for download from the SourceForge website. The change log associated with the release is available here. Unreleased changes after this release are available in CVS. These unreleased changes are listed here.

                                - Headlines for this release include: + This release includes multiple, important bugfixes as well as a new driver for the NXP LPC1766. + Important bugfixes include:

                                  -
                                • -

                                  - AVR32, www.mcuzone.com AVR32DEV1 -

                                    -

                                    - The port for the www.mcuzone.com AVRDEV1 board based on the Atmel - AT32UC3B0256 MCU was (almost) fully integrated. The port now - successfully passes the NuttX OS test (examples/ostest). A - NuttShell (NSH) configuration is in place (see the - NSH User Guide). - Testing of that NSH configuration, however, has been postponed - (because it got bumped by the Olimex LPC1766-STK port -- see below) -

                                    -

                                    - Current Status: I think I have a hardware problem with my serial - port setup. There is a good chance that the NSH port is complete - and functional, but I am not yet able to demonstrate that. At - present, I get nothing coming in the serial RXD line (probably - because the pins are configured wrong or I have the MAX232 - connected wrong). -

                                    -

                                    - A complete port will include drivers for additional AVR32 UC3 - devices -- like SPI and USB --- and will be available in a later - release, time permitting. -

                                    -
                                  -

                                  +
                                • + Cortex-M3 Hard Fault. + Fixed a hard fault problem that can occur if certaintypes of interrupts are pending at the time another interrupt returns. + This problem has only been observed on the LPC1766 (returning from a SYSTICK interrupt with a pending Ethernet interrupt). + However, it is assumed that all Cortex-M3 ports could have this as a latent bug.
                                • -
                                • -

                                  - LPC1766, Olimex LPC1766-STK -

                                    -

                                    - Support for the Olimex-LPC1766 is newly added to NuttX and is - still undergoing development, test, and integration. Verified - configurations for the NuttX OS test and for the NuttShell (NSH, - see the NSH User Guide). - Additional USB configurations are in the release as well, but - they have not yet been verified. Goals for NuttX-5.14 include: - (1) An Ethernet driver, (2) Verified USB support, and (3) SD - card support. -

                                    -
                                  -

                                  -
                                • -
                                • - Additional changes and bugfixes as detailed in the ChangeLog. +
                                • + TCP/IP Sequence Number Bug. + Corrected errors some important logic in the way that sequence numbers are managed when send() sends out packets before a previous packet has been acknowledged. + Some of that send() logic was incompatible with logicin the uIP layer. + Errors seen include: + (1) The final final packet in a sequence of packets might be too large! + In the THTTPD example, this might leave some garbage at the bottom of the display. + Or (2) send() might hang with outstanding, unacknowledged data (and with no re-transmission requests). + This was due to differences in sequence number handling in send() and in uip_tcpinput.c; + uip_tcpinput.c thought (incorrectly) that all of the bytes were acknowledged; + send.c knew that they were not.
                                • +
                                • + One-Shot POSIX Timer Bug. + Fixed an error in set-up of a one-shot POSIX timer. + It was using the repititive timer value (which is zero in the one-shot case), always resulting in a 10Ms timer! + Found and fixed by Wilton Tong. +

                                +

                                + Additional support has been included for the Olimex-LPC1766. + Support for that board was added to NuttX 5.13. + This release extends that support with an Ethernet driver. + Verified configurations are now available for the NuttX OS test, + for the NuttShell (NSH, see the NSH User Guide), + for the NuttX network test, and for the THTTPD webserver. + (Additional USB configurations are in the release as well, but those have not yet been verified). + Goals for NuttX-5.15 (and beyond) include: (1) Verified USB support, (2) SD card support, and (3) LCD support. +

                                +

                                + Additional changes and bugfixes as detailed in the ChangeLog. +

                                @@ -1293,13 +1282,13 @@ Support for the mbed board was contributed by Dave Marples and released in NuttX-5.11.

                                - Support for the Olimex-LPC1766 is newly added to NuttX and is still undergoing development, - test, and integration. - Verified configurations for the NuttX OS test and for the NuttShell (NSH, - see the NSH User Guide) - were released in NuttX-5.13. - Additional USB configurations are in the release as well, but they have not yet been verified. - Goals for NuttX-5.14 include: (1) An Ethernet driver, (2) Verified USB support, and (3) SD card support. + Support for that Olimex-LPC1766-STK board was added to NuttX 5.13. + The NuttX-5.14 release extended that support with an Ethernet driver. + Verified configurations are now available for the NuttX OS test, + for the NuttShell (NSH, see the NSH User Guide), + for the NuttX network test, and for the THTTPD webserver. + (Additional USB configurations are in the release as well, but those have not yet been verified). + Goals for NuttX-5.15 (and beyond) include: (1) Verified USB support, (2) SD card support, and (3) LCD support.

                                Development Environments: @@ -1935,22 +1924,34 @@ Other memory:

                                  -nuttx-5.13 2010-11-09 Gregory Nutt <spudmonkey@racsa.co.cr>
                                  +5.14 2010-11-27 Gregory Nutt 
                                   
                                  -    * lib/lib_strnlen.c -- Added POSIX 2008 strnlen() function.  Contributed
                                  -      by Michael Hrabanek.
                                  -    * Fix wild, consistent naming error.  For some reason, I called the at32uc3*
                                  -      parts at91uc* everywhere.  Fixed by changing lots of files and directories.
                                  -    * configs/avr32dev1/ostest - The AVR32 port now successfully passes the
                                  -      examples/ostest.  We have a good AVR32 port!
                                  -    * configs/avr32dev1/nsh - Added a configuration to support the NuttShell
                                  -      (NSH). As of this writing, here is a problem receiving serial data (this
                                  -      is, very likely, my hardware setup).
                                  -    * lib/lib_open.c - Fix an error in fdopen when a valid file desciptor does
                                  -      not refer to an open file.
                                  -    * configs/olimex-lpc1766stk - Add support for the Olimex LPC1766-STK
                                  -      development board.  The OS test and NSH configurations (only) have been
                                  -      verified.
                                  +	* configs/olimex-lpc1766stk/nettest - Add examples/nettest configuration to
                                  +	  verify the LPC17xx ethernet driver currently under development.
                                  +	* arch/arm/src/lpc17xx/lpc17xx_ethernet.c/.h - Began development of
                                  +	  the LPC17xx Ethernet driver.  Driver in CVS functional after 2010-11-23.
                                  +	* sched/timer_settime.c - Fix an error in set-up of a one-shot POSIX timer.  It
                                  +	  was using the repititive timer value (which is zero in the one-shot case),
                                  +	  always resulting in a 10Ms timer!  Found and fixed by Wilton Tong.
                                  +	* arch/arm/src/lpc17xx/lpc17_vector.S, stm32/stm32_vector.S, lm3s/lm3s_vector.S,
                                  +	  sam3u/sam3u_vector.S -- Fixed a hard fault problem that can occur if certain
                                  +	  types of interrupts are pending at the time another interrupt returns
                                  +	  (SYSTICK).  This has not been verified on all plaforms, but is a critical
                                  +	  fixed that is needed by all Cortex-M3 NuttX users.
                                  +	* configs/olimex-lpc1766stk/thttpd - Add a THTTPD configuration for the
                                  +	  Olimex LPC2766-STK board. Verified successfully.
                                  +	* net/uip/uip_tcpappsend.c - Correct an important logic bug in some uIP state
                                  +	  data the is used to manage retransmissions.  The uIP logic was incompatible
                                  +	  with the retransmission logic of net/send.c in one place.  The final error
                                  +	  was that the final packet in a sequence of packets was too large!  In the
                                  +	  THTTPD example, this would leave some garbage at the bottom of the display
                                  +	  (or worse).  I don't know why I haven't see this bug before???
                                  +	* net/uip/uip_tcpinput.c -- The change to uip_tcpappsend.c unmasked an
                                  +	  additional error in the TCP sequence number handling.  This sympom was that
                                  +	  the send() function would hang with outstanding, unacknowledged data (with
                                  +	  no re-transmit requests).  The was due to differences in sequence number
                                  +	  handling in send() and in uip_tcpinput.c; uip_tcpinput.c thought (incorrectly)
                                  +	  that all of the bytes were acknowledged; send.c knew that they were not.
                                   
                                   pascal-2.0 2009-12-21 Gregory Nutt <spudmonkey@racsa.co.cr>
                                   
                                  @@ -1980,28 +1981,7 @@ buildroot-1.8 2009-12-21 <spudmonkey@racsa.co.cr>
                                   
                                   
                                   
                                    -nuttx-5.14 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                                    -
                                    -	* configs/olimex-lpc1766stk/nettest - Add examples/nettest configuration to
                                    -	  verify the LPC17xx ethernet driver currently under development.
                                    -	* arch/arm/src/lpc17xx/lpc17xx_ethernet.c/.h - Began development of
                                    -	  the LPC17xx Ethernet driver.  Driver in CVS functional after 2010-11-23.
                                    -	* sched/timer_settime.c - Fix an error in set-up of one-shot timer.  It was
                                    -	  using the repititive timer value (which is zero in the one-shot case,
                                    -	  always resulting in a 10Ms timer!  Found and fixed by Wilton Tong.
                                    -	* arch/arm/src/lpc17xx/lpc17_vector.S, stm32/stm32_vector.S, lm3s/lm3s_vector.S,
                                    -	  sam3u/sam3u_vector.S -- Fixed a hard fault problem that can occur if certain
                                    -	  types of interrupts are pending at the time another interrupt returns
                                    -	  (SYSTICK).  This has not been verified on all plaform, but is a critical
                                    -	  fixed that is needed by all Cortex-M3 NuttX users.
                                    -	* configs/olimex-lpc1766stk/thttpd - Add a THTTPD configuration for the
                                    -	  Olimex LPC2766-STK board.
                                    -	* net/uip/uip_tcpappsend.c - Correct an important logic bug in some uIP state
                                    -	  data the is used to manage retransmissions.  The uIP logic was incompatible
                                    -	  with the retransmission logic of net/send.c in one place.  The final error
                                    -	  was that the final packet in a sequence of packets was too large!  In the
                                    -	  THTTPD example, this would leave some garbage at the bottom of the display
                                    -	  (or worse).  I don't know why I haven't see this bug before???
                                    +nuttx-5.15 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                                     
                                     pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                                     
                                    
                                    From c0264425607df2cdb408cce7b8a002f175bc0db7 Mon Sep 17 00:00:00 2001
                                    From: patacongo 
                                    Date: Sat, 27 Nov 2010 23:15:39 +0000
                                    Subject: [PATCH 0678/1518] Fix missing ARP entry problem
                                    
                                    git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3139 42af7a65-404d-4744-a932-0658087f49c3
                                    ---
                                     Documentation/NuttX.html | 6 ++++++
                                     1 file changed, 6 insertions(+)
                                    
                                    diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html
                                    index 4522d860a4..b150f99d62 100644
                                    --- a/Documentation/NuttX.html
                                    +++ b/Documentation/NuttX.html
                                    @@ -1983,6 +1983,12 @@ buildroot-1.8 2009-12-21 <spudmonkey@racsa.co.cr>
                                     
                                       nuttx-5.15 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                                       
                                      +	* net/uip/uip_tcpaddsend.c and net/send.c -- Another place where the TCP sequence
                                      +	  number problem "fixed" in 5.14 might occur.
                                      +	* net/send.c -- Check if the destination IP address is in the ARP table.  If
                                      +	  not, then don't consider the packet sent.  It won't be, an ARP packet will go
                                      +	  out instead.
                                      +
                                       pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                                       
                                       buildroot-1.9 2010-xx-xx 
                                      
                                      From 88fb2e458531294033060a0cbd00f4e3095332a2 Mon Sep 17 00:00:00 2001
                                      From: patacongo 
                                      Date: Sun, 28 Nov 2010 14:13:58 +0000
                                      Subject: [PATCH 0679/1518] nettest now uses only 8Kb for packet buffers
                                      
                                      git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3143 42af7a65-404d-4744-a932-0658087f49c3
                                      ---
                                       Documentation/NuttX.html | 8 +++++++-
                                       1 file changed, 7 insertions(+), 1 deletion(-)
                                      
                                      diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html
                                      index b150f99d62..9709a8fd84 100644
                                      --- a/Documentation/NuttX.html
                                      +++ b/Documentation/NuttX.html
                                      @@ -8,7 +8,7 @@
                                         
                                           
                                             

                                      NuttX RTOS

                                      -

                                      Last Updated: November 27, 2010

                                      +

                                      Last Updated: November 28, 2010

                                      @@ -1988,6 +1988,12 @@ nuttx-5.15 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> * net/send.c -- Check if the destination IP address is in the ARP table. If not, then don't consider the packet sent. It won't be, an ARP packet will go out instead. + * arch/arm/src/lpc17xx/lpc17_emacram.h and lpc17_allocateheap.c -- The Ethernet + logic was using all of AHB SRAM Bank0 for Ethernet packet buffers (16Kb). An + option was added to limit the amount of SRAM used for packet buffering and to + re-use any extra Bank0 memory for heap. configs/olimex-lpc1766stk/nettest + now uses only 8Kb at the beginning of Bank0; the 8Kb at the end of Bank0 is + included in the heap pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From 3c21e38080217ca1866a4c4a31bf7f7a11ebcebf Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 28 Nov 2010 17:26:08 +0000 Subject: [PATCH 0680/1518] Enable network and SD/MMC card support git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3145 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 122 ++++++++++++++++++++------------------- 1 file changed, 63 insertions(+), 59 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 9709a8fd84..25797e2a01 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -785,30 +785,30 @@ This release includes multiple, important bugfixes as well as a new driver for the NXP LPC1766. Important bugfixes include:
                                        -
                                      • - Cortex-M3 Hard Fault. - Fixed a hard fault problem that can occur if certaintypes of interrupts are pending at the time another interrupt returns. - This problem has only been observed on the LPC1766 (returning from a SYSTICK interrupt with a pending Ethernet interrupt). - However, it is assumed that all Cortex-M3 ports could have this as a latent bug. +
                                      • + Cortex-M3 Hard Fault. + Fixed a hard fault problem that can occur if certaintypes of interrupts are pending at the time another interrupt returns. + This problem has only been observed on the LPC1766 (returning from a SYSTICK interrupt with a pending Ethernet interrupt). + However, it is assumed that all Cortex-M3 ports could have this as a latent bug.
                                      • -
                                      • - TCP/IP Sequence Number Bug. - Corrected errors some important logic in the way that sequence numbers are managed when send() sends out packets before a previous packet has been acknowledged. - Some of that send() logic was incompatible with logicin the uIP layer. - Errors seen include: - (1) The final final packet in a sequence of packets might be too large! - In the THTTPD example, this might leave some garbage at the bottom of the display. - Or (2) send() might hang with outstanding, unacknowledged data (and with no re-transmission requests). - This was due to differences in sequence number handling in send() and in uip_tcpinput.c; - uip_tcpinput.c thought (incorrectly) that all of the bytes were acknowledged; - send.c knew that they were not. +
                                      • + TCP/IP Sequence Number Bug. + Corrected errors some important logic in the way that sequence numbers are managed when send() sends out packets before a previous packet has been acknowledged. + Some of that send() logic was incompatible with logicin the uIP layer. + Errors seen include: + (1) The final final packet in a sequence of packets might be too large! + In the THTTPD example, this might leave some garbage at the bottom of the display. + Or (2) send() might hang with outstanding, unacknowledged data (and with no re-transmission requests). + This was due to differences in sequence number handling in send() and in uip_tcpinput.c; + uip_tcpinput.c thought (incorrectly) that all of the bytes were acknowledged; + send.c knew that they were not. +
                                      • +
                                      • + One-Shot POSIX Timer Bug. + Fixed an error in set-up of a one-shot POSIX timer. + It was using the repititive timer value (which is zero in the one-shot case), always resulting in a 10Ms timer! + Found and fixed by Wilton Tong.
                                      • -
                                      • - One-Shot POSIX Timer Bug. - Fixed an error in set-up of a one-shot POSIX timer. - It was using the repititive timer value (which is zero in the one-shot case), always resulting in a 10Ms timer! - Found and fixed by Wilton Tong. -

                                      @@ -1926,32 +1926,32 @@ Other memory:

                                         5.14 2010-11-27 Gregory Nutt 
                                         
                                        -	* configs/olimex-lpc1766stk/nettest - Add examples/nettest configuration to
                                        -	  verify the LPC17xx ethernet driver currently under development.
                                        -	* arch/arm/src/lpc17xx/lpc17xx_ethernet.c/.h - Began development of
                                        -	  the LPC17xx Ethernet driver.  Driver in CVS functional after 2010-11-23.
                                        -	* sched/timer_settime.c - Fix an error in set-up of a one-shot POSIX timer.  It
                                        -	  was using the repititive timer value (which is zero in the one-shot case),
                                        -	  always resulting in a 10Ms timer!  Found and fixed by Wilton Tong.
                                        -	* arch/arm/src/lpc17xx/lpc17_vector.S, stm32/stm32_vector.S, lm3s/lm3s_vector.S,
                                        -	  sam3u/sam3u_vector.S -- Fixed a hard fault problem that can occur if certain
                                        -	  types of interrupts are pending at the time another interrupt returns
                                        -	  (SYSTICK).  This has not been verified on all plaforms, but is a critical
                                        -	  fixed that is needed by all Cortex-M3 NuttX users.
                                        -	* configs/olimex-lpc1766stk/thttpd - Add a THTTPD configuration for the
                                        -	  Olimex LPC2766-STK board. Verified successfully.
                                        -	* net/uip/uip_tcpappsend.c - Correct an important logic bug in some uIP state
                                        -	  data the is used to manage retransmissions.  The uIP logic was incompatible
                                        -	  with the retransmission logic of net/send.c in one place.  The final error
                                        -	  was that the final packet in a sequence of packets was too large!  In the
                                        -	  THTTPD example, this would leave some garbage at the bottom of the display
                                        -	  (or worse).  I don't know why I haven't see this bug before???
                                        -	* net/uip/uip_tcpinput.c -- The change to uip_tcpappsend.c unmasked an
                                        -	  additional error in the TCP sequence number handling.  This sympom was that
                                        -	  the send() function would hang with outstanding, unacknowledged data (with
                                        -	  no re-transmit requests).  The was due to differences in sequence number
                                        -	  handling in send() and in uip_tcpinput.c; uip_tcpinput.c thought (incorrectly)
                                        -	  that all of the bytes were acknowledged; send.c knew that they were not.
                                        +    * configs/olimex-lpc1766stk/nettest - Add examples/nettest configuration to
                                        +      verify the LPC17xx ethernet driver currently under development.
                                        +    * arch/arm/src/lpc17xx/lpc17xx_ethernet.c/.h - Began development of
                                        +      the LPC17xx Ethernet driver.  Driver in CVS functional after 2010-11-23.
                                        +    * sched/timer_settime.c - Fix an error in set-up of a one-shot POSIX timer.  It
                                        +      was using the repititive timer value (which is zero in the one-shot case),
                                        +      always resulting in a 10Ms timer!  Found and fixed by Wilton Tong.
                                        +    * arch/arm/src/lpc17xx/lpc17_vector.S, stm32/stm32_vector.S, lm3s/lm3s_vector.S,
                                        +      sam3u/sam3u_vector.S -- Fixed a hard fault problem that can occur if certain
                                        +      types of interrupts are pending at the time another interrupt returns
                                        +      (SYSTICK).  This has not been verified on all plaforms, but is a critical
                                        +      fixed that is needed by all Cortex-M3 NuttX users.
                                        +    * configs/olimex-lpc1766stk/thttpd - Add a THTTPD configuration for the
                                        +      Olimex LPC2766-STK board. Verified successfully.
                                        +    * net/uip/uip_tcpappsend.c - Correct an important logic bug in some uIP state
                                        +      data the is used to manage retransmissions.  The uIP logic was incompatible
                                        +      with the retransmission logic of net/send.c in one place.  The final error
                                        +      was that the final packet in a sequence of packets was too large!  In the
                                        +      THTTPD example, this would leave some garbage at the bottom of the display
                                        +      (or worse).  I don't know why I haven't see this bug before???
                                        +    * net/uip/uip_tcpinput.c -- The change to uip_tcpappsend.c unmasked an
                                        +      additional error in the TCP sequence number handling.  This sympom was that
                                        +      the send() function would hang with outstanding, unacknowledged data (with
                                        +      no re-transmit requests).  The was due to differences in sequence number
                                        +      handling in send() and in uip_tcpinput.c; uip_tcpinput.c thought (incorrectly)
                                        +      that all of the bytes were acknowledged; send.c knew that they were not.
                                         
                                         pascal-2.0 2009-12-21 Gregory Nutt <spudmonkey@racsa.co.cr>
                                         
                                        @@ -1983,17 +1983,21 @@ buildroot-1.8 2009-12-21 <spudmonkey@racsa.co.cr>
                                         
                                           nuttx-5.15 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                                           
                                          -	* net/uip/uip_tcpaddsend.c and net/send.c -- Another place where the TCP sequence
                                          -	  number problem "fixed" in 5.14 might occur.
                                          -	* net/send.c -- Check if the destination IP address is in the ARP table.  If
                                          -	  not, then don't consider the packet sent.  It won't be, an ARP packet will go
                                          -	  out instead.
                                          -	* arch/arm/src/lpc17xx/lpc17_emacram.h and lpc17_allocateheap.c -- The Ethernet
                                          -	  logic was using all of AHB SRAM Bank0 for Ethernet packet buffers (16Kb).  An
                                          -	  option was added to limit the amount of SRAM used for packet buffering and to
                                          -	  re-use any extra Bank0 memory for heap.  configs/olimex-lpc1766stk/nettest
                                          -	  now uses only 8Kb at the beginning of Bank0; the 8Kb at the end of Bank0 is
                                          -	  included in the heap
                                          +    * net/uip/uip_tcpaddsend.c and net/send.c -- Another place where the TCP sequence
                                          +      number problem "fixed" in 5.14 might occur.
                                          +    * net/send.c -- Check if the destination IP address is in the ARP table.  If
                                          +      not, then don't consider the packet sent.  It won't be, an ARP packet will go
                                          +      out instead.
                                          +    * arch/arm/src/lpc17xx/lpc17_emacram.h and lpc17_allocateheap.c -- The Ethernet
                                          +      logic was using all of AHB SRAM Bank0 for Ethernet packet buffers (16Kb).  An
                                          +      option was added to limit the amount of SRAM used for packet buffering and to
                                          +      re-use any extra Bank0 memory for heap.  configs/olimex-lpc1766stk/nettest
                                          +      now uses only 8Kb at the beginning of Bank0; the 8Kb at the end of Bank0 is
                                          +      included in the heap
                                          +    * arch/arm/src/lpc17xx/lpc17_ssp.c -- Fix compilation errors when SSP1 is
                                          +      selected.
                                          +    * configs/olimex-lpc1766stk/nsh -- Enable network and SD/MMC card support in
                                          +      NSH (not verified on initial check-in)
                                           
                                           pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                                           
                                          
                                          From 62a318118e3235bff023a3443ced8d96374d9828 Mon Sep 17 00:00:00 2001
                                          From: patacongo 
                                          Date: Tue, 30 Nov 2010 01:55:22 +0000
                                          Subject: [PATCH 0681/1518] Debuggin SPI-based MicroSD card
                                          
                                          git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3147 42af7a65-404d-4744-a932-0658087f49c3
                                          ---
                                           Documentation/NuttX.html | 8 ++++++--
                                           1 file changed, 6 insertions(+), 2 deletions(-)
                                          
                                          diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html
                                          index 25797e2a01..beb581b9e9 100644
                                          --- a/Documentation/NuttX.html
                                          +++ b/Documentation/NuttX.html
                                          @@ -8,7 +8,7 @@
                                             
                                               
                                                 

                                          NuttX RTOS

                                          -

                                          Last Updated: November 28, 2010

                                          +

                                          Last Updated: November 29, 2010

                                          @@ -1997,7 +1997,11 @@ nuttx-5.15 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> * arch/arm/src/lpc17xx/lpc17_ssp.c -- Fix compilation errors when SSP1 is selected. * configs/olimex-lpc1766stk/nsh -- Enable network and SD/MMC card support in - NSH (not verified on initial check-in) + NSH. Networking and telnetd interface functional. Still testing SPI-based + SD/MMC. + * examples/nsh/nsh_netinit.c -- Fix NSH bug. If CONFIG_NET is selected, but + CONFIG_EXAMPLES_NSH_TELNETD is not selected, then the network is never + initialized and bad things happen if you try to ping. pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From a7e484cbbd3e9d905c3cedd866b27ca0538ecdce Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 4 Dec 2010 01:56:50 +0000 Subject: [PATCH 0682/1518] P14201 driver now uses new SPI cmddata method git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3158 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NXGraphicsSubsystem.html | 4 ++-- Documentation/NuttX.html | 19 ++++++++++++++----- Documentation/NuttxPortingGuide.html | 2 +- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/Documentation/NXGraphicsSubsystem.html b/Documentation/NXGraphicsSubsystem.html index c128c220ad..ac67c9614a 100644 --- a/Documentation/NXGraphicsSubsystem.html +++ b/Documentation/NXGraphicsSubsystem.html @@ -265,7 +265,7 @@
                                        • Any LCD-like device than can accept raster line runs through a parallel or serial interface - (see include/nuttx/lcd.h). + (see include/nuttx/lcd/lcd.h). By default, NX is configured to use the frame buffer driver unless CONFIG_NX_LCDDRIVER is defined =y in your NuttX configuration file.
                                        @@ -2616,7 +2616,7 @@ int nxf_convert_32bpp(FAR uint32_t *dest, uint16_t height, to know if the pixels pack from the MS to LS or from LS to MS
                                        CONFIG_NX_LCDDRIVER:
                                        By default, NX builds to use a framebuffer driver (see include/nuttx/fb.h). - If this option is defined, NX will build to use an LCD driver (see include/nuttx/lcd.h). + If this option is defined, NX will build to use an LCD driver (see include/nuttx/lcd/lcd.h).
          diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index beb581b9e9..3a946b5d29 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

          NuttX RTOS

          -

          Last Updated: November 29, 2010

          +

          Last Updated: December 3, 2010

          @@ -1997,11 +1997,20 @@ nuttx-5.15 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> * arch/arm/src/lpc17xx/lpc17_ssp.c -- Fix compilation errors when SSP1 is selected. * configs/olimex-lpc1766stk/nsh -- Enable network and SD/MMC card support in - NSH. Networking and telnetd interface functional. Still testing SPI-based - SD/MMC. - * examples/nsh/nsh_netinit.c -- Fix NSH bug. If CONFIG_NET is selected, but - CONFIG_EXAMPLES_NSH_TELNETD is not selected, then the network is never + NSH. Networking and telnetd interface functional. Still testing SPI-based + SD/MMC. + * examples/nsh/nsh_netinit.c -- Fix NSH bug. If CONFIG_NET is selected, but + CONFIG_EXAMPLES_NSH_TELNETD is not selected, then the network is never initialized and bad things happen if you try to ping. + * drivers/lcd -- Add header files for the Phillips PCF8833 LCD controller and + for the Epson S1D15G10 LCD controller. A driver for the Nokia 6100 LCD is + coming. + * include/nuttx/spi.h and almost all other SPI files -- Added an optional + cmddata() method to the SPI interface. Some devices require and additional + out-of-band bit to specify if the next word sent to the device is a command + or data. This is typical, for example, in "9-bit" displays where the 9th bit + is the CMD/DATA bit. The cmddata method provides selection of command or data. + * drivers/lcd/p14201.c -- Now used the cmddata() method of the SPI interface. pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 9cf518cb52..7e35682251 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -3186,7 +3186,7 @@ build
        • CONFIG_NX_LCDDRIVER: By default, NX builds to use a framebuffer driver (see include/nuttx/fb.h). - If this option is defined, NX will build to use an LCD driver (see include/nuttx/lcd.h). + If this option is defined, NX will build to use an LCD driver (see include/nuttx/lcd/lcd.h).
        • CONFIG_LCD_MAXPOWER: From d7780dba2973d40942230021c330b0fec1c92543 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 4 Dec 2010 17:35:19 +0000 Subject: [PATCH 0683/1518] USB class drivers need to call DEV_CONNECT git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3159 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 3a946b5d29..87fe3c11d3 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

          NuttX RTOS

          -

          Last Updated: December 3, 2010

          +

          Last Updated: December 4, 2010

          @@ -2011,6 +2011,10 @@ nuttx-5.15 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> or data. This is typical, for example, in "9-bit" displays where the 9th bit is the CMD/DATA bit. The cmddata method provides selection of command or data. * drivers/lcd/p14201.c -- Now used the cmddata() method of the SPI interface. + * arch/arm/src/lpc17xx/lpc17_usbdev.c -- LPC17xx USB driver is not functional. + * drivers/usbdev/usbserial.c and usbstorage.c -- All USB class drivers need + to call DEV_CONNECT() when they are ready to be enumerated. That is, + (1) initially when bound to the USB driver, and (2) after a USB reset. pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From 7b8f5e79b52ab5c4ced2b5a65781e4b76dac2150 Mon Sep 17 00:00:00 2001 From: patacongo Date: Mon, 6 Dec 2010 05:15:14 +0000 Subject: [PATCH 0684/1518] Add NX configuration git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3165 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 14 ++++++--- Documentation/NuttxPortingGuide.html | 44 +++++++++++++++++++++++++++- 2 files changed, 53 insertions(+), 5 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 87fe3c11d3..a8b3c810d2 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1287,8 +1287,9 @@ Verified configurations are now available for the NuttX OS test, for the NuttShell (NSH, see the NSH User Guide), for the NuttX network test, and for the THTTPD webserver. - (Additional USB configurations are in the release as well, but those have not yet been verified). - Goals for NuttX-5.15 (and beyond) include: (1) Verified USB support, (2) SD card support, and (3) LCD support. + Additional drivers for USB device and MicroSD has also be added and verified are available in CVS; + A driver for the Nokia 6100 LCD has been added and is under test now. + All are expected to be released in NuttX-5.15.

          Development Environments: @@ -2010,11 +2011,16 @@ nuttx-5.15 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> out-of-band bit to specify if the next word sent to the device is a command or data. This is typical, for example, in "9-bit" displays where the 9th bit is the CMD/DATA bit. The cmddata method provides selection of command or data. - * drivers/lcd/p14201.c -- Now used the cmddata() method of the SPI interface. - * arch/arm/src/lpc17xx/lpc17_usbdev.c -- LPC17xx USB driver is not functional. + * drivers/lcd/p14201.c -- Now uses the cmddata() method of the SPI interface. + * arch/arm/src/lpc17xx/lpc17_usbdev.c -- LPC17xx USB driver now appears to + to be fully functional. examples/usbstorage configuration verified (the + examples/usbserial configuration is untested). * drivers/usbdev/usbserial.c and usbstorage.c -- All USB class drivers need to call DEV_CONNECT() when they are ready to be enumerated. That is, (1) initially when bound to the USB driver, and (2) after a USB reset. + * drivers/lcd/nokia6100.c -- A driver for the Nokia 6100 LCD. + * configs/olimex-lpc1766stk/nx -- A NX graphics configuration for the Olimex + LPC1766-STK board using the Nokia 6100 LCD driver. pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 7e35682251..be85f66b93 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

          NuttX RTOS Porting Guide

          -

          Last Updated: September 11, 2010

          +

          Last Updated: December 4, 2010

          @@ -2814,6 +2814,48 @@ build
        +

        Nokia 6100 Configuration Settings:

        +
          +
        • + CONFIG_NOKIA6100_SPIMODE: Controls the SPI mode, +
        • +
        • + CONFIG_NOKIA6100_FREQUENCY: Define to use a different bus frequency. +
        • +
        • + CONFIG_NOKIA6100_NINTERFACES:Specifies the number of physical Nokia + 6100 devices that will be supported. +
        • +
        • + CONFIG_NOKIA6100_BPP: Device supports 8, 12, and 16 bits per pixel. +
        • +
        • + CONFIG_NOKIA6100_S1D15G10: Selects the Epson S1D15G10 display controller +
        • +
        • + CONFIG_NOKIA6100_PCF8833: Selects the Phillips PCF8833 display controller +
        • +
        • + CONFIG_NOKIA6100_BLINIT: Initial backlight setting +
        • +

          + Required LCD driver settings: +

          +
        • + CONFIG_LCD_NOKIA6100: Enable Nokia 6100 support +
        • +
        • + CONFIG_LCD_MAXCONTRAST: Must be 63 with the Epson controller and 127 with + the Phillips controller. +
        • +
        • + CONFIG_LCD_MAXPOWER:Maximum value of backlight setting. The backlight + control is managed outside of the 6100 driver so this value has no + meaning to the driver. Board-specific logic may place restrictions on + this value. +
        • +
        +

        ENC28J60 Ethernet Driver Configuration Settings

        • From 4234f96d0aa65061e60d274f4c030a978f0462a9 Mon Sep 17 00:00:00 2001 From: patacongo Date: Tue, 7 Dec 2010 03:06:19 +0000 Subject: [PATCH 0685/1518] LCD bug fixes git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3166 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 9 ++++++--- Documentation/NuttxPortingGuide.html | 21 +++++++++++++++++++++ 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index a8b3c810d2..b6427e0d5d 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

          NuttX RTOS

          -

          Last Updated: December 4, 2010

          +

          Last Updated: December 6, 2010

          @@ -1276,10 +1276,11 @@ The NSH configuration support the Nucleus2G's microSD slot and additional configurations are available to exercise the the USB serial and USB mass storage devices. However, due to some technical reasons, neither the SPI nor the USB device drivers are fully verified. - (Although it has been reported to me that the SPI microSD is functional on other platforms). + (Although they have since been verfiied on other platforms; this needs to be revisited on the Nucleus2G).

          Support for the mbed board was contributed by Dave Marples and released in NuttX-5.11. + This port includes a NuttX OS test configuration(see examples/ostest).

          Support for that Olimex-LPC1766-STK board was added to NuttX 5.13. @@ -1287,7 +1288,7 @@ Verified configurations are now available for the NuttX OS test, for the NuttShell (NSH, see the NSH User Guide), for the NuttX network test, and for the THTTPD webserver. - Additional drivers for USB device and MicroSD has also be added and verified are available in CVS; + Additional drivers for USB device and MicroSD have also be added and have been verified and are available in CVS; A driver for the Nokia 6100 LCD has been added and is under test now. All are expected to be released in NuttX-5.15.

          @@ -2021,6 +2022,8 @@ nuttx-5.15 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> * drivers/lcd/nokia6100.c -- A driver for the Nokia 6100 LCD. * configs/olimex-lpc1766stk/nx -- A NX graphics configuration for the Olimex LPC1766-STK board using the Nokia 6100 LCD driver. + * include/nuttx/spi.h -- the SPI_SETBITS macro was calling the setmode method. + This is a very important bug-fix in some usages. pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index be85f66b93..2755078fef 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -2838,6 +2838,27 @@ build
        • CONFIG_NOKIA6100_BLINIT: Initial backlight setting
        • +

          + The following may need to be tuned for your hardware: +

          +
        • + CONFIG_NOKIA6100_INVERT: Display inversion, 0 or 1, Default: 1 +
        • +
        • + CONFIG_NOKIA6100_MY: Display row direction, 0 or 1, Default: 0 +
        • +
        • + CONFIG_NOKIA6100_MX: Display column direction, 0 or 1, Default: 1 +
        • +
        • + CONFIG_NOKIA6100_V: Display address direction, 0 or 1, Default: 0 +
        • +
        • + CONFIG_NOKIA6100_ML: Display scan direction, 0 or 1, Default: 0 +
        • +
        • + CONFIG_NOKIA6100_RGBORD: Display RGB order, 0 or 1, Default: 0 +
        • Required LCD driver settings:

          From 7b0f5202100be22c944466488f6e59207145d8af Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 12 Dec 2010 14:11:57 +0000 Subject: [PATCH 0686/1518] Prep for 5.15 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3169 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 222 ++++++++++++++++++--------------------- 1 file changed, 105 insertions(+), 117 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index b6427e0d5d..ac1c486e8a 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

          NuttX RTOS

          -

          Last Updated: December 6, 2010

          +

          Last Updated: December 12, 2010

          @@ -772,57 +772,63 @@ -

          nuttx-5.14 Release Notes: +

          nuttx-5.15 Release Notes:

          - This 61st release of NuttX, Version 5.14, was made on November 27, 2010 and is available for download from the + This 62nd release of NuttX, Version 5.15, was made on December12, 2010 and is available for download from the SourceForge website. The change log associated with the release is available here. Unreleased changes after this release are available in CVS. These unreleased changes are listed here.

          - This release includes multiple, important bugfixes as well as a new driver for the NXP LPC1766. - Important bugfixes include: + This release includes several bugfixes as well as feature enhancements, primarily for the Olimex LPC1766-STK board. + Important bugfxes included:

          • - Cortex-M3 Hard Fault. - Fixed a hard fault problem that can occur if certaintypes of interrupts are pending at the time another interrupt returns. - This problem has only been observed on the LPC1766 (returning from a SYSTICK interrupt with a pending Ethernet interrupt). - However, it is assumed that all Cortex-M3 ports could have this as a latent bug. -
          • -
          • - TCP/IP Sequence Number Bug. - Corrected errors some important logic in the way that sequence numbers are managed when send() sends out packets before a previous packet has been acknowledged. - Some of that send() logic was incompatible with logicin the uIP layer. - Errors seen include: - (1) The final final packet in a sequence of packets might be too large! - In the THTTPD example, this might leave some garbage at the bottom of the display. - Or (2) send() might hang with outstanding, unacknowledged data (and with no re-transmission requests). - This was due to differences in sequence number handling in send() and in uip_tcpinput.c; - uip_tcpinput.c thought (incorrectly) that all of the bytes were acknowledged; - send.c knew that they were not. -
          • -
          • - One-Shot POSIX Timer Bug. - Fixed an error in set-up of a one-shot POSIX timer. - It was using the repititive timer value (which is zero in the one-shot case), always resulting in a 10Ms timer! - Found and fixed by Wilton Tong. -
          • + Additional fixes needed with the TCP sequence number problem "fixed" in nuttx-5.14. + +
          • + In the send() logic, now checks if the destination IP address is in the ARP table before sending the packet; + an ARP request will go out instead of the TCP packet. + This improves behavior, for example, on the first on the first GET request from a browser +
          • +
          • + All USB class drivers need to call DEV_CONNECT() when they are ready to be enumerated. + That is, (1) initially when bound to the USB driver, and (2) after a USB reset. +
          • +
          • + The SPI_SETBITS macro was calling the SPI setmode method. +
          • +
          • + And several other bug fixes of lower criticality (see the ChangeLog for details). +

          - Additional support has been included for the Olimex-LPC1766. - Support for that board was added to NuttX 5.13. - This release extends that support with an Ethernet driver. - Verified configurations are now available for the NuttX OS test, - for the NuttShell (NSH, see the NSH User Guide), - for the NuttX network test, and for the THTTPD webserver. - (Additional USB configurations are in the release as well, but those have not yet been verified). - Goals for NuttX-5.15 (and beyond) include: (1) Verified USB support, (2) SD card support, and (3) LCD support. -

          -

          - Additional changes and bugfixes as detailed in the ChangeLog. + And feature enhancements: +

            +
          • + The LPC176x Ethernet driver was using all of AHB SRAM Bank0 for Ethernet packet buffers (16Kb). + An option was added to limit the amount of SRAM used for packet buffering and to re-use any extra Bank0 memory for heap. +
          • +
          • + Enabled networking and SD/MMC card support in the Olimex LPC1766-STK NuttShell (NSH) configuration. +
          • +
          • + The LPC176x USB driver is now fully fully functional. +
          • +
          • + Added an optional cmddata() method to the SPI interface. + Some devices require an additional out-of-band bit to specify if the next word sent to the device is a command or data. + The cmddata() method provides selection of command or data. +
          • +
          • + A driver for the Nokia 6100 LCD (with either the Phillips PCF8833 LCD controller and for the Epson S1D15G10 LCD controller) + and an NX graphics configuration for the Olimex LPC1766-STK have been added. + However, neither the LCD driver nor the NX configuration have been verified as of the this release. +
          • +

          @@ -1266,31 +1272,37 @@

            STATUS: - Some initial files for the LPC17xx family were released in NuttX 5.6, but the first +

            +

            + Nucleus2G LPC1768. + Some initial files for the LPC17xx family were released in NuttX 5.6, but the first functional release for the NXP LPC1768/Nucleus2G occured with NuttX 5.7 with some additional enhancements through NuttX-5.9. - That initial, 5.6, basic release included timer interrupts and a serial console and was + That initial, 5.6, basic release included timer interrupts and a serial console and was verified using the NuttX OS test (examples/ostest). Configurations available include include a verified NuttShell (NSH) configuration (see the NSH User Guide). - The NSH configuration support the Nucleus2G's microSD slot and additional configurations + The NSH configuration supports the Nucleus2G's microSD slot and additional configurations are available to exercise the the USB serial and USB mass storage devices. However, due to some technical reasons, neither the SPI nor the USB device drivers are fully verified. (Although they have since been verfiied on other platforms; this needs to be revisited on the Nucleus2G).

            + mbed LPC1768. Support for the mbed board was contributed by Dave Marples and released in NuttX-5.11. - This port includes a NuttX OS test configuration(see examples/ostest). + This port includes a NuttX OS test configuration (see examples/ostest).

            + Olimex LPC1766-STK. Support for that Olimex-LPC1766-STK board was added to NuttX 5.13. - The NuttX-5.14 release extended that support with an Ethernet driver. + The NuttX-5.14 release extended that support with an Ethernet driver. + And the NuttX-5.15 release further extended the support with a functional USB driver and SPI-based micro-SD. Verified configurations are now available for the NuttX OS test, - for the NuttShell (NSH, see the NSH User Guide), - for the NuttX network test, and for the THTTPD webserver. - Additional drivers for USB device and MicroSD have also be added and have been verified and are available in CVS; - A driver for the Nokia 6100 LCD has been added and is under test now. - All are expected to be released in NuttX-5.15. + for the NuttShell with networking and microSD support(NSH, see the NSH User Guide), + for the NuttX network test, for the THTTPD webserver, + and for USB serial and USB storage examples. + A driver for the Nokia 6100 LCD and an NX graphics configuration for the Olimex LPC1766-STK have been added. + However, neither the LCD driver nor the NX configuration have been verified as of the the NuttX-5.15 release.

            Development Environments: @@ -1926,34 +1938,50 @@ Other memory:

            -5.14 2010-11-27 Gregory Nutt 
            +5.15 2010-12-12 Gregory Nutt <spudmonkey@racsa.co.cr>
             
            -    * configs/olimex-lpc1766stk/nettest - Add examples/nettest configuration to
            -      verify the LPC17xx ethernet driver currently under development.
            -    * arch/arm/src/lpc17xx/lpc17xx_ethernet.c/.h - Began development of
            -      the LPC17xx Ethernet driver.  Driver in CVS functional after 2010-11-23.
            -    * sched/timer_settime.c - Fix an error in set-up of a one-shot POSIX timer.  It
            -      was using the repititive timer value (which is zero in the one-shot case),
            -      always resulting in a 10Ms timer!  Found and fixed by Wilton Tong.
            -    * arch/arm/src/lpc17xx/lpc17_vector.S, stm32/stm32_vector.S, lm3s/lm3s_vector.S,
            -      sam3u/sam3u_vector.S -- Fixed a hard fault problem that can occur if certain
            -      types of interrupts are pending at the time another interrupt returns
            -      (SYSTICK).  This has not been verified on all plaforms, but is a critical
            -      fixed that is needed by all Cortex-M3 NuttX users.
            -    * configs/olimex-lpc1766stk/thttpd - Add a THTTPD configuration for the
            -      Olimex LPC2766-STK board. Verified successfully.
            -    * net/uip/uip_tcpappsend.c - Correct an important logic bug in some uIP state
            -      data the is used to manage retransmissions.  The uIP logic was incompatible
            -      with the retransmission logic of net/send.c in one place.  The final error
            -      was that the final packet in a sequence of packets was too large!  In the
            -      THTTPD example, this would leave some garbage at the bottom of the display
            -      (or worse).  I don't know why I haven't see this bug before???
            -    * net/uip/uip_tcpinput.c -- The change to uip_tcpappsend.c unmasked an
            -      additional error in the TCP sequence number handling.  This sympom was that
            -      the send() function would hang with outstanding, unacknowledged data (with
            -      no re-transmit requests).  The was due to differences in sequence number
            -      handling in send() and in uip_tcpinput.c; uip_tcpinput.c thought (incorrectly)
            -      that all of the bytes were acknowledged; send.c knew that they were not.
            +	* net/uip/uip_tcpaddsend.c and net/send.c -- Another place where the TCP sequence
            +	  number problem "fixed" in 5.14 might occur.
            +	* net/send.c -- Check if the destination IP address is in the ARP table.  If
            +	  not, then don't consider the packet sent.  It won't be, an ARP packet will go
            +	  out instead.  This improves behavior, for example, on the first GET request
            +	  from a browser.
            +	* arch/arm/src/lpc17xx/lpc17_emacram.h and lpc17_allocateheap.c -- The Ethernet
            +	  logic was using all of AHB SRAM Bank0 for Ethernet packet buffers (16Kb).  An
            +	  option was added to limit the amount of SRAM used for packet buffering and to
            +	  re-use any extra Bank0 memory for heap.  configs/olimex-lpc1766stk/nettest
            +	  now uses only 8Kb at the beginning of Bank0; the 8Kb at the end of Bank0 is
            +	  included in the heap
            +	* arch/arm/src/lpc17xx/lpc17_ssp.c -- Fix compilation errors when SSP1 is
            +	  selected.
            +	* configs/olimex-lpc1766stk/nsh -- Enable network and SD/MMC card support in
            +	  NSH.  Networking and telnetd interface as well as SPI-based microSD are
            +	  now functional.
            +	* examples/nsh/nsh_netinit.c -- Fix NSH bug.  If CONFIG_NET is selected, but
            +	  CONFIG_EXAMPLES_NSH_TELNETD is not selected, then the network is never
            +	  initialized and bad things happen if you try to ping.
            +	* drivers/lcd -- Add header files for the Phillips PCF8833 LCD controller and
            +	  for the Epson S1D15G10 LCD controller.  A driver for the Nokia 6100 LCD is
            +	  coming.
            +	* include/nuttx/spi.h and almost all other SPI files -- Added an optional
            +	  cmddata() method to the SPI interface.  Some devices require an additional
            +	  out-of-band bit to specify if the next word sent to the device is a command
            +	  or data. This is typical, for example, in "9-bit" displays where the 9th bit
            +	  is the CMD/DATA bit. The cmddata method provides selection of command or data.
            +	* drivers/lcd/p14201.c -- Now uses the cmddata() method of the SPI interface.
            +	* arch/arm/src/lpc17xx/lpc17_usbdev.c -- LPC17xx USB driver now appears to
            +	  to be fully functional.  examples/usbstorage configuration verified (the
            +	  examples/usbserial configuration is untested).
            +	* drivers/usbdev/usbserial.c and usbstorage.c -- All USB class drivers need
            +	  to call DEV_CONNECT() when they are ready to be enumerated.  That is,
            +	  (1) initially when bound to the USB driver, and (2) after a USB reset.
            +	* drivers/lcd/nokia6100.c -- A driver for the Nokia 6100 LCD.  This driver
            +	  has not be verified as of the initial check-in.
            +	* configs/olimex-lpc1766stk/nx -- A NX graphics configuration for the Olimex
            +	  LPC1766-STK board using the Nokia 6100 LCD driver.  This configuration has
            +	  not been verified as of the initial check-in.
            +	* include/nuttx/spi.h -- the SPI_SETBITS macro was calling the setmode method.
            +	  This is a very important bug-fix in some usages.
             
             pascal-2.0 2009-12-21 Gregory Nutt <spudmonkey@racsa.co.cr>
             
            @@ -1983,47 +2011,7 @@ buildroot-1.8 2009-12-21 <spudmonkey@racsa.co.cr>
             
             
             
              -nuttx-5.15 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
              -
              -    * net/uip/uip_tcpaddsend.c and net/send.c -- Another place where the TCP sequence
              -      number problem "fixed" in 5.14 might occur.
              -    * net/send.c -- Check if the destination IP address is in the ARP table.  If
              -      not, then don't consider the packet sent.  It won't be, an ARP packet will go
              -      out instead.
              -    * arch/arm/src/lpc17xx/lpc17_emacram.h and lpc17_allocateheap.c -- The Ethernet
              -      logic was using all of AHB SRAM Bank0 for Ethernet packet buffers (16Kb).  An
              -      option was added to limit the amount of SRAM used for packet buffering and to
              -      re-use any extra Bank0 memory for heap.  configs/olimex-lpc1766stk/nettest
              -      now uses only 8Kb at the beginning of Bank0; the 8Kb at the end of Bank0 is
              -      included in the heap
              -    * arch/arm/src/lpc17xx/lpc17_ssp.c -- Fix compilation errors when SSP1 is
              -      selected.
              -    * configs/olimex-lpc1766stk/nsh -- Enable network and SD/MMC card support in
              -      NSH.  Networking and telnetd interface functional.  Still testing SPI-based
              -      SD/MMC.
              -    * examples/nsh/nsh_netinit.c -- Fix NSH bug.  If CONFIG_NET is selected, but
              -      CONFIG_EXAMPLES_NSH_TELNETD is not selected, then the network is never
              -      initialized and bad things happen if you try to ping.
              -    * drivers/lcd -- Add header files for the Phillips PCF8833 LCD controller and
              -      for the Epson S1D15G10 LCD controller.  A driver for the Nokia 6100 LCD is
              -      coming.
              -    * include/nuttx/spi.h and almost all other SPI files -- Added an optional
              -      cmddata() method to the SPI interface.  Some devices require and additional
              -      out-of-band bit to specify if the next word sent to the device is a command
              -      or data. This is typical, for example, in "9-bit" displays where the 9th bit
              -      is the CMD/DATA bit. The cmddata method provides selection of command or data.
              -	* drivers/lcd/p14201.c -- Now uses the cmddata() method of the SPI interface.
              -	* arch/arm/src/lpc17xx/lpc17_usbdev.c -- LPC17xx USB driver now appears to
              -	  to be fully functional.  examples/usbstorage configuration verified (the
              -	  examples/usbserial configuration is untested).
              -	* drivers/usbdev/usbserial.c and usbstorage.c -- All USB class drivers need
              -	  to call DEV_CONNECT() when they are ready to be enumerated.  That is,
              -	  (1) initially when bound to the USB driver, and (2) after a USB reset.
              -	* drivers/lcd/nokia6100.c -- A driver for the Nokia 6100 LCD.
              -	* configs/olimex-lpc1766stk/nx -- A NX graphics configuration for the Olimex
              -	  LPC1766-STK board using the Nokia 6100 LCD driver.
              -	* include/nuttx/spi.h -- the SPI_SETBITS macro was calling the setmode method.
              -	  This is a very important bug-fix in some usages.
              +nuttx-5.16 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
               
               pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
               
              
              From 74cac0526d96e233781feaa09a6a27a4917875ad Mon Sep 17 00:00:00 2001
              From: patacongo 
              Date: Tue, 14 Dec 2010 03:33:39 +0000
              Subject: [PATCH 0687/1518] Create include/nuttx/usb directory
              
              git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3170 42af7a65-404d-4744-a932-0658087f49c3
              ---
               Documentation/NuttX.html | 6 +++++-
               1 file changed, 5 insertions(+), 1 deletion(-)
              
              diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html
              index ac1c486e8a..74391630bc 100644
              --- a/Documentation/NuttX.html
              +++ b/Documentation/NuttX.html
              @@ -8,7 +8,7 @@
                 
                   
                     

              NuttX RTOS

              -

              Last Updated: December 12, 2010

              +

              Last Updated: December 13, 2010

              @@ -2013,6 +2013,10 @@ buildroot-1.8 2009-12-21 <spudmonkey@racsa.co.cr>
                 nuttx-5.16 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                 
                +    * include/nuttx/usb -- Created new directory.  Moved all usb-related header
                +      files to this new directory.  Created a skeleton for a new USB host header
                +      file
                +
                 pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                 
                 buildroot-1.9 2010-xx-xx 
                
                From 0205611b721f86ec92984f8b7b136eab920497e1 Mon Sep 17 00:00:00 2001
                From: patacongo 
                Date: Tue, 21 Dec 2010 01:10:29 +0000
                Subject: [PATCH 0688/1518] Final cleanup before testing
                
                git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3203 42af7a65-404d-4744-a932-0658087f49c3
                ---
                 Documentation/NuttX.html | 183 ++++++++++++++++++++-------------------
                 1 file changed, 94 insertions(+), 89 deletions(-)
                
                diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html
                index 74391630bc..d34ce8bba9 100644
                --- a/Documentation/NuttX.html
                +++ b/Documentation/NuttX.html
                @@ -8,7 +8,7 @@
                   
                     
                       

                NuttX RTOS

                -

                Last Updated: December 13, 2010

                +

                Last Updated: December 20, 2010

                @@ -786,48 +786,48 @@ Important bugfxes included:
                • - Additional fixes needed with the TCP sequence number problem "fixed" in nuttx-5.14. -
                • -
                • - In the send() logic, now checks if the destination IP address is in the ARP table before sending the packet; - an ARP request will go out instead of the TCP packet. - This improves behavior, for example, on the first on the first GET request from a browser -
                • -
                • - All USB class drivers need to call DEV_CONNECT() when they are ready to be enumerated. - That is, (1) initially when bound to the USB driver, and (2) after a USB reset. -
                • -
                • - The SPI_SETBITS macro was calling the SPI setmode method. -
                • -
                • - And several other bug fixes of lower criticality (see the ChangeLog for details). -
                • + Additional fixes needed with the TCP sequence number problem "fixed" in nuttx-5.14. + +
                • + In the send() logic, now checks if the destination IP address is in the ARP table before sending the packet; + an ARP request will go out instead of the TCP packet. + This improves behavior, for example, on the first on the first GET request from a browser +
                • +
                • + All USB class drivers need to call DEV_CONNECT() when they are ready to be enumerated. + That is, (1) initially when bound to the USB driver, and (2) after a USB reset. +
                • +
                • + The SPI_SETBITS macro was calling the SPI setmode method. +
                • +
                • + And several other bug fixes of lower criticality (see the ChangeLog for details). +

                And feature enhancements:

                  -
                • - The LPC176x Ethernet driver was using all of AHB SRAM Bank0 for Ethernet packet buffers (16Kb). - An option was added to limit the amount of SRAM used for packet buffering and to re-use any extra Bank0 memory for heap. -
                • -
                • - Enabled networking and SD/MMC card support in the Olimex LPC1766-STK NuttShell (NSH) configuration. -
                • -
                • - The LPC176x USB driver is now fully fully functional. -
                • -
                • - Added an optional cmddata() method to the SPI interface. - Some devices require an additional out-of-band bit to specify if the next word sent to the device is a command or data. - The cmddata() method provides selection of command or data. -
                • -
                • - A driver for the Nokia 6100 LCD (with either the Phillips PCF8833 LCD controller and for the Epson S1D15G10 LCD controller) - and an NX graphics configuration for the Olimex LPC1766-STK have been added. - However, neither the LCD driver nor the NX configuration have been verified as of the this release. -
                • +
                • + The LPC176x Ethernet driver was using all of AHB SRAM Bank0 for Ethernet packet buffers (16Kb). + An option was added to limit the amount of SRAM used for packet buffering and to re-use any extra Bank0 memory for heap. +
                • +
                • + Enabled networking and SD/MMC card support in the Olimex LPC1766-STK NuttShell (NSH) configuration. +
                • +
                • + The LPC176x USB driver is now fully fully functional. +
                • +
                • + Added an optional cmddata() method to the SPI interface. + Some devices require an additional out-of-band bit to specify if the next word sent to the device is a command or data. + The cmddata() method provides selection of command or data. +
                • +
                • + A driver for the Nokia 6100 LCD (with either the Phillips PCF8833 LCD controller and for the Epson S1D15G10 LCD controller) + and an NX graphics configuration for the Olimex LPC1766-STK have been added. + However, neither the LCD driver nor the NX configuration have been verified as of the this release. +

                @@ -1272,10 +1272,10 @@

                  STATUS: -

                  -

                  +

                  +

                  Nucleus2G LPC1768. - Some initial files for the LPC17xx family were released in NuttX 5.6, but the first + Some initial files for the LPC17xx family were released in NuttX 5.6, but the first functional release for the NXP LPC1768/Nucleus2G occured with NuttX 5.7 with some additional enhancements through NuttX-5.9. That initial, 5.6, basic release included timer interrupts and a serial console and was @@ -1288,21 +1288,21 @@ (Although they have since been verfiied on other platforms; this needs to be revisited on the Nucleus2G).

                  - mbed LPC1768. + mbed LPC1768. Support for the mbed board was contributed by Dave Marples and released in NuttX-5.11. This port includes a NuttX OS test configuration (see examples/ostest).

                  - Olimex LPC1766-STK. + Olimex LPC1766-STK. Support for that Olimex-LPC1766-STK board was added to NuttX 5.13. The NuttX-5.14 release extended that support with an Ethernet driver. - And the NuttX-5.15 release further extended the support with a functional USB driver and SPI-based micro-SD. + And the NuttX-5.15 release further extended the support with a functional USB driver and SPI-based micro-SD. Verified configurations are now available for the NuttX OS test, for the NuttShell with networking and microSD support(NSH, see the NSH User Guide), for the NuttX network test, for the THTTPD webserver, - and for USB serial and USB storage examples. - A driver for the Nokia 6100 LCD and an NX graphics configuration for the Olimex LPC1766-STK have been added. - However, neither the LCD driver nor the NX configuration have been verified as of the the NuttX-5.15 release. + and for USB serial and USB storage examples. + A driver for the Nokia 6100 LCD and an NX graphics configuration for the Olimex LPC1766-STK have been added. + However, neither the LCD driver nor the NX configuration have been verified as of the the NuttX-5.15 release.

                  Development Environments: @@ -1940,48 +1940,48 @@ Other memory:

                     5.15 2010-12-12 Gregory Nutt <spudmonkey@racsa.co.cr>
                     
                    -	* net/uip/uip_tcpaddsend.c and net/send.c -- Another place where the TCP sequence
                    -	  number problem "fixed" in 5.14 might occur.
                    -	* net/send.c -- Check if the destination IP address is in the ARP table.  If
                    -	  not, then don't consider the packet sent.  It won't be, an ARP packet will go
                    -	  out instead.  This improves behavior, for example, on the first GET request
                    -	  from a browser.
                    -	* arch/arm/src/lpc17xx/lpc17_emacram.h and lpc17_allocateheap.c -- The Ethernet
                    -	  logic was using all of AHB SRAM Bank0 for Ethernet packet buffers (16Kb).  An
                    -	  option was added to limit the amount of SRAM used for packet buffering and to
                    -	  re-use any extra Bank0 memory for heap.  configs/olimex-lpc1766stk/nettest
                    -	  now uses only 8Kb at the beginning of Bank0; the 8Kb at the end of Bank0 is
                    -	  included in the heap
                    -	* arch/arm/src/lpc17xx/lpc17_ssp.c -- Fix compilation errors when SSP1 is
                    -	  selected.
                    -	* configs/olimex-lpc1766stk/nsh -- Enable network and SD/MMC card support in
                    -	  NSH.  Networking and telnetd interface as well as SPI-based microSD are
                    -	  now functional.
                    -	* examples/nsh/nsh_netinit.c -- Fix NSH bug.  If CONFIG_NET is selected, but
                    -	  CONFIG_EXAMPLES_NSH_TELNETD is not selected, then the network is never
                    -	  initialized and bad things happen if you try to ping.
                    -	* drivers/lcd -- Add header files for the Phillips PCF8833 LCD controller and
                    -	  for the Epson S1D15G10 LCD controller.  A driver for the Nokia 6100 LCD is
                    -	  coming.
                    -	* include/nuttx/spi.h and almost all other SPI files -- Added an optional
                    -	  cmddata() method to the SPI interface.  Some devices require an additional
                    -	  out-of-band bit to specify if the next word sent to the device is a command
                    -	  or data. This is typical, for example, in "9-bit" displays where the 9th bit
                    -	  is the CMD/DATA bit. The cmddata method provides selection of command or data.
                    -	* drivers/lcd/p14201.c -- Now uses the cmddata() method of the SPI interface.
                    -	* arch/arm/src/lpc17xx/lpc17_usbdev.c -- LPC17xx USB driver now appears to
                    -	  to be fully functional.  examples/usbstorage configuration verified (the
                    -	  examples/usbserial configuration is untested).
                    -	* drivers/usbdev/usbserial.c and usbstorage.c -- All USB class drivers need
                    -	  to call DEV_CONNECT() when they are ready to be enumerated.  That is,
                    -	  (1) initially when bound to the USB driver, and (2) after a USB reset.
                    -	* drivers/lcd/nokia6100.c -- A driver for the Nokia 6100 LCD.  This driver
                    -	  has not be verified as of the initial check-in.
                    -	* configs/olimex-lpc1766stk/nx -- A NX graphics configuration for the Olimex
                    -	  LPC1766-STK board using the Nokia 6100 LCD driver.  This configuration has
                    -	  not been verified as of the initial check-in.
                    -	* include/nuttx/spi.h -- the SPI_SETBITS macro was calling the setmode method.
                    -	  This is a very important bug-fix in some usages.
                    +    * net/uip/uip_tcpaddsend.c and net/send.c -- Another place where the TCP sequence
                    +      number problem "fixed" in 5.14 might occur.
                    +    * net/send.c -- Check if the destination IP address is in the ARP table.  If
                    +      not, then don't consider the packet sent.  It won't be, an ARP packet will go
                    +      out instead.  This improves behavior, for example, on the first GET request
                    +      from a browser.
                    +    * arch/arm/src/lpc17xx/lpc17_emacram.h and lpc17_allocateheap.c -- The Ethernet
                    +      logic was using all of AHB SRAM Bank0 for Ethernet packet buffers (16Kb).  An
                    +      option was added to limit the amount of SRAM used for packet buffering and to
                    +      re-use any extra Bank0 memory for heap.  configs/olimex-lpc1766stk/nettest
                    +      now uses only 8Kb at the beginning of Bank0; the 8Kb at the end of Bank0 is
                    +      included in the heap
                    +    * arch/arm/src/lpc17xx/lpc17_ssp.c -- Fix compilation errors when SSP1 is
                    +      selected.
                    +    * configs/olimex-lpc1766stk/nsh -- Enable network and SD/MMC card support in
                    +      NSH.  Networking and telnetd interface as well as SPI-based microSD are
                    +      now functional.
                    +    * examples/nsh/nsh_netinit.c -- Fix NSH bug.  If CONFIG_NET is selected, but
                    +      CONFIG_EXAMPLES_NSH_TELNETD is not selected, then the network is never
                    +      initialized and bad things happen if you try to ping.
                    +    * drivers/lcd -- Add header files for the Phillips PCF8833 LCD controller and
                    +      for the Epson S1D15G10 LCD controller.  A driver for the Nokia 6100 LCD is
                    +      coming.
                    +    * include/nuttx/spi.h and almost all other SPI files -- Added an optional
                    +      cmddata() method to the SPI interface.  Some devices require an additional
                    +      out-of-band bit to specify if the next word sent to the device is a command
                    +      or data. This is typical, for example, in "9-bit" displays where the 9th bit
                    +      is the CMD/DATA bit. The cmddata method provides selection of command or data.
                    +    * drivers/lcd/p14201.c -- Now uses the cmddata() method of the SPI interface.
                    +    * arch/arm/src/lpc17xx/lpc17_usbdev.c -- LPC17xx USB driver now appears to
                    +      to be fully functional.  examples/usbstorage configuration verified (the
                    +      examples/usbserial configuration is untested).
                    +    * drivers/usbdev/usbserial.c and usbstorage.c -- All USB class drivers need
                    +      to call DEV_CONNECT() when they are ready to be enumerated.  That is,
                    +      (1) initially when bound to the USB driver, and (2) after a USB reset.
                    +    * drivers/lcd/nokia6100.c -- A driver for the Nokia 6100 LCD.  This driver
                    +      has not be verified as of the initial check-in.
                    +    * configs/olimex-lpc1766stk/nx -- A NX graphics configuration for the Olimex
                    +      LPC1766-STK board using the Nokia 6100 LCD driver.  This configuration has
                    +      not been verified as of the initial check-in.
                    +    * include/nuttx/spi.h -- the SPI_SETBITS macro was calling the setmode method.
                    +      This is a very important bug-fix in some usages.
                     
                     pascal-2.0 2009-12-21 Gregory Nutt <spudmonkey@racsa.co.cr>
                     
                    @@ -2016,6 +2016,11 @@ nuttx-5.16 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                         * include/nuttx/usb -- Created new directory.  Moved all usb-related header
                           files to this new directory.  Created a skeleton for a new USB host header
                           file
                    +    * drivers/usbhost -- Add USB host "registry" where connect devices can be
                    +      matched with the correct USB class driver.  Add a USB host class driver
                    +      for the (Bulk-Only) USB Mass Storage Class.  Untested on initial check-iin
                    +    * arc/arc/src/lpc17xx/lpc17_usbhost.c -- Add a simple USB host driver for
                    +      the NXP lpc17xx.  Untested on initial check-in.
                     
                     pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                     
                    
                    From 2401db02486ac89797a35652e18f2565aac7abb3 Mon Sep 17 00:00:00 2001
                    From: patacongo 
                    Date: Thu, 23 Dec 2010 02:06:23 +0000
                    Subject: [PATCH 0689/1518] update usb host docs
                    
                    git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3218 42af7a65-404d-4744-a932-0658087f49c3
                    ---
                     Documentation/NuttxPortingGuide.html | 13 ++++++++++++-
                     1 file changed, 12 insertions(+), 1 deletion(-)
                    
                    diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html
                    index 2755078fef..cdc4db1d3b 100644
                    --- a/Documentation/NuttxPortingGuide.html
                    +++ b/Documentation/NuttxPortingGuide.html
                    @@ -12,7 +12,7 @@
                           

                    NuttX RTOS Porting Guide

                    -

                    Last Updated: December 4, 2010

                    +

                    Last Updated: December 22, 2010

                    @@ -3213,6 +3213,17 @@ build
                  +

                  USB Host-Side Support

                  +

                  USB Host Controller Driver

                  +
                    +
                  • + CONFIG_USBHOST: Enables USB host support +
                  • +
                  • + CONFIG_USBHOST_NPREALLOC: Number of pre-allocated class instances +
                  • +
                  +

                  Graphics related configuration settings

                  • From 7b31228b0debbc727e37da8229d9a2451d0f42f8 Mon Sep 17 00:00:00 2001 From: patacongo Date: Thu, 30 Dec 2010 23:08:46 +0000 Subject: [PATCH 0690/1518] Handling missing RHSC interrupt git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3223 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index cdc4db1d3b..adc0041f98 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

                    NuttX RTOS Porting Guide

                    -

                    Last Updated: December 22, 2010

                    +

                    Last Updated: December 29, 2010

                    @@ -3219,6 +3219,12 @@ build
                  • CONFIG_USBHOST: Enables USB host support
                  • +
                  • + CONFIG_USBHOST_HAVERHSC: + Define if the hardware is able to detect a root hub status change when a device is inserted. + If CONFIG_USBHOST_HAVERHSC is not set, then it is assumed that the hardware cannot detect the presence of a USB device + and that the application must periodically attempt to enumerate the device. +
                  • CONFIG_USBHOST_NPREALLOC: Number of pre-allocated class instances
                  • From 771460ca0d8c404feb46a77358332ce04c5f8d39 Mon Sep 17 00:00:00 2001 From: patacongo Date: Fri, 31 Dec 2010 17:25:24 +0000 Subject: [PATCH 0691/1518] Correct logic that turns on USB host power git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3224 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 6 ------ 1 file changed, 6 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index adc0041f98..e04000f786 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -3219,12 +3219,6 @@ build
                  • CONFIG_USBHOST: Enables USB host support
                  • -
                  • - CONFIG_USBHOST_HAVERHSC: - Define if the hardware is able to detect a root hub status change when a device is inserted. - If CONFIG_USBHOST_HAVERHSC is not set, then it is assumed that the hardware cannot detect the presence of a USB device - and that the application must periodically attempt to enumerate the device. -
                  • CONFIG_USBHOST_NPREALLOC: Number of pre-allocated class instances
                  • From eb27ffbed56c03cd2409375299e58dd43011a886 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 9 Jan 2011 17:26:41 +0000 Subject: [PATCH 0692/1518] Add USB host documentation git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3237 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 47 +++++- Documentation/NuttxPortingGuide.html | 208 ++++++++++++++++++++++++++- 2 files changed, 241 insertions(+), 14 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index d34ce8bba9..34bdedec56 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                    NuttX RTOS

                    -

                    Last Updated: December 20, 2010

                    +

                    Last Updated: January 9, 2011

                    @@ -387,7 +387,7 @@

                    -

                  • Network, USB (device), serial, CAN, driver architecture.
                  • +
                  • Network, USB (host), USB (device), serial, CAN, driver architectures.
                  • @@ -523,6 +523,34 @@

                    + + + + USB Host Support + + + +
                    + +

                    +

                  • USB host architecture for USB host controller drivers and device-dependent USB class drivers.
                  • +

                    + + +
                    + +

                    +

                  • USB host controller drivers available for the NXP LPC17xx.
                  • +

                    + + +
                    + +

                    +

                  • Device-dependent USB class drivers available for USB mass storage.
                  • +

                    + + @@ -540,7 +568,7 @@

                    -

                  • USB device controller drivers available for the NXP LPC214x, LPC313x, STMicro STM32 and TI DM320.
                  • +
                  • USB device controller drivers available for the NXP LPC17xx, LPC214x, LPC313x, STMicro STM32 and TI DM320.
                  • @@ -1272,6 +1300,8 @@

                      STATUS: + The following summarizes the features that has been developed and verified on individual LPC17xx-based boards. + These features should, however, be common and available for all LPC17xx-based boards.

                      Nucleus2G LPC1768. @@ -1296,7 +1326,8 @@ Olimex LPC1766-STK. Support for that Olimex-LPC1766-STK board was added to NuttX 5.13. The NuttX-5.14 release extended that support with an Ethernet driver. - And the NuttX-5.15 release further extended the support with a functional USB driver and SPI-based micro-SD. + The NuttX-5.15 release further extended the support with a functional USB device driver and SPI-based micro-SD. + And the NuttX-5.16 release added a functional USB host driver. Verified configurations are now available for the NuttX OS test, for the NuttShell with networking and microSD support(NSH, see the NSH User Guide), for the NuttX network test, for the THTTPD webserver, @@ -2017,10 +2048,12 @@ nuttx-5.16 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> files to this new directory. Created a skeleton for a new USB host header file * drivers/usbhost -- Add USB host "registry" where connect devices can be - matched with the correct USB class driver. Add a USB host class driver - for the (Bulk-Only) USB Mass Storage Class. Untested on initial check-iin + matched with the correct USB class driver. * arc/arc/src/lpc17xx/lpc17_usbhost.c -- Add a simple USB host driver for - the NXP lpc17xx. Untested on initial check-in. + the NXP lpc17xx. + * drivers/usbhost -- Add generic USB device enumeration logic. + * drivers/usbhost -- Add a USB host class driver for the (Bulk-Only) USB + Mass Storage Class. pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index e04000f786..03012038db 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

                      NuttX RTOS Porting Guide

                      -

                      Last Updated: December 29, 2010

                      +

                      Last Updated: January 9, 2011

                      @@ -120,6 +120,8 @@ 6.3.5 Frame Buffer Drivers
                      6.3.6 Memory Technology Device Drivers
                      6.3.7 SDIO Device Drivers
                      + 6.3.8 USB Host-Side Drivers
                      + 6.3.9 USB Device-Side Drivers
                  Appendix A: NuttX Configuration Settings
                  @@ -779,7 +781,10 @@ drivers/ | `-- (net driver source files) |-- usbdev/ | |-- Make.defs -| `-- (usbdev driver source files) +| `-- (USB device driver source files) +|-- usbhost/ +| |-- Make.defs +| `-- (USB host driver source files) `-- (common driver source files)
              @@ -1944,7 +1949,7 @@ extern void up_ledoff(int led);
              • include/nuttx/fb.h. - All structures and APIs needed to work with serial drivers are provided in this header file. + All structures and APIs needed to work with frame buffer drivers are provided in this header file.
              • struct fb_vtable_s. @@ -1994,7 +1999,7 @@ extern void up_ledoff(int led);
                • include/nuttx/mtd.h. - All structures and APIs needed to work with serial drivers are provided in this header file. + All structures and APIs needed to work with MTD drivers are provided in this header file.
                • struct mtd_dev_s. @@ -2057,11 +2062,11 @@ extern void up_ledoff(int led);
                  • include/nuttx/sdio.h. - All structures and APIs needed to work with serial drivers are provided in this header file. + All structures and APIs needed to work with SDIO drivers are provided in this header file.
                  • struct sdio_dev_s. - Each MTD device driver must implement an instance of struct sdio_dev_s. + Each SDIOI device driver must implement an instance of struct sdio_dev_s. That structure defines a call table with the following methods:

                    Initialization/setup: @@ -2075,7 +2080,7 @@ extern void up_ledoff(int led);

                  Command/Status/Data Transfer: -

                    void (*sendcmd)(FAR struct sdio_dev_s *dev, uint32_t cmd, uint32_t arg);
                    int (*recvsetup)(FAR struct sdio_dev_s *dev, FAR uint8_t *buffer, size_t nbytes);
                    @@ -2124,6 +2129,195 @@ extern void up_ledoff(int led);

                  +

                  6.3.8 USB Host-Side Drivers

                  + +
                    +
                  • + include/nuttx/usb/usbhost.h. + All structures and APIs needed to work with USB host-side drivers are provided in this header file. +
                  • +
                  • +

                    + struct usbhost_driver_s. + Each USB host controller driver must implement an instance of struct usbhost_driver_s. + This structure is defined in include/nuttx/usb/usbhost.h. +

                    +

                    + Examples: + arch/arm/src/lpc17xx/lpc17_usbhost.c. +

                    +
                  • +
                  • +

                    + struct usbhost_class_s. + Each USB host class driver must implement an instance of struct usbhost_class_s. + This structure is also defined in include/nuttx/usb/usbhost.h. +

                    +

                    + Examples: + drivers/usbhost/usbhost_storage.c +

                    +
                  • +
                  • +

                    + USB Host Class Driver Registry. + The NuttX USB host infrastructure includes a registry. + During its initialization, each USB host class driver must call the interface, usbhost_registerclass() + in order add its interface to the register. + Later, when a USB device is connected, the USB host controller will look up the USB host class driver that is needed to support the connected device in this registry. +

                    +

                    + Examples: + drivers/usbhost/usbhost_registry.c, drivers/usbhost/usbhost_registerclass.c, and drivers/usbhost/usbhost_findclass.c, +

                    +
                  • +
                  • +

                    + Detection and Enumeration of Connected Devices. + Each USB host device controller supports two methods that are used to detect and enumeration newly connected devices + (and also detect disconnected devices): +

                    +

                    +

                      +
                    • +

                      + int (*wait)(FAR struct usbhost_driver_s *drvr, bool connected); +

                      +

                      + Wait for a device to be connected or disconnected. +

                      +
                    • +
                    • +

                      + int (*enumerate)(FAR struct usbhost_driver_s *drvr); +

                      +

                      + Enumerate the connected device. + As part of this enumeration process, the driver will + (1) get the device's configuration descriptor, + (2) extract the class ID info from the configuration descriptor, + (3) call usbhost_findclass() to find the class that supports this device, + (4) call the create() method on the struct usbhost_registry_s interface to get a class instance, and + finally (5) call the connect() method of the struct usbhost_class_s interface. + After that, the class is in charge of the sequence of operations. +

                      +
                    +

                    +
                  • +
                  • +

                    + Binding USB Host-Side Drivers. + USB host-side controller drivers are not normally directly accessed by user code, + but are usually bound to another, higher level USB host class driver. + The class driver exports the standard NuttX device interface so that the connected USB device can be accessed just as with other, similar, on-board devices. + For example, the USB host mass storage class driver (drivers/usbhost/usbhost_storage.c) will register a standard, NuttX block driver interface (like /dev/sda) + that can be used to mount a file system just as with any other other block driver instance. + In general, the binding sequence is: +

                    +

                    +

                      +
                    • +

                      + Each USB host class driver includes an intialization entry point that is called from the + application at initialization time. + This driver calls usbhost_registerclass() during this initialization in order to makes itself available in the event the the device that it supports is connected. +

                      +

                      + Examples: + The function usbhost_storageinit() in the file drivers/usbhost/usbhost_storage.c +

                      +
                    • +
                    • +

                      + Each application must include a waiter thread thread that (1) calls the USB host controller driver's wait() to detect the connection of a device, and then + (2) call the USB host controller driver's enumerate method to bind the registered USB host class driver to the USB host controller driver. +

                      +

                      + Examples: + The function nsh_waiter() in the file configs/nucleus2g/src/up_nsh.c and + the function nsh_waiter() in the file configs/olimex-lpc1766stk/src/up_nsh.c. +

                      +
                    • +
                    • +

                      + As part of its operation during the binding operation, the USB host class driver will register an instances of a standard NuttX driver under the /dev directory. + To repeat the above example, the USB host mass storage class driver (drivers/usbhost/usbhost_storage.c) will register a standard, NuttX block driver interface (like /dev/sda) + that can be used to mount a file system just as with any other other block driver instance. +

                      +

                      + Examples: + See the call to register_blockdriver() in the function usbhost_initvolume() in the file drivers/usbhost/usbhost_storage.c. +

                      +
                    • +
                    +

                    +
                  • +
                  + +

                  6.3.9 USB Device-Side Drivers

                  + +
                    +
                  • + include/nuttx/usb/usbdev.h. + All structures and APIs needed to work with USB device-side drivers are provided in this header file. +
                  • +
                  • +

                    + struct usbdev_s. + Each USB device controller driver must implement an instance of struct usbdev_s. + This structure is defined in include/nuttx/usb/usbdev.h. +

                    +

                    + Examples: + arch/arm/src/dm320/dm320_usbdev.c, arch/arm/src/lpc17xx/lpc17_usbdev.c, + arch/arm/src/lpc214x/lpc214x_usbdev.c, arch/arm/src/lpc313x/lpc313x_usbdev.c, and + arch/arm/src/stm32/stm32_usbdev.c. +

                    +
                  • +
                  • +

                    + struct usbdevclass_driver_s. + Each USB device class driver must implement an instance of struct usbdevclass_driver_s. + This structure is also defined in include/nuttx/usb/usbdev.h. +

                    +

                    + Examples: + drivers/usbdev/usbdev_serial.c and drivers/usbdev/usbdev_storage.c +

                    +
                  • +
                  • +

                    + Binding USB Device-Side Drivers. + USB device-side controller drivers are not normally directly accessed by user code, + but are usually bound to another, higher level USB device class driver. + The class driver is then configured to export the USB device functionality. + In general, the binding sequence is: +

                    +

                    +

                      +
                    • +

                      + Each USB device class driver includes an intialization entry point that is called from the + application at initialization time. +

                      +

                      + Examples: + The function usbdev_serialinitialize() in the file drivers/usbdev/usbdev_serial.c and + the function in the file drivers/usbdev/usbdev_storage.c +

                      +
                    • +
                    • +

                      + These initialization functions called the driver API, usbdev_register(). + This driver function will bind the USB class driver to the USB device controller driver, + completing the initialization. +

                      +
                    • +
                    +

                    +
                  • +
                  +
                  From 3c7c2266e696ba9ece0d60b8e635f4af2f840cff Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 9 Jan 2011 17:59:41 +0000 Subject: [PATCH 0693/1518] typos git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3238 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 03012038db..c392167edc 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -2163,7 +2163,7 @@ extern void up_ledoff(int led); USB Host Class Driver Registry. The NuttX USB host infrastructure includes a registry. During its initialization, each USB host class driver must call the interface, usbhost_registerclass() - in order add its interface to the register. + in order add its interface to the registery. Later, when a USB device is connected, the USB host controller will look up the USB host class driver that is needed to support the connected device in this registry.

                  @@ -2196,9 +2196,9 @@ extern void up_ledoff(int led); As part of this enumeration process, the driver will (1) get the device's configuration descriptor, (2) extract the class ID info from the configuration descriptor, - (3) call usbhost_findclass() to find the class that supports this device, - (4) call the create() method on the struct usbhost_registry_s interface to get a class instance, and - finally (5) call the connect() method of the struct usbhost_class_s interface. + (3) call usbhost_findclass() to find the class that supports this device, + (4) call the create() method on the struct usbhost_registry_s interface to get a class instance, and + finally (5) call the connect() method of the struct usbhost_class_s interface. After that, the class is in charge of the sequence of operations.

                  From bb77d00e7551b43821cd9189ecacc8300ec20f66 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 9 Jan 2011 18:37:11 +0000 Subject: [PATCH 0694/1518] Add LCD driver documentation git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3239 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 372 ++++++++++++++++++++------- 1 file changed, 284 insertions(+), 88 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index c392167edc..c2ed3b4d1b 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -118,10 +118,11 @@ 6.3.3 I2C Device Drivers
                  6.3.4 Serial Device Drivers
                  6.3.5 Frame Buffer Drivers
                  - 6.3.6 Memory Technology Device Drivers
                  - 6.3.7 SDIO Device Drivers
                  - 6.3.8 USB Host-Side Drivers
                  - 6.3.9 USB Device-Side Drivers
                  + 6.3.6 LCD Drivers
                  + 6.3.7 Memory Technology Device Drivers
                  + 6.3.8 SDIO Device Drivers
                  + 6.3.9 USB Host-Side Drivers
                  + 6.3.10 USB Device-Side Drivers
                  Appendix A: NuttX Configuration Settings
                  @@ -1128,7 +1129,7 @@ The system can be re-made subsequently by just typing make. is defined.

                  -

                  Inputs:Inputs:

                  • tcb: The TCB of new task. @@ -1719,10 +1720,13 @@ extern void up_ledoff(int led);

                    • +

                      include/nuttx/fs.h. All structures and APIs needed to work with character drivers are provided in this header file. +

                    • +

                      struct file_operations. Each character device driver must implement an instance of struct file_operations. That structure defines a call table with the following methods: @@ -1735,23 +1739,30 @@ extern void up_ledoff(int led); int ioctl(FAR struct file *filp, int cmd, unsigned long arg);
                      int poll(FAR struct file *filp, struct pollfd *fds, bool setup);

                    +

                  • +

                    int register_driver(const char *path, const struct file_operations *fops, mode_t mode, void *priv);. Each character driver registers itself by calling register_driver(), passing it the path where it will appear in the pseudo-file-system and it's initialized instance of struct file_operations. +

                  • +

                    User Access. After it has been registered, the character driver can be accessed by user code using the standard driver operations including open(), close(), read(), write(), etc. +

                  • +

                    Examples: drivers/dev_null.c, drivers/fifo.c, drivers/serial.c, etc. -

                  • +

                    +

                  6.2 Block Device Drivers

                  @@ -1761,10 +1772,13 @@ extern void up_ledoff(int led);

                  • +

                    include/nuttx/fs.h. All structures and APIs needed to work with block drivers are provided in this header file. +

                  • +

                    struct block_operations. Each block device driver must implement an instance of struct block_operations. That structure defines a call table with the following methods: @@ -1776,34 +1790,45 @@ extern void up_ledoff(int led); int geometry(FAR struct inode *inode, FAR struct geometry *geometry);
                    int ioctl(FAR struct inode *inode, int cmd, unsigned long arg);

                  +

                • +

                  int register_blockdriver(const char *path, const struct block_operations *bops, mode_t mode, void *priv);. Each block driver registers itself by calling register_blockdriver(), passing it the path where it will appear in the pseudo-file-system and it's initialized instance of struct block_operations. +

                • +

                  User Access. Users do not normally access block drivers directly, rather, they access block drivers indirectly through the mount() API. The mount() API binds a block driver instance with a file system and with a mountpoint. Then the user may use the block driver to access the file system on the underlying media. Example: See the cmd_mount() implementation in examples/nsh/nsh_fscmds.c. +

                • +

                  Accessing a Character Driver as a Block Device. See the loop device at drivers/loop.c. Example: See the cmd_losetup() implementation in examples/nsh/nsh_fscmds.c. +

                • +

                  Accessing a Block Driver as Character Device. See the Block-to-Character (BCH) conversion logic in drivers/bch/. Example: See the cmd_dd() implementation in examples/nsh/nsh_ddcmd.c. +

                • +

                  Examples. drivers/loop.c, drivers/mmcsd/mmcsd_spi.c, drivers/ramdisk.c, etc. +

                • @@ -1813,18 +1838,24 @@ extern void up_ledoff(int led);
                  • +

                    include/net/uip/uip-arch.h. All structures and APIs needed to work with Ethernet drivers are provided in this header file. The structure struct uip_driver_s defines the interface and is passed to uIP via netdev_register(). +

                  • +

                    int netdev_register(FAR struct uip_driver_s *dev);. Each Ethernet driver registers itself by calling netdev_register(). +

                  • +

                    Examples: drivers/net/dm90x0.c, arch/drivers/arm/src/c5471/c5471_ethernet.c, arch/z80/src/ez80/ez80_emac.c, etc. +

                  @@ -1832,10 +1863,13 @@ extern void up_ledoff(int led);
                  • +

                    include/nuttx/spi.h. All structures and APIs needed to work with SPI drivers are provided in this header file. +

                  • +

                    struct spi_ops_s. Each SPI device driver must implement an instance of struct spi_ops_s. That structure defines a call table with the following methods: @@ -1849,21 +1883,28 @@ extern void up_ledoff(int led); uint16_t send(FAR struct spi_dev_s *dev, uint16_t wd);
                    void exchange(FAR struct spi_dev_s *dev, FAR const void *txbuffer, FAR void *rxbuffer, size_t nwords);

                    int registercallback(FAR struct spi_dev_s *dev, mediachange_t callback, void *arg);

                    -
                  -
                • - Binding SPI Drivers. - SPI drivers are not normally directly accessed by user code, but are usually bound to another, - higher level device driver. - See for example, int mmcsd_spislotinitialize(int minor, int slotno, FAR struct spi_dev_s *spi) in drivers/mmcsd/mmcsd_spi.c. - In general, the binding sequence is: -
                    -
                  • Get an instance of struct spi_dev_s from the hardware-specific SPI device driver, and
                  • -
                  • Provide that instance to the initialization method of the higher level device driver.
                  +

                  +
                • +

                  + Binding SPI Drivers. + SPI drivers are not normally directly accessed by user code, but are usually bound to another, + higher level device driver. + See for example, int mmcsd_spislotinitialize(int minor, int slotno, FAR struct spi_dev_s *spi) in drivers/mmcsd/mmcsd_spi.c. + In general, the binding sequence is: +

                  +

                  +

                    +
                  1. Get an instance of struct spi_dev_s from the hardware-specific SPI device driver, and
                  2. +
                  3. Provide that instance to the initialization method of the higher level device driver.
                  4. +
                  +

                • - Examples: - drivers/loop.c, drivers/mmcsd/mmcsd_spi.c, drivers/ramdisk.c, etc. +

                  + Examples: + drivers/loop.c, drivers/mmcsd/mmcsd_spi.c, drivers/ramdisk.c, etc. +

                • @@ -1871,10 +1912,13 @@ extern void up_ledoff(int led);
                  • +

                    include/nuttx/i2c.h. All structures and APIs needed to work with I2C drivers are provided in this header file. +

                  • +

                    struct i2c_ops_s. Each I2C device driver must implement an instance of struct i2c_ops_s. That structure defines a call table with the following methods: @@ -1883,20 +1927,27 @@ extern void up_ledoff(int led); int setaddress(FAR struct i2c_dev_s *dev, int addr, int nbits);
                    int write(FAR struct i2c_dev_s *dev, const uint8_t *buffer, int buflen);
                    int read(FAR struct i2c_dev_s *dev, uint8_t *buffer, int buflen);

                    +

                • - Binding I2C Drivers. - I2C drivers are not normally directly accessed by user code, but are usually bound to another, - higher level device driver. - In general, the binding sequence is: -
                    -
                  • Get an instance of struct i2c_dev_s from the hardware-specific I2C device driver, and
                  • -
                  • Provide that instance to the initialization method of the higher level device driver.
                  • -
                  +

                  + Binding I2C Drivers. + I2C drivers are not normally directly accessed by user code, but are usually bound to another, + higher level device driver. + In general, the binding sequence is: +

                  +

                  +

                    +
                  1. Get an instance of struct i2c_dev_s from the hardware-specific I2C device driver, and
                  2. +
                  3. Provide that instance to the initialization method of the higher level device driver.
                  4. +
                  +

                • - Examples: - arch/z80/src/ez80/ez80_i2c.c, arch/z80/src/z8/z8_i2c.c, etc. +

                  + Examples: + arch/z80/src/ez80/ez80_i2c.c, arch/z80/src/z8/z8_i2c.c, etc. +

                • @@ -1904,10 +1955,13 @@ extern void up_ledoff(int led);
                  • +

                    include/nuttx/serial.h. All structures and APIs needed to work with serial drivers are provided in this header file. +

                  • +

                    struct uart_ops_s. Each serial device driver must implement an instance of struct uart_ops_s. That structure defines a call table with the following methods: @@ -1925,22 +1979,29 @@ extern void up_ledoff(int led); bool txready(FAR struct uart_dev_s *dev);
                    bool txempty(FAR struct uart_dev_s *dev);

                  +

                • +

                  int uart_register(FAR const char *path, FAR uart_dev_t *dev);. A serial driver may register itself by calling uart_register(), passing it the path where it will appear in the pseudo-file-system and it's initialized instance of struct uart_ops_s. By convention, serial device drivers are registered at paths like /dev/ttyS0, /dev/ttyS1, etc. See the uart_register() implementation in drivers/serial.c. +

                • +

                  User Access. Serial drivers are, ultimately, normal character drivers and are accessed as other character drivers. +

                • +

                  Examples: arch/arm/src/chip/lm3s_serial.c, arch/arm/src/lpc214x/lpc214x_serial.c, arch/z16/src/z16f/z16f_serial.c, etc. +

                • @@ -1948,13 +2009,17 @@ extern void up_ledoff(int led);
                  • - include/nuttx/fb.h. - All structures and APIs needed to work with frame buffer drivers are provided in this header file. +

                    + include/nuttx/fb.h. + All structures and APIs needed to work with frame buffer drivers are provided in this header file. +

                  • - struct fb_vtable_s. - Each frame buffer device driver must implement an instance of struct fb_vtable_s. - That structure defines a call table with the following methods: +

                    + struct fb_vtable_s. + Each frame buffer device driver must implement an instance of struct fb_vtable_s. + That structure defines a call table with the following methods: +

                    Get information about the video controller configuration and the configuration of each color plane.

                    @@ -1964,7 +2029,7 @@ extern void up_ledoff(int led);

                  The following are provided only if the video hardware supports RGB color mapping: -

                    int (*getcmap)(FAR struct fb_vtable_s *vtable, FAR struct fb_cmap_s *cmap);
                    int (*putcmap)(FAR struct fb_vtable_s *vtable, FAR const struct fb_cmap_s *cmap);

                    @@ -1978,33 +2043,144 @@ extern void up_ledoff(int led);
                • - Binding Frame Buffer Drivers. - Frame buffer drivers are not normally directly accessed by user code, but are usually bound to another, - higher level device driver. - In general, the binding sequence is: -
                    -
                  • Get an instance of struct fb_vtable_s from the hardware-specific frame buffer device driver, and
                  • -
                  • Provide that instance to the initialization method of the higher level device driver.
                  • -
                  +

                  + Binding Frame Buffer Drivers. + Frame buffer drivers are not normally directly accessed by user code, but are usually bound to another, + higher level device driver. + In general, the binding sequence is: +

                  +

                  +

                    +
                  1. Get an instance of struct fb_vtable_s from the hardware-specific frame buffer device driver, and
                  2. +
                  3. Provide that instance to the initialization method of the higher level device driver.
                  4. +
                  +

                • - Examples: - arch/sim/src/up_framebuffer.c. - See also the usage of the frame buffer driver in the graphics/ directory. +

                  + Examples: + arch/sim/src/up_framebuffer.c. + See also the usage of the frame buffer driver in the graphics/ directory. +

                • -

                  6.3.6 Memory Technology Device Drivers

                  +

                  6.3.6 LCD Drivers

                  • - include/nuttx/mtd.h. - All structures and APIs needed to work with MTD drivers are provided in this header file. +

                    + include/nuttx/lcd/lcd.h. + Structures and APIs needed to work with LCD drivers are provided in this header file. + This header file also depends on some of the same definitions used for the frame buffer driver as privided in include/nuttx/fb.h. +

                  • - struct mtd_dev_s. - Each MTD device driver must implement an instance of struct mtd_dev_s. - That structure defines a call table with the following methods: +

                    + struct lcd_dev_s. + Each LCD device driver must implement an instance of struct lcd_dev_s. + That structure defines a call table with the following methods: +

                    +

                    + Get information about the LCD video controller configuration and the configuration of each LCD color plane. +

                    +
                      +

                      + int (*getvideoinfo)(FAR struct lcd_dev_s *dev, FAR struct fb_videoinfo_s *vinfo);
                      + int (*getplaneinfo)(FAR struct lcd_dev_s *dev, unsigned int planeno, FAR struct lcd_planeinfo_s *pinfo); +

                      +
                    +

                    + The following are provided only if the video hardware supports RGB color mapping: +

                    +
                      +

                      + int (*getcmap)(FAR struct lcd_dev_s *dev, FAR struct fb_cmap_s *cmap);
                      + int (*putcmap)(FAR struct lcd_dev_s *dev, FAR const struct fb_cmap_s *cmap); +

                      +
                    +

                    + The following are provided only if the video hardware supports a hardware cursor: +

                    +
                      +

                      + int (*getcursor)(FAR struct lcd_dev_s *dev, FAR struct fb_cursorattrib_s *attrib);
                      + int (*setcursor)(FAR struct lcd_dev_s *dev, FAR struct fb_setcursor_s *settings) +

                      +
                    +

                    + Get the LCD panel power status (0: full off - CONFIG_LCD_MAXPOWER: full on). + On backlit LCDs, this setting may correspond to the backlight setting. +

                    +
                      +

                      + int (*getpower)(struct lcd_dev_s *dev); +

                      +
                    +

                    + Enable/disable LCD panel power (0: full off - CONFIG_LCD_MAXPOWER: full on). + On backlit LCDs, this setting may correspond to the backlight setting. +

                    +
                      +

                      + int (*setpower)(struct lcd_dev_s *dev, int power); +

                      +
                    +

                    + Get the current contrast setting (0-CONFIG_LCD_MAXCONTRAST) */ +

                    +
                      +

                      + int (*getcontrast)(struct lcd_dev_s *dev); +

                      +
                    +

                    + Set LCD panel contrast (0-CONFIG_LCD_MAXCONTRAST) +

                    +
                      +

                      + int (*setcontrast)(struct lcd_dev_s *dev, unsigned int contrast); +

                      +
                    +

                    +
                  • +

                    + Binding LCD Drivers. + LCD drivers are not normally directly accessed by user code, but are usually bound to another, + higher level device driver. + In general, the binding sequence is: +

                    +

                    +

                      +
                    1. Get an instance of struct lcd_dev_s from the hardware-specific LCD device driver, and
                    2. +
                    3. Provide that instance to the initialization method of the higher level device driver.
                    4. +
                    +

                    +
                  • +
                  • +

                    + Examples: + drivers/lcd/nokia6100.c, drivers/lcd/p14201.c, configs/sam3u-ek/src/up_lcd.c. + See also the usage of the LCD driver in the graphics/ directory. +

                    +
                  • +
                  + +

                  6.3.7 Memory Technology Device Drivers

                  + +
                    +
                  • +

                    + include/nuttx/mtd.h. + All structures and APIs needed to work with MTD drivers are provided in this header file. +

                    +
                  • +
                  • +

                    + struct mtd_dev_s. + Each MTD device driver must implement an instance of struct mtd_dev_s. + That structure defines a call table with the following methods: +

                    Erase the specified erase blocks (units are erase blocks):

                    @@ -2013,7 +2189,7 @@ extern void up_ledoff(int led);

                  Read/write from the specified read/write blocks: -

                    ssize_t (*bread)(FAR struct mtd_dev_s *dev, off_t startblock, size_t nblocks, FAR uint8_t *buffer);
                    ssize_t (*bwrite)(FAR struct mtd_dev_s *dev, off_t startblock, size_t nblocks, FAR const uint8_t *buffer);

                    @@ -2042,32 +2218,42 @@ extern void up_ledoff(int led);
                • - Binding MTD Drivers. - MTD drivers are not normally directly accessed by user code, but are usually bound to another, - higher level device driver. - In general, the binding sequence is: -
                    -
                  • Get an instance of struct mtd_dev_s from the hardware-specific MTD device driver, and
                  • -
                  • Provide that instance to the initialization method of the higher level device driver.
                  • -
                  +

                  + Binding MTD Drivers. + MTD drivers are not normally directly accessed by user code, but are usually bound to another, + higher level device driver. + In general, the binding sequence is: +

                  +

                  +

                    +
                  1. Get an instance of struct mtd_dev_s from the hardware-specific MTD device driver, and
                  2. +
                  3. Provide that instance to the initialization method of the higher level device driver.
                  4. +
                  +

                • - Examples: - drivers/mtd/m25px.c and drivers/mtd/ftl.c +

                  + Examples: + drivers/mtd/m25px.c and drivers/mtd/ftl.c +

                • -

                  6.3.7 SDIO Device Drivers

                  +

                  6.3.8 SDIO Device Drivers

                  • - include/nuttx/sdio.h. - All structures and APIs needed to work with SDIO drivers are provided in this header file. +

                    + include/nuttx/sdio.h. + All structures and APIs needed to work with SDIO drivers are provided in this header file. +

                  • - struct sdio_dev_s. - Each SDIOI device driver must implement an instance of struct sdio_dev_s. - That structure defines a call table with the following methods: +

                    + struct sdio_dev_s. + Each SDIOI device driver must implement an instance of struct sdio_dev_s. + That structure defines a call table with the following methods: +

                    Initialization/setup:

                    @@ -2114,27 +2300,35 @@ extern void up_ledoff(int led);
                • - Binding SDIO Drivers. - SDIO drivers are not normally directly accessed by user code, but are usually bound to another, - higher level device driver. - In general, the binding sequence is: -
                    -
                  • Get an instance of struct sdio_dev_s from the hardware-specific SDIO device driver, and
                  • -
                  • Provide that instance to the initialization method of the higher level device driver.
                  • -
                  +

                  + Binding SDIO Drivers. + SDIO drivers are not normally directly accessed by user code, but are usually bound to another, + higher level device driver. + In general, the binding sequence is: +

                  +

                  +

                    +
                  1. Get an instance of struct sdio_dev_s from the hardware-specific SDIO device driver, and
                  2. +
                  3. Provide that instance to the initialization method of the higher level device driver.
                  4. +
                  +

                • - Examples: - arch/arm/src/stm32/stm32_sdio.c and drivers/mmcsd/mmcsd_sdio.c +

                  + Examples: + arch/arm/src/stm32/stm32_sdio.c and drivers/mmcsd/mmcsd_sdio.c +

                • -

                  6.3.8 USB Host-Side Drivers

                  +

                  6.3.9 USB Host-Side Drivers

                  • - include/nuttx/usb/usbhost.h. - All structures and APIs needed to work with USB host-side drivers are provided in this header file. +

                    + include/nuttx/usb/usbhost.h. + All structures and APIs needed to work with USB host-side drivers are provided in this header file. +

                  • @@ -2215,7 +2409,7 @@ extern void up_ledoff(int led); In general, the binding sequence is:

                    -

                      +
                      1. Each USB host class driver includes an intialization entry point that is called from the @@ -2249,17 +2443,19 @@ extern void up_ledoff(int led); See the call to register_blockdriver() in the function usbhost_initvolume() in the file drivers/usbhost/usbhost_storage.c.

                      2. -
                    +

                  -

                  6.3.9 USB Device-Side Drivers

                  +

                  6.3.10 USB Device-Side Drivers

                  • - include/nuttx/usb/usbdev.h. - All structures and APIs needed to work with USB device-side drivers are provided in this header file. +

                    + include/nuttx/usb/usbdev.h. + All structures and APIs needed to work with USB device-side drivers are provided in this header file. +

                  • @@ -2294,7 +2490,7 @@ extern void up_ledoff(int led); In general, the binding sequence is:

                    -

                      +
                      1. Each USB device class driver includes an intialization entry point that is called from the @@ -2313,7 +2509,7 @@ extern void up_ledoff(int led); completing the initialization.

                      2. -
                    +

                  From 35fc7273d087ab5381311ca2e986ae5e6749d283 Mon Sep 17 00:00:00 2001 From: patacongo Date: Tue, 11 Jan 2011 01:41:06 +0000 Subject: [PATCH 0695/1518] Improve endpoint management git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3240 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 69 ++++++++-------------------------------- 1 file changed, 13 insertions(+), 56 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 34bdedec56..011f69b638 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                  NuttX RTOS

                  -

                  Last Updated: January 9, 2011

                  +

                  Last Updated: January 10, 2011

                  @@ -1969,50 +1969,18 @@ Other memory:
                    -5.15 2010-12-12 Gregory Nutt <spudmonkey@racsa.co.cr>
                    +nuttx-5.16 2011-01-10 Gregory Nutt <spudmonkey@racsa.co.cr>
                     
                    -    * net/uip/uip_tcpaddsend.c and net/send.c -- Another place where the TCP sequence
                    -      number problem "fixed" in 5.14 might occur.
                    -    * net/send.c -- Check if the destination IP address is in the ARP table.  If
                    -      not, then don't consider the packet sent.  It won't be, an ARP packet will go
                    -      out instead.  This improves behavior, for example, on the first GET request
                    -      from a browser.
                    -    * arch/arm/src/lpc17xx/lpc17_emacram.h and lpc17_allocateheap.c -- The Ethernet
                    -      logic was using all of AHB SRAM Bank0 for Ethernet packet buffers (16Kb).  An
                    -      option was added to limit the amount of SRAM used for packet buffering and to
                    -      re-use any extra Bank0 memory for heap.  configs/olimex-lpc1766stk/nettest
                    -      now uses only 8Kb at the beginning of Bank0; the 8Kb at the end of Bank0 is
                    -      included in the heap
                    -    * arch/arm/src/lpc17xx/lpc17_ssp.c -- Fix compilation errors when SSP1 is
                    -      selected.
                    -    * configs/olimex-lpc1766stk/nsh -- Enable network and SD/MMC card support in
                    -      NSH.  Networking and telnetd interface as well as SPI-based microSD are
                    -      now functional.
                    -    * examples/nsh/nsh_netinit.c -- Fix NSH bug.  If CONFIG_NET is selected, but
                    -      CONFIG_EXAMPLES_NSH_TELNETD is not selected, then the network is never
                    -      initialized and bad things happen if you try to ping.
                    -    * drivers/lcd -- Add header files for the Phillips PCF8833 LCD controller and
                    -      for the Epson S1D15G10 LCD controller.  A driver for the Nokia 6100 LCD is
                    -      coming.
                    -    * include/nuttx/spi.h and almost all other SPI files -- Added an optional
                    -      cmddata() method to the SPI interface.  Some devices require an additional
                    -      out-of-band bit to specify if the next word sent to the device is a command
                    -      or data. This is typical, for example, in "9-bit" displays where the 9th bit
                    -      is the CMD/DATA bit. The cmddata method provides selection of command or data.
                    -    * drivers/lcd/p14201.c -- Now uses the cmddata() method of the SPI interface.
                    -    * arch/arm/src/lpc17xx/lpc17_usbdev.c -- LPC17xx USB driver now appears to
                    -      to be fully functional.  examples/usbstorage configuration verified (the
                    -      examples/usbserial configuration is untested).
                    -    * drivers/usbdev/usbserial.c and usbstorage.c -- All USB class drivers need
                    -      to call DEV_CONNECT() when they are ready to be enumerated.  That is,
                    -      (1) initially when bound to the USB driver, and (2) after a USB reset.
                    -    * drivers/lcd/nokia6100.c -- A driver for the Nokia 6100 LCD.  This driver
                    -      has not be verified as of the initial check-in.
                    -    * configs/olimex-lpc1766stk/nx -- A NX graphics configuration for the Olimex
                    -      LPC1766-STK board using the Nokia 6100 LCD driver.  This configuration has
                    -      not been verified as of the initial check-in.
                    -    * include/nuttx/spi.h -- the SPI_SETBITS macro was calling the setmode method.
                    -      This is a very important bug-fix in some usages.
                    +    * include/nuttx/usb -- Created new directory.  Moved all usb-related header
                    +      files to this new directory.  Created a skeleton for a new USB host header
                    +      file
                    +    * drivers/usbhost -- Add USB host "registry" where connect devices can be
                    +      matched with the correct USB class driver.
                    +    * arc/arc/src/lpc17xx/lpc17_usbhost.c -- Add a simple USB host driver for
                    +      the NXP lpc17xx.
                    +    * drivers/usbhost -- Add generic USB device enumeration logic.
                    +    * drivers/usbhost -- Add a USB host class driver for the (Bulk-Only) USB
                    +      Mass Storage Class.
                     
                     pascal-2.0 2009-12-21 Gregory Nutt <spudmonkey@racsa.co.cr>
                     
                    @@ -2042,18 +2010,7 @@ buildroot-1.8 2009-12-21 <spudmonkey@racsa.co.cr>
                     
                     
                     
                      -nuttx-5.16 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                      -
                      -    * include/nuttx/usb -- Created new directory.  Moved all usb-related header
                      -      files to this new directory.  Created a skeleton for a new USB host header
                      -      file
                      -    * drivers/usbhost -- Add USB host "registry" where connect devices can be
                      -      matched with the correct USB class driver.
                      -    * arc/arc/src/lpc17xx/lpc17_usbhost.c -- Add a simple USB host driver for
                      -      the NXP lpc17xx.
                      -    * drivers/usbhost -- Add generic USB device enumeration logic.
                      -    * drivers/usbhost -- Add a USB host class driver for the (Bulk-Only) USB
                      -      Mass Storage Class.
                      +nuttx-5.17 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                       
                       pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                       
                      
                      From 8b40b21472458481ae4e14f7adb151bdc3e7e706 Mon Sep 17 00:00:00 2001
                      From: patacongo 
                      Date: Tue, 11 Jan 2011 02:02:28 +0000
                      Subject: [PATCH 0696/1518] Prep for 5.16 release
                      
                      git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3241 42af7a65-404d-4744-a932-0658087f49c3
                      ---
                       Documentation/NuttX.html | 161 ++++++++++++++++++++++++++++++---------
                       1 file changed, 125 insertions(+), 36 deletions(-)
                      
                      diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html
                      index 011f69b638..d8e5fbab59 100644
                      --- a/Documentation/NuttX.html
                      +++ b/Documentation/NuttX.html
                      @@ -800,64 +800,153 @@
                         
                       
                       
                      -

                      nuttx-5.15 Release Notes: +

                      nuttx-5.16 Release Notes:

                      - This 62nd release of NuttX, Version 5.15, was made on December12, 2010 and is available for download from the + The 63rd release of NuttX, Version 5.16, was made on January 10, 2010 and is available for download from the SourceForge website. The change log associated with the release is available here. Unreleased changes after this release are available in CVS. These unreleased changes are listed here.

                      - This release includes several bugfixes as well as feature enhancements, primarily for the Olimex LPC1766-STK board. - Important bugfxes included: -

                        -
                      • - Additional fixes needed with the TCP sequence number problem "fixed" in nuttx-5.14. -
                      • -
                      • - In the send() logic, now checks if the destination IP address is in the ARP table before sending the packet; - an ARP request will go out instead of the TCP packet. - This improves behavior, for example, on the first on the first GET request from a browser -
                      • -
                      • - All USB class drivers need to call DEV_CONNECT() when they are ready to be enumerated. - That is, (1) initially when bound to the USB driver, and (2) after a USB reset. -
                      • -
                      • - The SPI_SETBITS macro was calling the SPI setmode method. -
                      • -
                      • - And several other bug fixes of lower criticality (see the ChangeLog for details). -
                      • -
                      + This release includes initial support for USB host in NuttX. + The USB host infrstruture is new to NuttX. + This initial USB host release is probably only beta quality; + it is expected the some bugs remain in the logic and that the functionality requires extension.

                      - And feature enhancements: + Below is a summary of the NuttX USB host implementation as extracted from the + NuttX Porting Guide: +

                      +
                        +

                        6.3.9 USB Host-Side Drivers

                        +
                        • - The LPC176x Ethernet driver was using all of AHB SRAM Bank0 for Ethernet packet buffers (16Kb). - An option was added to limit the amount of SRAM used for packet buffering and to re-use any extra Bank0 memory for heap. +

                          + include/nuttx/usb/usbhost.h. + All structures and APIs needed to work with USB host-side drivers are provided in this header file. +

                        • - Enabled networking and SD/MMC card support in the Olimex LPC1766-STK NuttShell (NSH) configuration. +

                          + struct usbhost_driver_s. + Each USB host controller driver must implement an instance of struct usbhost_driver_s. + This structure is defined in include/nuttx/usb/usbhost.h. +

                          +

                          + Examples: + arch/arm/src/lpc17xx/lpc17_usbhost.c. +

                        • - The LPC176x USB driver is now fully fully functional. +

                          + struct usbhost_class_s. + Each USB host class driver must implement an instance of struct usbhost_class_s. + This structure is also defined in include/nuttx/usb/usbhost.h. +

                          +

                          + Examples: + drivers/usbhost/usbhost_storage.c +

                        • - Added an optional cmddata() method to the SPI interface. - Some devices require an additional out-of-band bit to specify if the next word sent to the device is a command or data. - The cmddata() method provides selection of command or data. +

                          + USB Host Class Driver Registry. + The NuttX USB host infrastructure includes a registry. + During its initialization, each USB host class driver must call the interface, usbhost_registerclass() + in order add its interface to the registery. + Later, when a USB device is connected, the USB host controller will look up the USB host class driver that is needed to support the connected device in this registry. +

                          +

                          + Examples: + drivers/usbhost/usbhost_registry.c, drivers/usbhost/usbhost_registerclass.c, and drivers/usbhost/usbhost_findclass.c, +

                        • - A driver for the Nokia 6100 LCD (with either the Phillips PCF8833 LCD controller and for the Epson S1D15G10 LCD controller) - and an NX graphics configuration for the Olimex LPC1766-STK have been added. - However, neither the LCD driver nor the NX configuration have been verified as of the this release. +

                          + Detection and Enumeration of Connected Devices. + Each USB host device controller supports two methods that are used to detect and enumeration newly connected devices + (and also detect disconnected devices): +

                          +

                          +

                            +
                          • +

                            + int (*wait)(FAR struct usbhost_driver_s *drvr, bool connected); +

                            +

                            + Wait for a device to be connected or disconnected. +

                            +
                          • +
                          • +

                            + int (*enumerate)(FAR struct usbhost_driver_s *drvr); +

                            +

                            + Enumerate the connected device. + As part of this enumeration process, the driver will + (1) get the device's configuration descriptor, + (2) extract the class ID info from the configuration descriptor, + (3) call usbhost_findclass() to find the class that supports this device, + (4) call the create() method on the struct usbhost_registry_s interface to get a class instance, and + finally (5) call the connect() method of the struct usbhost_class_s interface. + After that, the class is in charge of the sequence of operations. +

                            +
                          +

                          +
                        • +
                        • +

                          + Binding USB Host-Side Drivers. + USB host-side controller drivers are not normally directly accessed by user code, + but are usually bound to another, higher level USB host class driver. + The class driver exports the standard NuttX device interface so that the connected USB device can be accessed just as with other, similar, on-board devices. + For example, the USB host mass storage class driver (drivers/usbhost/usbhost_storage.c) will register a standard, NuttX block driver interface (like /dev/sda) + that can be used to mount a file system just as with any other other block driver instance. + In general, the binding sequence is: +

                          +

                          +

                            +
                          1. +

                            + Each USB host class driver includes an intialization entry point that is called from the + application at initialization time. + This driver calls usbhost_registerclass() during this initialization in order to makes itself available in the event the the device that it supports is connected. +

                            +

                            + Examples: + The function usbhost_storageinit() in the file drivers/usbhost/usbhost_storage.c +

                            +
                          2. +
                          3. +

                            + Each application must include a waiter thread thread that (1) calls the USB host controller driver's wait() to detect the connection of a device, and then + (2) call the USB host controller driver's enumerate method to bind the registered USB host class driver to the USB host controller driver. +

                            +

                            + Examples: + The function nsh_waiter() in the file configs/nucleus2g/src/up_nsh.c and + the function nsh_waiter() in the file configs/olimex-lpc1766stk/src/up_nsh.c. +

                            +
                          4. +
                          5. +

                            + As part of its operation during the binding operation, the USB host class driver will register an instances of a standard NuttX driver under the /dev directory. + To repeat the above example, the USB host mass storage class driver (drivers/usbhost/usbhost_storage.c) will register a standard, NuttX block driver interface (like /dev/sda) + that can be used to mount a file system just as with any other other block driver instance. +

                            +

                            + Examples: + See the call to register_blockdriver() in the function usbhost_initvolume() in the file drivers/usbhost/usbhost_storage.c. +

                            +
                          6. +
                          +

                        -

                        +
                      From a0949aeed61d79e66e4c553b079c0ac868a4f5a9 Mon Sep 17 00:00:00 2001 From: patacongo Date: Wed, 12 Jan 2011 04:03:57 +0000 Subject: [PATCH 0697/1518] Framework for HID keyboard -- not much there yet git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3245 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index d8e5fbab59..e98e4a2fc2 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                      NuttX RTOS

                      -

                      Last Updated: January 10, 2011

                      +

                      Last Updated: January 11, 2011

                      @@ -2101,6 +2101,14 @@ buildroot-1.8 2009-12-21 <spudmonkey@racsa.co.cr>
                         nuttx-5.17 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                         
                        +    * include/nuttx/usb -- rename usb_storage.h to storage.h.
                        +    * arch/arm/src/lpc17xx/lpc17_usbhost.c -- Add support for low-speed devices.
                        +    * drivers/usbhost/usbhost_skeleton.c -- Template for new class drivers
                        +    * include/nuttx/usb/hid.h and drivers/usbhost/usbhost_hidkbd.c -- Initial
                        +      files for HID keyboard support.  These are mostly empty files on the
                        +      initial checkin.
                        +
                        +
                         pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                         
                         buildroot-1.9 2010-xx-xx 
                        
                        From 5213a669cb66b9e6fdc9dd281af547be5e25a59d Mon Sep 17 00:00:00 2001
                        From: patacongo 
                        Date: Wed, 12 Jan 2011 04:45:23 +0000
                        Subject: [PATCH 0698/1518] Update README index
                        
                        git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3246 42af7a65-404d-4744-a932-0658087f49c3
                        ---
                         Documentation/README.html | 5 ++++-
                         1 file changed, 4 insertions(+), 1 deletion(-)
                        
                        diff --git a/Documentation/README.html b/Documentation/README.html
                        index a062381026..7bf30ac3a1 100755
                        --- a/Documentation/README.html
                        +++ b/Documentation/README.html
                        @@ -72,6 +72,10 @@
                          |   |   |- include/README.txt
                          |   |   |- src/README.txt
                          |   |   `- README.txt
                        + |   |- lm3s8962
                        + |   |   |- include/README.txt
                        + |   |   |- src/README.txt
                        + |   |   `- README.txt
                          |   |- m68332evb/
                          |   |   |- include/README.txt
                          |   |   `- src/README.txt
                        @@ -96,7 +100,6 @@
                          |   |   `- README.txt
                          |   |- olimex-lpc2378/
                          |   |   |- include/README.txt
                        - |   |   |- src/README.txt
                          |   |   `- README.txt
                          |   |- olimex-strp711/
                          |   |   |- include/README.txt
                        
                        From 1e0fc4f553df631141e15ab08baab1ddea2aeed1 Mon Sep 17 00:00:00 2001
                        From: patacongo 
                        Date: Sat, 15 Jan 2011 22:30:23 +0000
                        Subject: [PATCH 0699/1518] Many changes in preparation for HID keyboard
                        
                        git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3253 42af7a65-404d-4744-a932-0658087f49c3
                        ---
                         Documentation/NuttX.html | 11 +++++++++--
                         1 file changed, 9 insertions(+), 2 deletions(-)
                        
                        diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html
                        index e98e4a2fc2..11390b715b 100644
                        --- a/Documentation/NuttX.html
                        +++ b/Documentation/NuttX.html
                        @@ -8,7 +8,7 @@
                           
                             
                               

                        NuttX RTOS

                        -

                        Last Updated: January 11, 2011

                        +

                        Last Updated: January 15, 2011

                        @@ -2107,7 +2107,14 @@ nuttx-5.17 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> * include/nuttx/usb/hid.h and drivers/usbhost/usbhost_hidkbd.c -- Initial files for HID keyboard support. These are mostly empty files on the initial checkin. - + * arch/arm/src/lpc17xx/lpc17_usbhost.c -- Will now handle multiple + concurrent transfers on different endpoints (still only one TD per + endpoint). All methods are protected from re-entrancy; lots of re- + structuring in preparation for interrupt endpoint support. + * examples/hidkbd - Added a simple test for the USB host HID keyboard + class driver. + * configs/olimex-lpc1766stk/hidkbd - Added a configuration to build the + USB host HID keyboard class driver test for the LPC17xx. pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From e79cd40426adf39f5a4cce597cd5c92403e99a97 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 16 Jan 2011 14:02:42 +0000 Subject: [PATCH 0700/1518] Make space for int/isoc endpoint support git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3254 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index c2ed3b4d1b..0eb4e6f449 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

                        NuttX RTOS Porting Guide

                        -

                        Last Updated: January 9, 2011

                        +

                        Last Updated: January 16, 2011

                        @@ -3612,6 +3612,15 @@ build
                      • CONFIG_USBHOST_NPREALLOC: Number of pre-allocated class instances
                      • +
                      • + CONFIG_USBHOST_BULK_DISABLE: On some architectures, selecting this setting will reduce driver size by disabling bulk endpoint support +
                      • +
                      • + CONFIG_USBHOST_INT_DISABLE: On some architectures, selecting this setting will reduce driver size by disabling interrupt endpoint support +
                      • +
                      • + CONFIG_USBHOST_ISOC_DISABLE: On some architectures, selecting this setting will reduce driver size by disabling isochronous endpoint support +

                      Graphics related configuration settings

                      From 65cceb4384770742cf322cf253f77f1d0857bbde Mon Sep 17 00:00:00 2001 From: patacongo Date: Wed, 19 Jan 2011 04:17:45 +0000 Subject: [PATCH 0701/1518] Basic HID keyboard funcionality. More testing is needed git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3260 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 11390b715b..192f9b79cc 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                      NuttX RTOS

                      -

                      Last Updated: January 15, 2011

                      +

                      Last Updated: January 18, 2011

                      @@ -547,7 +547,7 @@

                      -

                    • Device-dependent USB class drivers available for USB mass storage.
                    • +
                    • Device-dependent USB class drivers available for USB mass storage and HID keyboard.
                    • @@ -2104,17 +2104,18 @@ nuttx-5.17 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> * include/nuttx/usb -- rename usb_storage.h to storage.h. * arch/arm/src/lpc17xx/lpc17_usbhost.c -- Add support for low-speed devices. * drivers/usbhost/usbhost_skeleton.c -- Template for new class drivers - * include/nuttx/usb/hid.h and drivers/usbhost/usbhost_hidkbd.c -- Initial - files for HID keyboard support. These are mostly empty files on the - initial checkin. - * arch/arm/src/lpc17xx/lpc17_usbhost.c -- Will now handle multiple - concurrent transfers on different endpoints (still only one TD per - endpoint). All methods are protected from re-entrancy; lots of re- - structuring in preparation for interrupt endpoint support. - * examples/hidkbd - Added a simple test for the USB host HID keyboard - class driver. - * configs/olimex-lpc1766stk/hidkbd - Added a configuration to build the - USB host HID keyboard class driver test for the LPC17xx. + * include/nuttx/usb/hid.h and drivers/usbhost/usbhost_hidkbd.c -- New + files for HID keyboard support. + * arch/arm/src/lpc17xx/lpc17_usbhost.c -- Will now handle multiple + concurrent transfers on different endpoints (still only one TD per + endpoint). All methods are protected from re-entrancy; lots of re- + structuring in preparation for interrupt endpoint support. + * arch/arm/src/lpc17xx/lpc17_usbhost.c -- Add support for periodic + interrupt transfers. + * examples/hidkbd - Added a simple test for the USB host HID keyboard + class driver. + * configs/olimex-lpc1766stk/hidkbd - Added a configuration to build the + USB host HID keyboard class driver test for the LPC17xx. pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From 7e6b81b8d428583dd613935a93bf360f1b052bf0 Mon Sep 17 00:00:00 2001 From: patacongo Date: Wed, 19 Jan 2011 20:02:23 +0000 Subject: [PATCH 0702/1518] Fix issues detected by CppCheck tool git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3261 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 38 +++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 0eb4e6f449..81f819260d 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

                      NuttX RTOS Porting Guide

                      -

                      Last Updated: January 16, 2011

                      +

                      Last Updated: January 19, 2011

                      @@ -3622,6 +3622,42 @@ build CONFIG_USBHOST_ISOC_DISABLE: On some architectures, selecting this setting will reduce driver size by disabling isochronous endpoint support
                    +

                    USB Host HID Class Driver

                    +

                    + Requires CONFIG_USBHOST=y, CONFIG_USBHOST_INT_DISABLE=n, CONFIG_NFILE_DESCRIPTORS > 0, + CONFIG_SCHED_WORKQUEUE=y, and CONFIG_DISABLE_SIGNALS=n. +

                    +
                      +
                    • + CONFIG_HIDKBD_POLLUSEC: Device poll rate in microseconds. Default: 100 milliseconds. +
                    • +
                    • + CONFIG_HIDKBD_DEFPRIO: Priority of the polling thread. Default: 50. +
                    • +
                    • + CONFIG_HIDKBD_STACKSIZE: Stack size for polling thread. Default: 1024 +
                    • +
                    • + CONFIG_HIDKBD_BUFSIZE: Scancode buffer size. Default: 64. +
                    • +
                    • + CONFIG_HIDKBD_NPOLLWAITERS: If the poll() method is enabled, this defines the maximum number of threads that can be waiting for keyboard events. Default: 2. +
                    • +
                    • + CONFIG_HIDKBD_RAWSCANCODES: If set to y no conversion will be made on the raw keyboard scan codes. Default: ASCII conversion. +
                    • +
                    • + CONFIG_HIDKBD_ALLSCANCODES: If set to y all 231 possible scancodes will be converted to something. Default: 104 key US keyboard. +
                    • +
                    • + CONFIG_HIDKBD_NODEBOUNCE: If set to y normal debouncing is disabled. Default: Debounce/No repeat keys. +
                    • +
                    +

                    USB Host HID Mass Storage Class Driver

                    +

                    + Requires CONFIG_USBHOST=y, CONFIG_USBHOST_BULK_DISABLE=n, CONFIG_NFILE_DESCRIPTORS > 0, + and CONFIG_SCHED_WORKQUEUE=y. +

                    Graphics related configuration settings

                      From 4affc9b5f782aee19c02ce56fca79d1df7129913 Mon Sep 17 00:00:00 2001 From: patacongo Date: Wed, 19 Jan 2011 21:17:37 +0000 Subject: [PATCH 0703/1518] Fix more issues detected by CppCheck tool git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3264 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 192f9b79cc..692752ae84 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                      NuttX RTOS

                      -

                      Last Updated: January 18, 2011

                      +

                      Last Updated: January 19, 2011

                      @@ -2116,6 +2116,8 @@ nuttx-5.17 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> class driver. * configs/olimex-lpc1766stk/hidkbd - Added a configuration to build the USB host HID keyboard class driver test for the LPC17xx. + * Ran the tool CppCheck (http://sourceforge.net/apps/mediawiki/cppcheck) and + fixed several errors in the code identified by the tool. pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From c4e91a2617860387fc9940bcd7b477fdac94fbfe Mon Sep 17 00:00:00 2001 From: patacongo Date: Thu, 20 Jan 2011 02:41:15 +0000 Subject: [PATCH 0704/1518] Prep for NuttX-5.17 git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3267 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 251 ++++++++++++--------------------------- 1 file changed, 74 insertions(+), 177 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 692752ae84..c7ad3a5ec0 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -800,153 +800,31 @@ -

                      nuttx-5.16 Release Notes: - +

                      nuttx-5.17 Release Notes:

                      - The 63rd release of NuttX, Version 5.16, was made on January 10, 2010 and is available for download from the + The 64th release of NuttX, Version 5.17, was made on January 19, 2010 and is available for download from the SourceForge website. The change log associated with the release is available here. Unreleased changes after this release are available in CVS. These unreleased changes are listed here.

                      - This release includes initial support for USB host in NuttX. - The USB host infrstruture is new to NuttX. - This initial USB host release is probably only beta quality; - it is expected the some bugs remain in the logic and that the functionality requires extension. -

                      + This release follows close on the heels of the 5.16 release and extends the USB host capabilities first introduced in that version.

                      - Below is a summary of the NuttX USB host implementation as extracted from the - NuttX Porting Guide: -

                        -

                        6.3.9 USB Host-Side Drivers

                        - -
                          -
                        • -

                          - include/nuttx/usb/usbhost.h. - All structures and APIs needed to work with USB host-side drivers are provided in this header file. -

                          -
                        • -
                        • -

                          - struct usbhost_driver_s. - Each USB host controller driver must implement an instance of struct usbhost_driver_s. - This structure is defined in include/nuttx/usb/usbhost.h. -

                          -

                          - Examples: - arch/arm/src/lpc17xx/lpc17_usbhost.c. -

                          -
                        • -
                        • -

                          - struct usbhost_class_s. - Each USB host class driver must implement an instance of struct usbhost_class_s. - This structure is also defined in include/nuttx/usb/usbhost.h. -

                          -

                          - Examples: - drivers/usbhost/usbhost_storage.c -

                          -
                        • -
                        • -

                          - USB Host Class Driver Registry. - The NuttX USB host infrastructure includes a registry. - During its initialization, each USB host class driver must call the interface, usbhost_registerclass() - in order add its interface to the registery. - Later, when a USB device is connected, the USB host controller will look up the USB host class driver that is needed to support the connected device in this registry. -

                          -

                          - Examples: - drivers/usbhost/usbhost_registry.c, drivers/usbhost/usbhost_registerclass.c, and drivers/usbhost/usbhost_findclass.c, -

                          -
                        • -
                        • -

                          - Detection and Enumeration of Connected Devices. - Each USB host device controller supports two methods that are used to detect and enumeration newly connected devices - (and also detect disconnected devices): -

                          -

                          -

                            -
                          • -

                            - int (*wait)(FAR struct usbhost_driver_s *drvr, bool connected); -

                            -

                            - Wait for a device to be connected or disconnected. -

                            -
                          • -
                          • -

                            - int (*enumerate)(FAR struct usbhost_driver_s *drvr); -

                            -

                            - Enumerate the connected device. - As part of this enumeration process, the driver will - (1) get the device's configuration descriptor, - (2) extract the class ID info from the configuration descriptor, - (3) call usbhost_findclass() to find the class that supports this device, - (4) call the create() method on the struct usbhost_registry_s interface to get a class instance, and - finally (5) call the connect() method of the struct usbhost_class_s interface. - After that, the class is in charge of the sequence of operations. -

                            -
                          -

                          -
                        • -
                        • -

                          - Binding USB Host-Side Drivers. - USB host-side controller drivers are not normally directly accessed by user code, - but are usually bound to another, higher level USB host class driver. - The class driver exports the standard NuttX device interface so that the connected USB device can be accessed just as with other, similar, on-board devices. - For example, the USB host mass storage class driver (drivers/usbhost/usbhost_storage.c) will register a standard, NuttX block driver interface (like /dev/sda) - that can be used to mount a file system just as with any other other block driver instance. - In general, the binding sequence is: -

                          -

                          -

                            -
                          1. -

                            - Each USB host class driver includes an intialization entry point that is called from the - application at initialization time. - This driver calls usbhost_registerclass() during this initialization in order to makes itself available in the event the the device that it supports is connected. -

                            -

                            - Examples: - The function usbhost_storageinit() in the file drivers/usbhost/usbhost_storage.c -

                            -
                          2. -
                          3. -

                            - Each application must include a waiter thread thread that (1) calls the USB host controller driver's wait() to detect the connection of a device, and then - (2) call the USB host controller driver's enumerate method to bind the registered USB host class driver to the USB host controller driver. -

                            -

                            - Examples: - The function nsh_waiter() in the file configs/nucleus2g/src/up_nsh.c and - the function nsh_waiter() in the file configs/olimex-lpc1766stk/src/up_nsh.c. -

                            -
                          4. -
                          5. -

                            - As part of its operation during the binding operation, the USB host class driver will register an instances of a standard NuttX driver under the /dev directory. - To repeat the above example, the USB host mass storage class driver (drivers/usbhost/usbhost_storage.c) will register a standard, NuttX block driver interface (like /dev/sda) - that can be used to mount a file system just as with any other other block driver instance. -

                            -

                            - Examples: - See the call to register_blockdriver() in the function usbhost_initvolume() in the file drivers/usbhost/usbhost_storage.c. -

                            -
                          6. -
                          -

                          -
                        • -
                        +
                      • + The LPC17xx USB host controller driver was extended to (1) add support for low-speed devices, + (2) handle multiple concurrent transfers on different endpoints (still only one TD per endpoint), and + (3) handle periodic interrupt endpoint types. +
                      • +
                      • + Add a USB host HID keyboard class driver. + Now you can connect a standard USB keyboard to NuttX and receive keyboard input for an application. +
                      +

                      + And other changes as detailed in the ChangeLog. +

                      @@ -1394,9 +1272,17 @@

                      Nucleus2G LPC1768. - Some initial files for the LPC17xx family were released in NuttX 5.6, but the first - functional release for the NXP LPC1768/Nucleus2G occured with NuttX 5.7 with some - additional enhancements through NuttX-5.9. +

                        +
                      • + Some initial files for the LPC17xx family were released in NuttX 5.6, but +
                      • +
                      • + The first functional release for the NXP LPC1768/Nucleus2G occured with NuttX 5.7 with + Some additional enhancements through NuttX-5.9. +
                      • +
                      +

                      +

                      That initial, 5.6, basic release included timer interrupts and a serial console and was verified using the NuttX OS test (examples/ostest). Configurations available include include a verified NuttShell (NSH) configuration @@ -1408,21 +1294,43 @@

                      mbed LPC1768. - Support for the mbed board was contributed by Dave Marples and released in NuttX-5.11. +

                        +
                      • + Support for the mbed board was contributed by Dave Marples and released in NuttX-5.11. +
                      • +
                      +

                      +

                      This port includes a NuttX OS test configuration (see examples/ostest).

                      Olimex LPC1766-STK. - Support for that Olimex-LPC1766-STK board was added to NuttX 5.13. - The NuttX-5.14 release extended that support with an Ethernet driver. - The NuttX-5.15 release further extended the support with a functional USB device driver and SPI-based micro-SD. - And the NuttX-5.16 release added a functional USB host driver. +

                        +
                      • + Support for that Olimex-LPC1766-STK board was added to NuttX 5.13. +
                      • +
                      • + The NuttX-5.14 release extended that support with an Ethernet driver. +
                      • +
                      • + The NuttX-5.15 release further extended the support with a functional USB device driver and SPI-based micro-SD. +
                      • +
                      • + The NuttX-5.16 release added a functional USB host controller driver and USB host mass storage class driver. +
                      • +
                      • + The NuttX-5.17 released added support for low-speed USB devicers, interrupt endpoints, and a USB host HID keyboard class driver. +
                      • +
                      +

                      +

                      Verified configurations are now available for the NuttX OS test, for the NuttShell with networking and microSD support(NSH, see the NSH User Guide), for the NuttX network test, for the THTTPD webserver, - and for USB serial and USB storage examples. + for USB serial deive and USB storage devices examples, and for the USB host HID keyboard driver. + Support for the USB host mass storage device can optionally be configured for the NSH example. A driver for the Nokia 6100 LCD and an NX graphics configuration for the Olimex LPC1766-STK have been added. - However, neither the LCD driver nor the NX configuration have been verified as of the the NuttX-5.15 release. + However, neither the LCD driver nor the NX configuration have been verified as of the the NuttX-5.17 release.

                      Development Environments: @@ -2058,18 +1966,25 @@ Other memory:

                        -nuttx-5.16 2011-01-10 Gregory Nutt <spudmonkey@racsa.co.cr>
                        +nuttx-5.17 2011-01-19 Gregory Nutt <spudmonkey@racsa.co.cr>
                         
                        -    * include/nuttx/usb -- Created new directory.  Moved all usb-related header
                        -      files to this new directory.  Created a skeleton for a new USB host header
                        -      file
                        -    * drivers/usbhost -- Add USB host "registry" where connect devices can be
                        -      matched with the correct USB class driver.
                        -    * arc/arc/src/lpc17xx/lpc17_usbhost.c -- Add a simple USB host driver for
                        -      the NXP lpc17xx.
                        -    * drivers/usbhost -- Add generic USB device enumeration logic.
                        -    * drivers/usbhost -- Add a USB host class driver for the (Bulk-Only) USB
                        -      Mass Storage Class.
                        +    * include/nuttx/usb -- rename usb_storage.h to storage.h.
                        +    * arch/arm/src/lpc17xx/lpc17_usbhost.c -- Add support for low-speed devices.
                        +    * drivers/usbhost/usbhost_skeleton.c -- Template for new class drivers
                        +    * include/nuttx/usb/hid.h and drivers/usbhost/usbhost_hidkbd.c -- New
                        +      files for HID keyboard support.
                        +    * arch/arm/src/lpc17xx/lpc17_usbhost.c -- Will now handle multiple
                        +      concurrent transfers on different endpoints (still only one TD per
                        +      endpoint).  All methods are protected from re-entrancy; lots of re-
                        +      structuring in preparation for interrupt endpoint support.
                        +    * arch/arm/src/lpc17xx/lpc17_usbhost.c -- Add support for periodic
                        +      interrupt transfers.
                        +    * examples/hidkbd - Added a simple test for the USB host HID keyboard
                        +      class driver.
                        +    * configs/olimex-lpc1766stk/hidkbd - Added a configuration to build the
                        +      USB host HID keyboard class driver test for the LPC17xx.
                        +    * Ran the tool CppCheck (http://sourceforge.net/apps/mediawiki/cppcheck) and
                        +      fixed several errors in the code identified by the tool.
                         
                         pascal-2.0 2009-12-21 Gregory Nutt <spudmonkey@racsa.co.cr>
                         
                        @@ -2099,25 +2014,7 @@ buildroot-1.8 2009-12-21 <spudmonkey@racsa.co.cr>
                         
                         
                         
                          -nuttx-5.17 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                          -
                          -    * include/nuttx/usb -- rename usb_storage.h to storage.h.
                          -    * arch/arm/src/lpc17xx/lpc17_usbhost.c -- Add support for low-speed devices.
                          -    * drivers/usbhost/usbhost_skeleton.c -- Template for new class drivers
                          -    * include/nuttx/usb/hid.h and drivers/usbhost/usbhost_hidkbd.c -- New
                          -      files for HID keyboard support.
                          -    * arch/arm/src/lpc17xx/lpc17_usbhost.c -- Will now handle multiple
                          -      concurrent transfers on different endpoints (still only one TD per
                          -      endpoint).  All methods are protected from re-entrancy; lots of re-
                          -      structuring in preparation for interrupt endpoint support.
                          -    * arch/arm/src/lpc17xx/lpc17_usbhost.c -- Add support for periodic
                          -      interrupt transfers.
                          -    * examples/hidkbd - Added a simple test for the USB host HID keyboard
                          -      class driver.
                          -    * configs/olimex-lpc1766stk/hidkbd - Added a configuration to build the
                          -      USB host HID keyboard class driver test for the LPC17xx.
                          -    * Ran the tool CppCheck (http://sourceforge.net/apps/mediawiki/cppcheck) and
                          -      fixed several errors in the code identified by the tool.
                          +nuttx-5.18 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                           
                           pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                           
                          
                          From 3d786e9cd9ee3dcb708e0dd00ea7a5a36a638369 Mon Sep 17 00:00:00 2001
                          From: patacongo 
                          Date: Sun, 23 Jan 2011 17:40:10 +0000
                          Subject: [PATCH 0705/1518] Incorporate uIP patches
                          
                          git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3274 42af7a65-404d-4744-a932-0658087f49c3
                          ---
                           Documentation/NuttX.html | 7 ++++++-
                           1 file changed, 6 insertions(+), 1 deletion(-)
                          
                          diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html
                          index c7ad3a5ec0..aac2bbe3ed 100644
                          --- a/Documentation/NuttX.html
                          +++ b/Documentation/NuttX.html
                          @@ -8,7 +8,7 @@
                             
                               
                                 

                          NuttX RTOS

                          -

                          Last Updated: January 19, 2011

                          +

                          Last Updated: January 23, 2011

                          @@ -2016,6 +2016,11 @@ buildroot-1.8 2009-12-21 <spudmonkey@racsa.co.cr>
                             nuttx-5.18 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                             
                            +    * Incorporate several uIP patches from http://gitweb.aeruder.net/?p=uip.git;a=summary.
                            +      - Lost SYNACK causes connection reset
                            +      - Fix missing UDP stats for sent/received packets
                            +      - Added support for Cygwin as development/test platform.
                            +
                             pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                             
                             buildroot-1.9 2010-xx-xx 
                            
                            From 82872642cd6fc843062d96c42680ab93cf4fe68d Mon Sep 17 00:00:00 2001
                            From: patacongo 
                            Date: Mon, 24 Jan 2011 19:53:49 +0000
                            Subject: [PATCH 0706/1518] Add fiberdownload links
                            
                            git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3276 42af7a65-404d-4744-a932-0658087f49c3
                            ---
                             Documentation/NuttXLinks.html   |  11 +++++++----
                             Documentation/award2_151_50.png | Bin 0 -> 10757 bytes
                             Documentation/editor_pick_2.png | Bin 0 -> 4951 bytes
                             3 files changed, 7 insertions(+), 4 deletions(-)
                             create mode 100644 Documentation/award2_151_50.png
                             create mode 100644 Documentation/editor_pick_2.png
                            
                            diff --git a/Documentation/NuttXLinks.html b/Documentation/NuttXLinks.html
                            index 681dc9329f..3b6d6b9e69 100755
                            --- a/Documentation/NuttXLinks.html
                            +++ b/Documentation/NuttXLinks.html
                            @@ -25,8 +25,8 @@
                                   
                          • Downloads
                          • Toolchains
                          • Browse CVS
                          • -
                          • gmane
                          • Free Ports
                          • +
                          • @@ -57,10 +57,13 @@ -   - - + + + NuttX + NuttX + + diff --git a/Documentation/award2_151_50.png b/Documentation/award2_151_50.png new file mode 100644 index 0000000000000000000000000000000000000000..219cb6d8025625e585e6a5f2d19bd4b7e9c31bd4 GIT binary patch literal 10757 zcmV+gD*DxlP)NklUyXyX^o`@a*)Sk6F@Abn> zcXd^D*SEgESOsyz9j^=le%`K+5P$%YKcUZwvNE|NSH^Jv=KhGHFU7w_aham~EB&6f zA4P5AaeqlU&mSHi<@r^AcTcFY3+3gMDk|&#F1f$FOi>+P_vYGAWo_pBp+KtAe&yOz z%KJB90rh~7|Bz2HFv2^)AUJrHJk@m=IsENiNkvJ6gSp9MN4oPoMGMJ3>-@?;WzSw zylk}L2vfiGVipm~102HRobq6)azK=^8&qJd>FV%8P#HkW$Id7_uT&`$=h>vJ0%3rX zWdIXpY**B`+`uDBftzC^p~`?Nrk*bbemR4BVO4p9*?K$p$;9Cn^?N#2jbJq_2YVdp z#6ehyw4ik|!dFJW$6cvg={B!H3d3W@2#@hp1u)4!4j@ozff$zrOvz1yzvG0xi2b~y!iX?c40wvO3WGe8IIPHsvjmo4 zdJ*K+cO{BIBc_&B9->rvh(0gzD9Xi}^1wnRx$5<<f^q4ZEKviItN(M#6vcj9yJb!zMN$<9ItotM_ zfq^OKUmZQ4Z}fb-h)q-;Y&)*_G%bMv?t1g%?2O#Pjw?SyOVFc^Q|I!HXaDD{n8Z^D ztgJG5D~)-Pth_~IQBmWs4X&^nVL{6xM6eEJIVeA%43I)ItWv0eLWL9r6^o1$)TyyD z{YbopmIbr23WS$6TR{vLTcN_sm=JHRn`O72JNK157@r=vd=~Xi_pD<2hAVd4!(#Vj zbx|b3-)82jQ)8Hcxw;c(F_o7oyFS2D1k5DWGUffQgqJuIQyIn6+AC+Ra>ZUu1(xAq zF^UTMT3#=zEFSMV^htIe+33Cl zj-EG#O>RBoE^a;JE?vhPA9Gnu6xgstKQB}Er+61cDVr6$5>zGUnJi+%a%NPO!DZrb zjd+sl=l8R)$w6iIqQ)akPR`-^$xHa9`Y3T~P77QPCXbA*VC~_@F&DRDq%9nuso6_p zAuTY*1jd-b#Kat)<5IFSx!pWG^vzB`A2#miq9s|XtD=xOfr=jI=)_{~l^%~a%I?5K1$WR-N(mwDQvB4UCt^OAK zG*z|djCI_AiUyo3n*F+~t*SAldOWg;d_oKb_{rEg-7c}@i@%)>G0{;YMz`GEB# z>n}J9YN9wIfwE(Wxe1mI9pqE}w=en3{% z9^h+hzfDV^pLI=7v2xBq4o$2ArC8UziaQsD(DP z*jyWWgoX5-wrI4m_^rB`U%oz0Ez*2sa_#6+K@72Inr)Pnk zArG*A%_3-NMF!#!7)1pKkWE?CLWjC}quh|$Il~K|*{~`B78Q&OL78J$lsIz_O|E9= zu@C0&ZqB(Vgy342wVob&7co0jvAc)HSF$s5OQ8-A7sWKD?#$sTF&ny@S(hw;iwRaQ zYC;4eQ^S4Sz#GvT>=S)B0}^MXic~bnnl-;fD&q zENBcu;j=8QuqoHHQ&r>>CJev?Kbf~41`-ZS%;N|%ryyJSEr(`fz$H;*cC(@^PG<@Q zrVlWYascI=DEMF8Y7N6-_S02pU!1^Oi7#iVVx}r~YZ!u--~eAZ<9mdxm@5_!v0?rL zF0exMPObt(Ue|hc^n4CYtS%YHmg*tCu=YoJK&`CnWy9i!^T6sIUon+QsiX_4%3+KW zJ@()4Tg)p@NmWJP@GvX04oDq57KQ~>p)zqu2uKS0nU5-}#1MiiOOVXUnZ=iQlP2E? z!pK=M+L^ji_EN8+jM4CxKs#s$Q4@U-tU+ZDfQSPD{f<%~l7gY^{C{U+(X2JuDU)Ht z{QKE3|Nbe(?&|$?Ui@uXr~$WY=v|&wZdmjX8(jZax!)_64gIHdMdat@DbdJZPMFBP zmoa1*kpi*;QbCMU77UxbJbpgMSX{!q^J;u7uCHcpaOT8{OMK7avm7v0{t$kHX5S!Z z8+&Hw#`bV091zRc`^J74dIK>!peKS2VnQH>4CJWABj)=mP`dDT%1&uVfl-OIDAlzD zZdpOhspa8;>q|p6(F^#-Yn?pY|2`0c4GSM2WW|WtA)X$(qSRs$5OYGV^;lHL$a#F@ zg>Uiju?>}3t31>trZZG3=~?BT`nTZck{CQ;U&PYq9^i_z>al8rNZW^qSEB|^`bXyT zEBnL52o(X#Pkq2bDrgA$5CTTx*|PbqJ5?=Goa28D!z_L%1%^SbNOCT(@^tnJ&5Bd> z7d7ph=r{oK*|pqu z@GIPQ@GGTOmn=NjdX{jDGAhH%CKKDkq+fEKpOMFD)g)&=)*Jwr(#*0 zvPLiVKSzUq!gZb&J0?w(VX{&jVu?J;QD@m{htY&k%&i*4?;Jrz4Wgqh#HnFKHS(l+ z4ZCXIJxd4h?7-|9kDN7d-2pKaNLX2WkaNQ?X>j$ux70a{tc-@d3#=%RTn-NP*A#jl zE{(GGr#P(ARPhK`^T@>20DQ{#W3IpaM$Q|0maFzW#2?ZhAsqDO8LRLdI-XS@un@p- zJd5KNFmbrD=FbHDDHjbz18qo921|^?T&P~)XmZ(U>yKxc`+0xWJs5_-F%5n;{so>h zE}x#xy^;nidJc`s85y3Lv{MF+9+FsPB?Z6AKq$hWK% zNGXw0l9iHxAqiQ6gl)5-uAADb38dA4s9A-Yc&Xqi7B*NRutKad_j6gzQ~W7*W0}vX z5)LFA0)OP4!RK^1NoDEFEN09I>y)0E{4>*eCGu?>MW?iDL%8~eCO-oV;etk>gdnRF zS*ZsvB^9;=!yT5SBT=$2I$2v`OQlnpl|mp;N|JW;wZftOGt%Af?I!OG=575?e_eX>d^}!a23Cp)5bhaR@Ynvk=lJ zz_38s;PZiKL=fYe(1Y}(-$}o{U`DcdXW$ubuKhL2s@6{>v-D>dF(KKx^9FvD-STNe0=+<$&UJEb&O4TJ!{0accP z$t=J%DeD+F=R^7!1Xp6N{uURfKgcjkd0_Bjlrk`Ja2yRPDJ3XL+%~8);=I4%R|Ko$ zND%}lg_1)U^VTE#e+FhPR4qnefKd(R0v3q_TwixDzZl&_cAC_iGphG z8l>lap8?>`-fQ{%i(e+~0&4er{+_mmgZcZSnGl_Cevr;Lb*N|4^84Ac=5AVR`T>Z< zT3B)49XV%VsR%QmH8e!;EuRHo$D7x%dDmw_!S>6yvuRB?J6>;R^PfKr3Ld@Tf78Bb z4?Fg~o6V1Z3KaC-`d?|S8)C)J|Cva%k=8lG^nUuk>H1z>&*q2!E}t{M?aF)Ea%rg# zZAZ`LZ2r@SIk)97yElKQQl+UkQ^BIuZkElHt z0`tHh#AsL#PA^Iw$Eco*sA=S?h9`M<-J=!zwW|7cJ~QuoGzW(ffhI5}z|4>`t2w3S z<1+-7DKK3t&QV}1Euy}8(KlH)|7red_h(u4Z#&uY{ALb~XIb>GKPPnOJ$!f1O#pmn z&rKM2?xg--f5pj!!(c*kP0Lex;9S}K3TbC*_P~YRKceBjokX*>YnGoXchiLd+7d_Ec)28ZlEYskRrbDzZcrAavXIOjVTjvZG5)K+80JJaO3qZIk zPHWu|k?|%X<4wB0GhWd3rD|wjy5Fa+}WpL#jr1b%d0ed0o^f7RBOiTn;;a~D) zZkqc;u5Ne=>DY{?1!)^%Sp!=tuB?BOYZu*(^w*$F0X`f2K2S$dseKrYAHZmM7pOjz zJc6iRfCyiO(bz$CFu=y9pL5xqKTqk`#kEiK`IhgnJaiBdS^;JXCC0&LFd&;bk!c{B zmh{K7^iE{hH1it8KSjrh_r)d|n**Zku1L`LVb>7r+7Z5WyA8+1coMkQe7{8)w%^k){3$_$}o z+_f5Fh?=trF1nQuEcrDbUT_D?tNSojh8iQm)!}YFwDL}TfqERX3S~)@WkX;AqUobx z*ceTpz-as=R4v0;_I<>hbx8XSl&K)NoVu!EZe8#rZfd%lRW%1`t9yyhEV_-)Ecibx zt~r7TT>zFJsZOAL7RnMFNH+1n@esR?$9Vo^g1y5jddD*KPuh$pB?IvwJwwX@_|1mz zv1#pN1qH$dkf*m>LEGFzw9W0MXJiH41Lx`iTk@2recoErPkYl#^o*^d>*N*mM0Koi z%bL5{cFvuI{V@+ytMH?3Zm(|Z)C#)$&e3fxe@2U>$z~!G&4jDsv^7R(Yt%sM>b*G6 zUO8~}4C-fXYd%6-^AUOmm(qRoEM4E4-4%Tc9cT6sO$FKU(&ZHa*wd#YHSH@8%pCqH zWh@OWrO-~%WQa*S3u@dgV}MGcs#oD}`Y>0m8sLj(ewQz;{w{yNrjw7H^;@cHny{@o zV7X?7>7bl_DAkWqe*?m|5D_>B5xNYSd>9$~1v0i1C;2D@*C4{}%ne5ASnw0RwB(=o z%%X3zq48IQYqA*i?clFPI(v2fJ_CI4dc2vwSb(eq<@$39_P#zgKJ;aJhL_X6Xb;=h z|CC3s|2E;O_>2ZX`}|k+ARb*u*U@!EGa=errZU&=_Ak*OANUI&!HNjSCB+G0$F&hiPB5hsZ<|U573y5{bjQ+_AGj zDcYCp)Ab#=h^_+{xuWs)DeZ21_r0jEZ>DYjF)sY+RwB`P75f+&)z`v-#O%P8W2~?X zEU6TxfU%Upa5{{#kCu6)(;DEF1IndJSct%dC{uzJ2YCpUeGU;g10(zaszOUxP#0z19EqsC3{ig*SORH3hqBTr zzonO|`QT7u0ZL4t2pE}Y;=;SX&E_XRP0w(v2H6!mW(3!!)jA7d`z5zCy79w={V^>X zTV5$?=)&$F(mi-Stu_5@T7JK_`XqF|v5|&9+{2Du9V6U+(GO{BI8?@5dLrc8y6ne{ ze&kldRWU6ZU4ZqRYSj!`J4jn&gzgjXp!@jQMAJ32FWyW0;=LvM)~0iw(Dhw&7o%VN zBH`+|7LChF0k-w=o7wvK&3Y27d&E23=pL;Nr?iMq1S>M2;Ux;C3oLE!vcIT;-(~Jys_q9Kubs_T2YRAi3*V=aV z@26Z12NFE`iQ5SW5_JCMYNE+t#W`#g1Iv*L$B{TLs2r&QW+3T{H4@MEfzaR*MlraG z4omAl`nw5M2CNwPvfxvQ>IEnls}^B-TRMAERUOt|`rSzTT17v7(s}+s?TY^}*{Hy?LXy7N7n{dPY`GVXls) zPrGfMn-6mLoN6U9sln8-{22`pm%SnrO++S|TsOt?0{C6#>RA0kLI27r;{!{Hj5QLj zPSCNYXG$Eh^Oz{cNvg3iBOJyl2)Z*lRd-|mms z2dtnYrFMiWS>$b3C@INGFv#)`7k9FD)wh7cS?ev~`~Y6PXCpvF*Y0@Nf*#`Iq` z4l0>X>_N-{9M?GTWBRW}sR?9eCy2SsxMHP3>e2W1-pJM$K3TMIwJZ3PYJ11P*#7b++hm z41_X}lM;K#M#cs))JaeaAe+@??9xLhcY~Fb!f-V471ud5Sx;o5#Ulftf|5RE5L6lP ziWB-|X?~X%3&^sdvh)~OSv=EaeWvMn)KKQJZ4q6JOqxk8p!+0{wKrBsqteKC*o};QZlV>l1iAtwPzVady z2aaPjH&Aze9lkjRGV3y!EDWGw2~r0ghM%^{OjHqQkuNx%)Wr6Q@{w z!+gwYfs-xBWMP6cDCxW3#Ao3&KneYiSfozY6Ii%{ z;TQUtmpxAH#R8eu<@#cC=}*k{NUob{(<&(0S`HrYh~sQMOB9o)J6-r&w>o zLrj;rHH1etYOy%RJ7KH*w<=n$uPEqQUi+&eT*g#WpV2E1QB|fhLn;_fDu&_?ed9^? z_D%Bgv2ot$kI_GtWIUcBm9a5|!-yT^@PGpQgmx|o17%Alj-J9;bScZf_!U-sd>QEz zV~p*Yz!0u@baf{o1&LmVjBH}X7d}tREoZajy&)3)28knX^rcAGGEG4uVh}%Ivixrw zS@yYG2%fv1Q*UN5T#>1=f&=3VOI9R#>K_X4!?SGBi!a&jZyJ$Xu9uZJRH9Q=7$oHd z8c~qUr^Q0k`T2zRrI}WrSKJ~%cwV-SjHEaf&oCOxP-{tQL>7U>Q39zXN+>raR*`Zn zUO3Xk`iu5s1Q#P5g%B40mc>LPZxTPa8{!I6C`8tAcdl`DFEkhozd+h)lE;n^Xr3f- z$_7JV`2-@X5DxkME|ecc27H#njwzByBTODWNNB!=uyvl{cs9rz6N}xMrKaxZrC|3* zT4`$z6g<(p2HAFbv+HQBSbS==h}2eh;0{!3H!B0y7k3TI$w#h z{qjaOojHeV9_XX{L_+^QtB$SDouc!lQMQ~PX4|EWtoY?2?!I<0ZB5l|eypDzdqzPi zMn88Z-N#~V{Npipe{?0Sb$%Lt@LI`cBipW=&z4Jc#%?5DqrP50EXFEnwR< zONc~MtoWCgw2!XZVD#&kmOj&KLu}sp2GN9Fwr8utc7`81^QXrHA zN}^nMgpyhpd-mi?oY-!igC#*pgZi~+Q8VAqk)Pki@vdG1^J=JTorB50#ihNgB?S1e(A}6j_7PKqd@=O@h!uN#Fg09QnoXFr3{qp5wzw z8ekg?C&KhZS4<-zl$&beAin!5;-6op^SKjrKChR+Z+`eN*clgeeKh>|HNt*_E$7!m zItfw|O*@F&_91TDN9T+EAZ;D$xhKMf_e5x$=V!~=AzeP3()HQ43#d5ajtCnc>!*Ew z6^~xi2dyqCQbXo0MWEV`@(9- zrfFYTO=LVnWHe4Lt##YFCc)dC`xPTf&e65>}zj~GSRbd|e^tt*zI|Gib z_W)4}qtw3xamVD8?PuIEk&Z-2TYK%5!c;bU#}_j`_&V69fGSj0Vg+hgeBBi^uRDu* z7tE*S>NBuvYmh0xF~K&$Hc%N8;WJqHE+66LCo!BiX+A&A{C9$qCMumPtILxzz%*#O z80M}WXYPstmaYfOCr}v;t|PH#dgIOBqOTlnc1FMaOezl$vT6Nda^I6N?G=xVLMonr zQ6yuKjzKz}2M(DOVWD4mWF)4`rxK7(=LbR$a+5b?od3^VubjK;V5qA2Q=$_^X+B(b2VDZ$J9qo^>74c5Lzw{B5fPP z6i6wwpVed2VC8_Q5`@n*01M@Sbjzk3A5RRQjjhZwaag8|Dn+>3L~Xf9GtTW#YaoFh zjFdb3uUgKwtCrJqa*VE*A`qJZ=@72AP+!$4Ef@auxjZ}U{;>9XcRn4V^NB+`AaD7= z9{`{G0Mf}bS~RA^HLcZ>wx%GFu_PoWT=#`TPu~RX%fmzlhUw{_pnY*Ik)ax*$t*iw zJi_)H*3#Z$60WxBIXVo<32+?3RaI<#_;t45cn+J^*6aG5tiG;tlVeh+4lQaRTx}7J zr(9-si1fvXCbNXA1Y{C)oT<}kx?Va;Yn_jd^A-@c(vWuFt7Aht0k%zaLbGgZok`E3 zxZYO5^n+GUe#h zPY3KQ1)1C9(VO!ISa*B5lz{M zZ#;td+VAN(bgTfb>Ve5T8h%em%j?JSVzZfP*z_E!YGl;ML8u8U%({tcR9$Xjx z;8A)`jMA~DiEw5dCPpAWrWq_Z%cZ01PmI$V(yzOx_c)P}nAWx8V-Sl%e4MZ!qKP!b z$LV_c2(94&9c$*&b9{vES9Lsc%cXkYyI(t~`zLKsiXD%?Lf6Yj*s^|wW)?dGu~Beb zaK*`ucZ)ekG%LoVkn!S?aF1WIgnuOE@ ztzoT?_8d5-nLU%pi`E%eiaHpiL=}@(Et6Iqj$v^myMVvjc`5XNA0z!N0zVib1U~KT zlpq{52poa1WdSUXR@y~YL0T*2I7NqD;mA2x-E!%ykAFJS!Em)a4qu2`j+A~B)CRIK~h89G)q z(6M#_U9TP`(l>)@c=sB!&?b{YL(7pFCkt4^5 z3{TL$dOqFzj}ke0T!T_N`r#52Y`)_m!T}%QV3qD;JX+{~O7|-|I!f2e$LKg`fi`mN zB-?H{i*V4-jwklfzH%4hKUZ^t~odH$o^e724BEe5OBEo|uoD`gcz zKuS&%Vi6U+QBzz*!2ZM{ww=6@dq*x|#yx7qwWt z`BJvsd@0d*lFdK;lLm>Dgo9P6+cs$t_|R@$kE?TaJ%5<)OIESvn)B#-@lAUAC&8c5 z(FUMnO(W{-?fTyC*Vy`p7eGlmAABC1EL+}lKHJ`RKG8&)t@rJw^YMLPXX)P4OEi%t z9IVnzn~KrBrjtL!Yk-K&SzNa|-`j z#m;K+mvP^NlrD1$-A?X3m_8RUdJ^PVk4(D2w7I{+bnn#(mwK_W?E=4OHcCh9f~LD5 z*|fkHC?ss=mYL}luP)Qcg5H)*LDqJk#l2>@{me}=(?@P=2K+&&3V|>1@7pR|AsBON zc_F@rS6*L5jm{ZND zUBieS;%H_ry{Tpnrss1o)y$|JBBOj{v5NBBRUvR*vi-Iwb@1guXSo9+HLI3;@};Bm z(xd{@bk|ing@Me~ZCd(V?tc>HfNWa&1?L8?ct;$=(1*)hP5y7)8$9^8fxuY5VT+ z|7{=ojI_vL5ldEaBsmX8Dy;k{XBUKbs!MK9iIRQejY6hCxpx@lv9q5lJh)-$95ERv z%=p}kb$ojEDF`e7CQ^|FxKpb$RT!Rm?j19h8fhAy>vIOFhY_ z*%+mn3&n9mTv3*bnVCg3U5oOP(q@EDjY>~(+ntX;kaS$3%xvUH66u?jtBXpTH_iQq^ z_n6deJ1(o|VyTW@*iFZAT+mY_qI1mYvb$BSC!guV0><7pfT{9rugmwDuaN5D^4=S*~oM2S~bLF>)_WmlUVz$`yl{-VUD zjK0}&nI+HCW&uo&QspcDF;$T;hCf(^3N%A{WMj{{#r%* zMPSL&w4dCve_WkQW<}m2m$pj;hJGK0%l4LEVOsn@Wzsm->w?v300000NkvXXu0mjf DRNKU` literal 0 HcmV?d00001 diff --git a/Documentation/editor_pick_2.png b/Documentation/editor_pick_2.png new file mode 100644 index 0000000000000000000000000000000000000000..81e6e76a9260de08983bf371fb6d4c6aa5c772eb GIT binary patch literal 4951 zcmV-d6R7NoP)002n{0{{R3jauDR0004iP)t-s|NsC0 z|NjMPmnp{L2av4r@$slMAQNt{B!R9Nc%~zazw&S@0d22Az1kL7coBD~7jt^&oH{%^ zINydmeZZj*WU0BLYaLKj;-6~`Ep9f)zM)vy#L|_?fl;(RV@Vup3$jMsm~mQw(Sgc&Fk}TuFOJ@v+YYIB5aTMnMnDmPzY<8hPBHol*o~) zwG`&?_xbtpO^_>wvJOvf!nU-400001bW%=J06^y0W&i*Yg-Jv~RCwC0+Kpcl+tvs0 z1~2y_26;R^`Gypl9Yw2iI_gC+xNv<*NF{@qoW`MqG!23|lmij`>-V?z-t&TB<@r2I z1&2}R>)Ly-*)y9P>2zo%?TGJh1$it}1V>UHM~ry-Z?T^YE{op`{`~PSf;T8GTt6Qd zh*gRmigm;-ij#hEiwFG>es*<-{T}^+YaH&nz%HN3>rzFd(H^BB{te-Efu_$)pOY88 z9G8eYChAYIsLK$hG^1u6F>T0cJk<<5rc17xel>7U*>h!d zU5~h2rBupL_DU|DevR)lbe2Cu$6L<>AI@pe=stcg>%JN zE*aLo1)a68p`)>sGez^95D*P1zddhyDgernN<^-_T~I1=ttMA0vZkx}o9y4v<@HEy zT{&+WZTu1SLa$x0+pY2xT|Nj5A?ZxiD+-6$CVmTI+<;xY`QWbMO_6#5@! zaDC^@C=pPW385@B{ir7889N>iWuuVN=dJApuvyla;Yxy zc*c&d8;(E+TXCu&A%hiB0I!)6BQQ#Vp3@XArFvVY0Y=?C$pihu8d19t$V;j5lxYA1B) zC?$$aUKK>ImzZ8Je@QOaT9pd>sgo1!maN}eujxAsxN5XymU^+s55Cen`_(Na> zAM{9{=)DmRL}kcO=hd{aTP-_@4Z5Y-lMggH3@;B)ABvua;Ogtu>qomNdW>!GNI|Br>* zQK9?zyjMpb;m$RLCU8%A>x>b4SQH=F65p~WT<+byNt%ezF%aKED zIZ}u%M+$k#a~9*?Chp=f-5SMf7W5rMGNB+24xU6SDP_s_HQGwMVMkk8a1t!8t63G-6+qz=Jiy-B!I6TjPIz%c>H=~e=@@GgU!N`H z+KfqLKoVNOM*p}xQXJ#t=Z49JyJZ5+^jW;mU11uD$b|k}GQDg98;ze3M*l_%JBtfp z4zzuY_qk7SA&5-q_Y?33z8+zB3V#TUD)cI`Q7dsrp_d`$ENa-Mj!OD+( zrm$R&Tu$NY>Y&~xVM^E2R{-;hvj4S7Ksx5k*vxyA_r=Mxkr*sPGr!N!Pp<%23rjrS z#;SO1RkZ*}izO+bwZxt(iep5h@4^Or!%eoMs%4PCQfp+-HP8Nr+U{2l<9TKK>(hA- zJUsmU0x? z4l34;%!S?>IahSzy1`Gzd&*%vzq0*x>kpj)4+;438S`1XFJqgJACEnrn0WSh0=!9- z#F^(W9?sB69_e8Vb&X2QjlDu9n|rZNvFZo^;pI& zh2wE3;u_KN^Vk=UUn+;f=WTP~&=7zhpZzX;;B9U`{`PHi^V{acv*U>`A3jV%`0Mi* z40!mY!!oEY<4PL=O$vd0XzdJ+*7kVtG#^TaLU@*g>0~k#h9wDXGM>wqBq<-Kz@Nw? zn%aCmPh`gc$*-KkSBWs-A;t#*KR)|xw(ZzA5u1=sy!t>w^4)znGh_op$y_d1uN#sS zsw0l2YKnlVPzYIx(LU@-rRk@d_?aAld4H!GMVk4FXbq9{b3Jj~P(#KC$@r=>9LSKK#Oby})@B z$e#&VcLG()UoIzrV!%++h!iWaZFe1;Hc<4xo8CsbTp-~4nRo95kc5vPZ;IrZG5zZ+ z;RBFPC!&dw87RyQ)>WxhCrHi$)-|b>%mJFC7djZPXJ=;^wu=Io&vzD^*jCx5?YsB2 z@W;(cqfrhJaBpVK212-LCr`wqU&wd&E(g9hfoG$Bd{YlG;OO~iSkgE!S6{UIU@Ye! zRYsAj9Dq&aZj?Py%Jf*hlQ^e+CJ+UXwQu8(n^AA05MV$B34Hhab4xg8CU2TPrm-=7 zU--7~F8+JX2A;D7(kQOianXwkBQh9zOKp#5jBGWRLpj6<_Y2^;B%N_!SW-LZ=k$vv z5Cu@=?V)~ z0XR(~d6VMXr)lQfMx4G}dyVPqP{(;DnU~EIM>}L@FvEbM(DE`L22xAUS-@ixn6C1j zVZRBa{>OY%NT4r}ax>ffE)#G`n`fsD5~{mJ2bjT7D)2i9Aq1JSoO&T4Y`6lm!@XVLgGnAPXu&Ir?@BeN-eY%AN z24=f}pU0lRG2;<6@aE?9G@e=hwplE`V`n@L1SiM(V4YwzitPyD#1f(>k7t>e8LEY- z(PmI-CSW{Ib(#em)$o;(KO`^`@db_!vK)v8#;NR=j}9S#(>&ngywkbZ=PqD~RS-Dp zbyf$tjRG(TLm`i+?O~@IzX+U2{B(Bf@IgU!MhNNL!hDp!rxCT~F3o0(2O@*G2AP~3 z`*>Rj|NQgK!nElV%?sbX*artN7-WZL84Q`3qtqeV2u~`s?D2Zr%jqNs=HmFs;S`*s z0?4}@zUlS_xG!AIRwc~@(nOzSPze7d;Umju=I`F=(xd>=d@zXqMKBb(P%6X|mrDJn z{6@MqWFC(PTV4-@yqW!qA9IByrqWR6*$gnwvPp5?$*;@_pSKz=7kt&0Rz2`>ASDnd zTMXid+=n3HKb^jN_ZCec%?E>Qi6NLm>GDv%JgIgjQ^Qu9&$7L3ad`|Oh`7$eRyv8f zDu~HAp8>L5QeX?dS@KQkjiZ(t@D-(Mwde$XxQ}5B;h!QNQU10azNPzS6OURmYE_FV zOOdM7_Udfv>~6*y4LMvTB8tcYE{`kpf27lcgJ~r_xSnR$Of=h9=z(TkY2m#>WD`NZ6RWagU+Y-qAO>np-nZ9NDOkS^vX*=+ySo#$_u z(8)7>uRdJLpo&p~sj`*=kWRYjh^bUd(mdGJCLdb|^Wgfq_vS(u(DqGv^@?vpQfD>o zpjg}}4ruID$FG)N(QNt-olG9SaPTbOD?age0I7iBgiq5Mnn|;A6Pk~Ou#0>_8reY- zUInz~SEdgwpf-FPs@kd^6ssG%l@r$|BzCNBn3s{ZCVweUPIRI&H z&!*K>4q5kX#gcW5-H-{qd|_-Q(9yoAf3q9%{?Ue1WWEBsv#>Yg1Ww$+_}I3Emd|eC zOM|3N7aaH;_4~!?gzq{==}WR(BD;7Es`m_uk{_gi`mV3bRCf6$RYY&p81a(+(v z`vbm$9Lc)f;jsJo=m-hi-BQKvHz)85BoJ;3VVBQp;X|ImGj{s-Ga#l}&)M`^Q%gbY zVsq%2p97bal;hsaj^aol3gDio&r^ks-hHWyy@i3A?< z464FMK)+jZ|K`uJ3tDZy z#X?Cup0Ir3Ftu;^IJ`R!-$B9E1AMo}=QNy1#+P$;{d4*VxWa%*R_HM2^DrR;;qo|V z2W<%@B`GMd$eNWCi z{y0tXaP%M*x#ggklj0IsA+-qF0`P<<5L+rohkVl9l*M2gIm7pZ;>`=|%8r#l zv~TBY8NR8hh!Oe6)WAl#%z(SaLeF~f3}1q92<o-(LyJATunBDzePqw3B8! z>)k(?q|!|Fq-QOW`k(M^X{~Sx>Dy5ESpt217IL~4NiGSk^a-B;=Bepu!6|AMVo#L4 z9f`rv=jba6;h^Pnj1U+33jex!G6mpKOD=}Bns1lo&)0XQiG;L1_g^#q?Fj2dK7wf( zf@N@>uX3zQF7e^9@|FUL1EUXq!vML)V0ZWE!N8U4#q0*j z%5{P@@y_~p-u)Ks|L!;V^5gq@rd%%js;$7RHd}4Aio2Gt|C=iKO|YNFt+0DN$l&$g zKgfNNS}jlu1d5W1Yow!U@o4v`pRWs;Ph2bL?%oA|56D&Tz!dMnTz9@TFV1|KTCFxq zQIy=-BOVXN<5vOc1eIiSk^-lc#EOz1FVtin*=)8b9pf>3 zaPVL}7wm~u{vOsFH>8%^eSCa&tvEh*yIazY>qM(LGU6ZK3K?=qLuBc*Dyg{q$nNf+ zwZ8YOBn%&4E5g_I-MCTOn;V}(*BER!BIQ|@!mO6f&IShdOW*%nxR3zxTG48?r0W91 z^ILJYzJ%_!x`XNZKX|-&QEL6@cZqntxHb>rZr0h&%6NPa=ZlNEId)ZcdfNP+?|-?2 Vobws^ST_Iw002ovPDHLkV1ipwxgG!j literal 0 HcmV?d00001 From 8fff6966fc23773933a7978872995b92ff982de6 Mon Sep 17 00:00:00 2001 From: patacongo Date: Fri, 11 Feb 2011 01:30:40 +0000 Subject: [PATCH 0707/1518] Don' depend on uname -o working git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3281 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 41 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index aac2bbe3ed..fdaa8e9579 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                            NuttX RTOS

                            -

                            Last Updated: January 23, 2011

                            +

                            Last Updated: February 10, 2011

                            @@ -1992,17 +1992,18 @@ pascal-2.0 2009-12-21 Gregory Nutt <spudmonkey@racsa.co.cr> stdbool.h. This change was necessary for compatibility with NuttX-5.0 (any beyond). -buildroot-1.8 2009-12-21 <spudmonkey@racsa.co.cr> +buildroot-1.9 2011-02-10 <spudmonkey@racsa.co.cr> - * configs/cortexm3-defconfig-4.3.3: Added support for NuttX NXFLAT - tools. - * configs/arm7tdmi-defconfig-4.3.3: Update to arm7tdmi-defconfig-4.2.4. - Also builds NuttX NXFLAT tools. - * configs/m68hc12-defconfig-4.3.3: Update to m68ch11-defconfig. - * configs/m68hc12-defconfig-3.4.6: There are problems building GCC - 4.3.3 for the hc12. - * configs/m32c-defconfig-4.2.4: Added genromfs - * configs/m32c-defconfig-4.3.3: Update to m32c-defconfig-4.2.4 + * configs/arm926t-defconfig-4.3.3: update arm926t-defconfig-4.2.4 + * configs/arm926t-defconfig-nxflat: NXFLAT-only configuration for + arm926 + * toolchain/gdb/gdb.mk - Remove ncurses dependency from gdb_target target. + * toolchain/gdb/gdb.mk - Added --disable-werror to GDB configuration line. + GDB 6.8 won't build because the tarbal was released with -Werror enabled and + the build stops on the first warning. + * Add support for Freescale m9s12x using binutils 2.18 and gcc 3.3.6 and + patches available from http://www.msextra.com/tools courtesy of James + Cortina. Add configs/m9x12x-defconfig-3.3.6.
                          @@ -2020,18 +2021,16 @@ nuttx-5.18 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> - Lost SYNACK causes connection reset - Fix missing UDP stats for sent/received packets - Added support for Cygwin as development/test platform. + * configs/demo9s12ne64 - Integrate new buildroot-1.9 m8s12x toolchain. + * 'uname -o' is used throughout the build logic in bash scripts and also in + Make.defs files in order to distinguish between Cygwin and Linux. However, + the -o option is not standard and is not supported under, for example, OS-X or + Solaris. This was solved by changing all 'uname -o' references to the more + complex: 'uname -o 2>/dev/null || echo "Other"' -pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> +pascal-2.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> -buildroot-1.9 2010-xx-xx - - * configs/arm926t-defconfig-4.3.3: update arm926t-defconfig-4.2.4 - * configs/arm926t-defconfig-nxflat: NXFLAT-only configuration for - arm926 - * toolchain/gdb/gdb.mk - Remove ncurses dependency from gdb_target target. - * toolchain/gdb/gdb.mk - Added --disable-werror to GDB configuration line. - GDB 6.8 won't build because the tarball was released with -Werror enabled and - the build stops on the first warning. +buildroot-1.10 2011-xx-xx From 47c350396653452f0517ab593ead892658d9083c Mon Sep 17 00:00:00 2001 From: patacongo Date: Fri, 11 Feb 2011 02:36:01 +0000 Subject: [PATCH 0708/1518] Add logic to get the VID and PID git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3282 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index fdaa8e9579..537e00e703 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -2027,6 +2027,8 @@ nuttx-5.18 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> the -o option is not standard and is not supported under, for example, OS-X or Solaris. This was solved by changing all 'uname -o' references to the more complex: 'uname -o 2>/dev/null || echo "Other"' + * drivers/usbhost/usbhost_enumerate.c -- Add logic to get the VID and PID. This + is necessary in order to support vendor-specific USB devices. pascal-2.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From 54cb5fbb09a06ecddafcbad2a5d41d28af686e64 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 12 Feb 2011 19:17:37 +0000 Subject: [PATCH 0709/1518] RTL18189 infrastructure git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3285 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 537e00e703..d9e9cca0eb 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                          NuttX RTOS

                          -

                          Last Updated: February 10, 2011

                          +

                          Last Updated: February 11, 2011

                          @@ -2029,6 +2029,9 @@ nuttx-5.18 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> complex: 'uname -o 2>/dev/null || echo "Other"' * drivers/usbhost/usbhost_enumerate.c -- Add logic to get the VID and PID. This is necessary in order to support vendor-specific USB devices. + * examplex/wlan, configs/olimex-lpc1766stk/wlan, drivers/usbhost/usbhost_rtl8187.c, + Add infrastructure to support RTL18187 wireless USB. + * configs/nucleus2g -- backed out USB host changes... wrong board. pascal-2.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From 41015056b424ab3a6b74e5c2ca8a33e2110fff5c Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 13 Feb 2011 20:00:48 +0000 Subject: [PATCH 0710/1518] Rename mc9s12ne64 directories and files to just m9s12 git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3288 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index d9e9cca0eb..34120e36c2 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                          NuttX RTOS

                          -

                          Last Updated: February 11, 2011

                          +

                          Last Updated: February 13, 2011

                          @@ -2032,6 +2032,8 @@ nuttx-5.18 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> * examplex/wlan, configs/olimex-lpc1766stk/wlan, drivers/usbhost/usbhost_rtl8187.c, Add infrastructure to support RTL18187 wireless USB. * configs/nucleus2g -- backed out USB host changes... wrong board. + * Renamed arc/hc/include/mc9s12ne64 and src/mc9s12ne64 -- m9s12. That name is + shorter and more general. pascal-2.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From c0cf17b8ce4090a4a141a2ae61d924b8fb6206e0 Mon Sep 17 00:00:00 2001 From: patacongo Date: Mon, 14 Feb 2011 13:46:26 +0000 Subject: [PATCH 0711/1518] Change all CVS references to SVN git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3295 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 20 +-- Documentation/NuttXLinks.html | 2 +- Documentation/NuttXNxFlat.html | 16 +-- Documentation/NuttxPortingGuide.html | 10 +- Documentation/README.html | 192 +++++++++++++-------------- 5 files changed, 121 insertions(+), 119 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 34120e36c2..8beac494c6 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                          NuttX RTOS

                          -

                          Last Updated: February 13, 2011

                          +

                          Last Updated: February 14, 2011

                          @@ -80,7 +80,7 @@ Release History
                          What has changed in the last release of NuttX? - What unreleased changes are pending in CVS? + What unreleased changes are pending in SVN? @@ -805,7 +805,7 @@ The 64th release of NuttX, Version 5.17, was made on January 19, 2010 and is available for download from the SourceForge website. The change log associated with the release is available here. - Unreleased changes after this release are available in CVS. + Unreleased changes after this release are available in SVN. These unreleased changes are listed here.

                          @@ -1599,8 +1599,8 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1); This port uses the SDCC toolchain under Linux or Cygwin (verified using version 2.6.0). This port has been verified using only a Z80 instruction simulator. - That simulator can be found in the NuttX CVS - here. + That simulator can be found in the NuttX SVN + here.

                            @@ -1682,8 +1682,8 @@ m68k, m68hc11, m68hc12, and SuperH ports. page. This download may be used to build a NuttX-compatible ELF toolchain under Linux or Cygwin. That toolchain will support ARM, m68k, m68hc11, m68hc12, and SuperH ports. - The buildroot CVS may be accessed in the - NuttX CVS. + The buildroot SVN may be accessed in the + NuttX SVN.

                            @@ -1931,7 +1931,7 @@ Other memory:

                              - The current NuttX Change Log is available in CVS here. + The current NuttX Change Log is available in SVN here. ChangeLog snapshots associated with the current release are available below.

                            @@ -2034,6 +2034,8 @@ nuttx-5.18 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> * configs/nucleus2g -- backed out USB host changes... wrong board. * Renamed arc/hc/include/mc9s12ne64 and src/mc9s12ne64 -- m9s12. That name is shorter and more general. + * The NuttX repository has been converted to SVN and can now be found here + http://nuttx.svn.sourceforge.net/viewvc/nuttx/ pascal-2.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> @@ -2051,7 +2053,7 @@ buildroot-1.10 2011-xx-xx

                              - The current list of NuttX Things-To-Do in CVS here. + The current list of NuttX Things-To-Do in SVN here. A snapshot of the To-Do list associated with the current release are available here.

                            diff --git a/Documentation/NuttXLinks.html b/Documentation/NuttXLinks.html index 3b6d6b9e69..d24e7b4f70 100755 --- a/Documentation/NuttXLinks.html +++ b/Documentation/NuttXLinks.html @@ -24,7 +24,7 @@
                          • Forum
                          • Downloads
                          • Toolchains
                          • -
                          • Browse CVS
                          • +
                          • Browse SVN
                          • Free Ports
                          • diff --git a/Documentation/NuttXNxFlat.html b/Documentation/NuttXNxFlat.html index 6e92a4cf19..b1948f47f8 100644 --- a/Documentation/NuttXNxFlat.html +++ b/Documentation/NuttXNxFlat.html @@ -151,14 +151,14 @@
                            • A dynamic loader that is built into the NuttX core - (See CVS). + (See SVN).
                            • Minor changes to RTOS to support position independent code, and
                            • A linker to bind ELF binaries to produce the NXFLAT binary format - (See CVS). + (See SVN).
                            @@ -255,7 +255,7 @@ The initial release of NXFLAT was made in NuttX version 0.4.9. Testing is limited to the tests found under examples/nxflat in the source tree. Some known problems exist - (see the TODO list). + (see the TODO list). As such, NXFLAT is currently in an early alpha phase.

                            @@ -366,7 +366,7 @@ any following arguments.

                            Below is a snippet from an NXFLAT make file (simplified from NuttX - + Hello, World! example.

                              @@ -472,19 +472,19 @@ any following arguments. diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 81f819260d..8b4e1264b9 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

                              NuttX RTOS Porting Guide

                              -

                              Last Updated: January 19, 2011

                              +

                              Last Updated: February 14, 2011

                              @@ -489,8 +489,8 @@
                            • arch/z80/include/z80 and arch/z80/src/z80: The Z80 port was released in nuttx-0.3.6 has been verified using only a z80 instruction simulator. - The set simulator can be found in the NuttX CVS at - http://nuttx.cvs.sourceforge.net/nuttx/misc/sims/z80sim. + The set simulator can be found in the NuttX SVN at + http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/misc/sims/z80sim. This port also uses the SDCC toolchain (http://sdcc.sourceforge.net/") (verified with version 2.6.0 and 2.7.0).
                            • @@ -739,8 +739,8 @@
                            • configs/z80sim: z80 Microcontroller. This port uses a Z80 instruction set simulator. - That simulator can be found in the NuttX CVS - here. + That simulator can be found in the NuttX SVN + here. This port also the SDCC toolchain under Linux or Cygwin(verified with version 2.6.0).
                            • diff --git a/Documentation/README.html b/Documentation/README.html index 7bf30ac3a1..e73ee6ad90 100755 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -3,7 +3,7 @@ README Files - +

                              @@ -27,139 +27,139 @@ | | | |- arm | | `- src - | | `- lpc214x/README.txt + | | `- lpc214x/README.txt | |- sh/ | | |- include/ - | | | |-m16c/README.txt - | | | |-sh1/README.txt - | | | `-README.txt + | | | |-m16c/README.txt + | | | |-sh1/README.txt + | | | `-README.txt | | |- src/ - | | | |-common/README.txt - | | | |-m16c/README.txt - | | | |-sh1/README.txt - | | | `-README.txt + | | | |-common/README.txt + | | | |-m16c/README.txt + | | | |-sh1/README.txt + | | | `-README.txt | `- z80/ | | `- src/ - | | `- z80/README.txt - | `- README.txt + | | `- z80/README.txt + | `- README.txt |- configs/ | |- avr32dev1/ - | | `- README.txt + | | `- README.txt | |- c5471evm/ - | | |- include/README.txt - | | |- src/README.txt - | | `- README.txt + | | |- include/README.txt + | | |- src/README.txt + | | `- README.txt | |- demo9s12ne64/ - | | `- README.txt + | | `- README.txt | |- ea3131/ - | | `- README.txt + | | `- README.txt | |- eagle100/ - | | |- include/README.txt - | | |- src/README.txt - | | `- README.txt + | | |- include/README.txt + | | |- src/README.txt + | | `- README.txt | |- ez80f910200kitg/ - | | |- ostest/README.txt - | | `- README.txt + | | |- ostest/README.txt + | | `- README.txt | |- ez80f910200zco/ - | | |- dhcpd/README.txt - | | |- httpd/README.txt - | | |- nettest/README.txt - | | |- nsh/README.txt - | | |- ostest/README.txt - | | |- poll/README.txt - | | `- README.txt + | | |- dhcpd/README.txt + | | |- httpd/README.txt + | | |- nettest/README.txt + | | |- nsh/README.txt + | | |- ostest/README.txt + | | |- poll/README.txt + | | `- README.txt | |- lm3s6965-ek/ - | | |- include/README.txt - | | |- src/README.txt - | | `- README.txt + | | |- include/README.txt + | | |- src/README.txt + | | `- README.txt | |- lm3s8962 - | | |- include/README.txt - | | |- src/README.txt - | | `- README.txt + | | |- include/README.txt + | | |- src/README.txt + | | `- README.txt | |- m68332evb/ - | | |- include/README.txt - | | `- src/README.txt + | | |- include/README.txt + | | `- src/README.txt | |- mbed/ - | | `- README.txt + | | `- README.txt | |- mcu123-lpc214x/ - | | |- include/README.txt - | | |- src/README.txt - | | `- README.txt + | | |- include/README.txt + | | |- src/README.txt + | | `- README.txt | |- mx1ads/ - | | |- include/README.txt - | | |- src/README.txt - | | `- README.txt + | | |- include/README.txt + | | |- src/README.txt + | | `- README.txt | |- ntosd-dm320/ - | | |- doc/README.txt - | | |- include/README.txt - | | |- src/README.txt - | | `- README.txt + | | |- doc/README.txt + | | |- include/README.txt + | | |- src/README.txt + | | `- README.txt | |- nucleus2g/ - | | `- README.txt + | | `- README.txt | |- olimex-lpc1766stk/ - | | `- README.txt + | | `- README.txt | |- olimex-lpc2378/ - | | |- include/README.txt - | | `- README.txt + | | |- include/README.txt + | | `- README.txt | |- olimex-strp711/ - | | |- include/README.txt - | | |- src/README.txt - | | `- README.txt + | | |- include/README.txt + | | |- src/README.txt + | | `- README.txt | |- pjrc-8051/ - | | |- include/README.txt - | | |- src/README.txt - | | `- README.txt + | | |- include/README.txt + | | |- src/README.txt + | | `- README.txt | |- sam3u-ek/ - | | `- README.txt + | | `- README.txt | |- sim/ - | | |- include/README.txt - | | |- src/README.txt - | | `- README.txt + | | |- include/README.txt + | | |- src/README.txt + | | `- README.txt | |- skp16c26/ - | | |- include/README.txt - | | |- src/README.txt - | | `- README.txt + | | |- include/README.txt + | | |- src/README.txt + | | `- README.txt | |- stm3210e-eval/ - | | |- include/README.txt - | | |- RIDE/README.txt - | | |- src/README.txt - | | `- README.txt + | | |- include/README.txt + | | |- RIDE/README.txt + | | |- src/README.txt + | | `- README.txt | |- us7032evb1/ - | | |- bin/README.txt - | | |- include/README.txt - | | |- src/README.txt - | | `- README.txt + | | |- bin/README.txt + | | |- include/README.txt + | | |- src/README.txt + | | `- README.txt | |- xtrs/ - | | |- include/README.txt - | | |- src/README.txt - | | `- README.txt + | | |- include/README.txt + | | |- src/README.txt + | | `- README.txt | |- z16f2800100zcog/ - | | |- ostest/README.txt - | | |- pashello/README.txt - | | `- README.txt + | | |- ostest/README.txt + | | |- pashello/README.txt + | | `- README.txt | |- z80sim/ - | | |- include/README.txt - | | |- src/README.txt - | | `- README.txt + | | |- include/README.txt + | | |- src/README.txt + | | `- README.txt | |- z8encore000zco/ - | | |- ostest/README.txt - | | `- README.txt + | | |- ostest/README.txt + | | `- README.txt | |- z8f64200100kit/ - | | |- ostest/README.txt - | | `- README.txt - | `- README.txt + | | |- ostest/README.txt + | | `- README.txt + | `- README.txt |- drivers/ - | `- README.txt + | `- README.txt |- examples/ - | |- nsh/README.txt - | |- pashello/README.txt - | `- README.txt + | |- nsh/README.txt + | |- pashello/README.txt + | `- README.txt |- graphics/ - | `- README.txt + | `- README.txt |- libxx/ - | `- README.txt + | `- README.txt |- netutils/ - | |- telnetd/README.txt - | `- README + | |- telnetd/README.txt + | `- README `- tools/ - `- README.txt \ No newline at end of file + `- README.txt \ No newline at end of file From 7198962d1b1d9deff373b90baa6f1fe8d59af332 Mon Sep 17 00:00:00 2001 From: patacongo Date: Wed, 16 Feb 2011 01:45:35 +0000 Subject: [PATCH 0712/1518] m9s12x context save structure git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3298 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 8beac494c6..2e02a0f612 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                              NuttX RTOS

                              -

                              Last Updated: February 14, 2011

                              +

                              Last Updated: February 15, 2011

                              @@ -2036,6 +2036,8 @@ nuttx-5.18 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> shorter and more general. * The NuttX repository has been converted to SVN and can now be found here http://nuttx.svn.sourceforge.net/viewvc/nuttx/ + * configs/mbed/hidkbd -- Added USB host support for the mbed LPC1768 board; add + a USB host HID keyboard configuraion. pascal-2.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From c12385678da14368dc912d148b8297ed1ff9ff2c Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 19 Feb 2011 23:07:58 +0000 Subject: [PATCH 0713/1518] Add HID parser from LUFA git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3303 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 2e02a0f612..5ce0d0b1a2 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                              NuttX RTOS

                              -

                              Last Updated: February 15, 2011

                              +

                              Last Updated: February 19, 2011

                              @@ -2032,12 +2032,14 @@ nuttx-5.18 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> * examplex/wlan, configs/olimex-lpc1766stk/wlan, drivers/usbhost/usbhost_rtl8187.c, Add infrastructure to support RTL18187 wireless USB. * configs/nucleus2g -- backed out USB host changes... wrong board. - * Renamed arc/hc/include/mc9s12ne64 and src/mc9s12ne64 -- m9s12. That name is - shorter and more general. + * Renamed arc/hc/include/mc9s12ne64 and src/mc9s12ne64 -- m9s12. That name is + shorter and more general. * The NuttX repository has been converted to SVN and can now be found here http://nuttx.svn.sourceforge.net/viewvc/nuttx/ - * configs/mbed/hidkbd -- Added USB host support for the mbed LPC1768 board; add - a USB host HID keyboard configuraion. + * configs/mbed/hidkbd -- Added USB host support for the mbed LPC1768 board; add + a USB host HID keyboard configuraion. + * drivers/usbhost/hid_parser.c -- Leverages the LUFA HID parser written by + Dean Camera. pascal-2.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From f22899e80dcfbb90bd4eb3b1bcbcf5726e53e768 Mon Sep 17 00:00:00 2001 From: patacongo Date: Wed, 23 Feb 2011 02:08:33 +0000 Subject: [PATCH 0714/1518] Fix getopt bug git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3310 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 5ce0d0b1a2..58d886b3f7 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                              NuttX RTOS

                              -

                              Last Updated: February 19, 2011

                              +

                              Last Updated: February 21, 2011

                              @@ -2040,6 +2040,9 @@ nuttx-5.18 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> a USB host HID keyboard configuraion. * drivers/usbhost/hid_parser.c -- Leverages the LUFA HID parser written by Dean Camera. + * lib/lib_getopt() -- Correct an error in the getopt() logic: On certain error + return cases, the state was not being reset correcly and incorrect behaviors + could occur on subsequent calls to getopt(). pascal-2.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From 634457fa8956cdd844331499dce1869c5fbbb04a Mon Sep 17 00:00:00 2001 From: patacongo Date: Wed, 23 Feb 2011 12:09:09 +0000 Subject: [PATCH 0715/1518] Fix potential memory leak git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3312 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 58d886b3f7..75b9a0040e 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -2040,9 +2040,8 @@ nuttx-5.18 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> a USB host HID keyboard configuraion. * drivers/usbhost/hid_parser.c -- Leverages the LUFA HID parser written by Dean Camera. - * lib/lib_getopt() -- Correct an error in the getopt() logic: On certain error - return cases, the state was not being reset correcly and incorrect behaviors - could occur on subsequent calls to getopt(). + * examples/nsh -- Correct an usage of getopt(): If you stop calling getopt() + before all parameters are parsed, you can leave getopt() in a strange state. pascal-2.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From 4f63c7fafd6087bda519fbb9fcb3d1b6ec507732 Mon Sep 17 00:00:00 2001 From: patacongo Date: Fri, 25 Feb 2011 00:00:04 +0000 Subject: [PATCH 0716/1518] Rename arch/pjrc-8051 to arch/8051 git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3315 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 3 ++- Documentation/NuttxPortingGuide.html | 4 ++-- Documentation/README.html | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 75b9a0040e..897aa48875 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                              NuttX RTOS

                              -

                              Last Updated: February 21, 2011

                              +

                              Last Updated: February 24, 2011

                              @@ -2042,6 +2042,7 @@ nuttx-5.18 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> Dean Camera. * examples/nsh -- Correct an usage of getopt(): If you stop calling getopt() before all parameters are parsed, you can leave getopt() in a strange state. + * Rename arch/pjrc-8051 to arch/8051 pascal-2.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 8b4e1264b9..6c9de941fb 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

                              NuttX RTOS Porting Guide

                              -

                              Last Updated: February 14, 2011

                              +

                              Last Updated: February 24, 2011

                              @@ -468,7 +468,7 @@ A work in progress. -
                            • arch/pjrc-8051: +
                            • arch/8051: 8051 Microcontroller. This port is not quite ready for prime time.
                            • diff --git a/Documentation/README.html b/Documentation/README.html index e73ee6ad90..47686f86a5 100755 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -9,7 +9,7 @@

                              NuttX README Files

                              -

                              Last Updated: November 5, 2010

                              +

                              Last Updated: February 24, 2010

                              From 1eed02c74c2edbb515f122f70832df2d91027771 Mon Sep 17 00:00:00 2001 From: patacongo Date: Fri, 25 Feb 2011 18:46:06 +0000 Subject: [PATCH 0717/1518] Add configuration for Future Electronics Group NE64 Badge board git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3316 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 10 +- Documentation/NuttxPortingGuide.html | 9 +- Documentation/UsbTrace.html | 332 +++++++++++++++++++++++++++ 3 files changed, 348 insertions(+), 3 deletions(-) create mode 100755 Documentation/UsbTrace.html diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 897aa48875..b58bc95243 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                              NuttX RTOS

                              -

                              Last Updated: February 24, 2011

                              +

                              Last Updated: February 25, 2011

                              @@ -582,7 +582,7 @@

                              -

                            • Built-in USB trace functionality for USB debug.
                            • +
                            • Built-in USB trace functionality for USB debug.
                            • @@ -2043,6 +2043,8 @@ nuttx-5.18 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> * examples/nsh -- Correct an usage of getopt(): If you stop calling getopt() before all parameters are parsed, you can leave getopt() in a strange state. * Rename arch/pjrc-8051 to arch/8051 + * configs/ne64badge -- Add a configuration for the Future Electronics Group + NE64 Badge development board (Freescale MC9S12NE64) pascal-2.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> @@ -2109,6 +2111,10 @@ buildroot-1.10 2011-xx-xx To-Do List + + + USB Device Driver Tracing +
                            diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 6c9de941fb..5358f6797b 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

                            NuttX RTOS Porting Guide

                            -

                            Last Updated: February 24, 2011

                            +

                            Last Updated: February 25, 2011

                            @@ -2457,6 +2457,13 @@ extern void up_ledoff(int led); All structures and APIs needed to work with USB device-side drivers are provided in this header file.

                            +
                          • +

                            + include/nuttx/usb/usbdev_trace.h. + Declarations needed to work the the NuttX USB device driver trace capability. + That USB trace capability is detailed in separate document. +

                            +
                          • struct usbdev_s. diff --git a/Documentation/UsbTrace.html b/Documentation/UsbTrace.html new file mode 100755 index 0000000000..ac1a7e7507 --- /dev/null +++ b/Documentation/UsbTrace.html @@ -0,0 +1,332 @@ + + +README Files + + + +



                            + + + + +
                            +

                            NuttX USB Device Trace

                            +

                            Last Updated: February 25, 2010

                            +
                            +

                            +

                            USB Device Tracing Controls. + The NuttX USB device subsystem supports a fairly sophisticated tracing facility. + The basic trace cabability is controlled by these NuttX configuration settings: +

                            +
                              +
                            • CONFIG_USBDEV_TRACE: Enables USB tracing
                            • +
                            • CONFIG_USBDEV_TRACE_NRECORDS: Number of trace entries to remember
                            • +
                            +

                            Trace IDs. + The trace facility works like this: + When enabled, USB events that occur in either the USB device driver or in the USB class driver are logged. + These events are described in include/nuttx/usb/usbdev_trace.h. + The logged events are identified by a set of event IDs: +

                            +
                              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                              TRACE_INIT_IDInitialization events
                              TRACE_EP_IDEndpoint API calls
                              TRACE_DEV_IDUSB device API calls
                              TRACE_CLASS_IDUSB class driver API calls
                              TRACE_CLASSAPI_IDOther class driver system API calls
                              TRACE_CLASSSTATE_IDTrack class driver state changes
                              TRACE_INTENTRY_IDInterrupt handler entry
                              TRACE_INTDECODE_IDDecoded interrupt event
                              TRACE_INTEXIT_IDInterrupt handler exit
                              TRACE_OUTREQQUEUED_IDRequest queued for OUT endpoint
                              TRACE_INREQQUEUED_IDRequest queued for IN endpoint
                              TRACE_READ_IDRead (OUT) action
                              TRACE_WRITE_IDWrite (IN) action
                              TRACE_COMPLETE_IDRequest completed
                              TRACE_DEVERROR_IDUSB controller driver error event
                              TRACE_CLSERROR_IDUSB class driver error event
                            +

                            Logged Events. + Each logged event is 32-bits in size and includes +

                            +
                              +
                            1. 8-bits of the trace ID (values associated with the above)
                            2. +
                            3. 8-bits of additional trace ID data, and
                            4. +
                            5. 16-bits of additonal data.
                            6. +
                            +

                            8-bit Trace Data + The 8-bit trace data depends on the specific event ID. As examples, +

                            +
                              +
                            • + For the USB serial and mass storage class, the 8-bit event data is provided in include/nuttx/usb/usbdev_trace.h. +
                            • +
                            • + For the USB device driver, that 8-bit event data is provided within the USB device driver itself. + So, for example, the 8-bit event data for the LPC1768 USB device driver is found in arch/arm/src/lpc17xx/lpc17_usbdev.c. +
                            • +
                            +

                            16-bit Trace Data. + The 16-bit trace data provided additional context data relevant to the specific logged event. +

                            +

                            Trace Control Interfaces. + Logging of each of these kinds events can be enabled or disabled using the interfaces described in include/nuttx/usb/usbdev_trace.h. +

                            +

                            Enabling USB Device Tracing. + USB device tracing will be configured if CONFIG_USBDEV and either of the following are set in the NuttX configuration file: +

                            +
                              +
                            • CONFIG_USBDEV_TRACE, or
                            • +
                            • CONFIG_DEBUG and CONFIG_DEBUG_USB
                            • +
                            +

                            Log Data Sink. + The logged data itself may go to either (1) an internal circular buffer, or (2) may be provided on the console. + If CONFIG_USBDEV_TRACE is defined, then the trace data will go to the circular buffer. + The size of the circular buffer is determined by CONFIG_USBDEV_TRACE_NRECORDS. + Otherwise, the trace data goes to console. +

                            +

                            Example. + Here is an example of USB trace output using examples/usbserial for an LPC1768 platform with the following NuttX configuration settings: +

                            +
                              +
                            • CONFIG_DEBUG, CONFIG_DEBUG_VERBOSE, CONFIG_USB +
                            • CONFIG_EXAMPLES_USBSERIAL_TRACEINIT, CONFIG_EXAMPLES_USBSERIAL_TRACECLASS, + CONFIG_EXAMPLES_USBSERIAL_TRACETRANSFERS, CONFIG_EXAMPLES_USBSERIAL_TRACECONTROLLER, + CONFIG_EXAMPLES_USBSERIAL_TRACEINTERRUPTS +
                            +

                            Console Output:

                            +
                              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                               ABDE
                               user_start: Registering USB serial driver
                               uart_register: Registering /dev/ttyUSB0
                               user_start: Successfully registered the serial driver
                              1Class API call 1: 0000
                              2Class error: 19:0000
                               user_start: ERROR: Failed to open /dev/ttyUSB0 for reading: 107
                               user_start: Not connected. Wait and try again.
                              3Interrupt 1 entry: 0039
                              4Interrupt decode 7: 0019
                              5Interrupt decode 32: 0019
                              6Interrupt decode 6: 0019
                              7Class disconnect(): 0000
                              8Device pullup(): 0001
                              9Interrupt 1 exit: 0000
                            +

                            + The numbered items are USB USB trace output. + You can look in the file drivers/usbdev/usbdev_trprintf.c to see examctly how each output line is formatted. + Here is how each line should be interpreted: +

                            +
                              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                               USB EVENT ID8-bit
                              EVENT
                              DATA
                              MEANING16-bit
                              EVENT
                              DATA
                              1TRACE_CLASSAPI_ID11USBSER_TRACECLASSAPI_SETUP10000
                              2TRACE_CLSERROR_ID119USBSER_TRACEERR_SETUPNOTCONNECTED10000
                              3TRACE_INTENTRY_ID11LPC17_TRACEINTID_USB20039
                              4TRACE_INTDECODE_ID27LPC17_TRACEINTID_DEVSTAT20019
                              5TRACE_INTDECODE_ID232LPC17_TRACEINTID_SUSPENDCHG20019
                              6TRACE_INTDECODE_ID26LPC17_TRACEINTID_DEVRESET20019
                              7TRACE_CLASS_ID13(See TRACE_CLASSDISCONNECT1)0000
                              8TRACE_DEV_ID16(See TRACE_DEVPULLUP1)0001
                              9TRACE_INTEXIT_ID11LPC17_TRACEINTID_USB20000
                              +

                              NOTES:
                              + 1See include/nuttx/usb/usbdev_trace.h
                              + 2See arch/arm/src/lpc17xx/lpc17_usbdev.c +

                              +
                            +

                            + In the above example you can see that: +

                            +
                              +
                            • 1. + The serial class USB setup method was called for the USB serial class. + This is the corresponds to the following logic in drivers/usbdev/usbdev_serial.c: +
                                +static int usbser_setup(FAR struct uart_dev_s *dev)
                                +{
                                +  ...
                                +  usbtrace(USBSER_CLASSAPI_SETUP, 0);
                                +  ...
                                +
                              +
                            • +
                            • 2. + An error occurred while processing the setup command because no configuration has yet been selected by the host. + This corresponds to the following logic in drivers/usbdev/usbdev_serial.c: +
                                +static int usbser_setup(FAR struct uart_dev_s *dev)
                                +{
                                +  ...
                                +  /* Check if we have been configured */
                                +
                                +  if (priv->config == USBSER_CONFIGIDNONE)
                                +    {
                                +      usbtrace(TRACE_CLSERROR(USBSER_TRACEERR_SETUPNOTCONNECTED), 0);
                                +      return -ENOTCONN;
                                +    }
                                +  ...
                                +
                              +
                            • 3-6. + Here is a USB interrupt that suspends and resets the device. +
                            • +
                            • 7-8. + During the interrupt processing the serial class is disconnected +
                            • +
                            • 9. + And the interrupt returns +
                            • +
                            + + From 781be650ae67078917292bbcfdf99516f3f0be0f Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 27 Feb 2011 15:42:07 +0000 Subject: [PATCH 0718/1518] Add support for the ISOTEL NetClamps VSN board git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3321 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 83 +++++++++++++++++++++++++++++---------- Documentation/README.html | 6 ++- 2 files changed, 67 insertions(+), 22 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index b58bc95243..57c2b8723f 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                            NuttX RTOS

                            -

                            Last Updated: February 25, 2011

                            +

                            Last Updated: February 27, 2011

                            @@ -1170,21 +1170,41 @@

                            STMicro STM32F103x. - This port uses the STMicro STM3210E-EVAL development board that - features the STM32F103ZET6 MCU. - This port uses a GNU arm-elf toolchain* under either Linux or Cygwin (with native Windows GNU + Support for three MCUs and two board configurations are available. + MCU support includes: STM32F103ZET6, STM32F103RET6, and STM32F107VC. + Board support includes: +

                            +
                              +
                            1. + This port uses the STMicro STM3210E-EVAL development board that + features the STM32F103ZET6 MCU. +
                            2. +
                            3. + ISOTEL NetClamps VSN V1.2 ready2go sensor network platform based on the + STMicro STM32F103RET6. Contributed by Uros Platise. +
                            4. +
                            +

                            + These ports uses a GNU arm-elf toolchain* under either Linux or Cygwin (with native Windows GNU tools or Cygwin-based GNU tools).

                              STATUS: - The basic STM32 port was released in NuttX version 0.4.12. The basic port includes boot-up - logic, interrupt driven serial console, and system timer interrupts. - The 0.4.13 release added support for SPI, serial FLASH, and USB device.; - The 4.14 release added support for buttons and SDIO-based MMC/SD and verifed DMA support. - Verified configurations are available for NuttX OS test, the NuttShell (NSH) example, - the USB serial device class, and the USB mass storage device class example.

                              +
                                +
                              • + The basic STM32 port was released in NuttX version 0.4.12. The basic port includes boot-up + logic, interrupt driven serial console, and system timer interrupts. + The 0.4.13 release added support for SPI, serial FLASH, and USB device.; + The 4.14 release added support for buttons and SDIO-based MMC/SD and verifed DMA support. + Verified configurations are available for NuttX OS test, the NuttShell (NSH) example, + the USB serial device class, and the USB mass storage device class example. +
                              • +
                              • + Support for the NetClamps VSN was included in version 5.18 of NuttX. +
                              • +

                              Development Environments: 1) Linux with native Linux GNU toolchain, 2) Cygwin with Cygwin GNU toolchain, or 3) Cygwin @@ -1231,7 +1251,7 @@ 1) Linux with native Linux GNU toolchain, 2) Cygwin with Cygwin GNU toolchain, or 3) Cygwin with Windows native toolchain (CodeSourcery or devkitARM). A DIY toolchain for Linux or Cygwin is provided by the NuttX - buildroot + buildroot package.

                            @@ -1337,7 +1357,7 @@ 1) Linux with native Linux GNU toolchain, 2) Cygwin with Cygwin GNU toolchain, or 3) Cygwin with Windows native toolchain (CodeSourcery or devkitARM). A DIY toolchain for Linux or Cygwin is provided by the NuttX - buildroot + buildroot package.

                          @@ -1380,14 +1400,27 @@

                          MC9S12NE64. - This port uses the Freescale DEMO9S12NE64 Evaluation Board with a GNU arm-elf toolchain* under Linux or Cygwin. + Support for the MC9S12NE64 MCU and two boards are included: +

                          +
                            +
                          • + The Freescale DEMO9S12NE64 Evaluation Board, and +
                          • +
                          • + The Future Electronics Group NE64 /PoE Badge board. +
                          • +
                          +

                          + Both use a GNU arm-elf toolchain* under Linux or Cygwin. + The NuttX buildroot provides a properly patched GCC 3.4.4 toolchain that is highly optimized for the m9s12x family.

                            STATUS: - This port only fragmentary as of NuttX-5.0. Some initial pieces appear in that - release, but much more is needed. Time permitting, the HCS12 port may be available - int NuttX5.1. + Coding is complete for the MC9S12NE64 and for the NE64 Badge board. + However, testing has not yet begun due to issues with BDMs, Code Warrior, and + the paging in the build process. + Progress is slow, but I hope to see a fully verified MC9S12NE64 port in the near future.

                          @@ -1720,7 +1753,7 @@ m68k, m68hc11, m68hc12, and SuperH ports. This combination works well too. It works just as well as the native Linux environment except that compilation and build times are a little longer. - The custom NuttX buildroot referenced above may be build in + The custom NuttX buildroot referenced above may be build in the Cygwin environment as well.

                          @@ -2040,11 +2073,19 @@ nuttx-5.18 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> a USB host HID keyboard configuraion. * drivers/usbhost/hid_parser.c -- Leverages the LUFA HID parser written by Dean Camera. - * examples/nsh -- Correct an usage of getopt(): If you stop calling getopt() - before all parameters are parsed, you can leave getopt() in a strange state. + * examples/nsh -- Correct an usage of getopt(): If you stop calling getopt() + before all parameters are parsed, you can leave getopt() in a strange state. * Rename arch/pjrc-8051 to arch/8051 - * configs/ne64badge -- Add a configuration for the Future Electronics Group - NE64 Badge development board (Freescale MC9S12NE64) + * configs/ne64badge -- Add a configuration for the Future Electronics Group + NE64 Badge development board (Freescale MC9S12NE64) + * Changes contributed by Uros Platise: + - Add support for the STM32F103RET6 + - configs/vsn - Support for the ISOTEL NetClamps VSN V1.2 ready2go sensor + network platform + * arch/hc, configs/ne64badge -- Development is complete for the Freescale + mc9s12ne64 on the Future Electronics Group NE64 /PoE Badge board. Howeve, + this port remains untested until I figure out this BDM / Code Warrior + and paged build thing pascal-2.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> diff --git a/Documentation/README.html b/Documentation/README.html index 47686f86a5..0338330fae 100755 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -9,7 +9,7 @@

                          NuttX README Files

                          -

                          Last Updated: February 24, 2010

                          +

                          Last Updated: February 27, 2010

                          @@ -89,6 +89,8 @@ | | |- include/README.txt | | |- src/README.txt | | `- README.txt + | |- ne64badge/ + | | `- README.txt | |- ntosd-dm320/ | | |- doc/README.txt | | |- include/README.txt @@ -129,6 +131,8 @@ | | |- include/README.txt | | |- src/README.txt | | `- README.txt + | |- vsn/ + | | `- README.txt | |- xtrs/ | | |- include/README.txt | | |- src/README.txt From 9847e89276e9f72c90674ac213da71c8d1f100e0 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 27 Feb 2011 17:26:06 +0000 Subject: [PATCH 0719/1518] Add NSH kill command git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3322 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttShell.html | 176 ++++++++++++++++++++--------------- 1 file changed, 102 insertions(+), 74 deletions(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index 74170efee3..045117b08e 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -8,7 +8,7 @@

                          NuttShell (NSH)

                          -

                          Last Updated: July 06, 2010

                          +

                          Last Updated: February 27, 2011

                          @@ -149,139 +149,145 @@
                          - 2.12 Setup/teardown the Loop Device (losetup) + 2.12 Send a signal to a task (kill)
                          - 2.13 List Directory Contents (ls) + 2.13 Setup/teardown the Loop Device (losetup)
                          - 2.14 Access Memory (mb, mh, and mw) + 2.14 List Directory Contents (ls)
                          - 2.15 Show Memory Manager Status (mem) + 2.15 Access Memory (mb, mh, and mw)
                          - 2.16 Show Current Tasks and Threads (ps) + 2.16 Show Memory Manager Status (mem)
                          - 2.17 Create a Directory (mkdir) + 2.17 Show Current Tasks and Threads (ps)
                          - 2.18 Create a FAT Filesystem (mkfatfs) + 2.18 Create a Directory (mkdir)
                          - 2.19 Create a FIFO (mkfifo) + 2.19 Create a FAT Filesystem (mkfatfs)
                          - 2.20 Create a RAMDISK (mkrd) + 2.20 Create a FIFO (mkfifo)
                          - 2.21 Mount a File System (mount) + 2.21 Create a RAMDISK (mkrd)
                          - 2.22 Check Network Peer (ping) + 2.22 Mount a File System (mount)
                          - 2.23 Send File Via TFTP (put) + 2.23 Check Network Peer (ping)
                          - 2.24 Show Current Working Directory (pwd) + 2.24 Send File Via TFTP (put)
                          - 2.25 Remove a File (rm) + 2.25 Show Current Working Directory (pwd)
                          - 2.26 Remove a Directory (rmdir) + 2.26 Remove a File (rm)
                          - 2.27 Set an Environment Variable (set) + 2.27 Remove a Directory (rmdir)
                          - 2.28 Execute an NSH Script (sh) + 2.28 Set an Environment Variable (set)
                          - 2.29 Wait for Seconds (sleep) + 2.29 Execute an NSH Script (sh)
                          - 2.30 Unmount a File System (umount) + 2.30 Wait for Seconds (sleep)
                          - 2.31 Unset an Environment Variable (unset) + 2.31 Unmount a File System (umount)
                          - 2.32 Wait for Microseconds (usleep) + 2.32 Unset an Environment Variable (unset)
                          - 2.33 Get File Via HTTP (wget) + 2.33 Wait for Microseconds (usleep)
                          - 2.34 Hexadecimal Dump (xd) + 2.34 Get File Via HTTP (wget) + + + +
                          + + 2.35 Hexadecimal Dump (xd) @@ -682,7 +688,7 @@ test <expression> -Command Syntax:

                          +

                          Command Syntax:

                             cat <path> [<path> [<path> ...]]
                             
                          @@ -700,7 +706,7 @@ cat <path> [<path> [<path> -
                          Command Syntax:

                          +

                          Command Syntax:

                             cd [<dir-path>|-|~|..]
                             
                          @@ -742,7 +748,7 @@ cd [<dir-path>|-|~|..] -
                          Command Syntax:

                          +

                          Command Syntax:

                             cp <source-path> <dest-path>
                             
                          @@ -760,7 +766,7 @@ cp <source-path> <dest-path> -
                          Command Syntax:

                          +

                          Command Syntax:

                             dd if=<infile> of=<outfile> [bs=<sectsize>] [count=<sectors>] [skip=<sectors>]
                             
                          @@ -819,7 +825,7 @@ nsh> dd if=/dev/ram0 of=/dev/null -
                          Command Syntax:

                          +

                          Command Syntax:

                             echo [<string|$name> [<string|$name>...]]
                             
                          @@ -856,7 +862,7 @@ exec <hex-address> -
                          Command Syntax:

                          +

                          Command Syntax:

                             get [-b|-n] [-f <local-path>] -h <ip-address> <remote-path>
                             
                          @@ -891,7 +897,7 @@ get [-b|-n] [-f <local-path>] -h <ip-address> <remote-path> -
                          Command Syntax:

                          +

                          Command Syntax:

                             exit
                             
                          @@ -910,7 +916,7 @@ exit -
                          Command Syntax:

                          +

                          Command Syntax:

                             help
                             
                          @@ -927,7 +933,7 @@ help -
                          Command Syntax:

                          +

                          Command Syntax:

                             ifconfig
                             
                          @@ -948,12 +954,28 @@ eth0 HWaddr 00:18:11:80:10:06
                          -

                          2.12 Setup/teardown the Loop Device (losetup)

                          +

                          2.12 Send a signal to a task (kill)

                          -
                          Command Syntax 1:

                          +
                            +kill -<signal> <pid>
                            +
                          +

                          + Synopsis. + Send the to the task identified by . +

                          + + + + + +
                          +

                          2.13 Setup/teardown the Loop Device (losetup)

                          +
                          + +

                          Command Syntax 1:

                             losetup [-o ] [-r] <dev-path> <file-path>
                             
                          @@ -989,7 +1011,7 @@ nsh>

                        -
                        Command Syntax 2:

                        +

                        Command Syntax 2:

                           losetup d <dev-path>
                           
                        @@ -1001,12 +1023,12 @@ losetup d <dev-path>
                        -

                        2.13 List Directory Contents (ls)

                        +

                        2.14 List Directory Contents (ls)

                        -
                        Command Syntax:

                        +

                        Command Syntax:

                           ls [-lRs] <dir-path>
                           
                        @@ -1038,7 +1060,7 @@ ls [-lRs] <dir-path>
                        -

                        2.14 Access Memory (mb, mh, and mw)

                        +

                        2.15 Access Memory (mb, mh, and mw)

                        @@ -1092,12 +1114,12 @@ nsh>
                        -

                        2.15 Show Memory Manager Status (mem)

                        +

                        2.16 Show Memory Manager Status (mem)

                        -
                        Command Syntax:

                        +

                        Command Syntax:

                           mem
                           
                        @@ -1141,12 +1163,12 @@ nsh>
                        -

                        2.16 Show Current Tasks and Threads (ps)

                        +

                        2.17 Show Current Tasks and Threads (ps)

                        -
                        Command Syntax:

                        +

                        Command Syntax:

                           ps
                           
                        @@ -1167,7 +1189,7 @@ nsh>
                        -

                        2.17 Create a Directory (mkdir)

                        +

                        2.18 Create a Directory (mkdir)

                        @@ -1202,7 +1224,7 @@ nsh>
                        -

                        2.18 Create a FAT Filesystem (mkfatfs)

                        +

                        2.19 Create a FAT Filesystem (mkfatfs)

                        @@ -1222,7 +1244,7 @@ mkfatfs <path>
                        -

                        2.19 Create a FIFO (mkfifo)

                        +

                        2.20 Create a FIFO (mkfifo)

                        @@ -1260,7 +1282,7 @@ nsh>
                        -

                        2.20 Create a RAMDISK (mkrd)

                        +

                        2.21 Create a RAMDISK (mkrd)

                        @@ -1311,7 +1333,7 @@ nsh>
                        -

                        2.21 Mount a File System (mount)

                        +

                        2.22 Mount a File System (mount)

                        @@ -1378,12 +1400,12 @@ nsh>
                        -

                        2.22 Check Network Peer (ping)

                        +

                        2.23 Check Network Peer (ping)

                        -
                        Command Syntax:

                        +

                        Command Syntax:

                           ping [-c <count>] [-i <interval>] <ip-address>
                           
                        @@ -1411,12 +1433,12 @@ nsh>
                        -

                        2.23 Send File Via TFTP (put)

                        +

                        2.24 Send File Via TFTP (put)

                        -
                        Command Syntax:

                        +

                        Command Syntax:

                           put [-b|-n] [-f <remote-path>] -h <ip-address> <local-path>
                           
                        @@ -1446,12 +1468,12 @@ put [-b|-n] [-f <remote-path>] -h <ip-address> <local-path>
                        -

                        2.24 Show Current Working Directory (pwd)

                        +

                        2.25 Show Current Working Directory (pwd)

                        -
                        Command Syntax:

                        +

                        Command Syntax:

                           pwd
                           
                        @@ -1476,12 +1498,12 @@ nsh>
                        -

                        2.25 Remove a File (rm)

                        +

                        2.26 Remove a File (rm)

                        -
                        Command Syntax:

                        +

                        Command Syntax:

                           rm <file-path>
                           
                        @@ -1510,12 +1532,12 @@ nsh>
                        -

                        2.26 Remove a Directory (rmdir)

                        +

                        2.27 Remove a Directory (rmdir)

                        -
                        Command Syntax:

                        +

                        Command Syntax:

                           rmdir <dir-path>
                           
                        @@ -1545,12 +1567,12 @@ nsh>
                        -

                        2.27 Set an Environment Variable (set)

                        +

                        2.28 Set an Environment Variable (set)

                        -
                        Command Syntax:

                        +

                        Command Syntax:

                           set <name> <value>
                           
                        @@ -1571,12 +1593,12 @@ nsh>
                        -

                        2.28 Execute an NSH Script (sh)

                        +

                        2.29 Execute an NSH Script (sh)

                        -
                        Command Syntax:

                        +

                        Command Syntax:

                           sh <script-path>
                           
                        @@ -1589,12 +1611,12 @@ sh <script-path>
                        -

                        2.29 Wait for Seconds (sleep)

                        +

                        2.30 Wait for Seconds (sleep)

                        -
                        Command Syntax:

                        +

                        Command Syntax:

                           sleep <sec>
                           
                        @@ -1606,12 +1628,12 @@ sleep <sec>
                        -

                        2.30 Unmount a File System (umount)

                        +

                        2.31 Unmount a File System (umount)

                        -
                        Command Syntax:

                        +

                        Command Syntax:

                           umount <dir-path>
                           
                        @@ -1636,12 +1658,12 @@ nsh>
                        -

                        2.31 Unset an Environment Variable (unset)

                        +

                        2.32 Unset an Environment Variable (unset)

                        -
                        Command Syntax:

                        +

                        Command Syntax:

                           unset <name>
                           
                        @@ -1662,12 +1684,12 @@ nsh>
                        -

                        2.32 Wait for Microseconds (usleep)

                        +

                        2.33 Wait for Microseconds (usleep)

                        -
                        Command Syntax:

                        +

                        Command Syntax:

                           usleep <usec>
                           
                        @@ -1679,12 +1701,12 @@ usleep <usec>
                        - 2.33 Get File Via HTTP (wget) + 2.34 Get File Via HTTP (wget)
                        -
                        Command Syntax:

                        +

                        Command Syntax:

                           wget [-o <local-path>] <url>
                           
                        @@ -1706,12 +1728,12 @@ wget [-o <local-path>] <url>
                        -

                        2.34 Hexadecimal dump (xd)

                        +

                        2.35 Hexadecimal dump (xd)

                        -
                        Command Syntax:

                        +

                        Command Syntax:

                           xd <hex-address> <byte-count>
                           
                        @@ -1825,6 +1847,11 @@ nsh> CONFIG_NET CONFIG_EXAMPLES_NSH_DISABLE_IFCONFIG + + kill + !CONFIG_DISABLE_SIGNALS + CONFIG_EXAMPLES_NSH_DISABLE_KILL + losetup !CONFIG_DISABLE_MOUNTPOINT && CONFIG_NFILE_DESCRIPTORS > 0 @@ -2331,6 +2358,7 @@ nsh>
                      • help
                      • if-then[-else]-fi
                      • ifconfig
                      • +
                      • kill
                      • losetup
                      • ls
                      • mb
                      • From 05ddd9d835c33787374c426f71edf2d7d5729ab8 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 27 Feb 2011 18:28:49 +0000 Subject: [PATCH 0720/1518] cat and cp need to exit if a signal is recieved git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3323 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 122 +++++++++++++++++++-------------------- 1 file changed, 59 insertions(+), 63 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 57c2b8723f..0c11fc7048 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -800,31 +800,43 @@ -

                        nuttx-5.17 Release Notes: +

                        nuttx-5.18 Release Notes: +

                        - The 64th release of NuttX, Version 5.17, was made on January 19, 2010 and is available for download from the - SourceForge website. + The 65th release of NuttX, Version 5.18, was made on February 27, 2011 and is available for download from the + SourceForge website. The change log associated with the release is available here. Unreleased changes after this release are available in SVN. These unreleased changes are listed here.

                        - This release follows close on the heels of the 5.16 release and extends the USB host capabilities first introduced in that version. -

                        + This is first release from the new NuttX SVN repository. + This release is made primarily to keep the release tarball in synchronization with SVN. + Many smaller changes have been made as identified in the ChangeLog. + Headlines would include: +

                        • - The LPC17xx USB host controller driver was extended to (1) add support for low-speed devices, - (2) handle multiple concurrent transfers on different endpoints (still only one TD per endpoint), and - (3) handle periodic interrupt endpoint types. + Incorporate several important uIP patches -- including the well known patch to handle missing SYNACK.
                        • - Add a USB host HID keyboard class driver. - Now you can connect a standard USB keyboard to NuttX and receive keyboard input for an application. + The Freescale mc8s12ne64 port is code complete but testing has not yet begun due to toolchain issues. + Added support for the Future Electronics Group NE64 Badge board. +
                        • +
                        • + Added support for a new STM32 board, the ISOTEL NetClamps VSN V1.2 ready2go sensor network platform. + This board is based on a STM32F103RET6 and includes some interesting power saving/clock control extensions. +
                        • +
                        • + USB host support expanded to handle vendor specific USB devices. +
                        • +
                        • + Incorporated the LUFA HID parser. +
                        • +
                        • + Various bugfix as detailed in the ChangeLog
                        -

                        - And other changes as detailed in the ChangeLog. -

                        @@ -1999,56 +2011,7 @@ Other memory:
                          -nuttx-5.17 2011-01-19 Gregory Nutt <spudmonkey@racsa.co.cr>
                          -
                          -    * include/nuttx/usb -- rename usb_storage.h to storage.h.
                          -    * arch/arm/src/lpc17xx/lpc17_usbhost.c -- Add support for low-speed devices.
                          -    * drivers/usbhost/usbhost_skeleton.c -- Template for new class drivers
                          -    * include/nuttx/usb/hid.h and drivers/usbhost/usbhost_hidkbd.c -- New
                          -      files for HID keyboard support.
                          -    * arch/arm/src/lpc17xx/lpc17_usbhost.c -- Will now handle multiple
                          -      concurrent transfers on different endpoints (still only one TD per
                          -      endpoint).  All methods are protected from re-entrancy; lots of re-
                          -      structuring in preparation for interrupt endpoint support.
                          -    * arch/arm/src/lpc17xx/lpc17_usbhost.c -- Add support for periodic
                          -      interrupt transfers.
                          -    * examples/hidkbd - Added a simple test for the USB host HID keyboard
                          -      class driver.
                          -    * configs/olimex-lpc1766stk/hidkbd - Added a configuration to build the
                          -      USB host HID keyboard class driver test for the LPC17xx.
                          -    * Ran the tool CppCheck (http://sourceforge.net/apps/mediawiki/cppcheck) and
                          -      fixed several errors in the code identified by the tool.
                          -
                          -pascal-2.0 2009-12-21 Gregory Nutt <spudmonkey@racsa.co.cr>
                          -
                          -    * Updated to use standard C99 types in stdint.h and
                          -      stdbool.h.  This change was necessary for compatibility
                          -      with NuttX-5.0 (any beyond).
                          -
                          -buildroot-1.9 2011-02-10 <spudmonkey@racsa.co.cr>
                          -
                          -    * configs/arm926t-defconfig-4.3.3: update arm926t-defconfig-4.2.4
                          -    * configs/arm926t-defconfig-nxflat: NXFLAT-only configuration for
                          -      arm926
                          -    * toolchain/gdb/gdb.mk - Remove ncurses dependency from gdb_target target.
                          -    * toolchain/gdb/gdb.mk - Added --disable-werror to GDB configuration line.
                          -      GDB 6.8 won't build because the tarbal was released with -Werror enabled and
                          -      the build stops on the first warning.
                          -    * Add support for Freescale m9s12x using binutils 2.18 and gcc 3.3.6 and
                          -      patches available from http://www.msextra.com/tools courtesy of James
                          -      Cortina.  Add configs/m9x12x-defconfig-3.3.6.
                          -
                        - - - - - -
                        - Unreleased Changes -
                        - -
                          -nuttx-5.18 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                          +nuttx-5.18 2011-02-27 Gregory Nutt <spudmonkey@racsa.co.cr>
                           
                               * Incorporate several uIP patches from http://gitweb.aeruder.net/?p=uip.git;a=summary.
                                 - Lost SYNACK causes connection reset
                          @@ -2086,6 +2049,39 @@ nuttx-5.18 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                                 mc9s12ne64 on the Future Electronics Group NE64 /PoE Badge board.  Howeve,
                                 this port remains untested until I figure out this BDM / Code Warrior
                                 and paged build thing
                          +	* Added a new 'kill' command to NSH that will support sending signals to
                          +	  running NuttX tasks.
                          +
                          +pascal-2.0 2009-12-21 Gregory Nutt <spudmonkey@racsa.co.cr>
                          +
                          +    * Updated to use standard C99 types in stdint.h and
                          +      stdbool.h.  This change was necessary for compatibility
                          +      with NuttX-5.0 (any beyond).
                          +
                          +buildroot-1.9 2011-02-10 <spudmonkey@racsa.co.cr>
                          +
                          +    * configs/arm926t-defconfig-4.3.3: update arm926t-defconfig-4.2.4
                          +    * configs/arm926t-defconfig-nxflat: NXFLAT-only configuration for
                          +      arm926
                          +    * toolchain/gdb/gdb.mk - Remove ncurses dependency from gdb_target target.
                          +    * toolchain/gdb/gdb.mk - Added --disable-werror to GDB configuration line.
                          +      GDB 6.8 won't build because the tarbal was released with -Werror enabled and
                          +      the build stops on the first warning.
                          +    * Add support for Freescale m9s12x using binutils 2.18 and gcc 3.3.6 and
                          +      patches available from http://www.msextra.com/tools courtesy of James
                          +      Cortina.  Add configs/m9x12x-defconfig-3.3.6.
                          +
                        + + + + + +
                        + Unreleased Changes +
                        + + - - - - -
                        -

                        2.16 Show Memory Manager Status (mem)

                        -
                        - -

                        Command Syntax:

                        -
                          -mem
                          -
                        -

                        - Synopsis. - Show the current state of the memory allocator. For example, -

                        -
                          -nsh> mem
                          -  arena:      fe2560
                          -  ordblks:         1
                          -  mxordblk:   fdc3e0
                          -  uordblks:     6180
                          -  fordblks:   fdc3e0
                          -nsh>
                          -
                        -

                        Where:

                        -
                          - - - - - - - - - - - - - - - - - - - - -
                          arenaThis is the total size of memory allocated for use by malloc in bytes.
                          ordblksThis is the number of free (not in use) chunks.
                          mxordblkSize of the largest free (not in use) chunk.
                          uordblksThis is the total size of memory occupied by chunks handed out by malloc.
                          fordblksThis is the total size of memory occupied by free (not in use) chunks.
                        - + + + + + - - - - - @@ -2353,6 +2346,7 @@ nsh>
                        @@ -1831,6 +1824,11 @@ nsh>
                        CONFIG_EXAMPLES_NSH_DISABLE_EXIT
                        free
                        CONFIG_EXAMPLES_NSH_DISABLE_FREE
                        get CONFIG_NET && CONFIG_NET_UDP && @@ -1871,11 +1869,6 @@ nsh> CONFIG_EXAMPLES_NSH_DISABLE_MW
                        mem
                        CONFIG_EXAMPLES_NSH_DISABLE_MEM
                        mkdir !CONFIG_DISABLE_MOUNTPOINT && CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_FS_WRITABLE4
                      • exec
                      • exit
                      • +
                      • free
                      • get
                      • Greeting
                      • help
                      • @@ -2364,7 +2358,6 @@ nsh>
                      • mb
                      • mh
                      • mw
                      • -
                      • mem
                      • mkdir
                      • mkfatfs
                      • mkfifo
                      • diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 0c11fc7048..52386107a6 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -2038,6 +2038,8 @@ nuttx-5.18 2011-02-27 Gregory Nutt <spudmonkey@racsa.co.cr> Dean Camera. * examples/nsh -- Correct an usage of getopt(): If you stop calling getopt() before all parameters are parsed, you can leave getopt() in a strange state. + * include/nuttx/fb.h -- Restore missing RGB type that was accidentally removed + when Nokia 6100 support was added. * Rename arch/pjrc-8051 to arch/8051 * configs/ne64badge -- Add a configuration for the Future Electronics Group NE64 Badge development board (Freescale MC9S12NE64) @@ -2049,8 +2051,8 @@ nuttx-5.18 2011-02-27 Gregory Nutt <spudmonkey@racsa.co.cr> mc9s12ne64 on the Future Electronics Group NE64 /PoE Badge board. Howeve, this port remains untested until I figure out this BDM / Code Warrior and paged build thing - * Added a new 'kill' command to NSH that will support sending signals to - running NuttX tasks. + * Added a new 'kill' command to NSH that will support sending signals to + running NuttX tasks. pascal-2.0 2009-12-21 Gregory Nutt <spudmonkey@racsa.co.cr> @@ -2083,6 +2085,9 @@ buildroot-1.9 2011-02-10 <spudmonkey@racsa.co.cr>
                           nuttx-5.19 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                           
                          +    * NSH: 'mem' command renamed to 'free'.  Output is now more similar to the
                          +      Linux 'free' command.
                          +
                           pascal-2.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                           
                           buildroot-1.10 2011-xx-xx 
                          
                          From c99882a842b5eba353e31fb984c2be23444ade62 Mon Sep 17 00:00:00 2001
                          From: patacongo 
                          Date: Tue, 1 Mar 2011 02:32:50 +0000
                          Subject: [PATCH 0722/1518] Fix NSH redirection hang
                          
                          git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3326 42af7a65-404d-4744-a932-0658087f49c3
                          ---
                           Documentation/NuttX.html | 16 +++++++++++++++-
                           1 file changed, 15 insertions(+), 1 deletion(-)
                          
                          diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html
                          index 52386107a6..15ee60dae8 100644
                          --- a/Documentation/NuttX.html
                          +++ b/Documentation/NuttX.html
                          @@ -8,7 +8,7 @@
                             

                        NuttX RTOS

                        -

                        Last Updated: February 27, 2011

                        +

                        Last Updated: February 28, 2011

                        @@ -2087,6 +2087,20 @@ nuttx-5.19 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> * NSH: 'mem' command renamed to 'free'. Output is now more similar to the Linux 'free' command. + * NSH: Correct a redirection bug in NSH. The following would not work; it + resulted in a hang after the 'cat /dev/fifo': + + nsh> mkfile /dev/fifo + nsh> cd /tmp # /tmp is a mounted RAM disk + nsh> cat /dev/fifo > test.txt & + nsh> echo "This is a test" > /dev/fifo + + The error was caused because (1) there was a path that resulted in stdout + being closed (the "hang") and also (2) the 'cat' command was always outputting + to stdout, not to the redirected file descriptor. Now: + + nsh> cat test.txt + This is a test pascal-2.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From 962b818f68c77c98d6607352ec8f1e37d504a7aa Mon Sep 17 00:00:00 2001 From: patacongo Date: Wed, 2 Mar 2011 00:33:42 +0000 Subject: [PATCH 0723/1518] Fix pipe/fifo open logic: semaphore wait in open() must abort if a signal is received git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3327 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 15ee60dae8..44fc71a9ea 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                        NuttX RTOS

                        -

                        Last Updated: February 28, 2011

                        +

                        Last Updated: March 1, 2011

                        @@ -2102,6 +2102,10 @@ nuttx-5.19 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> nsh> cat test.txt This is a test + * drvers/pipes/pipe_common.c: Driver open method eas not returning an EINTR + error when it received a signal. Instead, it just re-started the wait. This + makes it impossible to kill a background pipe operation from NSH. + pascal-2.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> buildroot-1.10 2011-xx-xx From 5c13e39219f1e52203398581f132904b3d5aa173 Mon Sep 17 00:00:00 2001 From: patacongo Date: Wed, 2 Mar 2011 00:47:12 +0000 Subject: [PATCH 0724/1518] Fix and clarity 'kill' documentation git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3328 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttShell.html | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index 754057917e..87e8592e93 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -8,7 +8,7 @@

                        NuttShell (NSH)

                        -

                        Last Updated: February 28, 2011

                        +

                        Last Updated: March 1, 2011

                        @@ -1006,8 +1006,33 @@ kill -<signal> <pid>

                      Synopsis. - Send the to the task identified by . + Send the <signal> to the task identified by <pid>.

                      +
                        +nsh> mkfifo /dev/fifo
                        +nsh> cat /dev/fifo &
                        +cat [2:128]
                        +nsh> ps
                        +PID   PRI SCHD TYPE   NP STATE    NAME
                        +    0   0 FIFO TASK      READY    Idle Task()
                        +    1 128 FIFO TASK      RUNNING  init()
                        +    2 128 FIFO PTHREAD   WAITSEM  (51ea50)
                        +nsh> kill -9 2
                        +nsh: cat: open failed: 4
                        +nsh> ps
                        +PID   PRI SCHD TYPE   NP STATE    NAME
                        +    0   0 FIFO TASK      READY    Idle Task()
                        +    1 128 FIFO TASK      RUNNING  init()
                        +nsh>
                        +
                      +

                      + NOTE: + NuttX does not support a FULL POSIX signalling system. + Standard signals like SIGCHLD, SIGINTR, SIGKILL, etc. do not exist in NuttX and sending those signal may not have the result that you expect. + Rather, NuttX supports only what are referred to as POSIX real-time signals. + These signals may be used to communicate with running tasks, may be use to waiting waiting tasks, etc. + But, as an example, kill -9 (SIGKILL) will not terminate a task. +

                      From e9708aa02730501778e1c7f25115d14b5bb5b14c Mon Sep 17 00:00:00 2001 From: patacongo Date: Wed, 2 Mar 2011 14:43:28 +0000 Subject: [PATCH 0725/1518] Add logic to sleep in lpc17xx idle loop git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3329 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 44fc71a9ea..56ddb63517 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -2085,6 +2085,9 @@ buildroot-1.9 2011-02-10 <spudmonkey@racsa.co.cr>
                         nuttx-5.19 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                         
                        +    * arch/arm/stm32/stm32_idle.c -- During idle times, the STM32 now uses the
                        +      WFI instruction to sleep in a reduced power mode until the next interrupt
                        +      occurs (Contributed by Uros Platise).      
                             * NSH: 'mem' command renamed to 'free'.  Output is now more similar to the
                               Linux 'free' command.
                             * NSH: Correct a redirection bug in NSH.  The following would not work; it
                        @@ -2102,9 +2105,16 @@ nuttx-5.19 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                                 nsh> cat test.txt
                                 This is a test
                         
                        -    * drvers/pipes/pipe_common.c:  Driver open method eas not returning an EINTR
                        +    * drivers/pipes/pipe_common.c --  Driver open method eas not returning an EINTR
                               error when it received a signal.  Instead, it just re-started the wait.  This
                               makes it impossible to kill a background pipe operation from NSH.
                        +    * include/stdint.h -- Correct some errors in conditional compilation (submitted
                        +      by Johannes Hampel).
                        +    * arch/arm/lpc17xx/lp17_idle.c -- Uses the same logic as the STM32: uses the
                        +      WFI instruction to sleep in a reduced power mode until the next interrupt
                        +      occurs.
                        +    * configs/olimex-lpc1766stk -- Added an LED encoded to indicate if the LPC1766
                        +      is in sleeping.      
                         
                         pascal-2.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                         
                        
                        From b4401b0716e6e5c3ee97c532da7108647f86900e Mon Sep 17 00:00:00 2001
                        From: patacongo 
                        Date: Wed, 2 Mar 2011 18:47:32 +0000
                        Subject: [PATCH 0726/1518] Port the mm/mm_test.c logic to examples/mm
                        
                        git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3330 42af7a65-404d-4744-a932-0658087f49c3
                        ---
                         Documentation/NuttX.html | 7 ++++++-
                         1 file changed, 6 insertions(+), 1 deletion(-)
                        
                        diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html
                        index 56ddb63517..ea00922fd8 100644
                        --- a/Documentation/NuttX.html
                        +++ b/Documentation/NuttX.html
                        @@ -8,7 +8,7 @@
                           

                      NuttX RTOS

                      -

                      Last Updated: March 1, 2011

                      +

                      Last Updated: March 2, 2011

                      @@ -2115,6 +2115,11 @@ nuttx-5.19 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> occurs. * configs/olimex-lpc1766stk -- Added an LED encoded to indicate if the LPC1766 is in sleeping. + * examples/mm -- This is a simplified version of the "built-in" memory manager + test of mm/mm_test.c. It is simplified because it does not have access to + the internals of the memory manager as does mm/mm_test.c, but it has the + advantage that it runs in the actual NuttX tasking environment (the + mm/mm_test.c only runs in a PC simulation environment). pascal-2.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From 6a9272c5f7963e5e282ab39a75dd2632ce5d824c Mon Sep 17 00:00:00 2001 From: patacongo Date: Thu, 3 Mar 2011 23:15:50 +0000 Subject: [PATCH 0727/1518] typos git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3333 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 5358f6797b..a3ffa2122b 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

                      NuttX RTOS Porting Guide

                      -

                      Last Updated: February 25, 2011

                      +

                      Last Updated: March 3, 2011

                      @@ -970,7 +970,7 @@ tools/ This could be done manually as follows:

                        -
                      • Copy configs/<board-name>/[<config-dir>/]Make.def to ${TOPDIR}/Make.defs,
                      • +
                      • Copy configs/<board-name>/[<config-dir>/]Make.defs to ${TOPDIR}/Make.defs,
                      • Copy configs/<board-name>/[<config-dir>/]setenv.sh to ${TOPDIR}/setenv.sh, and
                      • Copy configs/<board-name>/[<config-dir>/]defconfig to ${TOPDIR}/.config
                      From 6f021c7086e62ccdc66e89ea9c6eedeb3953e25f Mon Sep 17 00:00:00 2001 From: patacongo Date: Fri, 4 Mar 2011 13:14:04 +0000 Subject: [PATCH 0728/1518] SDIO-based MMC/SD fixes from Uros Platise git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3334 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index ea00922fd8..3e46d58e8d 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -2120,6 +2120,7 @@ nuttx-5.19 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> the internals of the memory manager as does mm/mm_test.c, but it has the advantage that it runs in the actual NuttX tasking environment (the mm/mm_test.c only runs in a PC simulation environment). + * drivers/mmcsd_sdio.c/h -- Several corrections submitted by Uros Platise. pascal-2.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From b0cbf7e2a6f8d2fb1f81d70ebf009d6ae28a0e8c Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 5 Mar 2011 20:05:01 +0000 Subject: [PATCH 0729/1518] Add a stub for the QEMU serial driver git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3341 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 17 +++++++++++------ Documentation/README.html | 11 ++++++++++- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 3e46d58e8d..4cdadd2761 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                      NuttX RTOS

                      -

                      Last Updated: March 2, 2011

                      +

                      Last Updated: March 5, 2011

                      @@ -2115,12 +2115,17 @@ nuttx-5.19 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> occurs. * configs/olimex-lpc1766stk -- Added an LED encoded to indicate if the LPC1766 is in sleeping. - * examples/mm -- This is a simplified version of the "built-in" memory manager - test of mm/mm_test.c. It is simplified because it does not have access to - the internals of the memory manager as does mm/mm_test.c, but it has the - advantage that it runs in the actual NuttX tasking environment (the - mm/mm_test.c only runs in a PC simulation environment). + * examples/mm -- This is a simplified version of the "built-in" memory manager + test of mm/mm_test.c. It is simplified because it does not have access to + the internals of the memory manager as does mm/mm_test.c, but it has the + advantage that it runs in the actual NuttX tasking environment (the + mm/mm_test.c only runs in a PC simulation environment). * drivers/mmcsd_sdio.c/h -- Several corrections submitted by Uros Platise. + * arch/x86 - Provide support for x86 architectures. Support for the i486 + architecture under QEMU is provided under arch/x86/include/i486, + arch/x86/include/qemu, arch/x86/src/i486, and arch/x86/src/qemu. + * configs/qemu-i486 - "Board" support configurations for verifying the QEME + i486 port. pascal-2.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> diff --git a/Documentation/README.html b/Documentation/README.html index 0338330fae..c9238cc8d1 100755 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -9,7 +9,7 @@

                      NuttX README Files

                      -

                      Last Updated: February 27, 2010

                      +

                      Last Updated: March 5, 2010

                      @@ -38,6 +38,11 @@ | | | |-m16c/README.txt | | | |-sh1/README.txt | | | `-README.txt + | |- x86/ + | | |- include/ + | | | `-README.txt + | | `- src/ + | | `-README.txt | `- z80/ | | `- src/ | | `- z80/README.txt @@ -111,6 +116,10 @@ | | |- include/README.txt | | |- src/README.txt | | `- README.txt + | |- qemu-i486/ + | | |- include/README.txt + | | |- src/README.txt + | | `- README.txt | |- sam3u-ek/ | | `- README.txt | |- sim/ From d01ad9777b56aa5dd336ee47dd81aec0cdb33cbf Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 6 Mar 2011 00:19:59 +0000 Subject: [PATCH 0730/1518] Correct STM32 SPI3 bug reported by Uros git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3343 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 4cdadd2761..b895341ee9 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1378,7 +1378,7 @@ - 8052 Microcontroller + Intel 8052 Microcontroller @@ -1401,6 +1401,28 @@
                    + + + + Intel 80486 (i486) Microprocessor + + + +
                    + +

                    + QEMU i486. + This port uses the QEMU i486 and the native + Linux, Cywgin, MinGW the GCC toolchain under Linux or Cygwin. +

                    +
                      +

                      + STATUS: + This port is code complete but not yet tested. Stayed tuned. +

                      +
                    + + @@ -2126,6 +2148,8 @@ nuttx-5.19 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> arch/x86/include/qemu, arch/x86/src/i486, and arch/x86/src/qemu. * configs/qemu-i486 - "Board" support configurations for verifying the QEME i486 port. + * arch/arm/src/stm32/stm32_spi.c -- Correct base address of SPI3 (reported by + Uros Platise). pascal-2.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From 947ba17135bf7a2572abdf8eea7c026e0624021c Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 6 Mar 2011 03:32:15 +0000 Subject: [PATCH 0731/1518] Fix QEMU build target name git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3345 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index b895341ee9..d0c2a40bd4 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -2150,6 +2150,8 @@ nuttx-5.19 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> i486 port. * arch/arm/src/stm32/stm32_spi.c -- Correct base address of SPI3 (reported by Uros Platise). + * drivers/mmcsd/mmcsd_sdio.c -- Correct a loop termination condition (also + reported by Uros Platise). pascal-2.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From dc7cda51c948cfdf57f99fc3d9b13273f66dea1e Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 6 Mar 2011 15:39:02 +0000 Subject: [PATCH 0732/1518] Add support for RAMTRON NVRAM devices git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3347 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 6 ++++-- Documentation/README.html | 3 ++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index d0c2a40bd4..117afd5f8f 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                    NuttX RTOS

                    -

                    Last Updated: March 5, 2011

                    +

                    Last Updated: March 6, 2011

                    @@ -519,7 +519,7 @@

                    -

                  • Support for SPI-based FLASH devices.
                  • +
                  • Support for SPI-based FLASH and FRAM devices.
                  • @@ -2152,6 +2152,8 @@ nuttx-5.19 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> Uros Platise). * drivers/mmcsd/mmcsd_sdio.c -- Correct a loop termination condition (also reported by Uros Platise). + * drivers/mtd/ramtron.c - Driver for SPI-based RAMTRON NVRAM devices FM25V10 + (and others). Contributed by Uros Platise. pascal-2.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> diff --git a/Documentation/README.html b/Documentation/README.html index c9238cc8d1..034f84269f 100755 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -9,7 +9,7 @@

                    NuttX README Files

                    -

                    Last Updated: March 5, 2010

                    +

                    Last Updated: March 6, 2010

                    @@ -141,6 +141,7 @@ | | |- src/README.txt | | `- README.txt | |- vsn/ + | | |- src/README.txt | | `- README.txt | |- xtrs/ | | |- include/README.txt From aeef4c3db0353a843cf1c61078e873e313e44ebf Mon Sep 17 00:00:00 2001 From: patacongo Date: Mon, 7 Mar 2011 02:53:37 +0000 Subject: [PATCH 0733/1518] Add i486 toolchain support git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3349 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 117afd5f8f..bf638b5ec8 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -2159,6 +2159,16 @@ pascal-2.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> buildroot-1.10 2011-xx-xx + * Add patch submitted by Dimiter Georgiev to work around problems in building + GDB 6.8 with versions of Cygwin > 1.7. + * configs/i486-defconfig-4.3.3 - Builds an i486 cross development toolchain + using gcc 4.3.3. Why wouldyou want such a thing? On Linux, of course, + such a thing is not needed because you can use the installed GCC to build + i486 ELF binaries. But that will not work under Cygwin! The Cygwin + toolchain (and probably MinGW), build DOS MZ format executables (i.e., + .exe files). That is probably not usable for most NuttX targets. + Instead, you should use this i486-elf-gcc to generate true ELF binaries + under Cygwin.
                  From 0f1b3c978af2060e92a90574cdaa3b7f1e6f793c Mon Sep 17 00:00:00 2001 From: patacongo Date: Tue, 8 Mar 2011 00:27:35 +0000 Subject: [PATCH 0734/1518] Add support for platoform specific ROMFS startup files git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3350 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttShell.html | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index 87e8592e93..e03aadc7fd 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -8,7 +8,7 @@

                  NuttShell (NSH)

                  -

                  Last Updated: March 1, 2011

                  +

                  Last Updated: March 7, 2011

                  @@ -580,9 +580,8 @@ mount -t vfat /dev/ram1 /tmp

                  Modifying the ROMFS Image. - The contents of the /etc directory are retained in the file - examples/nsh/nsh_romfsimg.h. In order to modify the start-up - behavior, there are three things to study: + The contents of the /etc directory are retained in the file examples/nsh/nsh_romfsimg.h OR, if CONFIG_EXAMPLES_NSH_ARCHROMFS is defined, include/arch/board/rcs.template). + In order to modify the start-up behavior, there are three things to study:

                  1. Configuration Options. @@ -591,30 +590,37 @@ mount -t vfat /dev/ram1 /tmp
                  2. - mkromfsimg.sh Script. - The script examples/nsh/mkromfsimg.sh creates nsh_romfsimg.h. + tools/mkromfsimg.sh Script. + The script tools/mkromfsimg.sh creates nsh_romfsimg.h. It is not automatically executed. If you want to change the configuration settings associated with creating and mounting the /tmp directory, then it will be necessary to re-generate - this header file using the mkromfsimg.sh script. + this header file using the tools/mkromfsimg.sh script.

                    The behavior of this script depends upon three things:

                    • The configuration settings then installed configuration.
                    • The genromfs tool (available from http://romfs.sourceforge.net). -
                    • The file examples/nsh/rcS.template. +
                    • The file examples/nsh/rcS.template + (OR, if CONFIG_EXAMPLES_NSH_ARCHROMFS is defined include/arch/board/rcs.template.

                  3. rcS.template. The file examples/nsh/rcS.template contains the general form - of the rcS file; configurated values are plugged into this + of the rcS file; configured values are plugged into this template file to produce the final rcS file.

                  +

                  + NOTE: + examples/nsh/rcS.template generates the standard, default nsh_romfsimg.h file. + If CONFIG_EXAMPLES_NSH_ARCHROMFS is defined in the NuttX configuration file, then a custom, board-specific nsh_romfsimg.h file residing in configs/<board>/include will be used. + NOTE when the OS is configured, include/arch/board will be linked to configs/<board>/include. +

                  All of the startup-behavior is contained in rcS.template. The role of mkromfsimg.sh is to (1) apply the specific configuration @@ -2254,6 +2260,12 @@ nsh> Configuration Description + + CONFIG_EXAMPLES_NSH_ARCHROMFS + + May be defined to specify an alternative ROMFS image that can be found at configs/<board>/include/nsh_romfsimg.h. + + CONFIG_EXAMPLES_NSH_ROMFSMOUNTPT @@ -2353,6 +2365,7 @@ nsh>

                • CONFIG_EXAMPLES_NSH_NOMAC
                • CONFIG_EXAMPLES_NSH_ROMFSDEVNO
                • CONFIG_EXAMPLES_NSH_ROMFSETC
                • +
                • CONFIG_EXAMPLES_NSH_ARCHROMFS
                • CONFIG_EXAMPLES_NSH_ROMFSMOUNTPT
                • CONFIG_EXAMPLES_NSH_ROMFSSECTSIZE
                • CONFIG_EXAMPLES_NSH_STACKSIZE
                • From c6c3346627c56d09f5d584d68eb522899fed54e7 Mon Sep 17 00:00:00 2001 From: patacongo Date: Tue, 8 Mar 2011 01:24:42 +0000 Subject: [PATCH 0735/1518] misc QEMU fixes git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3351 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index bf638b5ec8..95b132afad 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                  NuttX RTOS

                  -

                  Last Updated: March 6, 2011

                  +

                  Last Updated: March 7, 2011

                  @@ -2154,6 +2154,8 @@ nuttx-5.19 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> reported by Uros Platise). * drivers/mtd/ramtron.c - Driver for SPI-based RAMTRON NVRAM devices FM25V10 (and others). Contributed by Uros Platise. + * examples/nsh and tools/mkromfsimg.sh -- Add support for platform-specific + ROMFS-based NSH start-up scripts. pascal-2.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From 71282cc3b0d37176f7818ab7543ba6ffd98434f4 Mon Sep 17 00:00:00 2001 From: patacongo Date: Thu, 10 Mar 2011 04:13:44 +0000 Subject: [PATCH 0736/1518] Add QEMU NSH configuration git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3358 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 95b132afad..38e62ec95d 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                  NuttX RTOS

                  -

                  Last Updated: March 7, 2011

                  +

                  Last Updated: March 9, 2011

                  @@ -2156,6 +2156,9 @@ nuttx-5.19 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> (and others). Contributed by Uros Platise. * examples/nsh and tools/mkromfsimg.sh -- Add support for platform-specific ROMFS-based NSH start-up scripts. + * drivers/uart_16550.c and include/nuttx/uart_16550.h - Support for a generic + 16550 UART. + * configure/qemu-i486/nsh - QEMU NSH example. pascal-2.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From 21661ff6d0ef6f9c2328f938da89a93d7a61a708 Mon Sep 17 00:00:00 2001 From: patacongo Date: Fri, 11 Mar 2011 20:16:17 +0000 Subject: [PATCH 0737/1518] Fix nsh/apps bug git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3367 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 38e62ec95d..a3763dcef5 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                  NuttX RTOS

                  -

                  Last Updated: March 9, 2011

                  +

                  Last Updated: March 11, 2011

                  @@ -2159,6 +2159,13 @@ nuttx-5.19 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> * drivers/uart_16550.c and include/nuttx/uart_16550.h - Support for a generic 16550 UART. * configure/qemu-i486/nsh - QEMU NSH example. + * ../apps - The apps directory add-on was created by Uros Platise. It + supports a set of end-user applications than can be executed on top of + NSH. Think of it this way: In a buckled-up embedded application, your + end-user programs will probably have their own dedicated start-up logic. + But, during development, you might want to have you applications + available and executable from the NSH command line. This apps/ addon + (and NSH hooks) was contributed by Uros to accomplish just that. pascal-2.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From a06b28b245b19a0a2a9b97f43961796848a1c068 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 12 Mar 2011 03:42:08 +0000 Subject: [PATCH 0738/1518] Add SLIP driver git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3369 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index a3763dcef5..a110d5ff28 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -2166,6 +2166,14 @@ nuttx-5.19 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> But, during development, you might want to have you applications available and executable from the NSH command line. This apps/ addon (and NSH hooks) was contributed by Uros to accomplish just that. + * sched/sched_waitpid() and include/sys/wait.h - Provides a simple and + very incomplete implementation of waitpid(). waitpid() is only available + if CONFIG_SCHED_WAITPID is defined in your configuration file. + * sched/atexit.c and sched/exit.c - The atexit function is not frequently + used. In order to save a few bytes, it is now conditioned on + CONFIG_SCHED_ATEXIT. It your application is currently using atexit(), + you will need to add CONFIG_SCHED_ATEXT to your configuration file. + * drivers/net/slip.c - Add a SLIP driver (untested on initial check-in). pascal-2.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From aa691aabcee894ef9b17ceeee0fc80a4a8967a74 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 12 Mar 2011 15:36:28 +0000 Subject: [PATCH 0739/1518] More support for SLIP data link protocol git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3370 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 7 +++++++ Documentation/NuttxPortingGuide.html | 18 ++++++++++++++---- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index a110d5ff28..f2b4938b78 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -463,6 +463,13 @@
                • TCP/IP, UDP, ICMP, IGMPv2 (client) stacks.
                • + +
                  + +

                  +

                • SLIP
                • +

                  +
                  diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index a3ffa2122b..c9d7f6bd26 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

                  NuttX RTOS Porting Guide

                  -

                  Last Updated: March 3, 2011

                  +

                  Last Updated: March 12, 2011

                  @@ -3303,6 +3303,19 @@ build
                • CONFIG_NET: Enable or disable all network features
                • +
                • + CONFIG_NET_SLIP: Selects the Serial Line Internet Protocol (SLIP) data link layer. + The default data link layer for uIP is Ethernet. + If CONFIG_NET_SLIP is defined in the NuttX header file, then SLIP will be supported. + The basic differences between the SLIP and Ethernet configurations is that when SLIP is selected: +
                    +
                  • The link level header (that comes before the IP header) is omitted.
                  • +
                  • All MAC address processing is suppressed.
                  • +
                  • ARP is disabled.
                  • +
                  + If CONFIG_NET_SLIP is not supported, then Ethernet will be used + (there is no need to define anything special in the configuration file to use Ethernet -- it is the default). +
                • CONFIG_NET_IPv6: Build in support for IPv6
                • @@ -3390,9 +3403,6 @@ build
                • CONFIG_NET_MULTICAST: Outgoing multi-cast address support
                • -
                • - CONFIG_NET_LLH_LEN: The link level header length -
                • CONFIG_NET_FWCACHE_SIZE: number of packets to remember when looking for duplicates
                • From ffc025bb1df2ad477729d3509dd5d5576428c367 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 12 Mar 2011 16:33:55 +0000 Subject: [PATCH 0740/1518] Add SLIP test configuration git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3371 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index f2b4938b78..b75971671f 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                  NuttX RTOS

                  -

                  Last Updated: March 11, 2011

                  +

                  Last Updated: March 12, 2011

                  @@ -2122,16 +2122,16 @@ nuttx-5.19 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> * NSH: Correct a redirection bug in NSH. The following would not work; it resulted in a hang after the 'cat /dev/fifo': - nsh> mkfile /dev/fifo - nsh> cd /tmp # /tmp is a mounted RAM disk - nsh> cat /dev/fifo > test.txt & - nsh> echo "This is a test" > /dev/fifo + nsh> mkfile /dev/fifo + nsh> cd /tmp # /tmp is a mounted RAM disk + nsh> cat /dev/fifo > test.txt & + nsh> echo "This is a test" > /dev/fifo The error was caused because (1) there was a path that resulted in stdout - being closed (the "hang") and also (2) the 'cat' command was always outputting + being closed (the "hang") and also (2) the 'cat' command was always outputting to stdout, not to the redirected file descriptor. Now: - nsh> cat test.txt + nsh> cat test.txt This is a test * drivers/pipes/pipe_common.c -- Driver open method eas not returning an EINTR @@ -2144,7 +2144,7 @@ nuttx-5.19 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> occurs. * configs/olimex-lpc1766stk -- Added an LED encoded to indicate if the LPC1766 is in sleeping. - * examples/mm -- This is a simplified version of the "built-in" memory manager + * examples/mm -- This is a simplified version of the "built-in" memory manager test of mm/mm_test.c. It is simplified because it does not have access to the internals of the memory manager as does mm/mm_test.c, but it has the advantage that it runs in the actual NuttX tasking environment (the @@ -2153,7 +2153,7 @@ nuttx-5.19 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> * arch/x86 - Provide support for x86 architectures. Support for the i486 architecture under QEMU is provided under arch/x86/include/i486, arch/x86/include/qemu, arch/x86/src/i486, and arch/x86/src/qemu. - * configs/qemu-i486 - "Board" support configurations for verifying the QEME + * configs/qemu-i486 - "Board" support configurations for verifying the QEME i486 port. * arch/arm/src/stm32/stm32_spi.c -- Correct base address of SPI3 (reported by Uros Platise). @@ -2180,16 +2180,18 @@ nuttx-5.19 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> used. In order to save a few bytes, it is now conditioned on CONFIG_SCHED_ATEXIT. It your application is currently using atexit(), you will need to add CONFIG_SCHED_ATEXT to your configuration file. - * drivers/net/slip.c - Add a SLIP driver (untested on initial check-in). + * drivers/net/slip.c - Add a SLIP driver (untested on initial check-in). + * configs/olimex-lpc1766stk/slip-httpd - An example that uses SLIP to + provide a serial-port based THTTPD web server. pascal-2.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> -buildroot-1.10 2011-xx-xx +buildroot-1.10 2011-xx-xx <spudmonkey@racsa.co.cr> * Add patch submitted by Dimiter Georgiev to work around problems in building - GDB 6.8 with versions of Cygwin > 1.7. + GDB 6.8 with versions of Cygwin > 1.7. * configs/i486-defconfig-4.3.3 - Builds an i486 cross development toolchain - using gcc 4.3.3. Why wouldyou want such a thing? On Linux, of course, + using gcc 4.3.3. Why would you want such a thing? On Linux, of course, such a thing is not needed because you can use the installed GCC to build i486 ELF binaries. But that will not work under Cygwin! The Cygwin toolchain (and probably MinGW), build DOS MZ format executables (i.e., From 0f5a1bacaf66186131c8e9be4691540deb9c92d2 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 12 Mar 2011 22:09:14 +0000 Subject: [PATCH 0741/1518] Prep for 5.19 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3373 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 169 +++++++++++++++++++-------------------- 1 file changed, 81 insertions(+), 88 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index b75971671f..d7187464f9 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -807,41 +807,75 @@ -

                  nuttx-5.18 Release Notes: +

                  nuttx-5.19 Release Notes:

                  - The 65th release of NuttX, Version 5.18, was made on February 27, 2011 and is available for download from the + The 66th release of NuttX, Version 5.19, was made on March 12, 2011 and is available for download from the SourceForge website. The change log associated with the release is available here. Unreleased changes after this release are available in SVN. These unreleased changes are listed here.

                  - This is first release from the new NuttX SVN repository. - This release is made primarily to keep the release tarball in synchronization with SVN. - Many smaller changes have been made as identified in the ChangeLog. - Headlines would include: + This release includes several new features in various states of integration and maturity:

                    -
                  • - Incorporate several important uIP patches -- including the well known patch to handle missing SYNACK. +
                  • - The Freescale mc8s12ne64 port is code complete but testing has not yet begun due to toolchain issues. - Added support for the Future Electronics Group NE64 Badge board. + 486SX QEMU port. + This port supports the Intel 486SX architecture using the QEMU simulator. + Initial functionality is in place a partially tested. + There are still some outstanding issues with timer interrupts. + A large part of the i486 logic was contributed by Biff of + Bifferboard fame.
                  • - Added support for a new STM32 board, the ISOTEL NetClamps VSN V1.2 ready2go sensor network platform. - This board is based on a STM32F103RET6 and includes some interesting power saving/clock control extensions. + Platform specific application support. + A new apps/ directory appears in this port. + This apps/ directory provides a mechanism for applications using NuttX to have a highly customizable initialization process. + It supports a set of end-user applications than can be executed + (1) standalone so you can have a fully customizable application startup, or + (2) on top of NSH. + Think of it this way: + In a buckled-up embedded application, your end-user programs will probably have their own dedicated start-up logic. + But, during development, you might want to have you applications available and executable from the NSH command line. + This apps/ add-on (and NSH hooks) was contributed by Uros Platise to accomplish just that.
                  • - USB host support expanded to handle vendor specific USB devices. + Custom NSH /etc/init.d/rcS File. + NSH was also extended to support application specific ROMFS /etc/init.d/rcS start-up scripts. + This feature, as well, as all of the above-mentioned apps/ directory support was contributed by Uros Platise
                  • - Incorporated the LUFA HID parser. + Additional NSH improvements and bug fixes. See the Changelog for details.
                  • - Various bugfix as detailed in the ChangeLog + SLIP. + This release also provides a new SLIP network driver. + This driver should support point-to-point network communications to a host using TCP/IP or UDP. + This driver is code complete, but not tested in this release. +
                  • +
                  • + RAMTROM FRAM Driver. + New RAMTRON FRAM driver (contributed by Uros Platise) +
                  • +
                  • + 16550 UART Driver. + New generic 16550 UART driver. +
                  • +
                  • + Cortex-M3 Power improvements. + The Cortex-M3 can now waits for Interrupt (WFI) in idle loop for reduced power consumption + (LPC17xx and STM32 only - contributed by Uros Platise)) +
                  • +
                  • + waitpid(). + New waitpid() system interface. +
                  • +
                  • + Bugfixes. + Additional bugfixes: pipes, stdint.h, STM32 SDIO and SPI drivers
                  @@ -2039,78 +2073,6 @@ Other memory: -
                    -nuttx-5.18 2011-02-27 Gregory Nutt <spudmonkey@racsa.co.cr>
                    -
                    -    * Incorporate several uIP patches from http://gitweb.aeruder.net/?p=uip.git;a=summary.
                    -      - Lost SYNACK causes connection reset
                    -      - Fix missing UDP stats for sent/received packets
                    -      - Added support for Cygwin as development/test platform.
                    -    * configs/demo9s12ne64 - Integrate new buildroot-1.9 m8s12x toolchain.
                    -    * 'uname -o' is used throughout the build logic in bash scripts and also in
                    -      Make.defs files in order to distinguish between Cygwin and Linux.  However,
                    -      the -o option is not standard and is not supported under, for example, OS-X or
                    -      Solaris.  This was solved by changing all 'uname -o' references to the more
                    -      complex:  'uname -o 2>/dev/null || echo "Other"'
                    -    * drivers/usbhost/usbhost_enumerate.c -- Add logic to get the VID and PID.  This
                    -      is necessary in order to support vendor-specific USB devices.
                    -    * examplex/wlan, configs/olimex-lpc1766stk/wlan, drivers/usbhost/usbhost_rtl8187.c,
                    -      Add infrastructure to support RTL18187 wireless USB.
                    -    * configs/nucleus2g -- backed out USB host changes... wrong board.
                    -    * Renamed arc/hc/include/mc9s12ne64 and src/mc9s12ne64 -- m9s12.  That name is
                    -      shorter and more general.
                    -    * The NuttX repository has been converted to SVN and can now be found here
                    -      http://nuttx.svn.sourceforge.net/viewvc/nuttx/
                    -    * configs/mbed/hidkbd -- Added USB host support for the mbed LPC1768 board; add
                    -       a USB host HID keyboard configuraion.
                    -    * drivers/usbhost/hid_parser.c -- Leverages the LUFA HID parser written by
                    -      Dean Camera.
                    -    * examples/nsh -- Correct an usage of getopt(): If you stop calling getopt()
                    -      before all parameters are parsed, you can leave getopt() in a strange state.
                    -    * include/nuttx/fb.h -- Restore missing RGB type that was accidentally removed
                    -      when Nokia 6100 support was added.
                    -    * Rename arch/pjrc-8051 to arch/8051
                    -    * configs/ne64badge -- Add a configuration for the Future Electronics Group
                    -      NE64 Badge development board (Freescale MC9S12NE64)
                    -    * Changes contributed by Uros Platise:
                    -      - Add support for the STM32F103RET6
                    -      - configs/vsn - Support for the ISOTEL NetClamps VSN V1.2 ready2go sensor
                    -        network platform
                    -    * arch/hc, configs/ne64badge -- Development is complete for the Freescale
                    -      mc9s12ne64 on the Future Electronics Group NE64 /PoE Badge board.  Howeve,
                    -      this port remains untested until I figure out this BDM / Code Warrior
                    -      and paged build thing
                    -    * Added a new 'kill' command to NSH that will support sending signals to
                    -      running NuttX tasks.
                    -
                    -pascal-2.0 2009-12-21 Gregory Nutt <spudmonkey@racsa.co.cr>
                    -
                    -    * Updated to use standard C99 types in stdint.h and
                    -      stdbool.h.  This change was necessary for compatibility
                    -      with NuttX-5.0 (any beyond).
                    -
                    -buildroot-1.9 2011-02-10 <spudmonkey@racsa.co.cr>
                    -
                    -    * configs/arm926t-defconfig-4.3.3: update arm926t-defconfig-4.2.4
                    -    * configs/arm926t-defconfig-nxflat: NXFLAT-only configuration for
                    -      arm926
                    -    * toolchain/gdb/gdb.mk - Remove ncurses dependency from gdb_target target.
                    -    * toolchain/gdb/gdb.mk - Added --disable-werror to GDB configuration line.
                    -      GDB 6.8 won't build because the tarbal was released with -Werror enabled and
                    -      the build stops on the first warning.
                    -    * Add support for Freescale m9s12x using binutils 2.18 and gcc 3.3.6 and
                    -      patches available from http://www.msextra.com/tools courtesy of James
                    -      Cortina.  Add configs/m9x12x-defconfig-3.3.6.
                    -
                  - - - - - -
                  - Unreleased Changes -
                  -
                     nuttx-5.19 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                     
                    @@ -2134,7 +2096,7 @@ nuttx-5.19 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                             nsh> cat test.txt
                             This is a test
                     
                    -    * drivers/pipes/pipe_common.c --  Driver open method eas not returning an EINTR
                    +    * drivers/pipes/pipe_common.c --  Driver open method was not returning an EINTR
                           error when it received a signal.  Instead, it just re-started the wait.  This
                           makes it impossible to kill a background pipe operation from NSH.
                         * include/stdint.h -- Correct some errors in conditional compilation (submitted
                    @@ -2184,6 +2146,37 @@ nuttx-5.19 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                         * configs/olimex-lpc1766stk/slip-httpd - An example that uses SLIP to
                           provide a serial-port based THTTPD web server.
                     
                    +pascal-2.0 2009-12-21 Gregory Nutt <spudmonkey@racsa.co.cr>
                    +
                    +    * Updated to use standard C99 types in stdint.h and
                    +      stdbool.h.  This change was necessary for compatibility
                    +      with NuttX-5.0 (any beyond).
                    +
                    +buildroot-1.9 2011-02-10 <spudmonkey@racsa.co.cr>
                    +
                    +    * configs/arm926t-defconfig-4.3.3: update arm926t-defconfig-4.2.4
                    +    * configs/arm926t-defconfig-nxflat: NXFLAT-only configuration for
                    +      arm926
                    +    * toolchain/gdb/gdb.mk - Remove ncurses dependency from gdb_target target.
                    +    * toolchain/gdb/gdb.mk - Added --disable-werror to GDB configuration line.
                    +      GDB 6.8 won't build because the tarbal was released with -Werror enabled and
                    +      the build stops on the first warning.
                    +    * Add support for Freescale m9s12x using binutils 2.18 and gcc 3.3.6 and
                    +      patches available from http://www.msextra.com/tools courtesy of James
                    +      Cortina.  Add configs/m9x12x-defconfig-3.3.6.
                    +
                  + + + + + +
                  + Unreleased Changes +
                  + +
                    +nuttx-5.20 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                    +
                     pascal-2.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                     
                     buildroot-1.10 2011-xx-xx <spudmonkey@racsa.co.cr>
                    
                    From acae4b24e055bae6fcf1f35a6cca0934e64a5918 Mon Sep 17 00:00:00 2001
                    From: patacongo 
                    Date: Sun, 13 Mar 2011 15:12:31 +0000
                    Subject: [PATCH 0742/1518] SLIP corrections
                    
                    git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3376 42af7a65-404d-4744-a932-0658087f49c3
                    ---
                     Documentation/NuttX.html | 10 +++++++++-
                     1 file changed, 9 insertions(+), 1 deletion(-)
                    
                    diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html
                    index d7187464f9..4af5e5c9d5 100644
                    --- a/Documentation/NuttX.html
                    +++ b/Documentation/NuttX.html
                    @@ -8,7 +8,7 @@
                       
                         
                           

                    NuttX RTOS

                    -

                    Last Updated: March 12, 2011

                    +

                    Last Updated: March 13, 2011

                    @@ -2177,6 +2177,14 @@ buildroot-1.9 2011-02-10 <spudmonkey@racsa.co.cr>
                       nuttx-5.20 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                       
                      +    * lib/lib_fopen() -- fopen() was not returning the correct errno value
                      +      when the underlying open() failed.
                      +    * include/net/uip/uip-arch.h -- The uIP interface has been extended
                      +      slightly so that drivers can be concurrenly filling and sending
                      +      packet buffers.  This capability was needed by the SLIP driver.
                      +    * drivers/net/slip.c -- Several corrections and some re-design of
                      +      of the driver.
                      +
                       pascal-2.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                       
                       buildroot-1.10 2011-xx-xx <spudmonkey@racsa.co.cr>
                      
                      From f7870b1fdf0e19b8d8b31f4c484cfd229822b26a Mon Sep 17 00:00:00 2001
                      From: patacongo 
                      Date: Mon, 14 Mar 2011 20:50:46 +0000
                      Subject: [PATCH 0743/1518] Add apps/poweroff lpc17 hardware handshake
                      
                      git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3380 42af7a65-404d-4744-a932-0658087f49c3
                      ---
                       Documentation/NuttX.html | 24 +++++++++++++++++++++++-
                       1 file changed, 23 insertions(+), 1 deletion(-)
                      
                      diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html
                      index 4af5e5c9d5..020cec2cdc 100644
                      --- a/Documentation/NuttX.html
                      +++ b/Documentation/NuttX.html
                      @@ -8,7 +8,7 @@
                         
                           
                             

                      NuttX RTOS

                      -

                      Last Updated: March 13, 2011

                      +

                      Last Updated: March 14, 2011

                      @@ -2146,6 +2146,11 @@ nuttx-5.19 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> * configs/olimex-lpc1766stk/slip-httpd - An example that uses SLIP to provide a serial-port based THTTPD web server. +apps-5.19 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> + + * Initial version of the apps/ directory was released as contributed by + Uros Platise. + pascal-2.0 2009-12-21 Gregory Nutt <spudmonkey@racsa.co.cr> * Updated to use standard C99 types in stdint.h and @@ -2184,6 +2189,23 @@ nuttx-5.20 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> packet buffers. This capability was needed by the SLIP driver. * drivers/net/slip.c -- Several corrections and some re-design of of the driver. + * apps/ChangeLog.txt -- the apps/ directory now has its own ChangeLog. + * configs/vsn: + - IDLE LED blinking fix + - Added board power off function + * arch/arm/src/stm32/stm32_gpio.c and stm32_internal.h -- Fixed + PullUp/Down Input Configuration. + * arch/arm/src/lpc17xx/lpc17_serial.h -- Now supports Auto-RTS and + Auto-CTS modes. This is needed to support SLIP. + +apps-5.20 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> + + * README.txt -- README cosmetics + * hello/ -- hello world minor changes + * Makefile -- Makefile cosmetics (I am slowly adding the Darjeeling JVM) + * Make.defs -- New file adds common make definitions for applications. + * hello/Makefile -- Now uses new Make.defs definitions. Added README.txt. + * apps/poweroff -- New application to turn off board power. pascal-2.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From a5a668c516316d1394585c77b585732146a75dcb Mon Sep 17 00:00:00 2001 From: patacongo Date: Wed, 16 Mar 2011 02:10:51 +0000 Subject: [PATCH 0744/1518] SLIP is now basically functional git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3386 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 020cec2cdc..a7d66da8ce 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                      NuttX RTOS

                      -

                      Last Updated: March 14, 2011

                      +

                      Last Updated: March 15, 2011

                      @@ -2197,6 +2197,9 @@ nuttx-5.20 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> PullUp/Down Input Configuration. * arch/arm/src/lpc17xx/lpc17_serial.h -- Now supports Auto-RTS and Auto-CTS modes. This is needed to support SLIP. + * drivers/net/slip.c -- SLIP is now basically functional on the + LPC17xx with some caveats as described in the TODO list under + LPC17xx. apps-5.20 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From db61db7587ffd47feea6ec6e70fdb2a83d966faf Mon Sep 17 00:00:00 2001 From: patacongo Date: Thu, 17 Mar 2011 13:44:45 +0000 Subject: [PATCH 0745/1518] Documentation updates git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3388 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 +- Documentation/NuttxPortingGuide.html | 60 +++++++++++++++++++++++----- 2 files changed, 52 insertions(+), 12 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index a7d66da8ce..1ac7272631 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                      NuttX RTOS

                      -

                      Last Updated: March 15, 2011

                      +

                      Last Updated: March 16, 2011

                      @@ -2200,6 +2200,8 @@ nuttx-5.20 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> * drivers/net/slip.c -- SLIP is now basically functional on the LPC17xx with some caveats as described in the TODO list under LPC17xx. + * arch/x86/include/i486/irq.h -- Fix irqrestore() macro... it was not + correctly re-enabling interrupts. apps-5.20 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index c9d7f6bd26..d7f65090f2 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

                      NuttX RTOS Porting Guide

                      -

                      Last Updated: March 12, 2011

                      +

                      Last Updated: March 16, 2011

                      @@ -3305,16 +3305,17 @@ build
                    • CONFIG_NET_SLIP: Selects the Serial Line Internet Protocol (SLIP) data link layer. - The default data link layer for uIP is Ethernet. - If CONFIG_NET_SLIP is defined in the NuttX header file, then SLIP will be supported. - The basic differences between the SLIP and Ethernet configurations is that when SLIP is selected: -
                        -
                      • The link level header (that comes before the IP header) is omitted.
                      • -
                      • All MAC address processing is suppressed.
                      • -
                      • ARP is disabled.
                      • -
                      - If CONFIG_NET_SLIP is not supported, then Ethernet will be used - (there is no need to define anything special in the configuration file to use Ethernet -- it is the default). + (This selection is discussed further below). +
                    • +
                    • + CONFIG_NET_NOINTS: CONFIG_NET_NOINT indicates that uIP not called from the interrupt level. + If CONFIG_NET_NOINTS is defined, critical sections will be managed with semaphores; + Otherwise, it assumed that uIP will be called from interrupt level handling and critical sections will be managed by enabling and disabling interrupts. +
                    • +
                    • + CONFIG_NET_MULTIBUFFER: Traditionally, uIP has used a single buffer for all incoming and outgoing traffic. + If this configuration is selected, then the driver can manage multiple I/O buffers and can, for example, be filling one input buffer while sending another output buffer. + Or, as another example, the driver may support queuing of concurrent input/ouput and output transfers for better performance.
                    • CONFIG_NET_IPv6: Build in support for IPv6 @@ -3408,6 +3409,43 @@ build
                    +

                    SLIP

                    +

                    + The NuttX SLIP driver supports point-to-point IP communications over a serial port. + The default data link layer for uIP is Ethernet. + If CONFIG_NET_SLIP is defined in the NuttX configuration file, then SLIP will be supported. + The basic differences between the SLIP and Ethernet configurations is that when SLIP is selected: +

                      +
                    • The link level header (that comes before the IP header) is omitted.
                    • +
                    • All MAC address processing is suppressed.
                    • +
                    • ARP is disabled.
                    • +
                    + If CONFIG_NET_SLIP is not selected, then Ethernet will be used + (there is no need to define anything special in the configuration file to use Ethernet -- it is the default). +

                    +
                      +
                    • + CONFIG_NET_SLIP: Enables building of the SLIP driver. + SLIP requires at least one IP protocols selected and the following additional network settings: CONFIG_NET_NOINTS and CONFIG_NET_MULTIBUFFER. + CONFIG_NET_BUFSIZE must be set to 296. + Other optional configuration settings that affect the SLIP driver: CONFIG_NET_STATISTICS. + Default: Ethernet. +
                    • +

                      + If SLIP is selected, then the following SLIP options are available: +

                      +
                    • + CONFIG_CLIP_NINTERFACES: Selects the number of physical SLIP interfaces to support. Default: 1 +
                    • +
                    • + CONFIG_SLIP_STACKSIZE: Select the stack size of the SLIP RX and TX tasks. Default: 2048 +
                    • +
                    • + CONFIG_SLIP_DEFPRIO: The priority of the SLIP RX and TX tasks. Default: 128 +
                    • + +
                    +

                    UIP Network Utilities

                    • From eb789a2e1cdb5196da137d00e3f24e7a13f14c3d Mon Sep 17 00:00:00 2001 From: patacongo Date: Thu, 17 Mar 2011 22:33:49 +0000 Subject: [PATCH 0746/1518] Fix QEMU timer interrupt handler git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3389 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 1ac7272631..59c8686f51 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                      NuttX RTOS

                      -

                      Last Updated: March 16, 2011

                      +

                      Last Updated: March 17, 2011

                      @@ -2202,6 +2202,10 @@ nuttx-5.20 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> LPC17xx. * arch/x86/include/i486/irq.h -- Fix irqrestore() macro... it was not correctly re-enabling interrupts. + * arch/x86/src - Fix numerous problems with i486/QEMU context + switching. Basically, the logic was missing the cases to handle + the differing stack frames when a priority change occurs and when + no priority change occurs. apps-5.20 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From 4845a989c7daf6d502c9d7a32cf88b7ae1010225 Mon Sep 17 00:00:00 2001 From: patacongo Date: Fri, 18 Mar 2011 14:41:22 +0000 Subject: [PATCH 0747/1518] Make RTL8187 driver an add-on git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3390 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 59c8686f51..ac90b80039 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                      NuttX RTOS

                      -

                      Last Updated: March 17, 2011

                      +

                      Last Updated: March 18, 2011

                      @@ -2206,6 +2206,18 @@ nuttx-5.20 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> switching. Basically, the logic was missing the cases to handle the differing stack frames when a priority change occurs and when no priority change occurs. + * configs/qemu-i486/ostest and nsh -- The QEMU i486 port is complete. + it now passes the OS test and supports the NuttShell (NSH). + * misc/drivers -- Created a new directory to hold non-BSD licensed + drivers that may be added into NuttX via an installation script. + * drivers/usbhost/usbhost_rtl8187.c -- A decision was made to + incorporate code taken from the Linux kernel. That changes the + licensing on this module to GPL. To avoid licensing contamination, + this driver was moved to misc/drivers/rtl8187x *prior* to adding + and of the GPL log. There is an INSTALL.sh script at the location + where the GPL driver(s) can be re-installed into the NuttX source + tree. By re-installing the driver, you agree to the GPL licsensing + and all of its implications. apps-5.20 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From 16a7314cadb62b12577abb5cc564cccd93127df1 Mon Sep 17 00:00:00 2001 From: patacongo Date: Fri, 18 Mar 2011 17:22:50 +0000 Subject: [PATCH 0748/1518] Update to apps/build git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3391 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 62 +++++++++++++++++++++++----- 1 file changed, 51 insertions(+), 11 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index d7f65090f2..6e5c1d5651 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

                      NuttX RTOS Porting Guide

                      -

                      Last Updated: March 16, 2011

                      +

                      Last Updated: March 18, 2011

                      @@ -564,14 +564,20 @@ |-- <config1-dir> | |-- Make.defs | |-- defconfig +| |-- appconfig1 | `-- setenv.sh |-- <config2-dir> | |-- Make.defs | |-- defconfig +| |-- appconfig1 | `-- setenv.sh | ... `-- (other board-specific configuration sub-directories)/ -
                  +
              +

              + 1Optional +

              +

            2.3.2 Summary of Files

            2.3.2.1 Board Specific Logic

            @@ -628,24 +634,35 @@

          • - defconfig: This is a configuration file similar to the Linux - configuration file. In contains variable/value pairs like: +

            + defconfig: This is a configuration file similar to the Linux + configuration file. In contains variable/value pairs like: +

            • CONFIG_VARIABLE=value

            This configuration file will be used at build time:

            -
              +

              1. As a makefile fragment included in other makefiles, and
              2. to generate include/nuttx/config.h which is included by most C files in the system.
              3. -
              +

          • - setenv.sh: This is a script that you can include that will be installed at - the top level of the directory structure and can be sourced to set any - necessary environment variables. +

            + appconfig: This is another configuration file that is specific to the + application. This file is copied into the application build directory + when NuttX is configured. See ../apps/README.txt for further details. +

            +
          • +
          • +

            + setenv.sh: This is a script that you can include that will be installed at + the top level of the directory structure and can be sourced to set any + necessary environment variables. +

          @@ -942,6 +959,7 @@ tools/ |-- mkdeps.sh |-- mkimage.sh |-- mknulldeps.sh +|-- mkromfsimg.sh |-- unlink.sh |-- winlink.sh `-- zipme @@ -974,12 +992,24 @@ tools/
        • Copy configs/<board-name>/[<config-dir>/]setenv.sh to ${TOPDIR}/setenv.sh, and
        • Copy configs/<board-name>/[<config-dir>/]defconfig to ${TOPDIR}/.config
        + +

        + And if configs/<board-name>/[<config-dir>/appconfig exists in the board configuration directory: +

        +
          +
        • Copy configs/<board-name>/[<config-dir>/appconfig to <app-dir>/.config
        • +
        • echo "CONFIG_BUILTIN_APPS=y" >> "${TOPDIR}/.config"
        • +
        • echo "APPS_LOC=\"<app-dir>\"" >> "${TOPDIR}/.config"
        • +
        + +

        Where <board-name> is the name of one of the sub-directories of the NuttX configs/ directory. This sub-directory name corresponds to one of the supported boards identified above. - And <config-dir> is the optional, specific configuration directory for the board. + <config-dir> is the optional, specific configuration directory for the board. + And <app-dir> is the location of the optonal application directory.

        Automated Configuration. @@ -988,7 +1018,17 @@ tools/

             cd tools
          -  ./configure.sh <board-name>[/<config-dir>]
          +  ./configure.sh <board-name>[/<config-dir>]
          +
        + +

        + And if configs/<board-name>/[<config-dir>/appconfig + exists and your application directory is not in the standard loction (../apps), + then you should also specify the location of the application directory on the +command line like: +

        +
          +  cd tools
          +  ./configure.sh -a <app-dir> <board-name>[/<config-dir>]
           

        From 2e9977373c5d6cc83998dd28f13d15edfee28ba3 Mon Sep 17 00:00:00 2001 From: patacongo Date: Fri, 18 Mar 2011 18:31:26 +0000 Subject: [PATCH 0749/1518] apps/ update from Uros git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3392 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index ac90b80039..61b6e1d3ef 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -2218,6 +2218,12 @@ nuttx-5.20 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> where the GPL driver(s) can be re-installed into the NuttX source tree. By re-installing the driver, you agree to the GPL licsensing and all of its implications. + * Makefile, apps/Makefile, tools/configure.sh -- add logic to copy + configs/<board>/<config>/appdir to apps/.config and to simply the + application configuration logic. + * examples/nsh and apps/nshlib - Move the core NuttShell (NSH) logic + out of the exemples directory and into the apps/directory where + it belongs. apps-5.20 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From 580ff5b1592d7f9c8a5be73784770d691896aaff Mon Sep 17 00:00:00 2001 From: patacongo Date: Fri, 18 Mar 2011 20:35:31 +0000 Subject: [PATCH 0750/1518] Update documentation, change CONFIG_EXAMPLES_NSH to CONFIG_NSH git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3394 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttShell.html | 222 ++++++++++++++------------- Documentation/NuttxPortingGuide.html | 6 +- 2 files changed, 115 insertions(+), 113 deletions(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index e03aadc7fd..d1dd3d922b 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -8,7 +8,7 @@

        NuttShell (NSH)

        -

        Last Updated: March 7, 2011

        +

        Last Updated: March 18, 2011

        @@ -327,7 +327,9 @@

        - The examples/nsh sub-directory contains the NuttShell (NSH). + The apps/nshlib sub-directory contains the NuttShell (NSH) + library. + This library can easily to linked to produce a NSH application (See as an example apps/nshlib). NSH is a simple shell application for NuttX.

        @@ -511,7 +513,7 @@ fi

        NSH Start-Up Script. NSH supports options to provide a start up script for NSH. In general - this capability is enabled with CONFIG_EXAMPLES_NSH_ROMFSETC, but has + this capability is enabled with CONFIG_NSH_ROMFSETC, but has several other related configuration options as described with the NSH-specific configuration settings. This capability also depends on: @@ -530,7 +532,7 @@ fi values.

        - In this default case, enabling CONFIG_EXAMPLES_NSH_ROMFSETC will cause + In this default case, enabling CONFIG_NSH_ROMFSETC will cause NSH to behave as follows at NSH startup time:

        • @@ -580,12 +582,12 @@ mount -t vfat /dev/ram1 /tmp

          Modifying the ROMFS Image. - The contents of the /etc directory are retained in the file examples/nsh/nsh_romfsimg.h OR, if CONFIG_EXAMPLES_NSH_ARCHROMFS is defined, include/arch/board/rcs.template). + The contents of the /etc directory are retained in the file apps/nshlib/nsh_romfsimg.h OR, if CONFIG_NSH_ARCHROMFS is defined, include/arch/board/rcs.template). In order to modify the start-up behavior, there are three things to study:

          1. Configuration Options. - The additional CONFIG_EXAMPLES_NSH_ROMFSETC configuration options + The additional CONFIG_NSH_ROMFSETC configuration options discussed with the other NSH-specific configuration settings.
          2. @@ -602,14 +604,14 @@ mount -t vfat /dev/ram1 /tmp
            • The configuration settings then installed configuration.
            • The genromfs tool (available from http://romfs.sourceforge.net). -
            • The file examples/nsh/rcS.template - (OR, if CONFIG_EXAMPLES_NSH_ARCHROMFS is defined include/arch/board/rcs.template. +
            • The file apps/nshlib/rcS.template + (OR, if CONFIG_NSH_ARCHROMFS is defined include/arch/board/rcs.template.

          3. rcS.template. - The file examples/nsh/rcS.template contains the general form + The file apps/nshlib/rcS.template contains the general form of the rcS file; configured values are plugged into this template file to produce the final rcS file.
          4. @@ -617,8 +619,8 @@ mount -t vfat /dev/ram1 /tmp

            NOTE: - examples/nsh/rcS.template generates the standard, default nsh_romfsimg.h file. - If CONFIG_EXAMPLES_NSH_ARCHROMFS is defined in the NuttX configuration file, then a custom, board-specific nsh_romfsimg.h file residing in configs/<board>/include will be used. + apps/nshlib/rcS.template generates the standard, default nsh_romfsimg.h file. + If CONFIG_NSH_ARCHROMFS is defined in the NuttX configuration file, then a custom, board-specific nsh_romfsimg.h file residing in configs/<board>/include will be used. NOTE when the OS is configured, include/arch/board will be linked to configs/<board>/include.

            @@ -1817,192 +1819,192 @@ nsh> [ - !CONFIG_EXAMPLES_NSH_DISABLESCRIPT - CONFIG_EXAMPLES_NSH_DISABLE_TEST + !CONFIG_NSH_DISABLESCRIPT + CONFIG_NSH_DISABLE_TEST cat CONFIG_NFILE_DESCRIPTORS > 0 - CONFIG_EXAMPLES_NSH_DISABLE_CAT + CONFIG_NSH_DISABLE_CAT cd !CONFIG_DISABLE_ENVIRON && CONFIG_NFILE_DESCRIPTORS > 0 - CONFIG_EXAMPLES_NSH_DISABLE_CD + CONFIG_NSH_DISABLE_CD cp CONFIG_NFILE_DESCRIPTORS > 0 - CONFIG_EXAMPLES_NSH_DISABLE_CP + CONFIG_NSH_DISABLE_CP dd CONFIG_NFILE_DESCRIPTORS > 0 - CONFIG_EXAMPLES_NSH_DISABLE_DD + CONFIG_NSH_DISABLE_DD echo
            - CONFIG_EXAMPLES_NSH_DISABLE_ECHO + CONFIG_NSH_DISABLE_ECHO exec
            - CONFIG_EXAMPLES_NSH_DISABLE_EXEC + CONFIG_NSH_DISABLE_EXEC exit
            - CONFIG_EXAMPLES_NSH_DISABLE_EXIT + CONFIG_NSH_DISABLE_EXIT free
            - CONFIG_EXAMPLES_NSH_DISABLE_FREE + CONFIG_NSH_DISABLE_FREE get CONFIG_NET && CONFIG_NET_UDP && CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_NET_BUFSIZE >= 5581 - CONFIG_EXAMPLES_NSH_DISABLE_GET + CONFIG_NSH_DISABLE_GET help
            - CONFIG_EXAMPLES_NSH_DISABLE_HELP + CONFIG_NSH_DISABLE_HELP ifconfig CONFIG_NET - CONFIG_EXAMPLES_NSH_DISABLE_IFCONFIG + CONFIG_NSH_DISABLE_IFCONFIG kill !CONFIG_DISABLE_SIGNALS - CONFIG_EXAMPLES_NSH_DISABLE_KILL + CONFIG_NSH_DISABLE_KILL losetup !CONFIG_DISABLE_MOUNTPOINT && CONFIG_NFILE_DESCRIPTORS > 0 - CONFIG_EXAMPLES_NSH_DISABLE_LOSETUP + CONFIG_NSH_DISABLE_LOSETUP ls CONFIG_NFILE_DESCRIPTORS > 0 - CONFIG_EXAMPLES_NSH_DISABLE_LS + CONFIG_NSH_DISABLE_LS mb,mh,mw
            - CONFIG_EXAMPLES_NSH_DISABLE_MB,
            - CONFIG_EXAMPLES_NSH_DISABLE_MH,
            - CONFIG_EXAMPLES_NSH_DISABLE_MW + CONFIG_NSH_DISABLE_MB,
            + CONFIG_NSH_DISABLE_MH,
            + CONFIG_NSH_DISABLE_MW mkdir !CONFIG_DISABLE_MOUNTPOINT && CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_FS_WRITABLE4 - CONFIG_EXAMPLES_NSH_DISABLE_MKDIR + CONFIG_NSH_DISABLE_MKDIR mkfatfs !CONFIG_DISABLE_MOUNTPOINT && CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_FS_FAT - CONFIG_EXAMPLES_NSH_DISABLE_MKFATFS + CONFIG_NSH_DISABLE_MKFATFS mkfifo CONFIG_NFILE_DESCRIPTORS > 0 - CONFIG_EXAMPLES_NSH_DISABLE_MKFIFO + CONFIG_NSH_DISABLE_MKFIFO mkrd !CONFIG_DISABLE_MOUNTPOINT && CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_FS_WRITABLE4 - CONFIG_EXAMPLES_NSH_DISABLE_MKRD + CONFIG_NSH_DISABLE_MKRD mount !CONFIG_DISABLE_MOUNTPOINT && CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_FS_READABLE3 - CONFIG_EXAMPLES_NSH_DISABLE_MOUNT + CONFIG_NSH_DISABLE_MOUNT ping CONFIG_NET && CONFIG_NET_ICMP && CONFIG_NET_ICMP_PING && !CONFIG_DISABLE_CLOCK && !CONFIG_DISABLE_SIGNALS - CONFIG_EXAMPLES_NSH_DISABLE_PING + CONFIG_NSH_DISABLE_PING ps
            - CONFIG_EXAMPLES_NSH_DISABLE_PS + CONFIG_NSH_DISABLE_PS put CONFIG_NET && CONFIG_NET_UDP && CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_NET_BUFSIZE >= 5581,2 - CONFIG_EXAMPLES_NSH_DISABLE_PUT + CONFIG_NSH_DISABLE_PUT pwd !CONFIG_DISABLE_ENVIRON && CONFIG_NFILE_DESCRIPTORS > 0 - CONFIG_EXAMPLES_NSH_DISABLE_PWD + CONFIG_NSH_DISABLE_PWD rm !CONFIG_DISABLE_MOUNTPOINT && CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_FS_WRITABLE4 - CONFIG_EXAMPLES_NSH_DISABLE_RM + CONFIG_NSH_DISABLE_RM rmdir !CONFIG_DISABLE_MOUNTPOINT && CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_FS_WRITABLE4 - CONFIG_EXAMPLES_NSH_DISABLE_RMDIR + CONFIG_NSH_DISABLE_RMDIR set !CONFIG_DISABLE_ENVIRON - CONFIG_EXAMPLES_NSH_DISABLE_SET + CONFIG_NSH_DISABLE_SET sh - CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_NFILE_STREAMS > 0 && !CONFIG_EXAMPLES_NSH_DISABLESCRIPT - CONFIG_EXAMPLES_NSH_DISABLE_SH + CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_NFILE_STREAMS > 0 && !CONFIG_NSH_DISABLESCRIPT + CONFIG_NSH_DISABLE_SH sleep !CONFIG_DISABLE_SIGNALS - CONFIG_EXAMPLES_NSH_DISABLE_SLEEP + CONFIG_NSH_DISABLE_SLEEP test - !CONFIG_EXAMPLES_NSH_DISABLESCRIPT - CONFIG_EXAMPLES_NSH_DISABLE_TEST + !CONFIG_NSH_DISABLESCRIPT + CONFIG_NSH_DISABLE_TEST umount !CONFIG_DISABLE_MOUNTPOINT && CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_FS_READABLE3 - CONFIG_EXAMPLES_NSH_DISABLE_UMOUNT + CONFIG_NSH_DISABLE_UMOUNT unset !CONFIG_DISABLE_ENVIRON - CONFIG_EXAMPLES_NSH_DISABLE_UNSET + CONFIG_NSH_DISABLE_UNSET usleep !CONFIG_DISABLE_SIGNALS - CONFIG_EXAMPLES_NSH_DISABLE_USLEEP + CONFIG_NSH_DISABLE_USLEEP wget CONFIG_NET && CONFIG_NET_TCP && CONFIG_NFILE_DESCRIPTORS > 0 - CONFIG_EXAMPLES_NSH_DISABLE_WGET + CONFIG_NSH_DISABLE_WGET xd
            - CONFIG_EXAMPLES_NSH_DISABLE_XD + CONFIG_NSH_DISABLE_XD @@ -2039,28 +2041,28 @@ nsh> Description - CONFIG_EXAMPLES_NSH_FILEIOSIZE + CONFIG_NSH_FILEIOSIZE Size of a static I/O buffer used for file access (ignored if there is no filesystem). Default is 1024. - CONFIG_EXAMPLES_NSH_STRERROR + CONFIG_NSH_STRERROR strerror(errno) makes more readable output but strerror() is very large and will not be used unless this setting is y - CONFIG_EXAMPLES_NSH_LINELEN + CONFIG_NSH_LINELEN The maximum length of one command line and of one output line. Default: 80 - CONFIG_EXAMPLES_NSH_STACKSIZE + CONFIG_NSH_STACKSIZE The stack size to use when spawning new threads or tasks. Such new threads are generated when a command is executed in background @@ -2068,14 +2070,14 @@ nsh> - CONFIG_EXAMPLES_NSH_NESTDEPTH + CONFIG_NSH_NESTDEPTH The maximum number of nested if-then[-else]-fi sequences that are permissable. Default: 3 - CONFIG_EXAMPLES_NSH_DISABLESCRIPT + CONFIG_NSH_DISABLESCRIPT This can be set to y to suppress support for scripting. This setting disables the sh, test, and [ commands and the @@ -2084,7 +2086,7 @@ nsh> - CONFIG_EXAMPLES_NSH_DISABLEBG + CONFIG_NSH_DISABLEBG This can be set to y to suppress support for background commands. This setting disables the nice command prefix and @@ -2093,7 +2095,7 @@ nsh> - CONFIG_EXAMPLES_NSH_MMCSDMINOR + CONFIG_NSH_MMCSDMINOR If the architecture supports an MMC/SD slot and if the NSH architecture specific logic is present, this option will provide @@ -2103,7 +2105,7 @@ nsh> - CONFIG_EXAMPLES_NSH_ROMFSETC + CONFIG_NSH_ROMFSETC Mount a ROMFS filesystem at /etc and provide a startup script at /etc/init.d/rcS. The default startup script will mount @@ -2112,25 +2114,25 @@ nsh> - CONFIG_EXAMPLES_NSH_CONSOLE + CONFIG_NSH_CONSOLE - If CONFIG_EXAMPLES_NSH_CONSOLEis set to y, then a serial + If CONFIG_NSH_CONSOLEis set to y, then a serial console front-end is selected. - CONFIG_EXAMPLES_NSH_TELNET + CONFIG_NSH_TELNET - If CONFIG_EXAMPLES_NSH_TELNET is set to y, then a TELENET + If CONFIG_NSH_TELNET is set to y, then a TELENET server front-end is selected. When this option is provided, you may log into NuttX remotely using telnet in order to access NSH. - CONFIG_EXAMPLES_NSH_ARCHINIT + CONFIG_NSH_ARCHINIT - Set CONFIG_EXAMPLES_NSH_ARCHINIT if your board provides architecture + Set CONFIG_NSH_ARCHINIT if your board provides architecture specific initialization via the board-specific function nsh_archinitialize(). This function will be called early in NSH initialization to allow board logic to do such things as configure MMC/SD slots. @@ -2139,8 +2141,8 @@ nsh>

            - One or both of CONFIG_EXAMPLES_NSH_CONSOLE and CONFIG_EXAMPLES_NSH_TELNET - must be defined. If CONFIG_EXAMPLES_NSH_TELNET is selected, then there some + One or both of CONFIG_NSH_CONSOLE and CONFIG_NSH_TELNET + must be defined. If CONFIG_NSH_TELNET is selected, then there some other configuration settings that apply:

            @@ -2167,39 +2169,39 @@ nsh> TCP/IP support is required for telnet (as well as various other TCP-related configuration settings). - CONFIG_EXAMPLES_NSH_IOBUFFER_SIZE + CONFIG_NSH_IOBUFFER_SIZE Determines the size of the I/O buffer to use for sending/ receiving TELNET commands/reponses - CONFIG_EXAMPLES_NSH_DHCPC + CONFIG_NSH_DHCPC Obtain the IP address via DHCP. - CONFIG_EXAMPLES_NSH_IPADDR + CONFIG_NSH_IPADDR - If CONFIG_EXAMPLES_NSH_DHCPC is NOT set, then the static IP + If CONFIG_NSH_DHCPC is NOT set, then the static IP address must be provided. - CONFIG_EXAMPLES_NSH_DRIPADDR + CONFIG_NSH_DRIPADDR Default router IP address - CONFIG_EXAMPLES_NSH_NETMASK + CONFIG_NSH_NETMASK Network mask - CONFIG_EXAMPLES_NSH_NOMAC + CONFIG_NSH_NOMAC Set if your ethernet hardware has no built-in MAC address. If set, a bogus MAC will be assigned. @@ -2251,7 +2253,7 @@ nsh>

            - If CONFIG_EXAMPLES_NSH_ROMFSETC is selected, then the following additional + If CONFIG_NSH_ROMFSETC is selected, then the following additional configuration setting apply:

            @@ -2261,13 +2263,13 @@ nsh> Description - CONFIG_EXAMPLES_NSH_ARCHROMFS + CONFIG_NSH_ARCHROMFS May be defined to specify an alternative ROMFS image that can be found at configs/<board>/include/nsh_romfsimg.h. - CONFIG_EXAMPLES_NSH_ROMFSMOUNTPT + CONFIG_NSH_ROMFSMOUNTPT The default mountpoint for the ROMFS volume is "/etc", but that can be changed with this setting. This must be a absolute path @@ -2275,7 +2277,7 @@ nsh> - CONFIG_EXAMPLES_NSH_INITSCRIPT + CONFIG_NSH_INITSCRIPT This is the relative path to the startup script within the mountpoint. The default is "init.d/rcS". This is a relative path and must not @@ -2283,14 +2285,14 @@ nsh> - CONFIG_EXAMPLES_NSH_ROMFSDEVNO + CONFIG_NSH_ROMFSDEVNO This is the minor number of the ROMFS block device. The default is '0' corresponding to /dev/ram0. - CONFIG_EXAMPLES_NSH_ROMFSSECTSIZE + CONFIG_NSH_ROMFSSECTSIZE This is the sector size to use with the ROMFS volume. Since the default volume is very small, this defaults to 64 but should be @@ -2301,7 +2303,7 @@ nsh>

            - When the default rcS file used when CONFIG_EXAMPLES_NSH_ROMFSETC is + When the default rcS file used when CONFIG_NSH_ROMFSETC is selected, it will mount a FAT FS under /tmp. The following selections describe that FAT FS.

            @@ -2312,14 +2314,14 @@ nsh> Description - CONFIG_EXAMPLES_NSH_FATDEVNO + CONFIG_NSH_FATDEVNO This is the minor number of the FAT FS block device. The default is '1' corresponding to /dev/ram1. - CONFIG_EXAMPLES_NSH_FATSECTSIZE + CONFIG_NSH_FATSECTSIZE This is the sector size use with the FAT FS. Default is 512. @@ -2346,31 +2348,31 @@ nsh>
          5. cd
          6. Command summaries
          7. Conditional command execution
          8. -
          9. CONFIG_EXAMPLES_NSH_CONSOLE
          10. -
          11. CONFIG_EXAMPLES_NSH_DHCPC
          12. -
          13. CONFIG_EXAMPLES_NSH_DISABLEBG
          14. -
          15. CONFIG_EXAMPLES_NSH_DISABLESCRIPT
          16. -
          17. CONFIG_EXAMPLES_NSH_DRIPADDR
          18. -
          19. CONFIG_EXAMPLES_NSH_FATDEVNO
          20. -
          21. CONFIG_EXAMPLES_NSH_FATMOUNTPT
          22. -
          23. CONFIG_EXAMPLES_NSH_FATNSECTORS
          24. -
          25. CONFIG_EXAMPLES_NSH_FATSECTSIZE
          26. -
          27. CONFIG_EXAMPLES_NSH_FILEIOSIZE
          28. -
          29. CONFIG_EXAMPLES_NSH_INITSCRIPT
          30. -
          31. CONFIG_EXAMPLES_NSH_IOBUFFER_SIZE
          32. -
          33. CONFIG_EXAMPLES_NSH_IPADDR
          34. -
          35. CONFIG_EXAMPLES_NSH_LINELEN
          36. -
          37. CONFIG_EXAMPLES_NSH_NESTDEPTH
          38. -
          39. CONFIG_EXAMPLES_NSH_NETMASK
          40. -
          41. CONFIG_EXAMPLES_NSH_NOMAC
          42. -
          43. CONFIG_EXAMPLES_NSH_ROMFSDEVNO
          44. -
          45. CONFIG_EXAMPLES_NSH_ROMFSETC
          46. -
          47. CONFIG_EXAMPLES_NSH_ARCHROMFS
          48. -
          49. CONFIG_EXAMPLES_NSH_ROMFSMOUNTPT
          50. -
          51. CONFIG_EXAMPLES_NSH_ROMFSSECTSIZE
          52. -
          53. CONFIG_EXAMPLES_NSH_STACKSIZE
          54. -
          55. CONFIG_EXAMPLES_NSH_STRERROR
          56. -
          57. CONFIG_EXAMPLES_NSH_TELNET
          58. +
          59. CONFIG_NSH_CONSOLE
          60. +
          61. CONFIG_NSH_DHCPC
          62. +
          63. CONFIG_NSH_DISABLEBG
          64. +
          65. CONFIG_NSH_DISABLESCRIPT
          66. +
          67. CONFIG_NSH_DRIPADDR
          68. +
          69. CONFIG_NSH_FATDEVNO
          70. +
          71. CONFIG_NSH_FATMOUNTPT
          72. +
          73. CONFIG_NSH_FATNSECTORS
          74. +
          75. CONFIG_NSH_FATSECTSIZE
          76. +
          77. CONFIG_NSH_FILEIOSIZE
          78. +
          79. CONFIG_NSH_INITSCRIPT
          80. +
          81. CONFIG_NSH_IOBUFFER_SIZE
          82. +
          83. CONFIG_NSH_IPADDR
          84. +
          85. CONFIG_NSH_LINELEN
          86. +
          87. CONFIG_NSH_NESTDEPTH
          88. +
          89. CONFIG_NSH_NETMASK
          90. +
          91. CONFIG_NSH_NOMAC
          92. +
          93. CONFIG_NSH_ROMFSDEVNO
          94. +
          95. CONFIG_NSH_ROMFSETC
          96. +
          97. CONFIG_NSH_ARCHROMFS
          98. +
          99. CONFIG_NSH_ROMFSMOUNTPT
          100. +
          101. CONFIG_NSH_ROMFSSECTSIZE
          102. +
          103. CONFIG_NSH_STACKSIZE
          104. +
          105. CONFIG_NSH_STRERROR
          106. +
          107. CONFIG_NSH_TELNET
          108. Configuration settings
          109. Configuration settings, command dependencies
          110. Configuration settings, NSH-specific
          111. diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 6e5c1d5651..ae26bf3a22 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -1847,21 +1847,21 @@ extern void up_ledoff(int led); indirectly through the mount() API. The mount() API binds a block driver instance with a file system and with a mountpoint. Then the user may use the block driver to access the file system on the underlying media. - Example: See the cmd_mount() implementation in examples/nsh/nsh_fscmds.c. + Example: See the cmd_mount() implementation in apps/nshlib/nsh_fscmds.c.

          112. Accessing a Character Driver as a Block Device. See the loop device at drivers/loop.c. - Example: See the cmd_losetup() implementation in examples/nsh/nsh_fscmds.c. + Example: See the cmd_losetup() implementation in apps/nshlib/nsh_fscmds.c.

          113. Accessing a Block Driver as Character Device. See the Block-to-Character (BCH) conversion logic in drivers/bch/. - Example: See the cmd_dd() implementation in examples/nsh/nsh_ddcmd.c. + Example: See the cmd_dd() implementation in apps/nshlib/nsh_ddcmd.c.

          114. From c374539593d756becc4741025b98cf338764b09f Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 19 Mar 2011 15:02:01 +0000 Subject: [PATCH 0751/1518] Move VSN apps to apps/vsn git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3397 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 61b6e1d3ef..6d7414d3a0 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

            NuttX RTOS

            -

            Last Updated: March 18, 2011

            +

            Last Updated: March 19, 2011

            @@ -2248,6 +2248,8 @@ buildroot-1.10 2011-xx-xx <spudmonkey@racsa.co.cr> .exe files). That is probably not usable for most NuttX targets. Instead, you should use this i486-elf-gcc to generate true ELF binaries under Cygwin. + * Makefile - Alter copy arguements to avoid permissions problems when + copying NuttX header files.
        From 1eade7e76b4ad8293cd1f0f1ec4fa9dfd6299fb8 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 19 Mar 2011 21:04:13 +0000 Subject: [PATCH 0752/1518] Move nuttx/netutils to apps/netutils git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3401 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 175 ++++++++------- Documentation/README.html | 322 ++++++++++++++------------- 2 files changed, 260 insertions(+), 237 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index ae26bf3a22..2d77d4ab9d 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

        NuttX RTOS Porting Guide

        -

        Last Updated: March 18, 2011

        +

        Last Updated: March 19, 2011

        @@ -163,86 +163,96 @@

           .
          -|-- Makefile
          -|-- Documentation
          -|   `-- (documentation files)/
          -|-- arch/
          -|   |-- <arch-name>/
          -|   |   |-- include/
          -|   |   |   |--<chip-name>/
          -|   |   |   |  `-- (chip-specific header files)
          -|   |   |   |--<other-chips>/
          -|   |   |   `-- (architecture-specific header files)
          -|   |   `-- src/
          -|   |       |--<chip-name>/
          -|   |       |  `-- (chip-specific source files)
          -|   |       |--<other-chips>/
          -|   |       `-- (architecture-specific source files)
          -|   `-- <other-architecture directories>/
          -|-- binfmt/
          -|   |-- Makefile
          -|   |-- (binfmt-specific sub-directories)/
          -|   |   `-- (binfmt-specific source files)
          -|   `-- (common binfmt source files)
          -|-- configs/
          -|   |-- <board-name>/
          -|   |   |-- include/
          -|   |   |   `-- (other board-specific header files)
          -|   |   |-- src/
          -|   |   |   `-- (board-specific source files)
          -|   |   |---<config-name>/
          -|   |   |   `-- (board configuration-specific source files)
          -|   |   `---(other configuration sub-directories for this board)/
          -|   `-- <(other board directories)>/
          -|-- drivers/
          -|   |-- Makefile
          -|   |-- (driver-specific sub-directories)/
          -|   |   `-- (driver-specific source files)
          -|   `-- (common driver source files)
          -|-- examples/
          -|   `-- (example)/
          -|       |-- Makefile
          -|       `-- (example source files)
          -|-- fs/
          -|   |-- Makefile
          -|   |-- (file system-specific sub-directories)/
          -|   |   `-- (file system-specific source files)
          -|   `-- (common file system source files)
          -|-- graphics/
          -|   |-- Makefile
          -|   |-- (feature-specific sub-directories)/
          -|   |   `-- (feature-specific source files library source files)
          -|   `-- (common graphics-related source files)
          -|-- include/
          -|   |-- (standard header files)
          -|   |-- (standard include sub-directories)
          -|   |   `-- (more standard header files)
          -|   |-- (non-standard include sub-directories)
          -|       `-- (non-standard header files)
          -|-- lib/
          -|   |-- Makefile
          -|   `-- (lib source files)
          -|-- libxx/
          -|   |-- Makefile
          -|   `-- (libxx management source files)
          -|-- mm/
          -|   |-- Makefile
          -|   `-- (memory management source files)
          -|-- net/
          -|   |-- Makefile
          -|   |-- uip/
          -|   |   `-- (uip source files)
          -|   `-- (BSD socket source files)
          -|-- netutils/
          -|   |-- Makefile
          -|   |-- (network feature sub-directories)/
          -|   |   `-- (network feature source files)
          -|   `-- (netutils common files)
          -|-- sched/
          -|   |-- Makefile
          -|   `-- (sched source files)
          -`-- tools/
          -    `-- (miscellaneous scripts and programs)
          +|- nuttx
          +|   |-- Makefile
          +|   |-- Documentation
          +|   |   `-- (documentation files)/
          +|   |-- arch/
          +|   |   |-- <arch-name>/
          +|   |   |   |-- include/
          +|   |   |   |   |--<chip-name>/
          +|   |   |   |   |  `-- (chip-specific header files)
          +|   |   |   |   |--<other-chips>/
          +|   |   |   |   `-- (architecture-specific header files)
          +|   |   |   `-- src/
          +|   |   |       |--<chip-name>/
          +|   |   |       |  `-- (chip-specific source files)
          +|   |   |       |--<other-chips>/
          +|   |   |       `-- (architecture-specific source files)
          +|   |   `-- <other-architecture directories>/
          +|   |-- binfmt/
          +|   |   |-- Makefile
          +|   |   |-- (binfmt-specific sub-directories)/
          +|   |   |   `-- (binfmt-specific source files)
          +|   |   `-- (common binfmt source files)
          +|   |-- configs/
          +|   |   |-- <board-name>/
          +|   |   |   |-- include/
          +|   |   |   |   `-- (other board-specific header files)
          +|   |   |   |-- src/
          +|   |   |   |   `-- (board-specific source files)
          +|   |   |   |---<config-name>/
          +|   |   |   |   `-- (board configuration-specific source files)
          +|   |   |   `---(other configuration sub-directories for this board)/
          +|   |   `-- <(other board directories)>/
          +|   |-- drivers/
          +|   |   |-- Makefile
          +|   |   |-- (driver-specific sub-directories)/
          +|   |   |   `-- (driver-specific source files)
          +|   |   `-- (common driver source files)
          +|   |-- examples/
          +|   |   `-- (example)/
          +|   |       |-- Makefile
          +|   |       `-- (example source files)
          +|   |-- fs/
          +|   |   |-- Makefile
          +|   |   |-- (file system-specific sub-directories)/
          +|   |   |   `-- (file system-specific source files)
          +|   |   `-- (common file system source files)
          +|   |-- graphics/
          +|   |   |-- Makefile
          +|   |   |-- (feature-specific sub-directories)/
          +|   |   |   `-- (feature-specific source files library source files)
          +|   |   `-- (common graphics-related source files)
          +|   |-- include/
          +|   |   |-- (standard header files)
          +|   |   |-- (standard include sub-directories)
          +|   |   |   `-- (more standard header files)
          +|   |   |-- (non-standard include sub-directories)
          +|   |       `-- (non-standard header files)
          +|   |-- lib/
          +|   |   |-- Makefile
          +|   |   `-- (lib source files)
          +|   |-- libxx/
          +|   |   |-- Makefile
          +|   |   `-- (libxx management source files)
          +|   |-- mm/
          +|   |   |-- Makefile
          +|   |   `-- (memory management source files)
          +|   |-- net/
          +|   |   |-- Makefile
          +|   |   |-- uip/
          +|   |   |   `-- (uip source files)
          +|   |   `-- (BSD socket source files)
          +|   |-- sched/
          +|   |   |-- Makefile
          +|   |   `-- (sched source files)
          +|   `-- tools/
          +|       `-- (miscellaneous scripts and programs)
          +`- apps
          +    |-- netutils/
          +    |   |-- Makefile
          +    |   |-- (network feature sub-directories)/
          +    |   |   `-- (network feature source files)
          +    |   `-- (netutils common files)
          +    |-- nshlib/
          +    |   |-- Makefile
          +    |   `-- NuttShell (NSH) files
          +    `-- (Board-specific applications)/
          +        |-- Makefile
          +        |-- (Board-specific application sub-directories)/
          +        |   `-- (Board-specific application source files)
          +        `-- (Board-specific common files)
           

        @@ -926,6 +936,9 @@ netutils/ |-- tftpc/ | |-- Make.defs | `-- (tftpc source files) +|-- thttpd/ +| |-- Make.defs +| `-- (thttpd source files) |-- uiplib/ | |-- Make.defs | `-- (uiplib source files) diff --git a/Documentation/README.html b/Documentation/README.html index 034f84269f..63f83166b9 100755 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -3,13 +3,13 @@ README Files - +



        NuttX README Files

        -

        Last Updated: March 6, 2010

        +

        Last Updated: March 19, 2010

        @@ -22,158 +22,168 @@

        From d4d0dd8faf5254aae536ea2cff319e4ca0ebba85 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 20 Mar 2011 18:18:19 +0000 Subject: [PATCH 0754/1518] Move nuttx/examples to apps/examples git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3405 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NXGraphicsSubsystem.html | 22 ++-- Documentation/NuttX.html | 24 ++-- Documentation/NuttXNxFlat.html | 6 +- Documentation/NuttxPortingGuide.html | 174 +++++++++++++------------ Documentation/README.html | 6 +- Documentation/UsbTrace.html | 4 +- 6 files changed, 122 insertions(+), 114 deletions(-) diff --git a/Documentation/NXGraphicsSubsystem.html b/Documentation/NXGraphicsSubsystem.html index ac67c9614a..4e6e780547 100644 --- a/Documentation/NXGraphicsSubsystem.html +++ b/Documentation/NXGraphicsSubsystem.html @@ -12,7 +12,7 @@

        NX Graphics Subsystem

        -

        Last Updated: July 27, 2010

        +

        Last Updated: March 20, 2010

        @@ -212,7 +212,7 @@ Figure 1. - This scren shot shows the final frame for the NuttX example at examples/nx + This scren shot shows the final frame for the NuttX example at apps/examples/nx running on the simulated, Linux x86 platform with simulated framebuffer output to an X window. This picture shows to framed windows with (blank) toolbars. @@ -2499,9 +2499,9 @@ int nxf_convert_32bpp(FAR uint32_t *dest, uint16_t height,

        2.6 Sample Code

        -

        examples/nx. +

        apps/examples/nx. No sample code is provided in this document. - However, an example can be found in the NuttX source tree at examples/nx. + However, an example can be found in the NuttX source tree at apps/examples/nx. That code is intended to test NX. Since it is test code, it is designed to exercise functionality and does not necessarily represent best NX coding practices. @@ -2514,7 +2514,7 @@ int nxf_convert_32bpp(FAR uint32_t *dest, uint16_t height, be implemented by the NX client code.

        -

        Building examples/nx. +

        Building apps/examples/nx. Testing was performed using the Linux/Cygwin-based NuttX simulator. Instructions are provided for building that simulation are provided in Appendix C of this document. @@ -2690,11 +2690,11 @@ int nxf_convert_32bpp(FAR uint32_t *dest, uint16_t height, -

        examples/nx. - The primary test tool for debugging NX resides at examples/nx. +

        apps/examples/nx. + The primary test tool for debugging NX resides at apps/examples/nx.

        -

        Building examples/nx. - NX testing was performed using examples/nx with the +

        Building apps/examples/nx. + NX testing was performed using apps/examples/nx with the Linux/Cygwin-based NuttX simulator. Configuration files for building this test can be found in configs/sim/nx. There are two alternative configurations for building the simulation: @@ -2761,7 +2761,7 @@ make

        Test Coverage. - At present, examples/nxt only exercises a subset of NX; + At present, apps/examples/nxt only exercises a subset of NX; the remainder is essentially untested. The following table describes the testing performed on each NX API:

        @@ -2938,7 +2938,7 @@ make nx_eventnotify() - This is not used in the current version of examples/nx, + This is not used in the current version of apps/examples/nx, was tested in a previous version) NO diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 37e22a0089..6929f54e1c 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

        NuttX RTOS

        -

        Last Updated: March 19, 2011

        +

        Last Updated: March 20, 2011

        @@ -948,7 +948,7 @@

          STATUS: - This port boots and passes the OS test (examples/ostest). + This port boots and passes the OS test (apps/examples/ostest). The port is complete and verified. As of NuttX 0.3.17, the port includes: timer interrupts, serial console, USB driver, and SPI-based MMC/SD card support. A verified NuttShell (NSH) @@ -982,7 +982,7 @@

            STATUS: - This port boots and passes the OS test (examples/ostest) and includes a + This port boots and passes the OS test (apps/examples/ostest) and includes a working implementation of the NuttShell (NSH). The port is complete and verified. As of NuttX 5.3, the port includes only basic timer interrupts and serial console support. @@ -1161,7 +1161,7 @@ STATUS: This port was released in NuttX 5.5. Features are the same as with the Eagle-100 LM3S6918 described above. - The examples/ostest configuration has been successfully verified and an + The apps/examples/ostest configuration has been successfully verified and an NSH configuration with telnet support is available. MMC/SD and Networking support was not been thoroughly verified: Current development efforts are focused on porting the NuttX window system (NX) @@ -1357,7 +1357,7 @@

            That initial, 5.6, basic release included timer interrupts and a serial console and was - verified using the NuttX OS test (examples/ostest). + verified using the NuttX OS test (apps/examples/ostest). Configurations available include include a verified NuttShell (NSH) configuration (see the NSH User Guide). The NSH configuration supports the Nucleus2G's microSD slot and additional configurations @@ -1374,7 +1374,7 @@

          - This port includes a NuttX OS test configuration (see examples/ostest). + This port includes a NuttX OS test configuration (see apps/examples/ostest).

          Olimex LPC1766-STK. @@ -1524,7 +1524,7 @@ Since then, the basic RTOS port has solidified:

          • - The port successfully passes the NuttX OS test (examples/ostest). + The port successfully passes the NuttX OS test (apps/examples/ostest).
          • A NuttShell (NSH) configuration is in place (see the NSH User Guide). @@ -1534,7 +1534,7 @@ At present, I get nothing coming in the serial RXD line (probably because the pins are configured wrong or I have the MAX232 connected wrong).
          - The basic, port (including the verified examples/ostest configuration) was be released in NuttX-5.13. + The basic, port (including the verified apps/examples/ostest configuration) was be released in NuttX-5.13. A complete port will include drivers for additional AVR32 UC3 devices -- like SPI and USB --- and will be available in a later release, time permitting.

          @@ -1979,7 +1979,7 @@ m68k, m68hc11, m68hc12, and SuperH ports. This build for the ARM9 target includes a significant subset of OS features, a filesystem, Ethernet driver, full TCP/IP, UDP and (minimal) ICMP stacks (via uIP) and a small network test application: (11/8/07, - configuration netconfig, examples/nettest) + configuration netconfig, apps/examples/nettest)

              text    data     bss     dec     hex filename
          @@ -1988,7 +1988,7 @@ m68k, m68hc11, m68hc12, and SuperH ports.
           

          Another build for the ARM9 target includes a minimal OS feature set, Ethernet driver, full TCP/IP and (minimal) ICMP stacks, and - a small webserver: (11/20/07, configuration uipconfig, examples/uip) + a small webserver: (11/20/07, configuration uipconfig, apps/examples/uip)

              text    data     bss     dec     hex filename
          @@ -2224,6 +2224,10 @@ nuttx-5.20 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
               * examples/nsh and apps/nshlib - Move the core NuttShell (NSH) logic
                 out of the exemples directory and into the apps/directory where
                 it belongs.
          +    * apps/Makefile and configs/*/appconfig - Use '=' as the delimiter
          +      instead of '/' so that sub-directories in apps/ can be used.
          +    * apps/vsn - Move all VSN apps to apps/vsn.
          +    * nuttx/examples moved to apps/examples
           
           apps-5.20 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
           
          diff --git a/Documentation/NuttXNxFlat.html b/Documentation/NuttXNxFlat.html
          index b1948f47f8..b08b658016 100644
          --- a/Documentation/NuttXNxFlat.html
          +++ b/Documentation/NuttXNxFlat.html
          @@ -10,7 +10,7 @@
               
                 

          NXFLAT

          >>> Under Construction <<<

          -

          Last Updated: June 26, 2009

          +

          Last Updated: March 20, 2011

          @@ -253,7 +253,7 @@

          The initial release of NXFLAT was made in NuttX version 0.4.9. - Testing is limited to the tests found under examples/nxflat in the source tree. + Testing is limited to the tests found under apps/examples/nxflat in the source tree. Some known problems exist (see the TODO list). As such, NXFLAT is currently in an early alpha phase. @@ -366,7 +366,7 @@ any following arguments.

          Below is a snippet from an NXFLAT make file (simplified from NuttX - + Hello, World! example.

            diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 2d77d4ab9d..85fc8010dc 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

            NuttX RTOS Porting Guide

            -

            Last Updated: March 19, 2011

            +

            Last Updated: March 20, 2011

            @@ -37,30 +37,31 @@ 2.2.2 Summary of Files
            2.2.3 Supported Architectures
          - 2.2 binfmt/
          + 2.3 binfmt/
          2.4 configs/ - 2.5 drivers/
          - 2.6 examples/
          - 2.7 fs/
          - 2.8 graphics/
          - 2.9 include/
          - 2.10 lib/
          - 2.11 libxx/
          - 2.12 mm/
          - 2.13 net
          - 2.14 netutils
          - 2.15 sched/
          - 2.16 tools/
          - 2.17 Makefile + 2.5 nuttx/drivers/
          + 2.6 nuttx/fs/
          + 2.7 nuttx/graphics/
          + 2.8 nuttx/include/
          + 2.9 nuttx/lib/
          + 2.10 nuttx/libxx/
          + 2.11 nuttx/mm/
          + 2.12 nuttx/net
          + 2.13 nuttx/sched/
          + 2.14 nuttx/tools/
          + 2.15 nuttx/Makefile + 2.16 apps/netutils
          + 2.17 apps/nshlib
          + 2.18 apps/examples/
        3.0 Configuring and Building
          @@ -200,10 +201,6 @@ | | |-- (driver-specific sub-directories)/ | | | `-- (driver-specific source files) | | `-- (common driver source files) -| |-- examples/ -| | `-- (example)/ -| | |-- Makefile -| | `-- (example source files) | |-- fs/ | | |-- Makefile | | |-- (file system-specific sub-directories)/ @@ -245,14 +242,18 @@ | |-- (network feature sub-directories)/ | | `-- (network feature source files) | `-- (netutils common files) - |-- nshlib/ + |-- nshlib/ | |-- Makefile | `-- NuttShell (NSH) files - `-- (Board-specific applications)/ - |-- Makefile - |-- (Board-specific application sub-directories)/ - | `-- (Board-specific application source files) - `-- (Board-specific common files) + |-- (Board-specific applications)/ + | |-- Makefile + | |-- (Board-specific application sub-directories)/ + | | `-- (Board-specific application source files) + | `-- (Board-specific common files) + `-- examples/ + `-- (example)/ + |-- Makefile + `-- (example source files)

        @@ -295,7 +296,7 @@ General documentation for the NuttX OS resides in this directory.

        -

        2.2 arch

        +

        2.2 nuttx/arch

        2.2.1 Subdirectory Structure

        @@ -460,7 +461,7 @@

      • arch/arm/include/lpc214x and arch/arm/src/lpc214x: These directories provide support for NXP LPC214x family of processors. - STATUS: This port boots and passes the OS test (examples/ostest). + STATUS: This port boots and passes the OS test (apps/examples/ostest). The port is complete and verified. As of NuttX 0.3.17, the port includes: timer interrupts, serial console, USB driver, and SPI-based MMC/SD card support. A verified NuttShell configuration is also available. @@ -544,21 +545,21 @@ of progress

        -

        2.3 binfmt

        +

        2.3 nuttx/binfmt

        The binfmt/ subdirectory contains logic for loading binaries in the file system into memory in a form that can be used to execute them.

        -

        2.4 configs

        +

        2.4 nuttx/configs

        The configs/ subdirectory contains configuration data for each board. These board-specific configurations plus the architecture-specific configurations in the arch/ subdirectory complete define a customized port of NuttX.

        -

        2.3.1 Subdirectory Structure

        +

        2.4.1 Subdirectory Structure

        The configs directory contains board specific configuration files. Each board must provide a subdirectory <board-name> under configs/ with the following characteristics: @@ -589,8 +590,8 @@

      -

      2.3.2 Summary of Files

      -

      2.3.2.1 Board Specific Logic

      +

      2.4.2 Summary of Files

      +

      2.4.2.1 Board Specific Logic

      • include/: @@ -612,7 +613,7 @@ It must support the following targets: libext$(LIBEXT), clean, and distclean.
      -

      2.3.2.2 Board Specific Configuration Sub-Directories

      +

      2.4.2.2 Board Specific Configuration Sub-Directories

      The configs/<board-name>/ sub-directory holds all of the files that are necessary to configure NuttX for the particular board. @@ -676,7 +677,7 @@ -

      2.3.3 Supported Boards

      +

      2.4.3 Supported Boards

      All of the specific boards supported by NuttX are identified below. These are the specific <board-name>'s that may be used to configure NuttX @@ -790,7 +791,7 @@ is available to build these toolchains under Linux or Cygwin.

      -

      2.5 drivers

      +

      2.5 nuttx/drivers

      This directory holds architecture-independent device drivers. @@ -816,13 +817,7 @@ drivers/ `-- (common driver source files) -

      2.6 examples

      - -

      - Example and test programs to build against. -

      - -

      2.7 fs

      +

      2.6 nuttx/fs

      This directory contains the NuttX file system. @@ -840,7 +835,7 @@ fs/ `-- (common file system source files) -

      2.8 graphics

      +

      2.7 nuttx/graphics

      This directory contains files for graphics/video support under NuttX. @@ -857,7 +852,7 @@ graphics/ `-- (common file system source files) -

      2.9 include

      +

      2.8 nuttx/include

      This directory holds NuttX header files. Standard header files file retained in can be included in the normal fashion: @@ -886,30 +881,64 @@ include/ `-- (more standard header files) -

      2.10 lib

      +

      2.9 nuttx/lib

      This directory holds a collection of standard libc-like functions with custom interfaces into NuttX.

      -

      2.11 libxx

      +

      2.10 nuttx/libxx

      This directory holds a tiny, minimal standard std C++ that can be used to build some, simple C++ applications in NuttX.

      -

      2.12 mm

      +

      2.11 nuttx/mm

      This is the NuttX memory manager.

      -

      2.13 net

      +

      2.12 nuttx/net

      This directory contains the implementation of the socket APIs. The subdirectory, uip contains the uIP port.

      -

      2.14 netutils

      +

      2.13 nuttx/sched

      +

      + The files forming core of the NuttX RTOS reside here. +

      + +

      2.14 nuttx/tools

      +

      + This directory holds a collection of tools and scripts to simplify + configuring, building and maintaining NuttX. +

      +
        +tools/
        +|-- Makefile.mkconfig
        +|-- configure.sh
        +|-- incdir.sh
        +|-- indent.sh
        +|-- link.sh
        +|-- mkconfig.c
        +|-- mkdeps.sh
        +|-- mkimage.sh
        +|-- mknulldeps.sh
        +|-- mkromfsimg.sh
        +|-- unlink.sh
        +|-- winlink.sh
        +`-- zipme
        +
      + +

      2.15 nuttx/Makefile

      +

      + The top-level Makefile in the ${TOPDIR} directory contains all of the top-level control + logic to build NuttX. + Use of this Makefile to build NuttX is described below. +

      + +

      2.16 apps/netutils

      This directory contains most of the network applications. Some of these are original with NuttX (like tftpc and dhcpd) and others were leveraged from the uIP-1.0 apps directory. @@ -951,38 +980,14 @@ netutils/ `-- (netutils common files) -

      2.15 sched

      +

      2.17 apps/nshlib

      - The files forming core of the NuttX RTOS reside here. + This directory contains for the core of the NuttShell (NSH) application.

      -

      2.16 tools

      +

      2.18 apps/examples

      - This directory holds a collection of tools and scripts to simplify - configuring, building and maintaining NuttX. -

      -
        -tools/
        -|-- Makefile.mkconfig
        -|-- configure.sh
        -|-- incdir.sh
        -|-- indent.sh
        -|-- link.sh
        -|-- mkconfig.c
        -|-- mkdeps.sh
        -|-- mkimage.sh
        -|-- mknulldeps.sh
        -|-- mkromfsimg.sh
        -|-- unlink.sh
        -|-- winlink.sh
        -`-- zipme
        -
      - -

      2.17 Makefile

      -

      - The top-level Makefile in the ${TOPDIR} directory contains all of the top-level control - logic to build NuttX. - Use of this Makefile to build NuttX is described below. + Example and test programs to build against.

      @@ -2663,10 +2668,9 @@ extern void up_ledoff(int led);
      • - CONFIG_APP_DIR: Ldentifies the directory that builds the application to link with NuttX. - This symbol must be assigned to the path to the application build directory relative to the NuttX top build direcory. - As an an example, there are several example applicatins in the NuttX examples/ sub-directory. - To use one of these example applications, say nsh, you would set CONFIG_APP_DIR=examples/nsh. + CONFIG_APP_DIR: Identifies the directory that builds the application to link with NuttX. + This symbol must be assigned to the path to the application build directory relative to the NuttX top build directory. + If the application resides in the top-level apps directory, it is not necessary to define CONFIG_APP_DIR. If you had an application directory and the NuttX directory both within another directory like this:

           build
          @@ -2874,7 +2878,7 @@ build
             
        • CONFIG_NXFLAT: Enable support for the NXFLAT binary format. This format will support execution of NuttX binaries located - in a ROMFS filesystem (see examples/nxflat). + in a ROMFS filesystem (see apps/examples/nxflat).
        • CONFIG_SCHED_WORKQUEUE: Create a dedicated "worker" thread to diff --git a/Documentation/README.html b/Documentation/README.html index 63f83166b9..eff38044d4 100755 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -165,9 +165,6 @@ | | `- README.txt | |- drivers/ | | `- README.txt - | |- examples/ - | | |- pashello/README.txt - | | `- README.txt | |- graphics/ | | `- README.txt | |- libxx/ @@ -180,6 +177,9 @@ | `- README |- nshlib/ | |- README.txt + |- examples/ + | |- pashello/README.txt + | `- README.txt `- vsn/ |- free/README.txt |- hello/README.txt diff --git a/Documentation/UsbTrace.html b/Documentation/UsbTrace.html index ac1a7e7507..2f08f9ef2e 100755 --- a/Documentation/UsbTrace.html +++ b/Documentation/UsbTrace.html @@ -9,7 +9,7 @@

      NuttX USB Device Trace

      -

      Last Updated: February 25, 2010

      +

      Last Updated: March 20, 2011

      @@ -134,7 +134,7 @@ Otherwise, the trace data goes to console.

      Example. - Here is an example of USB trace output using examples/usbserial for an LPC1768 platform with the following NuttX configuration settings: + Here is an example of USB trace output using apps/examples/usbserial for an LPC1768 platform with the following NuttX configuration settings:

      • CONFIG_DEBUG, CONFIG_DEBUG_VERBOSE, CONFIG_USB From 6557566e96b4cf49f0f0272065732ef67c2198c5 Mon Sep 17 00:00:00 2001 From: patacongo Date: Mon, 21 Mar 2011 21:59:35 +0000 Subject: [PATCH 0755/1518] Prep for 6.0 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3408 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 259 ++++++++++----------------- Documentation/NuttxPortingGuide.html | 20 +-- 2 files changed, 100 insertions(+), 179 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 6929f54e1c..c8e89dc686 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

        NuttX RTOS

        -

        Last Updated: March 20, 2011

        +

        Last Updated: March 21, 2011

        @@ -807,77 +807,68 @@ -

        nuttx-5.19 Release Notes: +

        nuttx-6.0 Release Notes:

        - The 66th release of NuttX, Version 5.19, was made on March 12, 2011 and is available for download from the + The 67th release of NuttX, Version 6.0, was made on March 21, 2011 and is available for download from the SourceForge website. The change log associated with the release is available here. Unreleased changes after this release are available in SVN. These unreleased changes are listed here.

        - This release includes several new features in various states of integration and maturity: + The version number of this release was bumped from 5.19 to 6.0. + A change in the major revision number is used to reflect an incompatibility with previous versions. + In this release, the NuttX core OS functionality has been separated from NuttX application-related functionality. + These are provided as separate tarballs:

          - +
        • nuttx-6.0.tar.gz, and
        • +
        • apps-6.0.tar.gz
        • +
        +

        + The purpose of this separation is both to better organize and modularize the NuttX source tree, + but also to provide better support for incorporation of end-user applications with Nuttx. +

        +

        + The incompatibily results from the changes to the board configuration logic needed to supported the separable application. + The major changes to the configuration include: +

        +
          +
        • CONFIG_APPS_DIR - This should not, typically be set. + The default is ../apps. + This should only be set if you have a custom, product-specific application directory in some different location.
        • -
        • - 486SX QEMU port. - This port supports the Intel 486SX architecture using the QEMU simulator. - Initial functionality is in place a partially tested. - There are still some outstanding issues with timer interrupts. - A large part of the i486 logic was contributed by Biff of - Bifferboard fame. -
        • -
        • - Platform specific application support. - A new apps/ directory appears in this port. - This apps/ directory provides a mechanism for applications using NuttX to have a highly customizable initialization process. - It supports a set of end-user applications than can be executed - (1) standalone so you can have a fully customizable application startup, or - (2) on top of NSH. - Think of it this way: - In a buckled-up embedded application, your end-user programs will probably have their own dedicated start-up logic. - But, during development, you might want to have you applications available and executable from the NSH command line. - This apps/ add-on (and NSH hooks) was contributed by Uros Platise to accomplish just that. -
        • -
        • - Custom NSH /etc/init.d/rcS File. - NSH was also extended to support application specific ROMFS /etc/init.d/rcS start-up scripts. - This feature, as well, as all of the above-mentioned apps/ directory support was contributed by Uros Platise -
        • -
        • - Additional NSH improvements and bug fixes. See the Changelog for details. -
        • -
        • - SLIP. - This release also provides a new SLIP network driver. - This driver should support point-to-point network communications to a host using TCP/IP or UDP. - This driver is code complete, but not tested in this release. -
        • -
        • - RAMTROM FRAM Driver. - New RAMTRON FRAM driver (contributed by Uros Platise) -
        • -
        • - 16550 UART Driver. - New generic 16550 UART driver. -
        • -
        • - Cortex-M3 Power improvements. - The Cortex-M3 can now waits for Interrupt (WFI) in idle loop for reduced power consumption - (LPC17xx and STM32 only - contributed by Uros Platise)) -
        • -
        • - waitpid(). - New waitpid() system interface. -
        • -
        • - Bugfixes. - Additional bugfixes: pipes, stdint.h, STM32 SDIO and SPI drivers +
        • appconfig - Each board configuration now requires a new file called appconfig. + As its name suggests, this file provides new configuration information needed by the logic in ../apps.
        +

        + In addition to this major reorganization in the directory structure, this release also includes some important extensions to existing features and + some important bugfixes. + These include: +

        +
          +
        • + The SLIP driver was been well debugged and significantly re-designed. + Now you can have an Ethernet connection to you board even if you have no Ethernet hardware. + How cool is that? +
        • +
        • + The QEMU i486 port is now functional. + It has also been reported to work on the Bifferboard. +
        • +
        • + And extensions to the uIP driver interface, and +
        • +
        • + Bug fixes to fopen() and STM32 GPIO configuration +
        • +
        • +
        +

        + Please see the ChangeLog for details. +

        @@ -1452,14 +1443,17 @@ @@ -2074,113 +2068,7 @@ Other memory:

        - QEMU i486. + QEMU/Bifferboard i486. This port uses the QEMU i486 and the native Linux, Cywgin, MinGW the GCC toolchain under Linux or Cygwin.

          STATUS: - This port is code complete but not yet tested. Stayed tuned. + The basic port was code-complete in NuttX-5.19 and verifed in NuttX-6.0. + The port was verified using the OS and NuttShell (NSH) examples under QEMU. + The port is reported to be functional on the Bifferboard as well. + This is a great, stable starting point for anyone interest in fleshing out the x86 port!

          -nuttx-5.19 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
          -
          -    * arch/arm/stm32/stm32_idle.c -- During idle times, the STM32 now uses the
          -      WFI instruction to sleep in a reduced power mode until the next interrupt
          -      occurs (Contributed by Uros Platise).      
          -    * NSH: 'mem' command renamed to 'free'.  Output is now more similar to the
          -      Linux 'free' command.
          -    * NSH: Correct a redirection bug in NSH.  The following would not work; it
          -      resulted in a hang after the 'cat /dev/fifo':
          -
          -        nsh> mkfile /dev/fifo
          -        nsh> cd /tmp             # /tmp is a mounted RAM disk
          -        nsh> cat /dev/fifo > test.txt &
          -        nsh> echo "This is a test" > /dev/fifo
          -
          -      The error was caused because (1) there was a path that resulted in stdout
          -      being closed (the "hang") and also (2) the 'cat' command was always outputting
          -      to stdout, not to the redirected file descriptor.  Now:
          -
          -        nsh> cat test.txt
          -        This is a test
          -
          -    * drivers/pipes/pipe_common.c --  Driver open method was not returning an EINTR
          -      error when it received a signal.  Instead, it just re-started the wait.  This
          -      makes it impossible to kill a background pipe operation from NSH.
          -    * include/stdint.h -- Correct some errors in conditional compilation (submitted
          -      by Johannes Hampel).
          -    * arch/arm/lpc17xx/lp17_idle.c -- Uses the same logic as the STM32: uses the
          -      WFI instruction to sleep in a reduced power mode until the next interrupt
          -      occurs.
          -    * configs/olimex-lpc1766stk -- Added an LED encoded to indicate if the LPC1766
          -      is in sleeping.      
          -    * examples/mm  -- This is a simplified version of the "built-in" memory manager
          -      test of mm/mm_test.c.  It is simplified because it does not have access to
          -      the internals of the memory manager as does mm/mm_test.c, but it has the
          -      advantage that it runs in the actual NuttX tasking environment (the
          -      mm/mm_test.c only runs in a PC simulation environment).
          -    * drivers/mmcsd_sdio.c/h -- Several corrections submitted by Uros Platise.
          -    * arch/x86 - Provide support for x86 architectures.  Support for the i486
          -      architecture under QEMU is provided under arch/x86/include/i486,
          -      arch/x86/include/qemu, arch/x86/src/i486, and arch/x86/src/qemu.
          -    * configs/qemu-i486 - "Board" support configurations for verifying the QEME
          -      i486 port.
          -    * arch/arm/src/stm32/stm32_spi.c -- Correct base address of SPI3 (reported by
          -      Uros Platise).
          -    * drivers/mmcsd/mmcsd_sdio.c -- Correct a loop termination condition (also
          -      reported by Uros Platise).
          -    * drivers/mtd/ramtron.c -  Driver for SPI-based RAMTRON NVRAM devices FM25V10
          -      (and others).  Contributed by Uros Platise.
          -    * examples/nsh and tools/mkromfsimg.sh -- Add support for platform-specific
          -      ROMFS-based NSH start-up scripts.
          -    * drivers/uart_16550.c and include/nuttx/uart_16550.h - Support for a generic
          -      16550 UART.
          -    * configure/qemu-i486/nsh - QEMU NSH example.
          -    * ../apps - The apps directory add-on was created by Uros Platise.  It
          -      supports a set of end-user applications than can be executed on top of
          -      NSH.  Think of it this way:  In a buckled-up embedded application, your
          -      end-user programs will probably have their own dedicated start-up logic.
          -      But, during development, you might want to have you applications
          -      available and executable from the NSH command line.  This apps/ addon
          -      (and NSH hooks) was contributed by Uros to accomplish just that.
          -    * sched/sched_waitpid() and include/sys/wait.h - Provides a simple and
          -      very incomplete implementation of waitpid().  waitpid() is only available
          -      if CONFIG_SCHED_WAITPID is defined in your configuration file.
          -    * sched/atexit.c and sched/exit.c - The atexit function is not frequently
          -      used.  In order to save a few bytes, it is now conditioned on
          -      CONFIG_SCHED_ATEXIT.  It your application is currently using atexit(),
          -      you will need to add CONFIG_SCHED_ATEXT to your configuration file.
          -    * drivers/net/slip.c - Add a SLIP driver (untested on initial check-in).
          -    * configs/olimex-lpc1766stk/slip-httpd - An example that uses SLIP to
          -      provide a serial-port based THTTPD web server.
          -
          -apps-5.19 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
          -
          -    * Initial version of the apps/ directory was released as contributed by
          -      Uros Platise.
          -
          -pascal-2.0 2009-12-21 Gregory Nutt <spudmonkey@racsa.co.cr>
          -
          -    * Updated to use standard C99 types in stdint.h and
          -      stdbool.h.  This change was necessary for compatibility
          -      with NuttX-5.0 (any beyond).
          -
          -buildroot-1.9 2011-02-10 <spudmonkey@racsa.co.cr>
          -
          -    * configs/arm926t-defconfig-4.3.3: update arm926t-defconfig-4.2.4
          -    * configs/arm926t-defconfig-nxflat: NXFLAT-only configuration for
          -      arm926
          -    * toolchain/gdb/gdb.mk - Remove ncurses dependency from gdb_target target.
          -    * toolchain/gdb/gdb.mk - Added --disable-werror to GDB configuration line.
          -      GDB 6.8 won't build because the tarbal was released with -Werror enabled and
          -      the build stops on the first warning.
          -    * Add support for Freescale m9s12x using binutils 2.18 and gcc 3.3.6 and
          -      patches available from http://www.msextra.com/tools courtesy of James
          -      Cortina.  Add configs/m9x12x-defconfig-3.3.6.
          -
        - - - - - -
        - Unreleased Changes -
        - -
          -nuttx-5.20 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
          +nuttx-6.1 2011-03-21 Gregory Nutt <spudmonkey@racsa.co.cr>
           
               * lib/lib_fopen() -- fopen() was not returning the correct errno value
                 when the underlying open() failed.
          @@ -2229,7 +2117,7 @@ nuttx-5.20 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
               * apps/vsn - Move all VSN apps to apps/vsn.
               * nuttx/examples moved to apps/examples
           
          -apps-5.20 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
          +apps-6.0 2011-03-21 Gregory Nutt <spudmonkey@racsa.co.cr>
           
               * README.txt -- README cosmetics
               * hello/ -- hello world minor changes
          @@ -2238,6 +2126,39 @@ apps-5.20 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
               * hello/Makefile -- Now uses new Make.defs definitions.  Added README.txt.
               * apps/poweroff -- New application to turn off board power.
           
          +pascal-2.0 2009-12-21 Gregory Nutt <spudmonkey@racsa.co.cr>
          +
          +    * Updated to use standard C99 types in stdint.h and
          +      stdbool.h.  This change was necessary for compatibility
          +      with NuttX-5.0 (any beyond).
          +
          +buildroot-1.9 2011-02-10 <spudmonkey@racsa.co.cr>
          +
          +    * configs/arm926t-defconfig-4.3.3: update arm926t-defconfig-4.2.4
          +    * configs/arm926t-defconfig-nxflat: NXFLAT-only configuration for
          +      arm926
          +    * toolchain/gdb/gdb.mk - Remove ncurses dependency from gdb_target target.
          +    * toolchain/gdb/gdb.mk - Added --disable-werror to GDB configuration line.
          +      GDB 6.8 won't build because the tarbal was released with -Werror enabled and
          +      the build stops on the first warning.
          +    * Add support for Freescale m9s12x using binutils 2.18 and gcc 3.3.6 and
          +      patches available from http://www.msextra.com/tools courtesy of James
          +      Cortina.  Add configs/m9x12x-defconfig-3.3.6.
          +
        + + + + + +
        + Unreleased Changes +
        + +
          +nuttx-6.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
          +
          +apps-6.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
          +
           pascal-2.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
           
           buildroot-1.10 2011-xx-xx <spudmonkey@racsa.co.cr>
          diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html
          index 85fc8010dc..3b00632fba 100644
          --- a/Documentation/NuttxPortingGuide.html
          +++ b/Documentation/NuttxPortingGuide.html
          @@ -12,7 +12,7 @@
                 

          NuttX RTOS Porting Guide

          -

          Last Updated: March 20, 2011

          +

          Last Updated: March 21, 2011

          @@ -1016,7 +1016,6 @@ netutils/

          • Copy configs/<board-name>/[<config-dir>/appconfig to <app-dir>/.config
          • -
          • echo "CONFIG_BUILTIN_APPS=y" >> "${TOPDIR}/.config"
          • echo "APPS_LOC=\"<app-dir>\"" >> "${TOPDIR}/.config"
          @@ -2668,10 +2667,10 @@ extern void up_ledoff(int led);
          • - CONFIG_APP_DIR: Identifies the directory that builds the application to link with NuttX. - This symbol must be assigned to the path to the application build directory relative to the NuttX top build directory. - If the application resides in the top-level apps directory, it is not necessary to define CONFIG_APP_DIR. - If you had an application directory and the NuttX directory both within another directory like this: + CONFIG_APPS_DIR: Identifies the directory that builds the application to link with NuttX. + This symbol must be assigned to the path of the application build directory relative to the NuttX top build directory. + If the application resides in the top-level ../apps/ directory, it is not necessary to define CONFIG_APPS_DIR. + If you have an application directory and the NuttX directory each in separate directories such as this:

               build
                |-nuttx
              @@ -2681,14 +2680,15 @@ build
                   |
                   `- Makefile
               
            - Then you would set CONFIG_APP_DIR=../application. + Then you would set CONFIG_APPS_DIR=../application. + The default value of CONFIG_APPS_DIR is ../apps/.

            The application direction must contain Makefile and this make file must support the following targets:

            • - libapp$(LIBEXT) (usually libapp.a). - libapp.a is a static library ( an archive) that contains all of application object files. + libapps$(LIBEXT) (usually libapps.a). + libapps.a is a static library ( an archive) that contains all of application object files.
            • clean. @@ -2708,7 +2708,7 @@ build

              When this application is invoked it will receive the setting TOPDIR like:

                - $(MAKE) -C $(CONFIG_APP_DIR) TOPDIR="$(TOPDIR)" <target> + $(MAKE) -C $(CONFIG_APPS_DIR) TOPDIR="$(TOPDIR)" <target>

              From 584a471f38a66ad6279cdbaa26a58f9c40e8fc05 Mon Sep 17 00:00:00 2001 From: patacongo Date: Thu, 24 Mar 2011 00:28:50 +0000 Subject: [PATCH 0756/1518] apps/ initialization now occurs during the earlier context build phase git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3412 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 3b00632fba..9aca6c345a 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

              NuttX RTOS Porting Guide

              -

              Last Updated: March 21, 2011

              +

              Last Updated: March 23, 2011

              @@ -2699,6 +2699,11 @@ build Clean everthing -- auto-generated files, symbolic links etc. -- so that the directory contents are the same as the contents in your configuration management system. This is only done when you change the NuttX configuration.
            • +
            • + context. + Perform one-time configuration-related setup. + This might includes such things as creating auto-generated files or symbolic links for directory configurations. +
            • depend. Make or update the application build dependencies. From 630da1f48e89c58c19ce05cfb71232daeab917c5 Mon Sep 17 00:00:00 2001 From: patacongo Date: Thu, 24 Mar 2011 02:26:25 +0000 Subject: [PATCH 0757/1518] Add lpc17xx GPIO interrupts + fixes needed by last apps-build check-in git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3413 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index c8e89dc686..75d09209ab 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

              NuttX RTOS

              -

              Last Updated: March 21, 2011

              +

              Last Updated: March 23, 2011

              @@ -2157,8 +2157,19 @@ buildroot-1.9 2011-02-10 <spudmonkey@racsa.co.cr>
                 nuttx-6.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                 
                +    * arch/arm/include/lpc17xx/irq.h and arch/arm/src/lpc17xx/lpc17_gpio*.c
                +      -- Fix several bugs in the GPIO interrupt logic.  Submited by
                +      Decio Renno.
                +    * Initialization for the CONFIG_APPS_DIR is now supported during the
                +      earlier, 'context' build phase.
                +    * arch/arm/src/lpc17_gpioint.c -- Finish coding of the LPC17xx GPIO
                +      interrupt logic.
                +
                 apps-6.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                 
                +    * Creation of auto-generated header files now occurs during the context
                +      build phase.
                +
                 pascal-2.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                 
                 buildroot-1.10 2011-xx-xx <spudmonkey@racsa.co.cr>
                
                From 14d44c7c3b9ca65b2fb94571321b19e501d9546d Mon Sep 17 00:00:00 2001
                From: patacongo 
                Date: Sat, 26 Mar 2011 01:04:10 +0000
                Subject: [PATCH 0758/1518] Incorporate changes from Uros Platise
                
                git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3419 42af7a65-404d-4744-a932-0658087f49c3
                ---
                 Documentation/NuttX.html | 10 +++++++++-
                 1 file changed, 9 insertions(+), 1 deletion(-)
                
                diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html
                index 75d09209ab..ff705681af 100644
                --- a/Documentation/NuttX.html
                +++ b/Documentation/NuttX.html
                @@ -8,7 +8,7 @@
                   
                     
                       

                NuttX RTOS

                -

                Last Updated: March 23, 2011

                +

                Last Updated: March 24, 2011

                @@ -2164,6 +2164,14 @@ nuttx-6.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> earlier, 'context' build phase. * arch/arm/src/lpc17_gpioint.c -- Finish coding of the LPC17xx GPIO interrupt logic. + * net/netdev_unregister.c -- Add capability to un-register a network + device. + * drivers/mmcsd/mmcsd_sdio.c: extra effort to correctly handle cases + without the SDcard (but one issue still exists in STM32) + * arch/arm/src/stm32/stm32_tim.*: Added basic timer support without + output PWMs and interrupt logic + * config/vsn/src: added basic support for Sensor Interface (GPIO and + Power Output, and the sif utility program) apps-6.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From 249c892e16839d5d94d2022e6a1baca7a9d90806 Mon Sep 17 00:00:00 2001 From: patacongo Date: Mon, 28 Mar 2011 15:01:43 +0000 Subject: [PATCH 0759/1518] More changes from Uros git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3431 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index ff705681af..007924d2f7 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                NuttX RTOS

                -

                Last Updated: March 24, 2011

                +

                Last Updated: March 28, 2011

                @@ -2068,7 +2068,7 @@ Other memory:
                  -nuttx-6.1 2011-03-21 Gregory Nutt <spudmonkey@racsa.co.cr>
                  +nuttx-6.0 2011-03-21 Gregory Nutt <spudmonkey@racsa.co.cr>
                   
                       * lib/lib_fopen() -- fopen() was not returning the correct errno value
                         when the underlying open() failed.
                  @@ -2157,21 +2157,25 @@ buildroot-1.9 2011-02-10 <spudmonkey@racsa.co.cr>
                   
                     nuttx-6.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                     
                    -    * arch/arm/include/lpc17xx/irq.h and arch/arm/src/lpc17xx/lpc17_gpio*.c
                    -      -- Fix several bugs in the GPIO interrupt logic.  Submited by
                    +    * arch/arm/include/lpc17xx/irq.h and arch/arm/src/lpc17xx/lpc17_gpio*.c:
                    +      Fix several bugs in the GPIO interrupt logic.  Submited by
                           Decio Renno.
                         * Initialization for the CONFIG_APPS_DIR is now supported during the
                           earlier, 'context' build phase.
                    -    * arch/arm/src/lpc17_gpioint.c -- Finish coding of the LPC17xx GPIO
                    +    * arch/arm/src/lpc17_gpioint.c: Finish coding of the LPC17xx GPIO
                           interrupt logic.
                    -    * net/netdev_unregister.c -- Add capability to un-register a network
                    +    * net/netdev_unregister.c: Add capability to un-register a network
                           device.
                         * drivers/mmcsd/mmcsd_sdio.c: extra effort to correctly handle cases
                           without the SDcard (but one issue still exists in STM32)
                    -    * arch/arm/src/stm32/stm32_tim.*: Added basic timer support without
                    -      output PWMs and interrupt logic
                    +    * arch/arm/src/stm32/stm32_tim.*: Added basic timer support TIM1..TIM8
                    +      with output PWMs and interrupt logic
                         * config/vsn/src: added basic support for Sensor Interface (GPIO and
                    -      Power Output, and the sif utility program)
                    +      PWM Power Output, and the sif utility program)
                    +    * fs/: Reorgnize header so that file systems can be built outside
                    +      of the nuttx source tree
                    +    * apps/namedapp/binfs.c: Create a tiny filesystem that can be used
                    +      to show the internal named apps under /bin.
                     
                     apps-6.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                     
                    
                    From 14bb4e4dcedec1827546dbfdede8c8e29a7dc566 Mon Sep 17 00:00:00 2001
                    From: patacongo 
                    Date: Thu, 31 Mar 2011 01:42:50 +0000
                    Subject: [PATCH 0760/1518] Move more files into subdirectories under lib/
                    
                    git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3445 42af7a65-404d-4744-a932-0658087f49c3
                    ---
                     Documentation/NuttxPortingGuide.html | 2 +-
                     1 file changed, 1 insertion(+), 1 deletion(-)
                    
                    diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html
                    index 9aca6c345a..285d274b5d 100644
                    --- a/Documentation/NuttxPortingGuide.html
                    +++ b/Documentation/NuttxPortingGuide.html
                    @@ -916,7 +916,7 @@ include/
                     

                       tools/
                      -|-- Makefile.mkconfig
                      +|-- Makefile.host
                       |-- configure.sh
                       |-- incdir.sh
                       |-- indent.sh
                      
                      From 35e17b775220ef694d5ac9f7656067945454448d Mon Sep 17 00:00:00 2001
                      From: patacongo 
                      Date: Thu, 31 Mar 2011 04:23:17 +0000
                      Subject: [PATCH 0761/1518] Add mksyscall tool
                      
                      git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3446 42af7a65-404d-4744-a932-0658087f49c3
                      ---
                       Documentation/NuttX.html | 14 +++++++++++++-
                       1 file changed, 13 insertions(+), 1 deletion(-)
                      
                      diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html
                      index 007924d2f7..224b1bef81 100644
                      --- a/Documentation/NuttX.html
                      +++ b/Documentation/NuttX.html
                      @@ -8,7 +8,7 @@
                         
                           
                             

                      NuttX RTOS

                      -

                      Last Updated: March 28, 2011

                      +

                      Last Updated: March 30, 2011

                      @@ -2176,6 +2176,18 @@ nuttx-6.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> of the nuttx source tree * apps/namedapp/binfs.c: Create a tiny filesystem that can be used to show the internal named apps under /bin. + * fs/fs_opendir.c: Correct an error that occurs when a file system is + mounted in the root directory. This was discovered while mounting + the named app's /bin directory. + * lib/: Move all source files into a subdirectory of lib/ named after + the header file in which the library function is prototyped. + * sched/ and lib/pthread/: Move pthread attribute-related interfaces + from sched/ to lib/pthread where they more appropriately belong. + * sched/ and lib/semaphore/: Move some semaphore-related interfaces + from sched/ to lib/pthread where they more appropriately belong. + * syscall/: The beginnings of an optional syscall kernel interface. + * tools/mksyscall.c: Add a tool that will auto-generate syscall proxies + and stubs from a comma-separated-value (CSV) data file. apps-6.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From fc4c9a40a5ed2733b35255ac6be728e00f2b09e7 Mon Sep 17 00:00:00 2001 From: patacongo Date: Fri, 1 Apr 2011 21:36:17 +0000 Subject: [PATCH 0762/1518] Stubs are working/Proxies are close git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3451 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 99 ++++++++++++++++++++++++---- 1 file changed, 86 insertions(+), 13 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 285d274b5d..ef444506f5 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

                      NuttX RTOS Porting Guide

                      -

                      Last Updated: March 23, 2011

                      +

                      Last Updated: April 1, 2011

                      @@ -57,11 +57,12 @@ 2.11 nuttx/mm/
                      2.12 nuttx/net
                      2.13 nuttx/sched/
                      - 2.14 nuttx/tools/
                      - 2.15 nuttx/Makefile - 2.16 apps/netutils
                      - 2.17 apps/nshlib
                      - 2.18 apps/examples/
                      + 2.14 nuttx/syscall/
                      + 2.15 nuttx/tools/
                      + 2.16 nuttx/Makefile + 2.17 apps/netutils
                      + 2.18 apps/nshlib
                      + 2.19 apps/examples/
                    3.0 Configuring and Building
                      @@ -234,6 +235,9 @@ | |-- sched/ | | |-- Makefile | | `-- (sched source files) +| |-- syscall/ +| | |-- Makefile +| | `-- (syscall source files) | `-- tools/ | `-- (miscellaneous scripts and programs) `- apps @@ -320,7 +324,8 @@ | |-- arch.h | |-- irq.h | |-- types.h -| `-- limits.h +| |-- limits.h +| `-- syscall.h `-- src/ |--<chip-name>/ | `-- (chip-specific source files) @@ -377,7 +382,7 @@
                    • include/irq.h: This file needs to define some architecture specific functions (usually - inline if the compiler supports inlining) and structure. These include: + inline if the compiler supports inlining) and some structures. These include:
                      • struct xcptcontext: @@ -397,6 +402,57 @@ by the board.

                      • +
                      • + include/syscall.h: + This file needs to define some architecture specific functions (usually + inline if the compiler supports inlining) to support software interrupts + or syscalls that can be used all from user-mode applications into + kernel-mode NuttX functions. + This directory must always be provided to prevent compilation errors. + However, it need only contain valid function declarations if the architecture + supports the CONFIG_NUTTX_KERNEL configuration. +
                          +
                        • + uintptr_t sys_call0(unsigned int nbr): + nbr is one of the system call numbers that can be found in include/sys/syscall.h. + This function will perform a system call with no (additional) parameters. +
                        • +
                        • + uintptr_t sys_call1(unsigned int nbr, uintptr_t parm1): + nbr is one of the system call numbers that can be found in include/sys/syscall.h. + This function will perform a system call with one (additional) parameter. +
                        • +
                        • + uintptr_t sys_call2(unsigned int nbr, uintptr_t parm1, uintptr_t parm2): + nbr is one of the system call numbers that can be found in include/sys/syscall.h. + This function will perform a system call with two (additional) parameters. +
                        • +
                        • + uintptr_t sys_call3(unsigned int nbr, uintptr_t parm1, uintptr_t parm2, uintptr_t parm3): + nbr is one of the system call numbers that can be found in include/sys/syscall.h. + This function will perform a system call with three (additional) parameters. +
                        • +
                        • + uintptr_t sys_call4(unsigned int nbr, uintptr_t parm1, uintptr_t parm2, uintptr_t parm3, uintptr_t parm4): + nbr is one of the system call numbers that can be found in include/sys/syscall.h. + This function will perform a system call with four (additional) parameters. +
                        • +
                        • + uintptr_t sys_call5(unsigned int nbr, uintptr_t parm1, uintptr_t parm2, uintptr_t parm3, uintptr_t parm4, uintptr_t parm5): + nbr is one of the system call numbers that can be found in include/sys/syscall.h. + This function will perform a system call with five (additional) parameters. +
                        • +
                        • + uintptr_t sys_call6(unsigned int nbr, uintptr_t parm1, uintptr_t parm2, uintptr_t parm3, uintptr_t parm4, uintptr_t parm5, uintptr_t parm6): + nbr is one of the system call numbers that can be found in include/sys/syscall.h. + This function will perform a system call with six (additional) parameters. +
                        • +
                        +

                        + This file must also define NR_IRQS, the total number of IRQs supported + by the board. +

                        +
                      • src/<chip-name>/ This sub-directory contains chip-specific source files. @@ -909,7 +965,15 @@ include/ The files forming core of the NuttX RTOS reside here.

                        -

                        2.14 nuttx/tools

                        +

                        2.14 nuttx/syscall

                        +

                        + If NuttX is built as a separately compiled kernel (with CONFIG_NUTTX_KERNEL=y), + then the contents of this directory are built. + This directory holds a syscall interface that can be used for communication + between user-mode applications and the kernel-mode RTOS. +

                        + +

                        2.15 nuttx/tools

                        This directory holds a collection of tools and scripts to simplify configuring, building and maintaining NuttX. @@ -931,14 +995,14 @@ tools/ `-- zipme

                  -

                  2.15 nuttx/Makefile

                  +

                  2.16 nuttx/Makefile

                  The top-level Makefile in the ${TOPDIR} directory contains all of the top-level control logic to build NuttX. Use of this Makefile to build NuttX is described below.

                  -

                  2.16 apps/netutils

                  +

                  2.17 apps/netutils

                  This directory contains most of the network applications. Some of these are original with NuttX (like tftpc and dhcpd) and others were leveraged from the uIP-1.0 apps directory. @@ -980,12 +1044,12 @@ netutils/ `-- (netutils common files)

                -

                2.17 apps/nshlib

                +

                2.18 apps/nshlib

                This directory contains for the core of the NuttShell (NSH) application.

                -

                2.18 apps/examples

                +

                2.19 apps/examples

                Example and test programs to build against.

                @@ -2791,6 +2855,15 @@ build CONFIG_ARCH_LOWPUTC: architecture supports low-level, boot time console output +
              • + CONFIG_NUTTX_KERNEL: + With most MCUs, NuttX is built as a flat, single executable image + containing the NuttX RTOS along with all application code. + The RTOS code and the application run in the same address space and at the same kernel-mode privileges. + If this option is selected, NuttX will be built separately as a monolithic, kernel-mode module and the applications + can be added as a separately built, user-mode module. + In this a system call layer will be built to support the user- to kernel-mode interface to the RTOS. +
              • CONFIG_MM_REGIONS: If the architecture includes multiple regions of memory to allocate from, this specifies the From 51d5d0416822057e058061e262f23e7c8ddf8cd2 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 2 Apr 2011 15:25:22 +0000 Subject: [PATCH 0763/1518] Kernel build mostly successful git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3454 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/README.html | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Documentation/README.html b/Documentation/README.html index eff38044d4..1b7304e941 100755 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -9,7 +9,7 @@

                NuttX README Files

                -

                Last Updated: March 19, 2010

                +

                Last Updated: April 2, 2010

                @@ -167,8 +167,12 @@ | | `- README.txt | |- graphics/ | | `- README.txt + | |- lib/ + | | `- README.txt | |- libxx/ | | `- README.txt + | |- syscall/ + | | `- README.txt | `- tools/ | `- README.txt `- apps/ From f8bf60a5194f018fe6eb32ac96f6174f3fa5e811 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 3 Apr 2011 14:26:05 +0000 Subject: [PATCH 0764/1518] New LIS331DL driver and VSN updates from Uros git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3457 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 19 ++++++++++++++++- Documentation/NuttxPortingGuide.html | 32 +++++++++++++++++++--------- 2 files changed, 40 insertions(+), 11 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 224b1bef81..5721c5eff2 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                NuttX RTOS

                -

                Last Updated: March 30, 2011

                +

                Last Updated: April 3, 2011

                @@ -2188,11 +2188,28 @@ nuttx-6.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> * syscall/: The beginnings of an optional syscall kernel interface. * tools/mksyscall.c: Add a tool that will auto-generate syscall proxies and stubs from a comma-separated-value (CSV) data file. + * arch/arm/src/cortexm3/mpu.h: Add a header file describing the Cortex-M3 + MPU registers. + * Numerous modifications to the build system. Various people have reported + build problems since the re-organization and release of NuttX-6.0. I am + unable to replicate the build problems in my environment, but the changes + have be incorporated in hope of correcting the build issues in other + environments. + * drivers/i2c/st_lis331dl.c: I2C-based driver for the LIS331DL MEMS + motion sensor. Contributed by Uros Platise. + * Makefile: The NuttX build system will now supported building NuttX as two + separately linked images: (1) a kernel-mode RTOS image, and (2) a user- + mode application image that communicates to the RTOS kernel via system + calls. A lot more still must be done. apps-6.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> * Creation of auto-generated header files now occurs during the context build phase. + * Added sdcard insert and eject, nsh command '?' and some code remarks + * Renamed nuttapp to namedapp + * namedapp/binfs.c -- Create a tiny filesystem that can be used + to show the internal named apps under /bin. pascal-2.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index ef444506f5..eaa603a4a1 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

                NuttX RTOS Porting Guide

                -

                Last Updated: April 1, 2011

                +

                Last Updated: April 3, 2011

                @@ -2034,7 +2034,7 @@ extern void up_ledoff(int led);
                • - include/nuttx/i2c.h. + include/nuttx/i2c/i2c.h. All structures and APIs needed to work with I2C drivers are provided in this header file.

                • @@ -2790,7 +2790,7 @@ build Two-pass Build Options. If the 2 pass build option is selected, then these options configure the make system build a extra link object. This link object is assumed to be an incremental (relative) link object, but could be a static library (archive) - (some modification to this Makefile would be required if CONFIG_PASS1_OBJECT is an archive). + (some modification to this Makefile would be required if CONFIG_PASS1_TARGET generates an archive). Pass 1 1ncremental (relative) link objects should be put into the processor-specific source directory where other link objects will be created - ff the pass1 obect is an archive, it could go anywhere.

                  @@ -2805,15 +2805,27 @@ build

                  • - CONFIG_PASS1_OBJECT: The name of the first pass object. +

                    + CONFIG_PASS1_TARGET: The name of the first pass build target. +

                  • CONFIG_PASS1_BUILDIR: - The path, relative to the top NuttX build directory to directory that contains the Makefile to build the first pass object. - The Makefile must support the following targets: -
                      -
                    • The special target arch/$(CONFIG_ARCH)/src/$(CONFIG_PASS1_OBJECT), and
                    • -
                    • The usual depend, clean, and distclean targets.
                    • -
                    +

                    + The path, relative to the top NuttX build directory to directory that contains the Makefile to build the first pass object. + The Makefile must support the following targets: +

                    +

                    +

                      +
                    • The special target CONFIG_PASS1_TARGET (if defined), and
                    • +
                    • The usual depend, clean, and distclean targets.
                    • +
                    +

                    +
                  • +
                  • + CONFIG_PASS1_OBJECT: May be used to include an extra, pass1 object into the final link. + This would probably be the object generated from the CONFIG_PASS1_TARGET. + It may be available at link time in the arch/<architecture>/src directory. +

                  General OS setup

                  From f59bddd6ff45821fd876a52aad271c476858dba2 Mon Sep 17 00:00:00 2001 From: patacongo Date: Tue, 5 Apr 2011 15:50:01 +0000 Subject: [PATCH 0765/1518] Add a layer to redirect kernel-mode memory manager accesses git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3466 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index eaa603a4a1..1f27a55653 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

                  NuttX RTOS Porting Guide

                  -

                  Last Updated: April 3, 2011

                  +

                  Last Updated: April 5, 2011

                  @@ -3209,8 +3209,7 @@ build CONFIG_ARCH_MEMCPY, CONFIG_ARCH_MEMCMP, CONFIG_ARCH_MEMMOVE, CONFIG_ARCH_MEMSET, CONFIG_ARCH_STRCMP, CONFIG_ARCH_STRCPY, CONFIG_ARCH_STRNCPY, CONFIG_ARCH_STRLEN, CONFIG_ARCH_STRNLEN, - CONFIG_ARCH_BZERO, CONFIG_ARCH_KMALLOC, CONFIG_ARCH_KZMALLOC, - ONFIG_ARCH_KFREE, + CONFIG_ARCH_BZERO

                From 343ee44de4a64bc97710084b95befae2d31cbafc Mon Sep 17 00:00:00 2001 From: patacongo Date: Wed, 6 Apr 2011 15:04:57 +0000 Subject: [PATCH 0766/1518] Integrate syscall with existing svcall logic git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3472 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 1f27a55653..5efc76e6c3 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

                NuttX RTOS Porting Guide

                -

                Last Updated: April 5, 2011

                +

                Last Updated: April 6, 2011

                @@ -3000,6 +3000,17 @@ build
              +

              + Kernel build options: +

              +
                +
              • + CONFIG_NUTTX_KERNEL: Builds NuttX as a separately compiled kernel. +
              • + CONFIG_SYS_RESERVED: Reserved system call values for use by architecture-specific logic. + +
              +

              OS setup related to on-demand paging:

              From 75465bba4ce8c769a14eaafbef14e4e07b45aa11 Mon Sep 17 00:00:00 2001 From: patacongo Date: Thu, 7 Apr 2011 01:54:59 +0000 Subject: [PATCH 0767/1518] Fix AVR build, Add hooks for kernel threads git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3477 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 5721c5eff2..891e619bb0 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

              NuttX RTOS

              -

              Last Updated: April 3, 2011

              +

              Last Updated: April 6, 2011

              @@ -2201,6 +2201,15 @@ nuttx-6.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> separately linked images: (1) a kernel-mode RTOS image, and (2) a user- mode application image that communicates to the RTOS kernel via system calls. A lot more still must be done. + * user_initialize(): Eliminated the user_initialize() initialization hook. + It is difficult to maintain and redundant: Board level initialization + an up_initialize() provide the same kind of capability. + * arch/*/include/*/type.h: On some compilers, char defaults as unsigned. + Explicitly add signed to integer types if signed is what is required. + * arch/*: For all architectures -- Global register state save structure + (usually called current_regs) should be marked volatile; Added general + capability to support nested interrupts (not fully realized for all + architectures). apps-6.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> @@ -2228,6 +2237,9 @@ buildroot-1.10 2011-xx-xx <spudmonkey@racsa.co.cr> * Makefile - Alter copy arguements to avoid permissions problems when copying NuttX header files. * toolchain/nxflat/nxflat.mk and Makefile - Fix include paths. + * toolchain/gcc/3.3.6 - Added a patch to fixed compilation error on Ubuntu + 9.10. +
        From 6ba4b1414a6259d9c6c569bbf38798afc84f6b03 Mon Sep 17 00:00:00 2001 From: patacongo Date: Thu, 7 Apr 2011 14:39:55 +0000 Subject: [PATCH 0768/1518] Add support for kernel-mode threads git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3478 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 5efc76e6c3..b55dc6fd95 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

        NuttX RTOS Porting Guide

        -

        Last Updated: April 6, 2011

        +

        Last Updated: April 7, 2011

        @@ -1217,14 +1217,23 @@ The system can be re-made subsequently by just typing make.

        Prototype: void up_initial_state(FAR _TCB *tcb);

        Description. - A new thread is being started and a new TCB - has been created. This function is called to initialize - the processor specific portions of the new TCB. + A new thread is being started and a new TCB has been created. + This function is called to initialize the processor specific portions of the new TCB.

        - This function must setup the initial architecture registers - and/or stack so that execution will begin at tcb->start - on the next context switch. + This function must setup the initial architecture registers and/or stack so that execution + will begin at tcb->start on the next context switch. +

        +

        + This function may also need to set up processor registers so that the new thread executes + with the correct privileges. + If CONFIG_NUTTX_KERNEL has been selected in the NuttX configuration, + then special initialization may need to be performed depending on the task type specified + in the TCB's flags field: + Kernel threads will require kernel-mode privileges; + User tasks and pthreads should have only user-mode privileges. + If CONFIG_NUTTX_KERNEL has not been selected, + then all threads should have kernel-mode privileges.

        4.1.4 up_create_stack()

        From 6ee50c5113acef084a64029cdfb24412099f8ca9 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 10 Apr 2011 18:44:31 +0000 Subject: [PATCH 0769/1518] Prep for 6.1 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3489 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 247 ++++++++++++++++++--------------------- 1 file changed, 114 insertions(+), 133 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 891e619bb0..88f0493d32 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

        NuttX RTOS

        -

        Last Updated: April 6, 2011

        +

        Last Updated: April 10, 2011

        @@ -352,6 +352,14 @@

        + +
        + +

        +

      • May be built either as an open, flat embedded RTOS or as a separtely built, secure micro-kernel with a system call interface.
      • +

        + +
        @@ -807,67 +815,74 @@ -

        nuttx-6.0 Release Notes: +

        nuttx-6.1 Release Notes:

        - The 67th release of NuttX, Version 6.0, was made on March 21, 2011 and is available for download from the + The 68th release of NuttX, Version 6.1, was made on April 10, 2011 and is available for download from the SourceForge website. The change log associated with the release is available here. Unreleased changes after this release are available in SVN. These unreleased changes are listed here.

        - The version number of this release was bumped from 5.19 to 6.0. - A change in the major revision number is used to reflect an incompatibility with previous versions. - In this release, the NuttX core OS functionality has been separated from NuttX application-related functionality. - These are provided as separate tarballs: -

        -
          -
        • nuttx-6.0.tar.gz, and
        • -
        • apps-6.0.tar.gz
        • -
        -

        - The purpose of this separation is both to better organize and modularize the NuttX source tree, - but also to provide better support for incorporation of end-user applications with Nuttx. -

        -

        - The incompatibily results from the changes to the board configuration logic needed to supported the separable application. - The major changes to the configuration include: -

        -
          -
        • CONFIG_APPS_DIR - This should not, typically be set. - The default is ../apps. - This should only be set if you have a custom, product-specific application directory in some different location. -
        • -
        • appconfig - Each board configuration now requires a new file called appconfig. - As its name suggests, this file provides new configuration information needed by the logic in ../apps. -
        • -
        -

        - In addition to this major reorganization in the directory structure, this release also includes some important extensions to existing features and - some important bugfixes. - These include: + The 6.0 release introduced a detach-able application environment to build applications outside of the NuttX source tree. + The primary purpose of this release is to correct numerous build problems introduced by that architectural change:

        • - The SLIP driver was been well debugged and significantly re-designed. - Now you can have an Ethernet connection to you board even if you have no Ethernet hardware. - How cool is that? + In many newer environments, NuttX produced strange Makefile errors but built correctly in older environments. + A fix provided by Rafael Norinha was incorporated and is reported to fix those build problems.
        • - The QEMU i486 port is now functional. - It has also been reported to work on the Bifferboard. + The apps/ directory build system would not handle Windows-native toolchains due to obscure path formatting issues.
        • - And extensions to the uIP driver interface, and + And other problems as detailed in the change log.
        • -
        • - Bug fixes to fopen() and STM32 GPIO configuration -
        • -
        +

        - Please see the ChangeLog for details. + Many additional changes were made in the 6.1 release for another major architectural change: + NuttX will now build as a seperately linked micro-kernel. + In this build option the RTOS builds as a kernel, applications build separtate and interface with kernel via system calls. + Applications run in user mode and kernel logic users in kernel-mode. + This provides a secure environment for NuttX. + This feature is fully coded in NuttX-6.1, but has not been tested due to higher priority tasks that have arisen. +

        +

        + Related to this change, support for the Cortex-M3 memory protection unit (MPU) has been integrated with the NuttX kernel build to provide an even higher level of security. +

        +

        + NOTE: This kernel build is an option; the default build configuration is still the standard, flat, unsecured RTOS as in previous releases. +

        +

        + Additional new features in this release: +

        +
          +
        • + Support for LPC17xx GPIO interrupts (with much support from Decio Renno). +
        • +
        • + Basic timer support for STM32 (Contributed by Uros Platise) +
        • +
        • + A binfs file system. + This is a tiny psuedo file system that lets named appliations to be viewed and accessed in NSH under the /bin directory. +
        • +
        • + An I2C-based driver for the LIS331DL MEMS motion sensor (Contributed by Uros Platise). +
        • +
        • + A board configuration for the Embedded Artists LPCXpresso LPC1768 board. +
        • +
        • + The user_initialize() interface has been removed. +
        • +
        + +

        + And several bugfix are included. + This includes chagnes associated with SD drivers, openddir(), signed 8-bit types (int8_t), and USB serial device. See the ChangeLog for details.

        @@ -1321,6 +1336,9 @@
      • The LPC1766-sTK board from Olimex (LPC1766).
      • +
      • + The Embedded Artists base board with NXP LPCXpresso LPC1768. +
      • @@ -1387,6 +1405,15 @@

        +

        + Embedded Artists base board with NXP LPCXpresso LPC1768. +

          +
        • + An initial board configuration is included in NuttX-6.1. + However, certain Code Red download issues have not yet been resolved and the port has not yet been tested. +
        • +
        +

        Verified configurations are now available for the NuttX OS test, for the NuttShell with networking and microSD support(NSH, see the NSH User Guide), @@ -2068,94 +2095,7 @@ Other memory:

          -nuttx-6.0 2011-03-21 Gregory Nutt <spudmonkey@racsa.co.cr>
          -
          -    * lib/lib_fopen() -- fopen() was not returning the correct errno value
          -      when the underlying open() failed.
          -    * include/net/uip/uip-arch.h -- The uIP interface has been extended
          -      slightly so that drivers can be concurrenly filling and sending
          -      packet buffers.  This capability was needed by the SLIP driver.
          -    * drivers/net/slip.c -- Several corrections and some re-design of
          -      of the driver.
          -    * apps/ChangeLog.txt -- the apps/ directory now has its own ChangeLog.
          -    * configs/vsn:
          -      - IDLE LED blinking fix
          -      - Added board power off function
          -    * arch/arm/src/stm32/stm32_gpio.c and stm32_internal.h -- Fixed
          -      PullUp/Down Input Configuration.
          -    * arch/arm/src/lpc17xx/lpc17_serial.h -- Now supports Auto-RTS and
          -      Auto-CTS modes.  This is needed to support SLIP.
          -    * drivers/net/slip.c -- SLIP is now basically functional on the
          -      LPC17xx with some caveats as described in the TODO list under
          -      LPC17xx.
          -    * arch/x86/include/i486/irq.h -- Fix irqrestore() macro... it was not
          -      correctly re-enabling interrupts.
          -    * arch/x86/src - Fix numerous problems with i486/QEMU context
          -      switching.  Basically, the logic was missing the cases to handle
          -      the differing stack frames when a priority change occurs and when
          -      no priority change occurs.
          -    * configs/qemu-i486/ostest and nsh -- The QEMU i486 port is complete.
          -      it now passes the OS test and supports the NuttShell (NSH).
          -    * misc/drivers -- Created a new directory to hold non-BSD licensed
          -      drivers that may be added into NuttX via an installation script.
          -    * drivers/usbhost/usbhost_rtl8187.c -- A decision was made to
          -      incorporate code taken from the Linux kernel.  That changes the
          -      licensing on this module to GPL.  To avoid licensing contamination,
          -      this driver was moved to misc/drivers/rtl8187x *prior* to adding
          -      and of the GPL log.  There is an INSTALL.sh script at the location
          -      where the GPL driver(s) can be re-installed into the NuttX source
          -      tree.  By re-installing the driver, you agree to the GPL licsensing
          -      and all of its implications.
          -    * Makefile, apps/Makefile, tools/configure.sh -- add logic to copy
          -      configs/<board>/<config>/appdir to apps/.config and to simply the
          -      application configuration logic.
          -    * examples/nsh and apps/nshlib - Move the core NuttShell (NSH) logic
          -      out of the exemples directory and into the apps/directory where
          -      it belongs.
          -    * apps/Makefile and configs/*/appconfig - Use '=' as the delimiter
          -      instead of '/' so that sub-directories in apps/ can be used.
          -    * apps/vsn - Move all VSN apps to apps/vsn.
          -    * nuttx/examples moved to apps/examples
          -
          -apps-6.0 2011-03-21 Gregory Nutt <spudmonkey@racsa.co.cr>
          -
          -    * README.txt -- README cosmetics
          -    * hello/ -- hello world minor changes
          -    * Makefile -- Makefile cosmetics (I am slowly adding the Darjeeling JVM)
          -    * Make.defs -- New file adds common make definitions for applications.
          -    * hello/Makefile -- Now uses new Make.defs definitions.  Added README.txt.
          -    * apps/poweroff -- New application to turn off board power.
          -
          -pascal-2.0 2009-12-21 Gregory Nutt <spudmonkey@racsa.co.cr>
          -
          -    * Updated to use standard C99 types in stdint.h and
          -      stdbool.h.  This change was necessary for compatibility
          -      with NuttX-5.0 (any beyond).
          -
          -buildroot-1.9 2011-02-10 <spudmonkey@racsa.co.cr>
          -
          -    * configs/arm926t-defconfig-4.3.3: update arm926t-defconfig-4.2.4
          -    * configs/arm926t-defconfig-nxflat: NXFLAT-only configuration for
          -      arm926
          -    * toolchain/gdb/gdb.mk - Remove ncurses dependency from gdb_target target.
          -    * toolchain/gdb/gdb.mk - Added --disable-werror to GDB configuration line.
          -      GDB 6.8 won't build because the tarbal was released with -Werror enabled and
          -      the build stops on the first warning.
          -    * Add support for Freescale m9s12x using binutils 2.18 and gcc 3.3.6 and
          -      patches available from http://www.msextra.com/tools courtesy of James
          -      Cortina.  Add configs/m9x12x-defconfig-3.3.6.
          -
        - - - - - -
        - Unreleased Changes -
        - -
          -nuttx-6.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
          +nuttx-6.1 2011-04-10 Gregory Nutt <spudmonkey@racsa.co.cr>
           
               * arch/arm/include/lpc17xx/irq.h and arch/arm/src/lpc17xx/lpc17_gpio*.c:
                 Fix several bugs in the GPIO interrupt logic.  Submited by
          @@ -2210,8 +2150,14 @@ nuttx-6.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                 (usually called current_regs) should be marked volatile; Added general
                 capability to support nested interrupts (not fully realized for all
                 architectures).
          +    * sched/task_create.c: Add support for starting kernel-mode thread.
          +    * drivers/usbdev/usbdev_serial.c: Fix reported by Sheref Younan.  USB
          +      was being reset after serial driver was closed.  As a result, you could
          +      no reopen the serial driver.
          +    * configs/lpcxpresso-lpc1768: Add a board configuration for the Embedded
          +      Artists LPCXpresso LPC1768 board.
           
          -apps-6.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
          +apps-6.1 2011-04-10 Gregory Nutt <spudmonkey@racsa.co.cr>
           
               * Creation of auto-generated header files now occurs during the context
                 build phase.
          @@ -2219,6 +2165,41 @@ apps-6.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
               * Renamed nuttapp to namedapp
               * namedapp/binfs.c -- Create a tiny filesystem that can be used
                 to show the internal named apps under /bin.
          +    * Numerous fixes to build system required to support building with native
          +      Windows toolchain.
          +
          +pascal-2.0 2009-12-21 Gregory Nutt <spudmonkey@racsa.co.cr>
          +
          +    * Updated to use standard C99 types in stdint.h and
          +      stdbool.h.  This change was necessary for compatibility
          +      with NuttX-5.0 (any beyond).
          +
          +buildroot-1.9 2011-02-10 <spudmonkey@racsa.co.cr>
          +
          +    * configs/arm926t-defconfig-4.3.3: update arm926t-defconfig-4.2.4
          +    * configs/arm926t-defconfig-nxflat: NXFLAT-only configuration for
          +      arm926
          +    * toolchain/gdb/gdb.mk - Remove ncurses dependency from gdb_target target.
          +    * toolchain/gdb/gdb.mk - Added --disable-werror to GDB configuration line.
          +      GDB 6.8 won't build because the tarbal was released with -Werror enabled and
          +      the build stops on the first warning.
          +    * Add support for Freescale m9s12x using binutils 2.18 and gcc 3.3.6 and
          +      patches available from http://www.msextra.com/tools courtesy of James
          +      Cortina.  Add configs/m9x12x-defconfig-3.3.6.
          +
        + + + + + +
        + Unreleased Changes +
        + +
          +nuttx-6.2 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
          +
          +apps-6.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
           
           pascal-2.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
           
          
          From 40e1646747d078935ca2eddffe4a6b1c8c57ecda Mon Sep 17 00:00:00 2001
          From: patacongo 
          Date: Sun, 10 Apr 2011 18:50:16 +0000
          Subject: [PATCH 0770/1518] Fix mispelled name
          
          git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3490 42af7a65-404d-4744-a932-0658087f49c3
          ---
           Documentation/NuttX.html | 2 +-
           1 file changed, 1 insertion(+), 1 deletion(-)
          
          diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html
          index 88f0493d32..f072201b23 100644
          --- a/Documentation/NuttX.html
          +++ b/Documentation/NuttX.html
          @@ -831,7 +831,7 @@
           
          • In many newer environments, NuttX produced strange Makefile errors but built correctly in older environments. - A fix provided by Rafael Norinha was incorporated and is reported to fix those build problems. + A fix provided by Rafael Noronha was incorporated and is reported to fix those build problems.
          • The apps/ directory build system would not handle Windows-native toolchains due to obscure path formatting issues. From ff475e2ea6cad37192f0d41c32d4af94840fe518 Mon Sep 17 00:00:00 2001 From: patacongo Date: Mon, 11 Apr 2011 22:27:00 +0000 Subject: [PATCH 0771/1518] Correct an error in the top-level Makefile introduced in 6.1 git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3492 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index f072201b23..141b279295 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -867,7 +867,7 @@
          • A binfs file system. - This is a tiny psuedo file system that lets named appliations to be viewed and accessed in NSH under the /bin directory. + This is a tiny psuedo file system that lets named appliations to be viewed and accessed in NSH under the /bin directory.
          • An I2C-based driver for the LIS331DL MEMS motion sensor (Contributed by Uros Platise). @@ -2199,6 +2199,12 @@ buildroot-1.9 2011-02-10 <spudmonkey@racsa.co.cr>
               nuttx-6.2 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
               
              +    * arch/arm/src/lpc17xx/lpc17_gpioint.c: Correct errors in logic that maps
              +      and IRQ number into a register bit number.
              +    * Makefile: Fix an error introduced in the top-level Makefile in NuttX-6.1.
              +      This error only shows up if you have a /tftpboot directory.  Then the 
              +      make will fail with an obscure error about not being able to stat pass2.
              +
               apps-6.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
               
               pascal-2.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
              
              From 320f1522dee94bedd42c4a9d6e71d3135e405c96 Mon Sep 17 00:00:00 2001
              From: patacongo 
              Date: Wed, 13 Apr 2011 22:47:04 +0000
              Subject: [PATCH 0772/1518] Fix error in strrch()
              
              git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3501 42af7a65-404d-4744-a932-0658087f49c3
              ---
               Documentation/NuttX.html | 22 +++++++++++++++++++++-
               1 file changed, 21 insertions(+), 1 deletion(-)
              
              diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html
              index 141b279295..47fd194b75 100644
              --- a/Documentation/NuttX.html
              +++ b/Documentation/NuttX.html
              @@ -8,7 +8,7 @@
                 
                   
                     

              NuttX RTOS

              -

              Last Updated: April 10, 2011

              +

              Last Updated: April 13, 2011

              @@ -2204,6 +2204,26 @@ nuttx-6.2 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> * Makefile: Fix an error introduced in the top-level Makefile in NuttX-6.1. This error only shows up if you have a /tftpboot directory. Then the make will fail with an obscure error about not being able to stat pass2. + * configs/lpcxpresso-lpc1768/nsh: Add an NSH configuration for the + LPCXpresso board. + * configs/*/ld.script: Removed 'sh_link not set for section .ARM.edix' for + a few of the builds. In you have this warning, it can be removed with the + following change to the ld.script file: + + + __exidx_start = ABSOLUTE(.); + .ARM.exidx : { + - __exidx_start = ABSOLUTE(.); + *(.ARM.exidx*) + - __exidx_end = ABSOLUTE(.); + } >sram + + __exidx_end = ABSOLUTE(.); + + * arch/arm/src/lpc17xx: Correct some typos/bugs in configuration of LPC17xx + UART2 and UART3. + * nuttx/clock.h: Replace all references to the global variable g_system_timer + with clock_systemtimer() (currently just a macro that that returns g_system_timer). + * lin/string/strrch.c: Would fail if the searched-for character were the first + character in the string. apps-6.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From dec0e47114667bb60c7413802a02b6692e64a346 Mon Sep 17 00:00:00 2001 From: patacongo Date: Thu, 14 Apr 2011 16:52:58 +0000 Subject: [PATCH 0773/1518] Documentation update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3503 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 47fd194b75..f3efc72f8d 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

              NuttX RTOS

              -

              Last Updated: April 13, 2011

              +

              Last Updated: April 14, 2011

              @@ -2222,8 +2222,10 @@ nuttx-6.2 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> UART2 and UART3. * nuttx/clock.h: Replace all references to the global variable g_system_timer with clock_systemtimer() (currently just a macro that that returns g_system_timer). - * lin/string/strrch.c: Would fail if the searched-for character were the first += * lib/string/strrch.c: Would fail if the searched-for character were the first character in the string. + * tools/version.sh and mkversion.c: Tools to manage a NuttX version number + file apps-6.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> @@ -2246,6 +2248,7 @@ buildroot-1.10 2011-xx-xx <spudmonkey@racsa.co.cr> * toolchain/nxflat/nxflat.mk and Makefile - Fix include paths. * toolchain/gcc/3.3.6 - Added a patch to fixed compilation error on Ubuntu 9.10. + * toolchain/nxflat/Makefile - Correct static library link order.
            From 2582a447d52859d8debab18e2e450e4154be44ba Mon Sep 17 00:00:00 2001 From: patacongo Date: Thu, 14 Apr 2011 19:17:41 +0000 Subject: [PATCH 0774/1518] Documentation update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3505 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 66 ++++++++++++++++++++++++++-- 1 file changed, 62 insertions(+), 4 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index b55dc6fd95..4f9b0694f8 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

            NuttX RTOS Porting Guide

            -

            Last Updated: April 7, 2011

            +

            Last Updated: April 14, 2011

            @@ -981,7 +981,11 @@ include/
               tools/
               |-- Makefile.host
              +|-- README.txt
               |-- configure.sh
              +|-- cfgparser.c
              +|-- cfgparser.h
              +|-- define.sh
               |-- incdir.sh
               |-- indent.sh
               |-- link.sh
              @@ -990,11 +994,19 @@ tools/
               |-- mkimage.sh
               |-- mknulldeps.sh
               |-- mkromfsimg.sh
              +|-- mksyscall.c
              +|-- mkversion.c
               |-- unlink.sh
              +|-- version.sh
               |-- winlink.sh
              -`-- zipme
              +`-- zipme.sh
               
            +

            + Refer to the README file in the tools directory for more information about the individual files. + Some of these tools are discussed below as well in the discussion of configuring and building NuttX. +

            +

            2.16 nuttx/Makefile

            The top-level Makefile in the ${TOPDIR} directory contains all of the top-level control @@ -1105,13 +1117,58 @@ netutils/

            And if configs/<board-name>/[<config-dir>/appconfig exists and your application directory is not in the standard loction (../apps), - then you should also specify the location of the application directory on the +command line like: + then you should also specify the location of the application directory on the command line like:

                 cd tools
                 ./configure.sh -a <app-dir> <board-name>[/<config-dir>]
               
            +

            + Version Files. + The NuttX build expects to find a version file located in the top-level NuttX build directory. + That version file is called .version. + The correct version file is installed in each versioned NuttX released. + However, if you are working from an SVN snapshot, then there will be no version file. + If there is no version file, the top-level Makefile will create a dummy .version file on the first make. + This dummy version file will contain all zeroes for version information. + If that is not what you want, they you should run the version.sh script to create a better .version file. +

            + +

            + You can get help information from the version.sh script using the -h option. + For example: +

            +
              +$ tools/version.sh -h
              +tools/version.sh is a tool for generation of proper version files for the NuttX build
              +
              +USAGE: tools/version.sh [-d|-h] [-b build] -v <major.minor> <outfile-path>
              +
              +Where:
              +        -d
              +                Enable script debug
              +        -h
              +                show this help message and exit
              +        -v <major.minor>
              +                The NuttX version number expressed a major and minor number separated
              +                by a period
              +        <outfile-path>
              +                The full path to the version file to be created
              +
            + +

            + As an example, the following command will generate a version file for version 6.1 using the current SVN revision number: +

            +
              +tools/version.h -v 6.1 .version
              +
            + +

            + The .version file is also used during the build process to create a C header file at include/nuttx/version.h that contains the same version information. + That version file may be used by your C applications for, as an example, reporting version information. +

            +

            Additional Configuration Steps. The remainder of configuration steps will be performed by ${TOPDIR}/Makefile @@ -1154,7 +1211,8 @@ The system can be re-made subsequently by just typing make. These additional steps include:

              -
            • Auto-generating the file include/nuttx/config. using the ${TOPDIR}/.config file. +
            • Auto-generating the file include/nuttx/config.h using the ${TOPDIR}/.config file. +
            • Auto-generating the file include/nuttx/version.h using the ${TOPDIR}/.version file.
            • Creating a link to ${TOPDIR}/arch/<arch-name>/include at ${TOPDIR}/include/arch.
            • Creating a link to ${TOPDIR}/configs/<board-name>/include at ${TOPDIR}/include/arch/board.
            • Creating a link to ${TOPDIR}/configs/<board-name>/src at ${TOPDIR}/arch/<arch-name>/src/board From 3c4904618aa4a4497cedeac8598ff2b3e860b08d Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 16 Apr 2011 01:04:17 +0000 Subject: [PATCH 0775/1518] Fix bad conditional compilation that breaks THTTPD and dup2() git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3511 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index f3efc72f8d..e655bb9af9 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

              NuttX RTOS

              -

              Last Updated: April 14, 2011

              +

              Last Updated: April 15, 2011

              @@ -2222,10 +2222,16 @@ nuttx-6.2 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> UART2 and UART3. * nuttx/clock.h: Replace all references to the global variable g_system_timer with clock_systemtimer() (currently just a macro that that returns g_system_timer). -= * lib/string/strrch.c: Would fail if the searched-for character were the first + * lib/string/strrch.c: Would fail if the searched-for character were the first character in the string. * tools/version.sh and mkversion.c: Tools to manage a NuttX version number file + * sched/clock_uptime() and lib/time/lib_time.c: Add support for 1 second uptime + interface. + * net/net_dup2.c and include/nuttx/net.h: The conditional compilation for + '#if CONFIG_NFILE_DESCRIPTOR > 0' was wrong in both of these files. It should + be '#if CONFIG_NFILE_DESCRIPTORS > 0'. This causes a dup2() failure in THTTPD + and a failure to get a CGI page. The consequence can be a very serious bug! apps-6.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From 1a610def494d1351df960ff96a1025ba6a45c382 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 17 Apr 2011 14:48:58 +0000 Subject: [PATCH 0776/1518] Add DHCP server configuration for LPCXpresso git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3517 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/README.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/README.html b/Documentation/README.html index 1b7304e941..f94e8badb0 100755 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -9,7 +9,7 @@

              NuttX README Files

              -

              Last Updated: April 2, 2010

              +

              Last Updated: April 15, 2010

              @@ -82,6 +82,8 @@ | | | |- include/README.txt | | | |- src/README.txt | | | `- README.txt + | | |- lpcxpresso-lpc1768/ + | | | `- README.txt | | |- m68332evb/ | | | |- include/README.txt | | | `- src/README.txt From 651d9d96651d272e5b70bb06e365fd467b417d48 Mon Sep 17 00:00:00 2001 From: patacongo Date: Mon, 18 Apr 2011 20:13:54 +0000 Subject: [PATCH 0777/1518] Minor OLED-related updates (still doesn't work) git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3522 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index e655bb9af9..5c5e2ff88f 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

              NuttX RTOS

              -

              Last Updated: April 15, 2011

              +

              Last Updated: April 18, 2011

              @@ -2232,6 +2232,12 @@ nuttx-6.2 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> '#if CONFIG_NFILE_DESCRIPTOR > 0' was wrong in both of these files. It should be '#if CONFIG_NFILE_DESCRIPTORS > 0'. This causes a dup2() failure in THTTPD and a failure to get a CGI page. The consequence can be a very serious bug! + * configs/lpcxpresso-lpc1768/usbstorage, thttpd, and dhcpd: Add an USB storage, + THTTPD web server, and DHCP server configurations for the NXP LPCXpresso board. + * drivers/lcd/ug-9664hswag01.c and ssd1305.h: Add support for Univision UG-9664HSWAG01 + OLED with Solomon Systech SD1305 LCD controller. + * configs/lpcxpresso-lpc1668/nx: Add a NX graphics configuration for the LPCXPRESO + board. apps-6.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From 55af684260c3dcbc8358658b2c94027b164dd4b8 Mon Sep 17 00:00:00 2001 From: patacongo Date: Wed, 20 Apr 2011 14:12:52 +0000 Subject: [PATCH 0778/1518] Rename uptime to UTC git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3528 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 5c5e2ff88f..ce7d9e6bce 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

              NuttX RTOS

              -

              Last Updated: April 18, 2011

              +

              Last Updated: April 20, 2011

              @@ -2226,7 +2226,7 @@ nuttx-6.2 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> character in the string. * tools/version.sh and mkversion.c: Tools to manage a NuttX version number file - * sched/clock_uptime() and lib/time/lib_time.c: Add support for 1 second uptime + * sched/clock_getutc() and lib/time/lib_time.c: Add support for 1 second UTC interface. * net/net_dup2.c and include/nuttx/net.h: The conditional compilation for '#if CONFIG_NFILE_DESCRIPTOR > 0' was wrong in both of these files. It should @@ -2238,6 +2238,9 @@ nuttx-6.2 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> OLED with Solomon Systech SD1305 LCD controller. * configs/lpcxpresso-lpc1668/nx: Add a NX graphics configuration for the LPCXPRESO board. + * graphics/nxglib/nxglib_nonintersecting.c: Fix some single bit errors in + calculation of non-intersecting regions. This was causing an anomoaly + in examples/nx in column 0. apps-6.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From 92b70b2d6f4201b7e59dd0b8bae3d807f8dc3a59 Mon Sep 17 00:00:00 2001 From: patacongo Date: Thu, 28 Apr 2011 15:09:21 +0000 Subject: [PATCH 0779/1518] Add GCC 4.5.2 git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3535 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index ce7d9e6bce..0ef6c404c6 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

              NuttX RTOS

              -

              Last Updated: April 20, 2011

              +

              Last Updated: April 28, 2011

              @@ -2241,8 +2241,13 @@ nuttx-6.2 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> * graphics/nxglib/nxglib_nonintersecting.c: Fix some single bit errors in calculation of non-intersecting regions. This was causing an anomoaly in examples/nx in column 0. + * drivers/mtd/rammtd.c: Added a RAM based MTD driver. This RAM driver simulates + FLASH and is useful for testing purposes. + * arch/arm/src/arm/up_head.S: Fix backward conditional compilation. This cause + the configs/mx1ads configuration to fail to build but does not appear to affect + any other ARM9 build. -apps-6.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> +apps-6.2 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> pascal-2.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> @@ -2258,12 +2263,17 @@ buildroot-1.10 2011-xx-xx <spudmonkey@racsa.co.cr> .exe files). That is probably not usable for most NuttX targets. Instead, you should use this i486-elf-gcc to generate true ELF binaries under Cygwin. - * Makefile - Alter copy arguements to avoid permissions problems when + * Makefile - Alter copy arguments to avoid permissions problems when copying NuttX header files. * toolchain/nxflat/nxflat.mk and Makefile - Fix include paths. * toolchain/gcc/3.3.6 - Added a patch to fixed compilation error on Ubuntu 9.10. * toolchain/nxflat/Makefile - Correct static library link order. + * configs/arm920t-defconfig-4.3.3 - Enable support for NXFLAT tools. + * toolchain/binutils/2.21 and toolchain/gcc/4.5.2 - Add support for GCC + 4.5.2 with binutils 2.21. + * configs/cortex-eabi-defconfig-4.5.2 - Add a configuration to build a + GCC 4.5.2 EABI ARM toolchain for the Cortex-M3.
        From a670c43eff060cedd42beedec2f9e9d2482859f1 Mon Sep 17 00:00:00 2001 From: patacongo Date: Fri, 29 Apr 2011 00:20:11 +0000 Subject: [PATCH 0780/1518] Add 4.5.2 configuration for ARM920 git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3539 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 0ef6c404c6..8936c0841d 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -2246,6 +2246,9 @@ nuttx-6.2 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> * arch/arm/src/arm/up_head.S: Fix backward conditional compilation. This cause the configs/mx1ads configuration to fail to build but does not appear to affect any other ARM9 build. + * fs/nxffs: Adding a tiny, wear-leveling FLASH file system for NuttX. This + file system is intended to be small and will have some limitations. The + implementation is incomplete on initial checkin. apps-6.2 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> @@ -2272,8 +2275,8 @@ buildroot-1.10 2011-xx-xx <spudmonkey@racsa.co.cr> * configs/arm920t-defconfig-4.3.3 - Enable support for NXFLAT tools. * toolchain/binutils/2.21 and toolchain/gcc/4.5.2 - Add support for GCC 4.5.2 with binutils 2.21. - * configs/cortex-eabi-defconfig-4.5.2 - Add a configuration to build a - GCC 4.5.2 EABI ARM toolchain for the Cortex-M3. + * configs/arm920t-eabi-defconfig-4.5.2 - Add a configuration to build a + GCC 4.5.2 EABI ARM toolchain for the ARM920.
      From 0514f6a8c7c0b389b24dc78be77a060d085644d8 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 30 Apr 2011 17:41:08 +0000 Subject: [PATCH 0781/1518] Update README documentation git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3543 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/README.html | 228 +++++++++++++++++++------------------- 1 file changed, 115 insertions(+), 113 deletions(-) diff --git a/Documentation/README.html b/Documentation/README.html index f94e8badb0..5c7a89c042 100755 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -3,7 +3,6 @@ README Files -

      @@ -28,168 +27,171 @@ | | | | | |- arm | | | `- src - | | | `- lpc214x/README.txt + | | | `- lpc214x/README.txt | | |- sh/ | | | |- include/ - | | | | |-m16c/README.txt - | | | | |-sh1/README.txt - | | | | `-README.txt + | | | | |-m16c/README.txt + | | | | |-sh1/README.txt + | | | | `-README.txt | | | |- src/ - | | | | |-common/README.txt - | | | | |-m16c/README.txt - | | | | |-sh1/README.txt - | | | | `-README.txt + | | | | |-common/README.txt + | | | | |-m16c/README.txt + | | | | |-sh1/README.txt + | | | | `-README.txt | | |- x86/ | | | |- include/ - | | | | `-README.txt + | | | | `-README.txt | | | `- src/ - | | | `-README.txt + | | | `-README.txt | | |- z80/ | | | `- src/ - | | | `- z80/README.txt - | | `- README.txt + | | | `- z80/README.txt + | | `- README.txt | |- configs/ | | |- avr32dev1/ - | | | `- README.txt + | | | `- README.txt | | |- c5471evm/ - | | | |- include/README.txt - | | | |- src/README.txt - | | | `- README.txt + | | | |- include/README.txt + | | | |- src/README.txt + | | | `- README.txt | | |- demo9s12ne64/ - | | | `- README.txt + | | | `- README.txt | | |- ea3131/ - | | | `- README.txt + | | | `- README.txt | | |- eagle100/ - | | | |- include/README.txt - | | | |- src/README.txt - | | | `- README.txt + | | | |- include/README.txt + | | | |- src/README.txt + | | | `- README.txt | | |- ez80f910200kitg/ - | | | |- ostest/README.txt - | | | `- README.txt + | | | |- ostest/README.txt + | | | `- README.txt | | |- ez80f910200zco/ - | | | |- dhcpd/README.txt - | | | |- httpd/README.txt - | | | |- nettest/README.txt - | | | |- nsh/README.txt - | | | |- ostest/README.txt - | | | |- poll/README.txt - | | | `- README.txt + | | | |- dhcpd/README.txt + | | | |- httpd/README.txt + | | | |- nettest/README.txt + | | | |- nsh/README.txt + | | | |- ostest/README.txt + | | | |- poll/README.txt + | | | `- README.txt | | |- lm3s6965-ek/ - | | | |- include/README.txt - | | | |- src/README.txt - | | | `- README.txt + | | | |- include/README.txt + | | | |- src/README.txt + | | | `- README.txt | | |- lm3s8962 - | | | |- include/README.txt - | | | |- src/README.txt - | | | `- README.txt + | | | |- include/README.txt + | | | |- src/README.txt + | | | `- README.txt | | |- lpcxpresso-lpc1768/ - | | | `- README.txt + | | | `- README.txt | | |- m68332evb/ - | | | |- include/README.txt - | | | `- src/README.txt + | | | |- include/README.txt + | | | `- src/README.txt | | |- mbed/ - | | | `- README.txt + | | | `- README.txt | | |- mcu123-lpc214x/ - | | | |- include/README.txt - | | | |- src/README.txt - | | | `- README.txt + | | | |- include/README.txt + | | | |- src/README.txt + | | | `- README.txt | | |- mx1ads/ - | | | |- include/README.txt - | | | |- src/README.txt - | | | `- README.txt + | | | |- include/README.txt + | | | |- src/README.txt + | | | `- README.txt | | |- ne64badge/ - | | | `- README.txt + | | | `- README.txt | | |- ntosd-dm320/ - | | | |- doc/README.txt - | | | |- include/README.txt - | | | |- src/README.txt - | | | `- README.txt + | | | |- doc/README.txt + | | | |- include/README.txt + | | | |- src/README.txt + | | | `- README.txt | | |- nucleus2g/ - | | | `- README.txt + | | | `- README.txt | | |- olimex-lpc1766stk/ - | | | `- README.txt + | | | `- README.txt | | |- olimex-lpc2378/ - | | | |- include/README.txt - | | | `- README.txt + | | | |- include/README.txt + | | | `- README.txt | | |- olimex-strp711/ - | | | |- include/README.txt - | | | |- src/README.txt - | | | `- README.txt + | | | |- include/README.txt + | | | |- src/README.txt + | | | `- README.txt | | |- pjrc-8051/ - | | | |- include/README.txt - | | | |- src/README.txt - | | | `- README.txt + | | | |- include/README.txt + | | | |- src/README.txt + | | | `- README.txt | | |- qemu-i486/ - | | | |- include/README.txt - | | | |- src/README.txt - | | | `- README.txt + | | | |- include/README.txt + | | | |- src/README.txt + | | | `- README.txt | | |- sam3u-ek/ - | | | `- README.txt + | | | `- README.txt | | |- sim/ - | | | |- include/README.txt - | | | |- src/README.txt - | | | `- README.txt + | | | |- include/README.txt + | | | |- src/README.txt + | | | `- README.txt | | |- skp16c26/ - | | | |- include/README.txt - | | | |- src/README.txt - | | | `- README.txt + | | | |- include/README.txt + | | | |- src/README.txt + | | | `- README.txt | | |- stm3210e-eval/ - | | | |- include/README.txt - | | | |- RIDE/README.txt - | | | |- src/README.txt - | | | `- README.txt + | | | |- include/README.txt + | | | |- RIDE/README.txt + | | | |- src/README.txt + | | | `- README.txt | | |- us7032evb1/ - | | | |- bin/README.txt - | | | |- include/README.txt - | | | |- src/README.txt - | | | `- README.txt + | | | |- bin/README.txt + | | | |- include/README.txt + | | | |- src/README.txt + | | | `- README.txt | | |- vsn/ - | | | |- src/README.txt - | | | `- README.txt + | | | |- src/README.txt + | | | `- README.txt | | |- xtrs/ - | | | |- include/README.txt - | | | |- src/README.txt - | | | `- README.txt + | | | |- include/README.txt + | | | |- src/README.txt + | | | `- README.txt | | |- z16f2800100zcog/ - | | | |- ostest/README.txt - | | | |- pashello/README.txt - | | | `- README.txt + | | | |- ostest/README.txt + | | | |- pashello/README.txt + | | | `- README.txt | | |- z80sim/ - | | | |- include/README.txt - | | | |- src/README.txt - | | | `- README.txt + | | | |- include/README.txt + | | | |- src/README.txt + | | | `- README.txt | | |- z8encore000zco/ - | | | |- ostest/README.txt - | | | `- README.txt + | | | |- ostest/README.txt + | | | `- README.txt | | |- z8f64200100kit/ - | | | |- ostest/README.txt - | | | `- README.txt - | | `- README.txt + | | | |- ostest/README.txt + | | | `- README.txt + | | `- README.txt | |- drivers/ - | | `- README.txt + | | `- README.txt + | |- fs/ + | | `- nxffs/ + | | `- README.txt | |- graphics/ - | | `- README.txt + | | `- README.txt | |- lib/ - | | `- README.txt + | | `- README.txt | |- libxx/ - | | `- README.txt + | | `- README.txt | |- syscall/ - | | `- README.txt + | | `- README.txt | `- tools/ - | `- README.txt + | `- README.txt `- apps/ |- netutils/ - | | |- telnetd/README.txt - | `- README + | | |- telnetd/README.txt + | `- README |- nshlib/ - | |- README.txt + | |- README.txt |- examples/ - | |- pashello/README.txt - | `- README.txt + | |- pashello/README.txt + | `- README.txt `- vsn/ - |- free/README.txt - |- hello/README.txt - |- poweroff/README.txt - |- ramtron/README.txt - |- sdcard/README.txt - `- README.txt + |- free/README.txt + |- hello/README.txt + |- poweroff/README.txt + |- ramtron/README.txt + |- sdcard/README.txt + `- README.txt From f876df103939f7f9e6726441b133795201f11885 Mon Sep 17 00:00:00 2001 From: patacongo Date: Fri, 6 May 2011 19:04:31 +0000 Subject: [PATCH 0782/1518] Prep for 6.2 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3571 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 284 ++++++++++++++------------------------- 1 file changed, 100 insertions(+), 184 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 8936c0841d..4d5691b082 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

      NuttX RTOS

      -

      Last Updated: April 28, 2011

      +

      Last Updated: May 6, 2011

      @@ -420,6 +420,13 @@
    21. FAT12/16/32 filesystem support.
    22. + +
      + +

      +

    23. NXFFS. the NuttX wear-leveling FLASH file system.
    24. +

      +
      @@ -530,6 +537,13 @@
    25. FTL. Simple Flash Translation Layer support file systems on FLASH.
    26. + +
      + +

      +

    27. NXFFS. the NuttX wear-leveling FLASH file system.
    28. +

      +
      @@ -815,74 +829,45 @@ -

      nuttx-6.1 Release Notes: +

      nuttx-6.2 Release Notes:

      - The 68th release of NuttX, Version 6.1, was made on April 10, 2011 and is available for download from the + The 69th release of NuttX, Version 6.2, was made on May 6, 2011 and is available for download from the SourceForge website. The change log associated with the release is available here. Unreleased changes after this release are available in SVN. - These unreleased changes are listed here. + These unreleased changes are also listed here.

      - The 6.0 release introduced a detach-able application environment to build applications outside of the NuttX source tree. - The primary purpose of this release is to correct numerous build problems introduced by that architectural change: + The 6.2 NuttX release includes several new features:

      • - In many newer environments, NuttX produced strange Makefile errors but built correctly in older environments. - A fix provided by Rafael Noronha was incorporated and is reported to fix those build problems. + NXFFS: The obvious new feature is NXFFS, the NuttX wear-leveling FLASH file system. + This new file system is intended to be small for the MCU usage and has some limitations. + No formal documentation of NXFFS yet exists. + See the fs/nxffs/README.txt + file for more details.
      • - The apps/ directory build system would not handle Windows-native toolchains due to obscure path formatting issues. + Support for NXP LPCXpresso LPC1768 board on the Embedded Artists base board. + The Code Red toolchain is supported under either Linux or Windows. + Verifed configurations include DHCPD, the NuttShell (NSH), NuttX graphis (NX), the NuttX OS test, THTTPD, and USB mass storage device.
      • - And other problems as detailed in the change log. + Support for the Univision UG-9664HSWAG01 OLED with Solomon Systech SD1305 LCD controller. +
      • +
      • + A new RAM MTD driver with FLASH simulation capability. +
      • +
      • + A version.h file is now automatically generated so that C code can now be version-aware.
      -

      - Many additional changes were made in the 6.1 release for another major architectural change: - NuttX will now build as a seperately linked micro-kernel. - In this build option the RTOS builds as a kernel, applications build separtate and interface with kernel via system calls. - Applications run in user mode and kernel logic users in kernel-mode. - This provides a secure environment for NuttX. - This feature is fully coded in NuttX-6.1, but has not been tested due to higher priority tasks that have arisen. -

      -

      - Related to this change, support for the Cortex-M3 memory protection unit (MPU) has been integrated with the NuttX kernel build to provide an even higher level of security. -

      -

      - NOTE: This kernel build is an option; the default build configuration is still the standard, flat, unsecured RTOS as in previous releases. -

      -

      - Additional new features in this release: -

      -
        -
      • - Support for LPC17xx GPIO interrupts (with much support from Decio Renno). -
      • -
      • - Basic timer support for STM32 (Contributed by Uros Platise) -
      • -
      • - A binfs file system. - This is a tiny psuedo file system that lets named appliations to be viewed and accessed in NSH under the /bin directory. -
      • -
      • - An I2C-based driver for the LIS331DL MEMS motion sensor (Contributed by Uros Platise). -
      • -
      • - A board configuration for the Embedded Artists LPCXpresso LPC1768 board. -
      • -
      • - The user_initialize() interface has been removed. -
      • -
      - -

      - And several bugfix are included. - This includes chagnes associated with SD drivers, openddir(), signed 8-bit types (int8_t), and USB serial device. See the ChangeLog for details. + In addition to these new feature, several important bugfixes are included in this release correcting problems with + dup2(), LPC17xx GPIO interrupts, LPC17xx UART2/3, the FAT file system, build issues, and strrch(). + See the ChangeLog for more details.

      @@ -1342,7 +1327,7 @@

      - The Nucleus 2G and the mbed boards feature the NXP LPC1768 MCU; + The Nucleus 2G boar, the mbed board, and the LPCXpresso all feature the NXP LPC1768 MCU; the Olimex LPC1766-STK board features an LPC1766. All use a GNU arm-elf or arm-eabi toolchain* under either Linux or Cygwin (with native Windows GNU tools or Cygwin-based GNU tools).

      @@ -1352,8 +1337,9 @@ The following summarizes the features that has been developed and verified on individual LPC17xx-based boards. These features should, however, be common and available for all LPC17xx-based boards.

      -

      - Nucleus2G LPC1768. +

        +
      1. +

        Nucleus2G LPC1768

        • Some initial files for the LPC17xx family were released in NuttX 5.6, but @@ -1374,8 +1360,9 @@ However, due to some technical reasons, neither the SPI nor the USB device drivers are fully verified. (Although they have since been verfiied on other platforms; this needs to be revisited on the Nucleus2G).

          -

          - mbed LPC1768. +

        • +
        • +

          mbed LPC1768

          • Support for the mbed board was contributed by Dave Marples and released in NuttX-5.11. @@ -1385,8 +1372,9 @@

            This port includes a NuttX OS test configuration (see apps/examples/ostest).

            -

            - Olimex LPC1766-STK. +

          • +
          • +

            Olimex LPC1766-STK

            • Support for that Olimex-LPC1766-STK board was added to NuttX 5.13. @@ -1405,16 +1393,7 @@

            -

            - Embedded Artists base board with NXP LPCXpresso LPC1768. -

              -
            • - An initial board configuration is included in NuttX-6.1. - However, certain Code Red download issues have not yet been resolved and the port has not yet been tested. -
            • -
            -

            -

            +

              Verified configurations are now available for the NuttX OS test, for the NuttShell with networking and microSD support(NSH, see the NSH User Guide), for the NuttX network test, for the THTTPD webserver, @@ -1422,16 +1401,25 @@ Support for the USB host mass storage device can optionally be configured for the NSH example. A driver for the Nokia 6100 LCD and an NX graphics configuration for the Olimex LPC1766-STK have been added. However, neither the LCD driver nor the NX configuration have been verified as of the the NuttX-5.17 release. -

              +

            +
          • +
          • +

            Embedded Artists base board with NXP LPCXpresso LPC1768

            +
              + An fully verified board configuration is included in NuttX-6.2. + The Code Red toolchain is supported under either Linux or Windows. + Verifed configurations include DHCPD, the NuttShell (NSH), NuttX graphis (NX), the NuttX OS test, THTTPD, and USB mass storage device. +
            +
          • +

      Development Environments: 1) Linux with native Linux GNU toolchain, 2) Cygwin with Cygwin GNU toolchain, or 3) Cygwin - with Windows native toolchain (CodeSourcery or devkitARM). A DIY toolchain for Linux + with Windows native toolchain (CodeSourcery devkitARM or Code Red). A DIY toolchain for Linux or Cygwin is provided by the NuttX buildroot package.

      - @@ -2095,109 +2083,7 @@ Other memory:
        -nuttx-6.1 2011-04-10 Gregory Nutt <spudmonkey@racsa.co.cr>
        -
        -    * arch/arm/include/lpc17xx/irq.h and arch/arm/src/lpc17xx/lpc17_gpio*.c:
        -      Fix several bugs in the GPIO interrupt logic.  Submited by
        -      Decio Renno.
        -    * Initialization for the CONFIG_APPS_DIR is now supported during the
        -      earlier, 'context' build phase.
        -    * arch/arm/src/lpc17_gpioint.c: Finish coding of the LPC17xx GPIO
        -      interrupt logic.
        -    * net/netdev_unregister.c: Add capability to un-register a network
        -      device.
        -    * drivers/mmcsd/mmcsd_sdio.c: extra effort to correctly handle cases
        -      without the SDcard (but one issue still exists in STM32)
        -    * arch/arm/src/stm32/stm32_tim.*: Added basic timer support TIM1..TIM8
        -      with output PWMs and interrupt logic
        -    * config/vsn/src: added basic support for Sensor Interface (GPIO and
        -      PWM Power Output, and the sif utility program)
        -    * fs/: Reorgnize header so that file systems can be built outside
        -      of the nuttx source tree
        -    * apps/namedapp/binfs.c: Create a tiny filesystem that can be used
        -      to show the internal named apps under /bin.
        -    * fs/fs_opendir.c: Correct an error that occurs when a file system is
        -      mounted in the root directory.  This was discovered while mounting
        -      the named app's /bin directory.
        -    * lib/: Move all source files into a subdirectory of lib/ named after
        -      the header file in which the library function is prototyped.
        -    * sched/ and lib/pthread/:  Move pthread attribute-related interfaces
        -      from sched/ to lib/pthread where they more appropriately belong.
        -    * sched/ and lib/semaphore/:  Move some semaphore-related interfaces
        -      from sched/ to lib/pthread where they more appropriately belong.
        -    * syscall/: The beginnings of an optional syscall kernel interface.
        -    * tools/mksyscall.c:  Add a tool that will auto-generate syscall proxies
        -      and stubs from a comma-separated-value (CSV) data file.
        -    * arch/arm/src/cortexm3/mpu.h: Add a header file describing the Cortex-M3
        -      MPU registers.
        -    * Numerous modifications to the build system.  Various people have reported
        -      build problems since the re-organization and release of NuttX-6.0.  I am
        -      unable to replicate the build problems in my environment, but the changes
        -      have be incorporated in hope of correcting the build issues in other
        -      environments.
        -    * drivers/i2c/st_lis331dl.c:  I2C-based driver for the LIS331DL MEMS
        -      motion sensor.  Contributed by Uros Platise.
        -    * Makefile: The NuttX build system  will now supported building NuttX as two
        -      separately linked images: (1) a kernel-mode RTOS image, and (2) a user-
        -      mode application image that communicates to the RTOS kernel via system
        -      calls.  A lot more still must be done.
        -    * user_initialize(): Eliminated the user_initialize() initialization hook.
        -      It is difficult to maintain and redundant:  Board level initialization
        -      an up_initialize() provide the same kind of capability.
        -    * arch/*/include/*/type.h: On some compilers, char defaults as unsigned.
        -      Explicitly add signed to integer types if signed is what is required.
        -    * arch/*: For all architectures -- Global register state save structure
        -      (usually called current_regs) should be marked volatile; Added general
        -      capability to support nested interrupts (not fully realized for all
        -      architectures).
        -    * sched/task_create.c: Add support for starting kernel-mode thread.
        -    * drivers/usbdev/usbdev_serial.c: Fix reported by Sheref Younan.  USB
        -      was being reset after serial driver was closed.  As a result, you could
        -      no reopen the serial driver.
        -    * configs/lpcxpresso-lpc1768: Add a board configuration for the Embedded
        -      Artists LPCXpresso LPC1768 board.
        -
        -apps-6.1 2011-04-10 Gregory Nutt <spudmonkey@racsa.co.cr>
        -
        -    * Creation of auto-generated header files now occurs during the context
        -      build phase.
        -    * Added sdcard insert and eject, nsh command '?' and some code remarks
        -    * Renamed nuttapp to namedapp
        -    * namedapp/binfs.c -- Create a tiny filesystem that can be used
        -      to show the internal named apps under /bin.
        -    * Numerous fixes to build system required to support building with native
        -      Windows toolchain.
        -
        -pascal-2.0 2009-12-21 Gregory Nutt <spudmonkey@racsa.co.cr>
        -
        -    * Updated to use standard C99 types in stdint.h and
        -      stdbool.h.  This change was necessary for compatibility
        -      with NuttX-5.0 (any beyond).
        -
        -buildroot-1.9 2011-02-10 <spudmonkey@racsa.co.cr>
        -
        -    * configs/arm926t-defconfig-4.3.3: update arm926t-defconfig-4.2.4
        -    * configs/arm926t-defconfig-nxflat: NXFLAT-only configuration for
        -      arm926
        -    * toolchain/gdb/gdb.mk - Remove ncurses dependency from gdb_target target.
        -    * toolchain/gdb/gdb.mk - Added --disable-werror to GDB configuration line.
        -      GDB 6.8 won't build because the tarbal was released with -Werror enabled and
        -      the build stops on the first warning.
        -    * Add support for Freescale m9s12x using binutils 2.18 and gcc 3.3.6 and
        -      patches available from http://www.msextra.com/tools courtesy of James
        -      Cortina.  Add configs/m9x12x-defconfig-3.3.6.
        -
      - - - - - -
      - Unreleased Changes -
      - -
        -nuttx-6.2 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
        +nuttx-6.2 2011-05-06 Gregory Nutt <spudmonkey@racsa.co.cr>
         
             * arch/arm/src/lpc17xx/lpc17_gpioint.c: Correct errors in logic that maps
               and IRQ number into a register bit number.
        @@ -2215,7 +2101,7 @@ nuttx-6.2 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
                 -     __exidx_start = ABSOLUTE(.);
                       *(.ARM.exidx*)
                 -     __exidx_end = ABSOLUTE(.);
        -        } >sram
        +        } >sram
                 +  __exidx_end = ABSOLUTE(.);
         
             * arch/arm/src/lpc17xx: Correct some typos/bugs in configuration of LPC17xx
        @@ -2229,8 +2115,8 @@ nuttx-6.2 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
             * sched/clock_getutc() and lib/time/lib_time.c: Add support for 1 second UTC
               interface.
             * net/net_dup2.c and include/nuttx/net.h: The conditional compilation for
        -      '#if CONFIG_NFILE_DESCRIPTOR > 0' was wrong in both of these files.  It should
        -      be '#if CONFIG_NFILE_DESCRIPTORS > 0'.  This causes a dup2() failure in THTTPD
        +      '#if CONFIG_NFILE_DESCRIPTOR > 0' was wrong in both of these files.  It should
        +      be '#if CONFIG_NFILE_DESCRIPTORS > 0'.  This causes a dup2() failure in THTTPD
               and a failure to get a CGI page.  The consequence can be a very serious bug!
             * configs/lpcxpresso-lpc1768/usbstorage, thttpd, and dhcpd: Add an USB storage,
               THTTPD web server, and DHCP server configurations for the NXP LPCXpresso board.
        @@ -2239,7 +2125,7 @@ nuttx-6.2 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
             * configs/lpcxpresso-lpc1668/nx: Add a NX graphics configuration for the LPCXPRESO
               board.
             * graphics/nxglib/nxglib_nonintersecting.c: Fix some single bit errors in
        -      calculation of non-intersecting regions.  This was causing an anomoaly
        +      calculation of non-intersecting regions.  This was causing an anomaly
               in examples/nx in column 0.
             * drivers/mtd/rammtd.c: Added a RAM based MTD driver.  This RAM driver simulates
               FLASH and is useful for testing purposes.
        @@ -2249,17 +2135,30 @@ nuttx-6.2 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
             * fs/nxffs: Adding a tiny, wear-leveling FLASH file system for NuttX.  This
               file system is intended to be small and will have some limitations.  The
               implementation is incomplete on initial checkin.
        +    * apps/examples/nxffs and configs/sim/nxffs:  Add a test a a configuration that
        +      will be used to verify NXFFS.
        +    * fs/fat/fs_fat32.c and fs_fat32util.c: Incorpated two bugs with fixed provided
        +      by Sheref Younan.  Thanks!
        +    * fs/nxffs: After a couple of weeks of testing and bug fixes, NXFSS appears
        +      stable and functional.
         
        -apps-6.2 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
        +apps-6.2 2011-05-06 Gregory Nutt <spudmonkey@racsa.co.cr>
         
        -pascal-2.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
        +    * apps/examples/nxffs:  Add a test a a configuration that will be used to
        +      verify NXFFS.
         
        -buildroot-1.10 2011-xx-xx <spudmonkey@racsa.co.cr>
        +pascal-2.0 2009-12-21 Gregory Nutt <spudmonkey@racsa.co.cr>
        +
        +    * Updated to use standard C99 types in stdint.h and
        +      stdbool.h.  This change was necessary for compatibility
        +      with NuttX-5.0 (any beyond).
        +
        +buildroot-1.10 2011-05-06 <spudmonkey@racsa.co.cr>
         
             * Add patch submitted by Dimiter Georgiev to work around problems in building
               GDB 6.8 with versions of Cygwin > 1.7.
             * configs/i486-defconfig-4.3.3 - Builds an i486 cross development toolchain
        -      using gcc 4.3.3.  Why would you want such a thing?  On Linux, of course,
        +      using gcc 4.3.3.  Why wouldyou want such a thing?  On Linux, of course,
               such a thing is not needed because you can use the installed GCC to build
               i486 ELF binaries.  But that will not work under Cygwin!  The Cygwin
               toolchain (and probably MinGW), build DOS MZ format executables (i.e.,
        @@ -2276,8 +2175,25 @@ buildroot-1.10 2011-xx-xx <spudmonkey@racsa.co.cr>
             * toolchain/binutils/2.21 and toolchain/gcc/4.5.2 - Add support for GCC
               4.5.2 with binutils 2.21.
             * configs/arm920t-eabi-defconfig-4.5.2 - Add a configuration to build a
        -      GCC 4.5.2 EABI ARM toolchain for the ARM920.
        +      GCC 4.5.2 EABI ARM toolchain for the ARM920t.
        +
      + + + + +
      + Unreleased Changes +
      + +
        +nuttx-6.3 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
        +
        +apps-6.3 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
        +
        +pascal-2.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
        +
        +buildroot-1.11 2011-xx-xx <spudmonkey@racsa.co.cr>
         
      From 66d5081229c2737bd5633905213096cf552c08ea Mon Sep 17 00:00:00 2001 From: patacongo Date: Fri, 6 May 2011 21:10:00 +0000 Subject: [PATCH 0783/1518] More timer changes from Uros git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3572 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 87 +++++++++++++++++++++++++++- 1 file changed, 86 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 4f9b0694f8..c7a56927fb 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -91,7 +91,8 @@ 4.1.16 up_disable_irq()
      4.1.17 up_enable_irq()
      4.1.18 up_prioritize_irq()
      - 4.1.19 up_putc() + 4.1.19 up_putc()
      + 4.1.20 System Time and Clock 4.2 APIs Exported by NuttX to Architecture-Specific Logic
        @@ -1642,6 +1643,90 @@ The system can be re-made subsequently by just typing make. Output one character on the console

        +

        4.1.20 System Time and Clock

        + +

        4.1.20.1 UTC Time Representation

        +

        + To enable UTC time representation use option: +

        +
          +CONFIG_SYSTEM_UTC=y
          +
        +

        + which adds the following variables: +

        +
          +
        • g_system_utc (seconds, 4 bytes)
        • +
        • g_tickcount (timer ticks, 1-2 bytes typically)
        • +
        +

        + and replaces: +

        +
          +
        • g_system_timer(4 bytes)
        • +
        • g_basetime(8 bytes)
        • +
        • g_tickbias(4 bytes)
        • +
        +

        + Otherwise internal time is computed from 32-bit running tick timer + g_systemtimer the start date g_basetime and time offset the g_tickbias. +

        + +

        4.1.20.2 Hardware

        +

        + To enable hardware module use option: +

        +

          +CONFIG_RTC=y
          +
        +

        + which requires the following three base functions to read time: +

        +
          +
        • up_rtcinitialize()
        • +
        • up_rtc_gettime(). UTC time in seconds.
        • +
        • up_rtc_getclock(). Replacement for g_system_tick
        • +
        +

        + This module depends on CONFIG_SYSTEM_UTC=y. +

        + +

        4.1.20.3 System Tick and Time

        +

        + The system tick is represented by, when CONFIG_SYSTEM_UTC=n: +

        +
          +
        • g_system_timer
        • +
        +

        + or, when CONFIG_SYSTEM_UTC=y +

        +
          +
        • g_tickcount
        • +
        • g_system_utc
        • +
        +

        + Running at rate of system base timer, used for time-slicing, and so forth. +

        +

        + If hardware RTC is present (CONFIG_RTC) and enabled, then after successful + initiliazation variables are overriden by calls to up_rtc_getclock() which is + running continously even in power-down modes. +

        +

        + In the case of CONFIG_RTC is set the g_tickcount and g_system_utc keep + counting at rate of a system timer, which however, is disabled in power-down + mode. By comparing this time and RTC (actual time) one may determine the + actual system active time. To retrieve that variable use: +

        +
          +  
        • clock_gettime(CLOCK_ACTIVETIME, tp) +
        +

        + If the CLOCK_ACTIVETIME time is never set it will serve as power-up time + minus all deep sleeps. +

        +

        4.2 APIs Exported by NuttX to Architecture-Specific Logic

        These are standard interfaces that are exported by the OS From 0552c1279bd3b0d60e730ea7a52ef123eca3e3c2 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 7 May 2011 16:59:20 +0000 Subject: [PATCH 0784/1518] Add STM32 FLASH driver git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3573 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 47 +++++++++++++++++++++++++--- 1 file changed, 42 insertions(+), 5 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index c7a56927fb..70bdab5379 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

        NuttX RTOS Porting Guide

        -

        Last Updated: April 14, 2011

        +

        Last Updated: May 6, 2011

      @@ -886,6 +886,9 @@ fs/ |-- fat/ | |-- Make.defs | `-- (fat file system source files) +|-- nxffs/ +| |-- Make.defs +| `-- (NXFFS file system source files) |-- romfs/ | |-- Make.defs | `-- (romfs file system source files) @@ -1949,7 +1952,8 @@ extern void up_ledoff(int led); NuttX supports the standard mount() command that allows a block driver to be bound to a mountpoint within the pseudo file system and to a file system. - At present, NuttX supports only the VFAT file system. + At present, NuttX supports the standard VFAT and ROMFS file systems and + well as a special, wear-leveling NuttX FLASH File System (NXFFS).

      Comparison to Linux @@ -3120,7 +3124,7 @@ build

    29. CONFIG_NXFLAT: Enable support for the NXFLAT binary format. This format will support execution of NuttX binaries located - in a ROMFS filesystem (see apps/examples/nxflat). + in a ROMFS file system (see apps/examples/nxflat).
    30. CONFIG_SCHED_WORKQUEUE: Create a dedicated "worker" thread to @@ -3435,13 +3439,46 @@ build

      File Systems

      • - CONFIG_FS_FAT: Enable FAT filesystem support. + CONFIG_FS_FAT: Enable FAT file system support.
      • CONFIG_FAT_SECTORSIZE: Max supported sector size.
      • - CONFIG_FS_ROMFS: Enable ROMFS filesystem support + CONFIG_FS_NXFFS: Enable NuttX FLASH file system (NXFF) support. +
      • +
      • + CONFIG_NXFFS_ERASEDSTATE: The erased state of FLASH. + This must have one of the values of 0xff or 0x00. + Default: 0xff. +
      • +
      • + CONFIG_NXFFS_PACKTHRESHOLD: When packing flash file data, + don't both with file chunks smaller than this number of data bytes. + Default: 32. +
      • +
      • + CONFIG_NXFFS_MAXNAMLEN: The maximum size of an NXFFS file name. + Default: 255. +
      • +
      • + CONFIG_NXFFS_PACKTHRESHOLD: When packing flash file data, + don't both with file chunks smaller than this number of data bytes. + Default: 32. +
      • +
      • + CONFIG_NXFFS_TAILTHRESHOLD: clean-up can either mean + packing files together toward the end of the file or, if file are + deleted at the end of the file, clean up can simply mean erasing + the end of FLASH memory so that it can be re-used again. However, + doing this can also harm the life of the FLASH part because it can + mean that the tail end of the FLASH is re-used too often. This + threshold determines if/when it is worth erased the tail end of FLASH + and making it available for re-use (and possible over-wear). + Default: 8192. +
      • +
      • + CONFIG_FS_ROMFS: Enable ROMFS file system support
      From 67ec4659d1b67b3f8ada8fd884023fe5f0763890 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 8 May 2011 14:42:42 +0000 Subject: [PATCH 0785/1518] Complets ram mapping logic git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3578 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttXNxFlat.html | 10 +- Documentation/NuttxPortingGuide.html | 7 +- Documentation/NuttxUserGuide.html | 198 ++++++++++++++++++++------- Documentation/README.html | 4 +- 4 files changed, 167 insertions(+), 52 deletions(-) diff --git a/Documentation/NuttXNxFlat.html b/Documentation/NuttXNxFlat.html index b08b658016..d6ada4e9b7 100644 --- a/Documentation/NuttXNxFlat.html +++ b/Documentation/NuttXNxFlat.html @@ -10,7 +10,7 @@

      NXFLAT

      >>> Under Construction <<<

      -

      Last Updated: March 20, 2011

      +

      Last Updated: May 8, 2011

      @@ -193,10 +193,12 @@

      1.3 Limitations

        -
      • ROMFS Only. - The initial NXFLAT release will work only with executable modules residing on a ROMFS - file system. +
      • ROMFS (or RAM maps) Only. + The initial NXFLAT release will work only with wither (1) executable modules residing on a ROMFS + file system, or (2) executables provided on other file systems provided that CONFIG_FS_RAMMAP + is defined. That is because the loader depends on the capability to mmap() the code segment. + See the NuttX User Guide for further information. NUTTX does not provide any general kind of file mapping capability. In fact, true file mapping is only possible with RTOSs and MCUs that provide an MMU1 and only ROMFS supports that kind of XIP execution from FLASH. diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 70bdab5379..8d237f8de5 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

        NuttX RTOS Porting Guide

        -

        Last Updated: May 6, 2011

        +

        Last Updated: May 8, 2011

        @@ -3480,6 +3480,11 @@ build
      • CONFIG_FS_ROMFS: Enable ROMFS file system support
      • +
      • + CONFIG_FS_RAMMAP: For file systems that do not support + XIP, this option will enable a limited form of memory mapping that is + implemented by copying whole files into memory. +

      Device Drivers

      diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 53bdad919d..8e97173114 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -13,7 +13,7 @@

      NuttX Operating System

      User's Manual

      by

      Gregory Nutt

      -

      Last Updated: December 13, 2009

      +

      Last Updated: May 8, 2011

      @@ -747,10 +747,10 @@ interface of the same name. priority of the calling task is set.
    31. - policy. Scheduling policy requested (either SCHED_FIFO or SCHED_RR). + policy. Scheduling policy requested (either SCHED_FIFO or SCHED_RR).
    32. - param. A structure whose member sched_priority is the + param. A structure whose member sched_priority is the integer priority. The range of valid priority numbers is from SCHED_PRIORITY_MIN through SCHED_PRIORITY_MAX.
    33. @@ -1213,7 +1213,7 @@ of the same name.

      Description: This function removes the message queue named by "mqName." If one or more tasks have the message queue -open when mq_unlink() is called, removal of the message queue +open when mq_unlink() is called, removal of the message queue is postponed until all references to the message queue have been closed.

      @@ -1341,7 +1341,7 @@ interface of the same name.

      If the message queue is full, and the timeout has already expired by the time - of the call, mq_timedsend() returns immediately. + of the call, mq_timedsend() returns immediately.

      Input Parameters: @@ -1483,8 +1483,8 @@ interface of the same name. priority that has waited the longest will be unblocked.

      - mq_timedreceive() behaves just like mq_receive(), except - that if the queue is empty and the O_NONBLOCK flag is not enabled + mq_timedreceive() behaves just like mq_receive(), except + that if the queue is empty and the O_NONBLOCK flag is not enabled for the message queue description, then abstime points to a structure which specifies a ceiling on the time for which the call will block. This ceiling is an absolute timeout in seconds and nanoseconds since the Epoch @@ -2681,7 +2681,7 @@ VxWorks provides the following comparable interface: the location referenced by timerid, a timer ID of type timer_t used to identify the timer in timer requests. This timer ID is unique until the timer is deleted. - The particular clock, clock_id, is defined in <time.h>. + The particular clock, clock_id, is defined in <time.h>. The timer whose ID is returned will be in a disarmed state upon return from timer_create().

      @@ -4425,7 +4425,7 @@ interface of the same name.

      The policy parameter may have the value SCHED_FIFO or SCHED_RR (SCHED_OTHER and SCHED_SPORADIC, in particular, are not supported). - The SCHED_FIFO and SCHED_RR policies will have a single + The SCHED_FIFO and SCHED_RR policies will have a single scheduling parameter, sched_priority.

      @@ -4502,8 +4502,8 @@ interface of the same name.

    34. policy. The new scheduling policy of the thread. - Either SCHED_FIFO or SCHED_RR. - SCHED_OTHER and SCHED_SPORADIC are not supported. + Either SCHED_FIFO or SCHED_RR. + SCHED_OTHER and SCHED_SPORADIC are not supported.
    35. param. @@ -5141,7 +5141,7 @@ interface of the same name. Input Parameters:

        -
      • param.
      • +
      • mutex.

      Returned Values: @@ -6233,7 +6233,7 @@ interface of the same name.

      • CONFIG_NET_TCPBACKLOG - Incoming connections pend in a backlog until accept() is called. + Incoming connections pend in a backlog until accept() is called. The size of the backlog is selected when listen() is called.

      @@ -6505,7 +6505,7 @@ void *memmove(void *dest, const void *src, size_t count);

    36. pathname. The full path to the FIFO instance to attach to or to create (if not already created).
    37. -
    38. mode. +
    39. mode. Ignored for now
    40. @@ -6599,26 +6599,132 @@ struct fat_format_s

      2.11.9 mmap() and eXecute In Place (XIP)

      - NuttX operates in a flat open address space. - Therefore, it generally does not require mmap() functionality. - There is one one exception: - mmap() is the API that is used to support direct access to random - access media under the following very restrictive conditions: -

        -
      1. - The file-system supports the FIOC_MMAP ioctl command. - Any file system that maps files contiguously on the media should support this - ioctl command. - By comparison, most file system scatter files over the media in non-contiguous - sectors. As of this writing, ROMFS is the only file system that meets this requirement. -
      2. -
      3. - The underlying block driver supports the BIOC_XIPBASE ioctl command - that maps the underlying media to a randomly accessible address. - At present, only the RAM/ROM disk driver does this. -
      4. -
      + NuttX operates in a flat open address space and is focused on MCUs that do + support Memory Management Units (MMUs). Therefore, NuttX generally does not + require mmap() functionality and the MCUs generally cannot support true + memory-mapped files.

      +

      + However, memory mapping of files is the mechanism used by NXFLAT, the NuttX + tiny binary format, to get files into memory in order to execute them. + mmap() support is therefore required to support NXFLAT. + There are two conditions where mmap() can be supported: +

      +
        +
      1. +

        + mmap() can be used to support eXecute In Place (XIP) on random access media + under the following very restrictive conditions: +

        +
          +
        1. +

          + The file-system supports the FIOC_MMAP ioctl command. + Any file system that maps files contiguously on the media should support this + ioctl command. + By comparison, most file system scatter files over the media in non-contiguous + sectors. As of this writing, ROMFS is the only file system that meets this requirement. +

          +
        2. +
        3. +

          + The underlying block driver supports the BIOC_XIPBASE ioctl command + that maps the underlying media to a randomly accessible address. + At present, only the RAM/ROM disk driver does this. +

          +
        4. +
        +

        + Some limitations of this approach are as follows: +

        +

          +
        1. +

          + Since no real mapping occurs, all of the file contents are "mapped" into memory. +

          +
        2. +
        3. +

          + All mapped files are read-only. +

          +
        4. +
        5. +

          + There are no access privileges. +

          +
        6. +
        +
      2. +
      3. +

        + If CONFIG_FS_RAMMAP is defined in the configuration, then mmap() will + support simulation of memory mapped files by copying files whole into RAM. + These copied files have some of the properties of standard memory mapped files. + There are many, many exceptions exceptions, however. + Some of these include: +

        +
          +
        1. +

          + The goal is to have a single region of memory that represents a single + file and can be shared by many threads. That is, given a filename a + thread should be able to open the file, get a file descriptor, and + call mmap() to get a memory region. Different file descriptors opened + with the same file path should get the same memory region when mapped. +

          +

          + The limitation in the current design is that there is insufficient + knowledge to know that these different file descriptors correspond to + the same file. So, for the time being, a new memory region is created + each time that rammmap() is called. Not very useful! +

          +
        2. +
        3. +

          + The entire mapped portion of the file must be present in memory. + Since it is assumed the the MCU does not have an MMU, on-demanding + paging in of file blocks cannot be supported. Since the while mapped + portion of the file must be present in memory, there are limitations + in the size of files that may be memory mapped (especially on MCUs + with no significant RAM resources). +

          +
        4. +
        5. +

          + All mapped files are read-only. You can write to the in-memory image, + but the file contents will not change. +

          +
        6. +
        7. +

          + There are no access privileges. +

          +
        8. +
        9. +

          + Since there are no processes in NuttX, all mmap() and munmap() + operations have immediate, global effects. Under Linux, for example, + munmap() would eliminate only the mapping with a process; the mappings + to the same file in other processes would not be effected. +

          +
        10. +
        11. +

          + Like true mapped file, the region will persist after closing the file + descriptor. However, at present, these ram copied file regions are + not automatically "unmapped" (i.e., freed) when a thread is terminated. + This is primarily because it is not possible to know how many users + of the mapped region there are and, therefore, when would be the + appropriate time to free the region (other than when munmap is called). +

          +

          + NOTE: Note, if the design limitation of a) were solved, then it would be + easy to solve exception d) as well. +

          +
        12. +
        +
      4. +

      2.11.9.1 mmap

      @@ -6952,7 +7058,7 @@ Those socket APIs are discussed in the following paragraphs.

      To accept connections, a socket is first created with socket(), a willingness to accept incoming connections and a queue limit for incoming connections are specified with listen(), and then the connections are - accepted with accept(). The listen() call applies only to sockets of + accepted with accept(). The listen() call applies only to sockets of type SOCK_STREAM or SOCK_SEQPACKET.

      @@ -7280,11 +7386,11 @@ Those socket APIs are discussed in the following paragraphs.

      Input Parameters:

        -
      • sockfd: Socket descriptor of socket -
      • level: Protocol level to set the option -
      • option: identifies the option to set -
      • value: Points to the argument value -
      • value_len: The length of the argument value +
      • sockfd: Socket descriptor of socket
      • +
      • level: Protocol level to set the option
      • +
      • option: identifies the option to set
      • +
      • value: Points to the argument value
      • +
      • value_len: The length of the argument value

      Returned Values: @@ -7337,17 +7443,17 @@ Those socket APIs are discussed in the following paragraphs.

      SOL_SOCKET.

      - See sys/socket.hfor a complete list of values for the option argument. + See sys/socket.h for a complete list of values for the option argument.

      Input Parameters:

        -
      • sockfd Socket descriptor of socket -
      • level Protocol level to set the option -
      • option identifies the option to get -
      • value Points to the argument value -
      • value_len The length of the argument value +
      • sockfd: Socket descriptor of socket +
      • level: Protocol level to set the option +
      • option: Identifies the option to get +
      • value: Points to the argument value +
      • value_len: The length of the argument value

      Returned Values: @@ -7364,7 +7470,7 @@ Those socket APIs are discussed in the following paragraphs.

      The option is not supported by the protocol.
    41. NOTSOCK. The sockfd argument does not refer to a socket.
    42. -
    43. NOBUFS +
    44. NOBUFS. Insufficient resources are available in the system to complete the call.
    45. diff --git a/Documentation/README.html b/Documentation/README.html index 5c7a89c042..bb07b883a6 100755 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -8,7 +8,7 @@

      NuttX README Files

      -

      Last Updated: April 15, 2010

      +

      Last Updated: May 7, 2010

      @@ -167,6 +167,8 @@ | |- drivers/ | | `- README.txt | |- fs/ + | | |- mmap/ + | | | `- README.txt | | `- nxffs/ | | `- README.txt | |- graphics/ From a427755b85ede6a05ab54755629a396963831894 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 8 May 2011 21:38:47 +0000 Subject: [PATCH 0786/1518] Add directory structure to support PIC32 git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3579 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/README.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/README.html b/Documentation/README.html index bb07b883a6..c753d654dd 100755 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -8,7 +8,7 @@

      NuttX README Files

      -

      Last Updated: May 7, 2010

      +

      Last Updated: May 9, 2010

      @@ -114,6 +114,8 @@ | | | |- include/README.txt | | | |- src/README.txt | | | `- README.txt + | | |- pcblogic-pic32mx/ + | | | `- README.txt | | |- pjrc-8051/ | | | |- include/README.txt | | | |- src/README.txt From 30c2b91c8a07e60c5b559ba600c5cacf5ba2e85a Mon Sep 17 00:00:00 2001 From: patacongo Date: Tue, 10 May 2011 15:50:23 +0000 Subject: [PATCH 0787/1518] Pascal now installs in the apps/ directory git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3583 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 4d5691b082..391849996b 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

      NuttX RTOS

      -

      Last Updated: May 6, 2011

      +

      Last Updated: May 10, 2011

      @@ -2189,9 +2189,28 @@ buildroot-1.10 2011-05-06 <spudmonkey@racsa.co.cr>
         nuttx-6.3 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
         
        +    * Remove clock_getutc().  It is replaces with clock_gettime(CLOCK_ACTIVETIME).
        +      Add other RTC related changes provided by Uros Platise.
        +    * arch/arm/src/stm32/stm32_flash.c: Add support for access to on-chp STM32
        +      FLASH; beginning of integration with NXFFS (Uros Platise).
        +    * arch/mips: Added directory structure for PIC32 support
        +    * configs/pcblogic-pic32mx:  Add directory structure for PCB Logic PIC32MX board
        +    * apps/include:  Move include/apps to apps/include.  A symbolic link is created at
        +      build time
        +    * Makefile: Removed support for Pascal pcode interpreter.  Support for that
        +      interpreter has been moved to apps/interpreter/Makefile.
        +
         apps-6.3 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
         
        -pascal-2.1 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
        +    * apps/interpreter: Add a directory to hold interpreters.  The Pascal add-
        +      on module now installs and builds under this directory.
        +
        +pascal-3.0 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
        +
        +    * nuttx/:  The Pascal add-on module now installs and builds under the
        +      apps/interpreters directory.  This means that the pascal-2.1 module is
        +      incompatible with will all releases of NuttX prior to nuttx-6.0 where the 
        +      apps/ module was introduced.
         
         buildroot-1.11 2011-xx-xx <spudmonkey@racsa.co.cr>
         
      From c29957e6ea541d70fc5b8eac0ea94bcf4915c94f Mon Sep 17 00:00:00 2001 From: patacongo Date: Tue, 10 May 2011 18:18:19 +0000 Subject: [PATCH 0788/1518] Ported Ficl to NuttX apps/ git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3584 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 ++ Documentation/README.html | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 391849996b..57b0ccfdee 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -2204,6 +2204,8 @@ apps-6.3 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> * apps/interpreter: Add a directory to hold interpreters. The Pascal add- on module now installs and builds under this directory. + * apps/interpreter/ficl: Added logic to build Ficl (the "Forth Inspired + Command Language"). See http://ficl.sourceforge.net/. pascal-3.0 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> diff --git a/Documentation/README.html b/Documentation/README.html index c753d654dd..373f641920 100755 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -8,7 +8,7 @@

      NuttX README Files

      -

      Last Updated: May 9, 2010

      +

      Last Updated: May 10, 2010

      @@ -184,11 +184,13 @@ | `- tools/ | `- README.txt `- apps/ + |- interpreters/ + | `- README.txt |- netutils/ | | |- telnetd/README.txt | `- README |- nshlib/ - | |- README.txt + | `- README.txt |- examples/ | |- pashello/README.txt | `- README.txt From 9f4f54310ecbcf1f5d0c67e6279b91876035dced Mon Sep 17 00:00:00 2001 From: patacongo Date: Wed, 11 May 2011 17:21:47 +0000 Subject: [PATCH 0789/1518] More PIC32 header files git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3589 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 8d237f8de5..ae777e696e 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

      NuttX RTOS Porting Guide

      -

      Last Updated: May 8, 2011

      +

      Last Updated: May 11, 2011

      @@ -1215,11 +1215,13 @@ The system can be re-made subsequently by just typing make. These additional steps include:

        -
      • Auto-generating the file include/nuttx/config.h using the ${TOPDIR}/.config file. -
      • Auto-generating the file include/nuttx/version.h using the ${TOPDIR}/.version file. -
      • Creating a link to ${TOPDIR}/arch/<arch-name>/include at ${TOPDIR}/include/arch. -
      • Creating a link to ${TOPDIR}/configs/<board-name>/include at ${TOPDIR}/include/arch/board. -
      • Creating a link to ${TOPDIR}/configs/<board-name>/src at ${TOPDIR}/arch/<arch-name>/src/board +
      • Auto-generating the file include/nuttx/config.h using the ${TOPDIR}/.config file.
      • +
      • Auto-generating the file ${TOPDIR}/.version with version 0.0 if one does not exist.
      • +
      • Auto-generating the file include/nuttx/version.h using the ${TOPDIR}/.version file.
      • +
      • Creating a link to ${TOPDIR}/arch/<arch-name>/include at ${TOPDIR}/include/arch.
      • +
      • Creating a link to ${TOPDIR}/configs/<board-name>/include at ${TOPDIR}/include/arch/board.
      • +
      • Creating a link to ${TOPDIR}/configs/<board-name>/src at ${TOPDIR}/arch/<arch-name>/src/board
      • +
      • Creating a link to ${APPDIR}/include at ${TOPDIR}/include/apps
      • Creating make dependencies.
      From 376d9e586c297ca3600e160b145391827504bf9c Mon Sep 17 00:00:00 2001 From: patacongo Date: Thu, 12 May 2011 17:42:01 +0000 Subject: [PATCH 0790/1518] First set of changes to incorporate the RGMP port git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3595 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 57b0ccfdee..e6c5a824d3 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

      NuttX RTOS

      -

      Last Updated: May 10, 2011

      +

      Last Updated: May 12, 2011

      @@ -2199,6 +2199,16 @@ nuttx-6.3 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> build time * Makefile: Removed support for Pascal pcode interpreter. Support for that interpreter has been moved to apps/interpreter/Makefile. + * tools/mkdep.sh: Should not report an error if there are no files on the command + line. This happens normally in certain configurations. + * drivers/usbhost: Sheref Younan reported an error in the error handling when + connection to a USB device fails. In certain fail cases, the logic would try + to free the device class instance twice, the first was okay, but the second + caused a crash. + * graphics/nxbe/nxbe_colormap.c: Fix error noted by Bassem Fahmy. The function + nxbe_colormap was change to nxbe_configure... apparently "search-and-replace" + error. This error was not noticed before because most NX platforms do not use + colormapping. apps-6.3 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> @@ -2206,6 +2216,11 @@ apps-6.3 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> on module now installs and builds under this directory. * apps/interpreter/ficl: Added logic to build Ficl (the "Forth Inspired Command Language"). See http://ficl.sourceforge.net/. + * apps/netutils/dhcpc, dhcpcd, and tftp. If these directories are included + in the configuration but CONFIG_NET_UDP is disable (which is not very wise), + then a make error occurs because tools/mkdep.sh is called with no files. + * system/free: Move Uros' custom free command from vsn/free + * system/install: Add a new install command submitted by Uros Platise. pascal-3.0 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From 89e088a72b8baf2210c8fce687dece622bb1fa5c Mon Sep 17 00:00:00 2001 From: patacongo Date: Thu, 12 May 2011 18:07:05 +0000 Subject: [PATCH 0791/1518] Modify standard header files to work with RGMP git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3596 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index ae777e696e..3771d370d1 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -3369,8 +3369,7 @@ build

      Allow for architecture optimized implementations

      - The architecture can provide optimized versions of the - following to improve system performance. + The architecture can provide optimized versions of the following to improve system performance.

        @@ -3380,6 +3379,12 @@ build CONFIG_ARCH_STRNCPY, CONFIG_ARCH_STRLEN, CONFIG_ARCH_STRNLEN, CONFIG_ARCH_BZERO

        +

        + The architecture may provide custom versions of certain standard header files: +

        +

        + CONFIG_ARCH_MATH_H, CONFIG_ARCH_STDBOOL_H, CONFIG_ARCH_STDINT_H +

      Sizes of configurable things (0 disables)

      From fde6683752d2af744fb9825010572b4e747082d2 Mon Sep 17 00:00:00 2001 From: patacongo Date: Fri, 13 May 2011 14:39:59 +0000 Subject: [PATCH 0792/1518] fclose() was not flushing buffered data git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3603 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index e6c5a824d3..592fff318d 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

      NuttX RTOS

      -

      Last Updated: May 12, 2011

      +

      Last Updated: May 13, 2011

      @@ -2209,6 +2209,13 @@ nuttx-6.3 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> nxbe_colormap was change to nxbe_configure... apparently "search-and-replace" error. This error was not noticed before because most NX platforms do not use colormapping. + * arch/rgmp and configs/rgmp. Add architecture support and build + configuration for RGMP. RGMP is a project for running GPOS and + RTOS simultaneously on multi-processor platforms. See + http://rgmp.sourceforge.net/wiki/index.php/Main_Page for further + information about RGMP. + * lib/stdio/lib_fclose.c: Must flush all buffered data when the file is closed. + Instead, it was discarding the buffered data. apps-6.3 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> @@ -2221,6 +2228,11 @@ apps-6.3 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> then a make error occurs because tools/mkdep.sh is called with no files. * system/free: Move Uros' custom free command from vsn/free * system/install: Add a new install command submitted by Uros Platise. + * examples/rgmpp. Add a placeholder for an RGMP build example. + RGMP is a project for running GPOS and RTOS simultaneously on + multi-processor platforms. See http://rgmp.sourceforge.net/wiki/index.php/Main_Page + for further information about RGMP. NOTE: This is an empty example + on initial check-in. pascal-3.0 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> From f70900a811d6d1840883f8ac3735fb5b1af8cdfd Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 14 May 2011 15:21:04 +0000 Subject: [PATCH 0793/1518] Implemented line-oriented buffering for std output git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3606 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 3771d370d1..1ff52940b1 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -3413,6 +3413,13 @@ build CONFIG_STDIO_BUFFER_SIZE: Size of the buffer to allocate on fopen. (Only if CONFIG_NFILE_STREAMS > 0) +
    46. + CONFIG_STDIO_LINEBUFFER: + If standard C buffered I/O is enabled (CONFIG_STDIO_BUFFER_SIZE > 0), + then this option may be added to force automatic, line-oriented flushing the output buffer + for printf() >, fprintf() >, and vfprintf() >. + When a newline character is encountered in the format string, the output buffer will be flushed. + This (slightly) increases the NuttX footprint but supports the kind of behavior that people expect for printf.
    47. CONFIG_NUNGET_CHARS: Number of characters that can be buffered by ungetc() (Only if CONFIG_NFILE_STREAMS > 0) From 15cda5b0487ce19e69e032176f177aa581c69a54 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 14 May 2011 18:29:27 +0000 Subject: [PATCH 0794/1518] Update README files git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3609 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 11 +++++++++-- Documentation/NuttxPortingGuide.html | 7 ++++--- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 592fff318d..dad9c11729 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

      NuttX RTOS

      -

      Last Updated: May 13, 2011

      +

      Last Updated: May 14, 2011

      @@ -2216,6 +2216,13 @@ nuttx-6.3 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> information about RGMP. * lib/stdio/lib_fclose.c: Must flush all buffered data when the file is closed. Instead, it was discarding the buffered data. + * lib/stdio: All output stream logic was modified to support CONFIG_STDIO_LINEBUFFER. + If standard C buffered I/O is enabled (CONFIG_STDIO_BUFFER_SIZE > 0), then this + option may be added to force automatic, line-oriented flushing the output buffer + for putc(), fputc(), putchar(), puts(), fputs(), printf() fprintf(), and vfprintf(). + When a newline is encountered in the output string, the output buffer will be + flushed. This (slightly) increases the NuttX footprint but supports the kind of + behavior that people expect for printf. apps-6.3 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> @@ -2228,7 +2235,7 @@ apps-6.3 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> then a make error occurs because tools/mkdep.sh is called with no files. * system/free: Move Uros' custom free command from vsn/free * system/install: Add a new install command submitted by Uros Platise. - * examples/rgmpp. Add a placeholder for an RGMP build example. + * examples/rgmp. Add a placeholder for an RGMP build example. RGMP is a project for running GPOS and RTOS simultaneously on multi-processor platforms. See http://rgmp.sourceforge.net/wiki/index.php/Main_Page for further information about RGMP. NOTE: This is an empty example diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 1ff52940b1..00368df0e6 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -3417,9 +3417,10 @@ build CONFIG_STDIO_LINEBUFFER: If standard C buffered I/O is enabled (CONFIG_STDIO_BUFFER_SIZE > 0), then this option may be added to force automatic, line-oriented flushing the output buffer - for printf() >, fprintf() >, and vfprintf() >. - When a newline character is encountered in the format string, the output buffer will be flushed. - This (slightly) increases the NuttX footprint but supports the kind of behavior that people expect for printf. + for putc(), fputc(), putchar(), puts(), fputs(), + printf(), fprintf(), and vfprintf(). + When a newline character is encountered in the output string, the output buffer will be flushed. + This (slightly) increases the NuttX footprint but supports the kind of behavior that people expect for printf().
    48. CONFIG_NUNGET_CHARS: Number of characters that can be buffered by ungetc() (Only if CONFIG_NFILE_STREAMS > 0) From 11dbf9fead3638f5dea4f0209a8db09572d0129c Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 14 May 2011 18:38:09 +0000 Subject: [PATCH 0795/1518] More updates to README files git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3610 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/README.html | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Documentation/README.html b/Documentation/README.html index 373f641920..a6d42ccda9 100755 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -120,6 +120,10 @@ | | | |- include/README.txt | | | |- src/README.txt | | | `- README.txt + | | |- rgmp/ + | | | |- include/README.txt + | | | |- src/README.txt + | | | `- README.txt | | |- qemu-i486/ | | | |- include/README.txt | | | |- src/README.txt From c4f47c6a74bc99421c0a81d39ff9aa00fd79495b Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 15 May 2011 23:13:04 +0000 Subject: [PATCH 0796/1518] Prep for 6.3 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3615 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 326 +++++++++++++++++++++++---------------- 1 file changed, 195 insertions(+), 131 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index dad9c11729..2f92040dfd 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

      NuttX RTOS

      -

      Last Updated: May 14, 2011

      +

      Last Updated: May 15, 2011

      @@ -829,15 +829,33 @@ -

      nuttx-6.2 Release Notes: - +

      nuttx-6.3 Release Notes:

      - The 69th release of NuttX, Version 6.2, was made on May 6, 2011 and is available for download from the + The 70th release of NuttX, Version 6.3, was made on May 15, 2011 and is available for download from the SourceForge website. The change log associated with the release is available here. Unreleased changes after this release are available in SVN. These unreleased changes are also listed here.

      +

      + The release of NuttX-6.3 follows only a nines days after the release of version 6.2. + This special back-to-back release was made so that the current released version of + NuttX will correspond to the initial release from the RGMP project. +

      +

      + This release adds architecture support and build configuration for RGMP. + RGMP is a project for running GPOS and RTOS simultaneously on multi-processor platforms. + See the RGMP Wiki for further information about RGMP. +

      +

      + This release also includes support for STM32 FLASH, build improvements, and initial, incomplete support for the MicroChip PIC32MX MCU. + Bug fixes are included for some build problems, USB host class driver error handling, NX graphics color mapping, and problems with C standard I/O buffer flushing. + See the ChangeLog for further details. +

      +

      + Release notes for version 6.2 are retained because they are still relevant. +

      +

      nuttx-6.2 Release Notes:

      The 6.2 NuttX release includes several new features:

      @@ -1425,25 +1443,40 @@ - Intel 8052 Microcontroller + Atmel AVR32

      - PJRC 87C52 Development Board. - This port uses the PJRC 87C52 development system - and the SDCC toolchain under Linux or Cygwin. + AV32DEV1. + This port uses the www.mcuzone.com AVRDEV1 board based on the Atmel AT32UC3B0256 MCU. + This port requires a special GNU avr32 toolchain available from atmel.com website. + This is a windows native toolchain and so can be used only under Cygwin on Windows.

        STATUS: - This port is complete but not stable with timer interrupts enabled. - There seems to be some issue when the stack pointer enters into the indirect IRAM - address space during interrupt handling. - This architecture has not been built in some time will likely have some compilation - problems because of SDCC compiler differences. + This port is has completed all basic development, but there is more that needs to be done. + All code is complete for the basic NuttX port including header files for all AT32UC3* peripherals. + The untested AVR32 code was present in the 5.12 release of NuttX. + Since then, the basic RTOS port has solidified: +

          +
        • + The port successfully passes the NuttX OS test (apps/examples/ostest). +
        • +
        • + A NuttShell (NSH) configuration is in place (see the NSH User Guide). + Testing of that configuration has been postponed (because it got bumped by the Olimex LPC1766-STK port). + Current Status: I think I have a hardware problem with my serial port setup. + There is a good chance that the NSH port is complete and functional, but I am not yet able to demonstrate that. + At present, I get nothing coming in the serial RXD line (probably because the pins are configured wrong or I have the MAX232 connected wrong). +
        • +
        + The basic, port (including the verified apps/examples/ostest configuration) was be released in NuttX-5.13. + A complete port will include drivers for additional AVR32 UC3 devices -- like SPI and USB --- and will be available in a later release, + time permitting.

      @@ -1451,32 +1484,7 @@ - Intel 80486 (i486) Microprocessor - - - -
      - -

      - QEMU/Bifferboard i486. - This port uses the QEMU i486 and the native - Linux, Cywgin, MinGW the GCC toolchain under Linux or Cygwin. -

      -
        -

        - STATUS: - The basic port was code-complete in NuttX-5.19 and verifed in NuttX-6.0. - The port was verified using the OS and NuttShell (NSH) examples under QEMU. - The port is reported to be functional on the Bifferboard as well. - This is a great, stable starting point for anyone interest in fleshing out the x86 port! -

        -
      - - - - - - Frescale M68HSC12 + Freescale M68HSC12 @@ -1512,40 +1520,106 @@ - Atmel AVR32 + Intel 8052 Microcontroller

      - AV32DEV1. - This port uses the www.mcuzone.com AVRDEV1 board based on the Atmel AT32UC3B0256 MCU. - This port requires a special GNU avr32 toolchain available from atmel.com website. - This is a windows native toolchain and so can be used only under Cygwin on Windows. + PJRC 87C52 Development Board. + This port uses the PJRC 87C52 development system + and the SDCC toolchain under Linux or Cygwin.

        STATUS: - This port is has completed all basic development, but there is more that needs to be done. - All code is complete for the basic NuttX port including header files for all AT32UC3* peripherals. - The untested AVR32 code was present in the 5.12 release of NuttX. - Since then, the basic RTOS port has solidified: -

          -
        • - The port successfully passes the NuttX OS test (apps/examples/ostest). -
        • -
        • - A NuttShell (NSH) configuration is in place (see the NSH User Guide). - Testing of that configuration has been postponed (because it got bumped by the Olimex LPC1766-STK port). - Current Status: I think I have a hardware problem with my serial port setup. - There is a good chance that the NSH port is complete and functional, but I am not yet able to demonstrate that. - At present, I get nothing coming in the serial RXD line (probably because the pins are configured wrong or I have the MAX232 connected wrong). -
        • -
        - The basic, port (including the verified apps/examples/ostest configuration) was be released in NuttX-5.13. - A complete port will include drivers for additional AVR32 UC3 devices -- like SPI and USB --- and will be available in a later release, - time permitting. + This port is complete but not stable with timer interrupts enabled. + There seems to be some issue when the stack pointer enters into the indirect IRAM + address space during interrupt handling. + This architecture has not been built in some time will likely have some compilation + problems because of SDCC compiler differences. +

        +
      + + + + + + Intel 80x86 + + + +
      + +

      + QEMU/Bifferboard i486. + This port uses the QEMU i486 and the native + Linux, Cywgin, MinGW the GCC toolchain under Linux or Cygwin. +

      +
        +

        + STATUS: + The basic port was code-complete in NuttX-5.19 and verifed in NuttX-6.0. + The port was verified using the OS and NuttShell (NSH) examples under QEMU. + The port is reported to be functional on the Bifferboard as well. + This is a great, stable starting point for anyone interest in fleshing out the x86 port! +

        +
      + + + +
      +
      + + +
      + +

      + RGMP. + RGMP stands for RTOS and GPOS on Multi-Processor. + RGMP is a project for running GPOS and RTOS simultaneously on multi-processor platforms + You can port your favorite RTOS to RGMP together with an unmodified Linux to form a hybrid operating system. + This makes your application able to use both RTOS and GPOS features. +

      +

      + See the RGMP Wiki for further information about RGMP. +

      +
        +

        + STATUS: + This initial port of NuttX to RGMP was provided in NuttX-6.3. + This initial RGP port provides only minimal driver support and does not use the native NuttX interrupt system. + This is a great, stable starting point for anyone interest in working with NuttX under RGMP! +

        +
      + + + + + + MicroChip PIC32 (MIPS) + + + +
      + +

      + PIC32MX460F512L. + A port of NuttX to the PIC32MX460F512L is underway. + This port uses the PIC32MX board from PCB Logic Design Co. + The board is a very simple -- little more than a carrier for the PIC32 MCU plus voltage regulation, debug interface, and an OTG connector. +

      +

      + Development Environment: + This port uses the LITE version of the PIC32MX toolchain available + for download from the MicroChip website. +

      +
        +

        + STATUS: + This port is in its very earliest stages -- most just header file development. + Stay tuned for future releases including verified PIC32 support.

      @@ -1751,26 +1825,12 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1);

    - These ports uses a GNU arm-elf toolchain* under either Linux or Cygwin (with native Windows GNU + These ports uses a GNU arm-nuttx-elf toolchain* under either Linux or Cygwin (with native Windows GNU tools or Cygwin-based GNU tools).

      @@ -1842,7 +1842,7 @@ svn checkout -r5206 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code Atmel AT91SAM3U. This port uses the Atmel SAM3U-EK development board that features the AT91SAM3U4E MCU. - This port uses a GNU arm-elf or arm-eabi toolchain* under either Linux or Cygwin (with native Windows GNU + This port uses a GNU arm-nuttx-elf or arm-eabi toolchain* under either Linux or Cygwin (with native Windows GNU tools or Cygwin-based GNU tools).

        @@ -1905,7 +1905,7 @@ svn checkout -r5206 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

        The Nucleus 2G board, the mbed board, and the LPCXpresso all feature the NXP LPC1768 MCU; the Olimex LPC1766-STK board features an LPC1766. - All use a GNU arm-elf or arm-eabi toolchain* under either Linux or Cygwin (with native Windows GNU tools or Cygwin-based GNU tools). + All use a GNU arm-nuttx-elf or arm-eabi toolchain* under either Linux or Cygwin (with native Windows GNU tools or Cygwin-based GNU tools).

          @@ -2386,7 +2386,7 @@ svn checkout -r5206 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

        - Both use a GNU arm-elf toolchain* under Linux or Cygwin. + Both use a GNU arm-nuttx-elf toolchain* under Linux or Cygwin. The NuttX buildroot provides a properly patched GCC 3.4.4 toolchain that is highly optimized for the m9s12x family.

          @@ -2696,10 +2696,10 @@ svn checkout -r5206 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code STATUS: Initial source files released in nuttx-0.4.2. At this point, the port has not been integrated; the target cannot be built - because the GNU m16c-elf-ld link fails with the following message: + because the GNU m16c-nuttx-elf-ld link fails with the following message:

            - m32c-elf-ld: BFD (GNU Binutils) 2.19 assertion fail /home/Owner/projects/nuttx/buildroot/toolchain_build_m32c/binutils-2.19/bfd/elf32-m32c.c:482 + m32c-nuttx-elf-ld: BFD (GNU Binutils) 2.19 assertion fail /home/Owner/projects/nuttx/buildroot/toolchain_build_m32c/binutils-2.19/bfd/elf32-m32c.c:482

          Where the reference line is:

            @@ -3583,7 +3583,7 @@ buildroot-1.10 2011-05-06 <gnutt@nuttx.org>
                   i486 ELF binaries.  But that will not work under Cygwin!  The Cygwin
                   toolchain (and probably MinGW), build DOS MZ format executables (i.e.,
                   .exe files).  That is probably not usable for most NuttX targets.
            -      Instead, you should use this i486-elf-gcc to generate true ELF binaries
            +      Instead, you should use this i486-nuttx-elf-gcc to generate true ELF binaries
                   under Cygwin.
                 * Makefile - Alter copy arguments to avoid permissions problems when
                   copying NuttX header files.
            diff --git a/Documentation/NuttXLinks.html b/Documentation/NuttXLinks.html
            index 7196ea3ea3..b69a354fad 100644
            --- a/Documentation/NuttXLinks.html
            +++ b/Documentation/NuttXLinks.html
            @@ -22,6 +22,7 @@
                   
          • SourceForge
          • FreshMeat
          • Forum
          • +
          • Ohloh
          • OSChina
          • Downloads
          • Wiki
          • diff --git a/Documentation/NuttXNxFlat.html b/Documentation/NuttXNxFlat.html index 6f78fffcd2..73be5d7b34 100644 --- a/Documentation/NuttXNxFlat.html +++ b/Documentation/NuttXNxFlat.html @@ -443,7 +443,7 @@ cat ../syscall/syscall.csv ../lib/lib.csv | sort >tmp.csv

            - abc-elf-ld -r -d -warn-common -o $@ $^ + abc-nuttx-elf-ld -r -d -warn-common -o $@ $^ Target 2 @@ -464,7 +464,7 @@ cat ../syscall/syscall.csv ../lib/lib.csv | sort >tmp.csv

            - abc-elf-ld -r -d -warn-common -T binfmt/libnxflat/gnu-nxflat.ld -no-check-sections -o $@ hello.o hello-thunk.o + abc-nuttx-elf-ld -r -d -warn-common -T binfmt/libnxflat/gnu-nxflat.ld -no-check-sections -o $@ hello.o hello-thunk.o diff --git a/Documentation/NuttXRelated.html b/Documentation/NuttXRelated.html index 978eb1d441..9d26a98957 100644 --- a/Documentation/NuttXRelated.html +++ b/Documentation/NuttXRelated.html @@ -41,7 +41,7 @@
          • Osmocom-BB
          • PX4 Autopilot
          • RGMP
          • -
          • Top Multi-Rotor (TMR)
          • +
          • Top Multi-Rotor (TMR)
          • diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index e13c3be621..21ae44144d 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -768,7 +768,7 @@ This is a port to the Spectrum Digital C5471 evaluation board. The C5471 is a dual core processor from TI with an ARM7TDMI general purpose processor and a c54 DSP. It is also known as TMS320DA180 or just DA180. - NuttX runs on the ARM core and is built with with a GNU arm-elf toolchain + NuttX runs on the ARM core and is built with with a GNU arm-nuttx-elf toolchain under Linux or Cygwin. This port is complete and verified. @@ -780,14 +780,14 @@
          • configs/ea3131: Embedded Artists EA3131 Development bard. This board is based on the - an NXP LPC3131 MCU. This OS is built with the arm-elf toolchain. + an NXP LPC3131 MCU. This OS is built with the arm-nuttx-elf toolchain. STATUS: This port is complete and mature.
          • configs/eagle100: Micromint Eagle-100 Development board. This board is based on the an ARM Cortex-M3 MCU, the Luminary LM3S6918. This OS is built with the - arm-elf toolchain. STATUS: This port is complete and mature. + arm-nuttx-elf toolchain. STATUS: This port is complete and mature.
          • configs/ez80f0910200kitg @@ -805,7 +805,7 @@
          • configs/lm3s6965-ek: Stellaris LM3S6965 Evaluation Kit. This board is based on the an ARM Cortex-M3 MCU, the Luminary/TI LM3S6965. This OS is built with the - arm-elf toolchain. STATUS: This port is complete and mature. + arm-nuttx-elf toolchain. STATUS: This port is complete and mature.
          • configs/lm3s8962-ek: @@ -827,13 +827,13 @@
          • configs/mbed: The configurations in this directory support the mbed board (http://mbed.org) that features the NXP LPC1768 microcontroller. This OS is also built - with the arm-elf toolchain. STATUS: Contributed. + with the arm-nuttx-elf toolchain. STATUS: Contributed.
          • configs/mcu123-lpc214x: This port is for the NXP LPC2148 as provided on the mcu123.com lpc214x development board. - This OS is also built with the arm-elf toolchain* under Linux or Cygwin. + This OS is also built with the arm-nuttx-elf toolchain* under Linux or Cygwin. The port supports serial, timer0, spi, and usb.
          • @@ -858,7 +858,7 @@
          • configs/ntosd-dm320: - This port uses the Neuros OSD with a GNU arm-elf toolchain* under Linux or Cygwin. + This port uses the Neuros OSD with a GNU arm-nuttx-elf toolchain* under Linux or Cygwin. See Neuros Wiki for further information. NuttX operates on the ARM9EJS of this dual core processor. @@ -878,12 +878,12 @@
          • configs/olimex-lpc2378: - This port uses the Olimex-lpc2378 board and a GNU arm-elf toolchain under + This port uses the Olimex-lpc2378 board and a GNU arm-nuttx-elf toolchain under Linux or Cygwin. STATUS: ostest and NSH configurations available.
          • configs/olimex-strp711: - This port uses the Olimex STR-P711 board arm-elf toolchain* under Linux or Cygwin. + This port uses the Olimex STR-P711 board arm-nuttx-elf toolchain* under Linux or Cygwin. See the Olimex web site for further information. STATUS: Configurations for the basic OS test and NSH are complete and verified. diff --git a/Documentation/UsbTrace.html b/Documentation/UsbTrace.html index ec48e260dd..e85377756e 100644 --- a/Documentation/UsbTrace.html +++ b/Documentation/UsbTrace.html @@ -1,332 +1,332 @@ - - -NuttX USB Trace Capability - - - -

            - - - - -
            -

            NuttX USB Device Trace

            -

            Last Updated: March 20, 2011

            -
            -

            -

            USB Device Tracing Controls. - The NuttX USB device subsystem supports a fairly sophisticated tracing facility. - The basic trace cabability is controlled by these NuttX configuration settings: -

            -
              -
            • CONFIG_USBDEV_TRACE: Enables USB tracing
            • -
            • CONFIG_USBDEV_TRACE_NRECORDS: Number of trace entries to remember
            • -
            -

            Trace IDs. - The trace facility works like this: - When enabled, USB events that occur in either the USB device driver or in the USB class driver are logged. - These events are described in include/nuttx/usb/usbdev_trace.h. - The logged events are identified by a set of event IDs: -

            -
              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
              TRACE_INIT_IDInitialization events
              TRACE_EP_IDEndpoint API calls
              TRACE_DEV_IDUSB device API calls
              TRACE_CLASS_IDUSB class driver API calls
              TRACE_CLASSAPI_IDOther class driver system API calls
              TRACE_CLASSSTATE_IDTrack class driver state changes
              TRACE_INTENTRY_IDInterrupt handler entry
              TRACE_INTDECODE_IDDecoded interrupt event
              TRACE_INTEXIT_IDInterrupt handler exit
              TRACE_OUTREQQUEUED_IDRequest queued for OUT endpoint
              TRACE_INREQQUEUED_IDRequest queued for IN endpoint
              TRACE_READ_IDRead (OUT) action
              TRACE_WRITE_IDWrite (IN) action
              TRACE_COMPLETE_IDRequest completed
              TRACE_DEVERROR_IDUSB controller driver error event
              TRACE_CLSERROR_IDUSB class driver error event
            -

            Logged Events. - Each logged event is 32-bits in size and includes -

            -
              -
            1. 8-bits of the trace ID (values associated with the above)
            2. -
            3. 8-bits of additional trace ID data, and
            4. -
            5. 16-bits of additonal data.
            6. -
            -

            8-bit Trace Data - The 8-bit trace data depends on the specific event ID. As examples, -

            -
              -
            • - For the USB serial and mass storage class, the 8-bit event data is provided in include/nuttx/usb/usbdev_trace.h. -
            • -
            • - For the USB device driver, that 8-bit event data is provided within the USB device driver itself. - So, for example, the 8-bit event data for the LPC1768 USB device driver is found in arch/arm/src/lpc17xx/lpc17_usbdev.c. -
            • -
            -

            16-bit Trace Data. - The 16-bit trace data provided additional context data relevant to the specific logged event. -

            -

            Trace Control Interfaces. - Logging of each of these kinds events can be enabled or disabled using the interfaces described in include/nuttx/usb/usbdev_trace.h. -

            -

            Enabling USB Device Tracing. - USB device tracing will be configured if CONFIG_USBDEV and either of the following are set in the NuttX configuration file: -

            -
              -
            • CONFIG_USBDEV_TRACE, or
            • -
            • CONFIG_DEBUG and CONFIG_DEBUG_USB
            • -
            -

            Log Data Sink. - The logged data itself may go to either (1) an internal circular buffer, or (2) may be provided on the console. - If CONFIG_USBDEV_TRACE is defined, then the trace data will go to the circular buffer. - The size of the circular buffer is determined by CONFIG_USBDEV_TRACE_NRECORDS. - Otherwise, the trace data goes to console. -

            -

            Example. - Here is an example of USB trace output using apps/examples/usbserial for an LPC1768 platform with the following NuttX configuration settings: -

            -
              -
            • CONFIG_DEBUG, CONFIG_DEBUG_VERBOSE, CONFIG_USB -
            • CONFIG_EXAMPLES_USBSERIAL_TRACEINIT, CONFIG_EXAMPLES_USBSERIAL_TRACECLASS, - CONFIG_EXAMPLES_USBSERIAL_TRACETRANSFERS, CONFIG_EXAMPLES_USBSERIAL_TRACECONTROLLER, - CONFIG_EXAMPLES_USBSERIAL_TRACEINTERRUPTS -
            -

            Console Output:

            -
              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
               ABDE
               usbserial_main: Registering USB serial driver
               uart_register: Registering /dev/ttyUSB0
               usbserial_main: Successfully registered the serial driver
              1Class API call 1: 0000
              2Class error: 19:0000
               usbserial_main: ERROR: Failed to open /dev/ttyUSB0 for reading: 107
               usbserial_main: Not connected. Wait and try again.
              3Interrupt 1 entry: 0039
              4Interrupt decode 7: 0019
              5Interrupt decode 32: 0019
              6Interrupt decode 6: 0019
              7Class disconnect(): 0000
              8Device pullup(): 0001
              9Interrupt 1 exit: 0000
            -

            - The numbered items are USB USB trace output. - You can look in the file drivers/usbdev/usbdev_trprintf.c to see examctly how each output line is formatted. - Here is how each line should be interpreted: -

            -
              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
               USB EVENT ID8-bit
              EVENT
              DATA
              MEANING16-bit
              EVENT
              DATA
              1TRACE_CLASSAPI_ID11USBSER_TRACECLASSAPI_SETUP10000
              2TRACE_CLSERROR_ID119USBSER_TRACEERR_SETUPNOTCONNECTED10000
              3TRACE_INTENTRY_ID11LPC17_TRACEINTID_USB20039
              4TRACE_INTDECODE_ID27LPC17_TRACEINTID_DEVSTAT20019
              5TRACE_INTDECODE_ID232LPC17_TRACEINTID_SUSPENDCHG20019
              6TRACE_INTDECODE_ID26LPC17_TRACEINTID_DEVRESET20019
              7TRACE_CLASS_ID13(See TRACE_CLASSDISCONNECT1)0000
              8TRACE_DEV_ID16(See TRACE_DEVPULLUP1)0001
              9TRACE_INTEXIT_ID11LPC17_TRACEINTID_USB20000
              -

              NOTES:
              - 1See include/nuttx/usb/usbdev_trace.h
              - 2See arch/arm/src/lpc17xx/lpc17_usbdev.c -

              -
            -

            - In the above example you can see that: -

            -
              -
            • 1. - The serial class USB setup method was called for the USB serial class. - This is the corresponds to the following logic in drivers/usbdev/pl2303.c: -
                -static int pl2303_setup(FAR struct uart_dev_s *dev)
                -{
                -  ...
                -  usbtrace(PL2303_CLASSAPI_SETUP, 0);
                -  ...
                -
              -
            • -
            • 2. - An error occurred while processing the setup command because no configuration has yet been selected by the host. - This corresponds to the following logic in drivers/usbdev/pl2303.c: -
                -static int pl2303_setup(FAR struct uart_dev_s *dev)
                -{
                -  ...
                -  /* Check if we have been configured */
                -
                -  if (priv->config == PL2303_CONFIGIDNONE)
                -    {
                -      usbtrace(TRACE_CLSERROR(USBSER_TRACEERR_SETUPNOTCONNECTED), 0);
                -      return -ENOTCONN;
                -    }
                -  ...
                -
              -
            • 3-6. - Here is a USB interrupt that suspends and resets the device. -
            • -
            • 7-8. - During the interrupt processing the serial class is disconnected -
            • -
            • 9. - And the interrupt returns -
            • -
            - - + + +NuttX USB Trace Capability + + + +

            + + + + +
            +

            NuttX USB Device Trace

            +

            Last Updated: March 20, 2011

            +
            +

            +

            USB Device Tracing Controls. + The NuttX USB device subsystem supports a fairly sophisticated tracing facility. + The basic trace cabability is controlled by these NuttX configuration settings: +

            +
              +
            • CONFIG_USBDEV_TRACE: Enables USB tracing
            • +
            • CONFIG_USBDEV_TRACE_NRECORDS: Number of trace entries to remember
            • +
            +

            Trace IDs. + The trace facility works like this: + When enabled, USB events that occur in either the USB device driver or in the USB class driver are logged. + These events are described in include/nuttx/usb/usbdev_trace.h. + The logged events are identified by a set of event IDs: +

            +
              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              TRACE_INIT_IDInitialization events
              TRACE_EP_IDEndpoint API calls
              TRACE_DEV_IDUSB device API calls
              TRACE_CLASS_IDUSB class driver API calls
              TRACE_CLASSAPI_IDOther class driver system API calls
              TRACE_CLASSSTATE_IDTrack class driver state changes
              TRACE_INTENTRY_IDInterrupt handler entry
              TRACE_INTDECODE_IDDecoded interrupt event
              TRACE_INTEXIT_IDInterrupt handler exit
              TRACE_OUTREQQUEUED_IDRequest queued for OUT endpoint
              TRACE_INREQQUEUED_IDRequest queued for IN endpoint
              TRACE_READ_IDRead (OUT) action
              TRACE_WRITE_IDWrite (IN) action
              TRACE_COMPLETE_IDRequest completed
              TRACE_DEVERROR_IDUSB controller driver error event
              TRACE_CLSERROR_IDUSB class driver error event
            +

            Logged Events. + Each logged event is 32-bits in size and includes +

            +
              +
            1. 8-bits of the trace ID (values associated with the above)
            2. +
            3. 8-bits of additional trace ID data, and
            4. +
            5. 16-bits of additonal data.
            6. +
            +

            8-bit Trace Data + The 8-bit trace data depends on the specific event ID. As examples, +

            +
              +
            • + For the USB serial and mass storage class, the 8-bit event data is provided in include/nuttx/usb/usbdev_trace.h. +
            • +
            • + For the USB device driver, that 8-bit event data is provided within the USB device driver itself. + So, for example, the 8-bit event data for the LPC1768 USB device driver is found in arch/arm/src/lpc17xx/lpc17_usbdev.c. +
            • +
            +

            16-bit Trace Data. + The 16-bit trace data provided additional context data relevant to the specific logged event. +

            +

            Trace Control Interfaces. + Logging of each of these kinds events can be enabled or disabled using the interfaces described in include/nuttx/usb/usbdev_trace.h. +

            +

            Enabling USB Device Tracing. + USB device tracing will be configured if CONFIG_USBDEV and either of the following are set in the NuttX configuration file: +

            +
              +
            • CONFIG_USBDEV_TRACE, or
            • +
            • CONFIG_DEBUG and CONFIG_DEBUG_USB
            • +
            +

            Log Data Sink. + The logged data itself may go to either (1) an internal circular buffer, or (2) may be provided on the console. + If CONFIG_USBDEV_TRACE is defined, then the trace data will go to the circular buffer. + The size of the circular buffer is determined by CONFIG_USBDEV_TRACE_NRECORDS. + Otherwise, the trace data goes to console. +

            +

            Example. + Here is an example of USB trace output using apps/examples/usbserial for an LPC1768 platform with the following NuttX configuration settings: +

            +
              +
            • CONFIG_DEBUG, CONFIG_DEBUG_VERBOSE, CONFIG_USB +
            • CONFIG_EXAMPLES_USBSERIAL_TRACEINIT, CONFIG_EXAMPLES_USBSERIAL_TRACECLASS, + CONFIG_EXAMPLES_USBSERIAL_TRACETRANSFERS, CONFIG_EXAMPLES_USBSERIAL_TRACECONTROLLER, + CONFIG_EXAMPLES_USBSERIAL_TRACEINTERRUPTS +
            +

            Console Output:

            +
              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
               ABDE
               usbserial_main: Registering USB serial driver
               uart_register: Registering /dev/ttyUSB0
               usbserial_main: Successfully registered the serial driver
              1Class API call 1: 0000
              2Class error: 19:0000
               usbserial_main: ERROR: Failed to open /dev/ttyUSB0 for reading: 107
               usbserial_main: Not connected. Wait and try again.
              3Interrupt 1 entry: 0039
              4Interrupt decode 7: 0019
              5Interrupt decode 32: 0019
              6Interrupt decode 6: 0019
              7Class disconnect(): 0000
              8Device pullup(): 0001
              9Interrupt 1 exit: 0000
            +

            + The numbered items are USB USB trace output. + You can look in the file drivers/usbdev/usbdev_trprintf.c to see examctly how each output line is formatted. + Here is how each line should be interpreted: +

            +
              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
               USB EVENT ID8-bit
              EVENT
              DATA
              MEANING16-bit
              EVENT
              DATA
              1TRACE_CLASSAPI_ID11USBSER_TRACECLASSAPI_SETUP10000
              2TRACE_CLSERROR_ID119USBSER_TRACEERR_SETUPNOTCONNECTED10000
              3TRACE_INTENTRY_ID11LPC17_TRACEINTID_USB20039
              4TRACE_INTDECODE_ID27LPC17_TRACEINTID_DEVSTAT20019
              5TRACE_INTDECODE_ID232LPC17_TRACEINTID_SUSPENDCHG20019
              6TRACE_INTDECODE_ID26LPC17_TRACEINTID_DEVRESET20019
              7TRACE_CLASS_ID13(See TRACE_CLASSDISCONNECT1)0000
              8TRACE_DEV_ID16(See TRACE_DEVPULLUP1)0001
              9TRACE_INTEXIT_ID11LPC17_TRACEINTID_USB20000
              +

              NOTES:
              + 1See include/nuttx/usb/usbdev_trace.h
              + 2See arch/arm/src/lpc17xx/lpc17_usbdev.c +

              +
            +

            + In the above example you can see that: +

            +
              +
            • 1. + The serial class USB setup method was called for the USB serial class. + This is the corresponds to the following logic in drivers/usbdev/pl2303.c: +
                +static int pl2303_setup(FAR struct uart_dev_s *dev)
                +{
                +  ...
                +  usbtrace(PL2303_CLASSAPI_SETUP, 0);
                +  ...
                +
              +
            • +
            • 2. + An error occurred while processing the setup command because no configuration has yet been selected by the host. + This corresponds to the following logic in drivers/usbdev/pl2303.c: +
                +static int pl2303_setup(FAR struct uart_dev_s *dev)
                +{
                +  ...
                +  /* Check if we have been configured */
                +
                +  if (priv->config == PL2303_CONFIGIDNONE)
                +    {
                +      usbtrace(TRACE_CLSERROR(USBSER_TRACEERR_SETUPNOTCONNECTED), 0);
                +      return -ENOTCONN;
                +    }
                +  ...
                +
              +
            • 3-6. + Here is a USB interrupt that suspends and resets the device. +
            • +
            • 7-8. + During the interrupt processing the serial class is disconnected +
            • +
            • 9. + And the interrupt returns +
            • +
            + + From 93fdd141d3903fc83ead7ec65460a320ea5148eb Mon Sep 17 00:00:00 2001 From: patacongo Date: Mon, 8 Oct 2012 18:12:53 +0000 Subject: [PATCH 1043/1518] Updates for new web site git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5221 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 24 ++++++++++++------------ Documentation/NuttXCommercial.html | 1 + Documentation/NuttXLinks.html | 4 ++-- Documentation/NuttxPortingGuide.html | 2 +- Documentation/NxWidgets.html | 14 ++++++++++---- Documentation/index.html | 2 +- Documentation/redirect.html | 20 ++++++++++++++++++++ 7 files changed, 47 insertions(+), 20 deletions(-) create mode 100644 Documentation/redirect.html diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index f22ab418c9..06b61a4de5 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1675,7 +1675,7 @@ svn checkout -r5206 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code This port uses Serial-to-Ethernet Reference Design Kit (RDK-S2E) and has similar support as for the other Stellaris family members. Configurations are available for the OS test and for the NuttShell (NSH) - (see the NSH User Guide). + (see the NSH User Guide). The NSH configuration including networking support with a Telnet NSH console. This port was contributed by Mike Smith.

            @@ -1854,7 +1854,7 @@ svn checkout -r5206 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code A configuration to support the NuttShell is also included. NuttX version 5.4 adds support for the HX8347 LCD on the SAM3U-EK board. This LCD support includes an example using the - NX graphics system. + NX graphics system. NuttX version 6.10 adds SPI support.

            @@ -1930,7 +1930,7 @@ svn checkout -r5206 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code That initial, 5.6, basic release included timer interrupts and a serial console and was verified using the NuttX OS test (apps/examples/ostest). Configurations available include include a verified NuttShell (NSH) configuration - (see the NSH User Guide). + (see the NSH User Guide). The NSH configuration supports the Nucleus2G's microSD slot and additional configurations are available to exercise the the USB serial and USB mass storage devices. However, due to some technical reasons, neither the SPI nor the USB device drivers are fully verified. @@ -1971,7 +1971,7 @@ svn checkout -r5206 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

            Verified configurations are now available for the NuttX OS test, - for the NuttShell with networking and microSD support(NSH, see the NSH User Guide), + for the NuttShell with networking and microSD support(NSH, see the NSH User Guide), for the NuttX network test, for the THTTPD webserver, for USB serial deive and USB storage devices examples, and for the USB host HID keyboard driver. Support for the USB host mass storage device can optionally be configured for the NSH example. @@ -2054,7 +2054,7 @@ svn checkout -r5206 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code STATUS: As of this writing, the basic port is complete and passes the NuttX OS test. An additional, validated configuration exists for the NuttShell (NSH, see the - NSH User Guide). + NSH User Guide). This basic TWR-K60N512 first appeared in NuttX-6.8. Ethernet and SD card (SDHC) drivers also exist: The SDHC driver is partially integrated in to the NSH configuration but has some outstanding issues; @@ -2083,7 +2083,7 @@ svn checkout -r5206 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

          • NuttX-6.12 The basic port is complete and first appeared in NuttX-6.12. The initial port passes the NuttX OS test and includes a validated configuration for the NuttShell (NSH, see the - NSH User Guide) as well as several other configurations. + NSH User Guide) as well as several other configurations.
          • NuttX-6.13-6.16 Additional drivers and configurations were added in NuttX 6.13-6.16. @@ -2266,7 +2266,7 @@ svn checkout -r5206 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code a "Hello, World!!" example that demonstrates initialization of the OS, creation of a simple task, and serial console output as well as a somewhat simplified NuttShell (NSH) configuration (see the - NSH User Guide). + NSH User Guide).

            An SPI driver and a USB device driver exist for the AT90USB as well @@ -2349,7 +2349,7 @@ svn checkout -r5206 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code The port successfully passes the NuttX OS test (apps/examples/ostest).

          • - A NuttShell (NSH) configuration is in place (see the NSH User Guide). + A NuttShell (NSH) configuration is in place (see the NSH User Guide). Testing of that configuration has been postponed (because it got bumped by the Olimex LPC1766-STK port). Current Status: I think I have a hardware problem with my serial port setup. There is a good chance that the NSH port is complete and functional, but I am not yet able to demonstrate that. @@ -2502,7 +2502,7 @@ svn checkout -r5206 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code The NSH configuration includes support for a serial console and for the SST25 serial FLASH and the PGA117 amplifier/multiplexer on board the module. The NSH configuration is set up to use the NuttX wear-leveling FLASH file system (NXFFS). The PGA117, however, is not yet fully integrated to support ADC sampling. - See the NSH User Guide for further information about NSH. + See the NSH User Guide for further information about NSH. The first verified port to the Mirtoo module was available with the NuttX 6.20 release.

          @@ -2524,7 +2524,7 @@ svn checkout -r5206 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

          STATUS: The basic port is code complete and fully verified in NuttX 6.13. - Available configurations include the OS test and the NuttShell (NSH - see the NSH User Guide). + Available configurations include the OS test and the NuttShell (NSH - see the NSH User Guide).

        • UBW32 Board from Sparkfun This is the port to the Sparkfun UBW32 board. @@ -2535,7 +2535,7 @@ svn checkout -r5206 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

          STATUS: The basic port is code complete and fully verified in NuttX 6.18. - Available configurations include the OS test and the NuttShell (NSH - see the NSH User Guide). + Available configurations include the OS test and the NuttShell (NSH - see the NSH User Guide). USB has not yet been fully tested but on first pass appears to be functional.

        @@ -2562,7 +2562,7 @@ svn checkout -r5206 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code This NuttX port is code complete and has considerable test testing. The port for this board was completed in NuttX 6.11, but still required a few bug fixes before it will be ready for prime time. The fully verified port first appeared in NuttX 6.13. - Available configurations include the OS test and the NuttShell (NSH - see the NSH User Guide). + Available configurations include the OS test and the NuttShell (NSH - see the NSH User Guide). An untested USB device-side driver is available in the source tree. A more complete port would include support of the USB OTG port and of the LCD display on this board. Those drivers are not yet available as of this writing. diff --git a/Documentation/NuttXCommercial.html b/Documentation/NuttXCommercial.html index a3d4766f9f..9161df40d2 100644 --- a/Documentation/NuttXCommercial.html +++ b/Documentation/NuttXCommercial.html @@ -50,6 +50,7 @@
      • NX-Engineering
      • Raztek Solutions
      • +
      • North Shore Design Group
      • 2G Engineering
      • ISOTEL Research
      • DSPWorks
      • diff --git a/Documentation/NuttXLinks.html b/Documentation/NuttXLinks.html index b69a354fad..647607e11f 100644 --- a/Documentation/NuttXLinks.html +++ b/Documentation/NuttXLinks.html @@ -18,14 +18,14 @@   -
      • Home
      • +
      • Home
      • SourceForge
      • FreshMeat
      • Forum
      • Ohloh
      • OSChina
      • Downloads
      • -
      • Wiki
      • +
      • Wiki
      • Toolchains
      • Browse SVN
      • Free Ports
      • diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 21ae44144d..bf2a0cc4f5 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -4222,7 +4222,7 @@ build
      • CONFIG_PAGING: If set =y in your configation file, this setting will enable the on-demand paging feature as described in - NuttXDemandPaging.html. + NuttXDemandPaging.html.
      diff --git a/Documentation/NxWidgets.html b/Documentation/NxWidgets.html index 1678d9ebe7..548ab5e0aa 100644 --- a/Documentation/NxWidgets.html +++ b/Documentation/NxWidgets.html @@ -62,21 +62,27 @@
      • NxWidgets-1.0: - Documentation, and + Documentation, and Downloads
      • -
      • +
      • http://nuttx.org/nxwidgets_v1_0/ NxWidgets-1.1: - Documentation, + Documentation, Release notes, and Downloads
      • NxWidgets-1.2: - Documentation, + Documentation, Release notes, and Downloads
      • +
      • + NxWidgets-1.3: + Documentation, + Release notes, and + Downloads +
      • Thanks go to Jose Pablo Carballo for contributing this! diff --git a/Documentation/index.html b/Documentation/index.html index da4c107f09..ea2e3a3271 100644 --- a/Documentation/index.html +++ b/Documentation/index.html @@ -12,7 +12,7 @@

        This page uses frames, but your browser doesn't support them. - Try this link. + Try this link.

        diff --git a/Documentation/redirect.html b/Documentation/redirect.html new file mode 100644 index 0000000000..13e75cd05e --- /dev/null +++ b/Documentation/redirect.html @@ -0,0 +1,20 @@ + + + +The NuttX RTOS + + + + + + +
        +

        The NuttX RTOS

        +
        +

        +
        + The NuttX RTOS web site has moved to nuttx.org. + Please update your bookmarks and wait while you are redirected there. +
        + + From 281f35dd2721d574f595732c7e7aa7e61f870e07 Mon Sep 17 00:00:00 2001 From: patacongo Date: Wed, 10 Oct 2012 17:01:23 +0000 Subject: [PATCH 1044/1518] Rename gnu-nxflat.ld to gnu-nxflat-gotoff.ld; Add gnu-nxflat-pcrel.ld git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5225 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttXNxFlat.html | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/Documentation/NuttXNxFlat.html b/Documentation/NuttXNxFlat.html index 73be5d7b34..4d70ed9c37 100644 --- a/Documentation/NuttXNxFlat.html +++ b/Documentation/NuttXNxFlat.html @@ -229,13 +229,16 @@
      • Read-Only Data in RAM

          - Read-only data must reside in RAM. + With older GCC compilers (at least up to 4.3.3), read-only data must reside in RAM. In code generated by GCC, all data references are indexed by the PIC2 base register (that is usually R10 or sl for the ARM processors). The includes read-only data (.rodata). Embedded firmware developers normally like to keep .rodata in FLASH with the code sections. But because all data is referenced with the PIC base register, all of that data must lie in RAM. A NXFLAT change to work around this is under investigation3.

          +

          + Newer GCC compilers (at least from 4.6.3), read-only data is no long GOT-relative, but is now accessed PC-relative. With PC relative addressing, read-only data must reside in the I-Space. +

      • Globally Scoped Function Function Pointers @@ -464,7 +467,7 @@ cat ../syscall/syscall.csv ../lib/lib.csv | sort >tmp.csv

        - abc-nuttx-elf-ld -r -d -warn-common -T binfmt/libnxflat/gnu-nxflat.ld -no-check-sections -o $@ hello.o hello-thunk.o + abc-nuttx-elf-ld -r -d -warn-common -T binfmt/libnxflat/gnu-nxflat-gotoff.ld -no-check-sections -o $@ hello.o hello-thunk.o @@ -507,7 +510,7 @@ cat ../syscall/syscall.csv ../lib/lib.csv | sort >tmp.csv In this case, it will link together the module's object files (only hello.o here) along with the assembled thunk file, hello-thunk.o to create the second relocatable object, hello.r2. - The linker script, gnu-nxflat.ld is required at this point to correctly position the sections. + The linker script, gnu-nxflat-gotoff.ld is required at this point to correctly position the sections. This linker script produces two segments: An I-Space (Instruction Space) segment containing mostly .text and a D-Space (Data Space) segment containing .got, .data, and .bss sections. @@ -518,6 +521,22 @@ cat ../syscall/syscall.csv ../lib/lib.csv | sort >tmp.csv The option -no-check-sections is required to prevent the linker from failing because these segments overlap.

        +

        NOTE: + There are two linker scripts located at binfmt/libnxflat/gnu-nxflat-gotoff.ld. +

        +
          +
        1. + binfmt/libnxflat/gnu-nxflat-gotoff.ld. + Older versions of GCC (at least up to GCC 4.3.3), use GOT-relative addressing to access RO data. + In that case, read-only data (.rodata) must reside in D-Space and this linker script should be used. +
        2. +
        3. + binfmt/libnxflat/gnu-nxflat-pcrel.ld. + Newer versions of GCC (at least as of GCC 4.6.3), use PC-relative addressing to access RO data. + In that case, read-only data (.rodata) must reside in I-Space and this linker script should be used. +
        4. +
        +

        Target 4. Finally, this target will use the hello.r2 relocatable object to create the final, NXFLAT module hello by executing ldnxflat. From 40da3481a5486b4be9738f8556cb8bf6ac2cd6ea Mon Sep 17 00:00:00 2001 From: patacongo Date: Wed, 10 Oct 2012 19:36:32 +0000 Subject: [PATCH 1045/1518] More fixes for ldnxflat. There are still problems with the GCC 4.6.3 git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5227 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttXNxFlat.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttXNxFlat.html b/Documentation/NuttXNxFlat.html index 4d70ed9c37..c51e3b6a1d 100644 --- a/Documentation/NuttXNxFlat.html +++ b/Documentation/NuttXNxFlat.html @@ -522,7 +522,7 @@ cat ../syscall/syscall.csv ../lib/lib.csv | sort >tmp.csv

        NOTE: - There are two linker scripts located at binfmt/libnxflat/gnu-nxflat-gotoff.ld. + There are two linker scripts located at binfmt/libnxflat/.

        1. From a6402e4c4539a577ec669f04fb88a31661475564 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 13 Oct 2012 15:12:44 +0000 Subject: [PATCH 1046/1518] Add a THTTPD configuration for the Shenzhou board (Darcy Gong) git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5233 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/README.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/README.html b/Documentation/README.html index 4d87f55a67..9424262609 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -260,7 +260,7 @@ | | |- discover/README.txt | | |- ftpc/README.txt | | |- telnetd/README.txt - | `- README + | `- README.txt |- nshlib/ | `- README.txt |- NxWidgets/ From a2b8f82b1fff1f64865267807e0a2b078fec43d8 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 20 Oct 2012 21:42:19 +0000 Subject: [PATCH 1047/1518] Update documentation for recently added configuration options git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5241 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttShell.html | 8 +++++++ Documentation/NuttxPortingGuide.html | 34 ++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index bcf62a5a91..ad204f5dc9 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -2559,6 +2559,13 @@ nsh> If set, a bogus MAC will be assigned. + + CONFIG_NSH_MAX_ROUNDTRIP + + This is the maximum round trip for a response to a ICMP ECHO request. + It is in units of deciseconds. The default is 20 (2 seconds). + +

          @@ -3537,6 +3544,7 @@ mount -t vfat /dev/ram1 /tmp

        2. CONFIG_NSH_IOBUFFER_SIZE
        3. CONFIG_NSH_IPADDR
        4. CONFIG_NSH_LINELEN
        5. +
        6. CONFIG_NSH_MAX_ROUNDTRIP
        7. CONFIG_NSH_NESTDEPTH
        8. CONFIG_NSH_NETMASK
        9. CONFIG_NSH_NOMAC
        10. diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index bf2a0cc4f5..a16032db57 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -4445,6 +4445,35 @@ build CONFIG_ARCH_BZERO

      +

    • + If CONFIG_ARCH_MEMCPY is not selected, then you make also select Daniel + Vik's optimized implementation of memcpy(): +

      +
      • + CONFIG_MEMCPY_VIK: + Select this option to use the optimized memcpy() function by Daniel Vik. + See licensing information in the top-level COPYING file. + Default: n. +
      + +

      + And if CONFIG_MEMCPY_VIK, the following tuning options are available: +

      +
      • + CONFIG_MEMCPY_PRE_INC_PTRS: + Use pre-increment of pointers. + Default is post increment of pointers. +
      • +
      • + CONFIG_MEMCPY_INDEXED_COPY + Copying data using array indexing. + Using this option, disables the CONFIG_MEMCPY_PRE_INC_PTRS option. +
      • +
      • + CONFIG_MEMCPY_64BIT: + Compiles memcpy for 64 bit architectures +
      +
    • The architecture may provide custom versions of certain standard header files: @@ -5180,6 +5209,11 @@ build

    • CONFIG_NET_RESOLV_ENTRIES: Number of resolver entries
    • +
    • + CONFIG_NET_RESOLV_MAXRESPONSE: + This setting determines the maximum size of response message that can be received by the DNS resolver. + The default is 96 but may need to be larger on enterprise networks (perhaps 176). +

    THTTPD

    From 8595dd344ae13b8f8370c63be291507c76ce60b7 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 21 Oct 2012 00:41:44 +0000 Subject: [PATCH 1048/1518] Add a versin of memset() optimized for speed git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5242 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttShell.html | 2 +- Documentation/NuttxPortingGuide.html | 23 ++++++++++++++++------- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index ad204f5dc9..78a5651074 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -8,7 +8,7 @@

    NuttShell (NSH)

    -

    Last Updated: August 28, 2012

    +

    Last Updated: October 20, 2012

    diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index a16032db57..e43ca8a2fa 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

    NuttX RTOS Porting Guide

    -

    Last Updated: August 28, 2012

    +

    Last Updated: October 20, 2012

    @@ -4449,12 +4449,12 @@ build If CONFIG_ARCH_MEMCPY is not selected, then you make also select Daniel Vik's optimized implementation of memcpy():

    -
    • - CONFIG_MEMCPY_VIK: - Select this option to use the optimized memcpy() function by Daniel Vik. - See licensing information in the top-level COPYING file. - Default: n. -
    +
    • + CONFIG_MEMCPY_VIK: + Select this option to use the optimized memcpy() function by Daniel Vik. + See licensing information in the top-level COPYING file. + Default: n. +

    And if CONFIG_MEMCPY_VIK, the following tuning options are available: @@ -4474,6 +4474,15 @@ build Compiles memcpy for 64 bit architectures +

  • + If CONFIG_ARCH_MEMSET is not selected, then the following option is also available: +

    +
    • + CONFIG_MEMSET_OPTSPEED: + Select this option to use a version of memset() optimized for speed. + Default: memset() is optimized for size. +
    +
  • The architecture may provide custom versions of certain standard header files: From 10ff47a699df0fc7641c5ea201c0f78131700bca Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 21 Oct 2012 01:31:56 +0000 Subject: [PATCH 1049/1518] Optimized memset() can be configured to do 64-bit stores git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5243 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index e43ca8a2fa..08c6534cb4 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -4457,7 +4457,7 @@ build

  • - And if CONFIG_MEMCPY_VIK, the following tuning options are available: + And if CONFIG_MEMCPY_VIK is selected, the following tuning options are available:

    • CONFIG_MEMCPY_PRE_INC_PTRS: @@ -4471,7 +4471,7 @@ build
    • CONFIG_MEMCPY_64BIT: - Compiles memcpy for 64 bit architectures + Compiles memcpy() for 64 bit architectures

  • @@ -4483,6 +4483,14 @@ build Default: memset() is optimized for size.
  • +

    + And if CONFIG_MEMSET_OPTSPEED is selected, the following tuning option is available: +

    +
    • + CONFIG_MEMSET_64BIT: + Compiles memset() for 64 bit architectures +
    +
  • The architecture may provide custom versions of certain standard header files: From b6a412518bdd63068a3523fb956bb40c889355e3 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 21 Oct 2012 05:38:24 +0000 Subject: [PATCH 1050/1518] Minor tweaks to memset git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5245 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 08c6534cb4..d8ccfc3404 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -4452,6 +4452,7 @@ build

    • CONFIG_MEMCPY_VIK: Select this option to use the optimized memcpy() function by Daniel Vik. + Select this option for improved performance at the expense of increased size. See licensing information in the top-level COPYING file. Default: n.
    From 673e0d99712d8c12ca47341bb1e490c5b3bb84e0 Mon Sep 17 00:00:00 2001 From: patacongo Date: Wed, 24 Oct 2012 20:19:44 +0000 Subject: [PATCH 1051/1518] Move binfmt.h, nxflat.h, elf.h, and symtab.h to include/nuttx/binfmt/ git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5252 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttXNxFlat.html | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Documentation/NuttXNxFlat.html b/Documentation/NuttXNxFlat.html index c51e3b6a1d..2e6d2f59a8 100644 --- a/Documentation/NuttXNxFlat.html +++ b/Documentation/NuttXNxFlat.html @@ -554,19 +554,19 @@ cat ../syscall/syscall.csv ../lib/lib.csv | sort >tmp.csv From 647429897cbd554cd3dec507d9233a841241cfb8 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 27 Oct 2012 18:21:26 +0000 Subject: [PATCH 1052/1518] Add port of cJSON from Darcy Gong git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5267 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/README.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/README.html b/Documentation/README.html index 9424262609..5fef40fc16 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -8,7 +8,7 @@

    NuttX README Files

    -

    Last Updated: September 25, 2012

    +

    Last Updated: October 27, 2012

    @@ -247,6 +247,7 @@ `- apps/ |- README.txt |- examples/ + | |- json/README.txt | |- pashello/README.txt | `- README.txt |- graphics/ @@ -259,6 +260,7 @@ |- netutils/ | | |- discover/README.txt | | |- ftpc/README.txt + | | |- json/README.txt | | |- telnetd/README.txt | `- README.txt |- nshlib/ From 9e0847e56be451baea698c04a501688df80d23ce Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 28 Oct 2012 14:31:57 +0000 Subject: [PATCH 1053/1518] Part I of port of Rhombus math library git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5269 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 3 --- 1 file changed, 3 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index d8ccfc3404..96c3012952 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -3719,9 +3719,6 @@ void (*notify)(FAR struct pm_callback_s *cb, enum pm_state_e pmstate); Make a raw binary format file used with many different loaders using the GNU objcopy program. This option should not be selected if you are not using the GNU toolchain.
  • -
  • CONFIG_HAVE_LIBM: - Toolchain supports libm.a -
  • CONFIG_HAVE_CXX: Toolchain supports C++ and CXX, CXXFLAGS, and COMPILEXX have been defined in the configurations Make.defs file. From 3f9679d4728b16c69b3865c4f9da1be73df77b72 Mon Sep 17 00:00:00 2001 From: patacongo Date: Mon, 29 Oct 2012 21:18:51 +0000 Subject: [PATCH 1054/1518] Update documentation to at least reference the ELF loader. git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5276 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 13 +++++-- Documentation/NuttxPortingGuide.html | 55 +++++++++++++++++++++++++--- 2 files changed, 59 insertions(+), 9 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 06b61a4de5..f3f13d38a2 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

    NuttX RTOS

    -

    Last Updated: September 29, 2012

    +

    Last Updated: October 29, 2012

    @@ -448,13 +448,20 @@
  • ROMFS filesystem support.
  • + +
    + +

    +

  • Loadable ELF Modules. + Support for separately linked, loadable ELF modules. +

    +

  • NXFLAT. - A new binary format call NXFLAT that can be used to - execute separately linked programs in place in a file system. + NXFLAT is a binary format that can be XIP from a file system.

    diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 96c3012952..dd9d66881f 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

    NuttX RTOS Porting Guide

    -

    Last Updated: October 20, 2012

    +

    Last Updated: October 29, 2012

    @@ -4070,11 +4070,6 @@ build desciptors by task_create() when a new task is started. If set, all sockets will appear to be closed in the new task.
  • -
  • - CONFIG_NXFLAT: Enable support for the NXFLAT binary format. - This format will support execution of NuttX binaries located - in a ROMFS file system (see apps/examples/nxflat). -
  • CONFIG_SCHED_WORKQUEUE: Create a dedicated "worker" thread to handle delayed processing from interrupt handlers. This feature @@ -4144,6 +4139,54 @@ build
  • +

    + Binary Loaders: +

    +
      +
    • + CONFIG_BINFMT_DISABLE: By default, support for loadable binary formats is built. + This logic may be suppressed be defining this setting. +
    • +
    • + CONFIG_BINFMT_CONSTRUCTORS: Build in support for C++ constructors in loaded modules. +
    • +
    • + CONFIG_SYMTAB_ORDEREDBYNAME: Symbol tables are order by name (rather than value). +
    • +
    • + CONFIG_NXFLAT: Enable support for the NXFLAT binary format. + This format will support execution of NuttX binaries located + in a ROMFS file system (see apps/examples/nxflat). +
    • +
    • + CONFIG_ELF: Enable support for the ELF binary format. + This format will support execution of ELF binaries copied from a file system and relocated into RAM (see apps/examples/elf). +
    • +

      + If CONFIG_ELF is selected, then these additional options are available: +

      +
    • + CONFIG_ELF_ALIGN_LOG2: Align all sections to this Log2 value: 0->1, 1->2, 2->4, etc. +
    • +
    • + CONFIG_ELF_STACKSIZE: This is the default stack size that will will be used when starting ELF binaries. +
    • +
    • + CONFIG_ELF_BUFFERSIZE: This is an I/O buffer that is used to access the ELF file. Variable length items will need to be read (such as symbol names). + This is really just this initial size of the buffer; it will be reallocated as necessary to hold large symbol names). + Default: 128 +
    • +
    • + CONFIG_ELF_BUFFERINCR: This is an I/O buffer that is used to access the ELF file. Variable length items will need to be read (such as symbol names). + This value specifies the size increment to use each time the buffer is reallocated. + Default: 32 +
    • +
    • + CONFIG_ELF_DUMPBUFFER: Dump various ELF buffers for debug purposes. + This option requires CONFIG_DEBUG and CONFIG_DEBUG_VERBOSE. +
    • +
    +

    System Logging:

    From 3a0d1cf742e65f17787e5c3f2e5f3a16f35f6246 Mon Sep 17 00:00:00 2001 From: patacongo Date: Mon, 29 Oct 2012 21:47:14 +0000 Subject: [PATCH 1055/1518] More documentation updated to reference the ELF loader. git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5277 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index f3f13d38a2..fc0291846c 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -452,16 +452,19 @@

    -

  • Loadable ELF Modules. - Support for separately linked, loadable ELF modules. +
  • + Support for separately linked, loadable ELF modules. +

  • -

  • NXFLAT. - NXFLAT is a binary format that can be XIP from a file system. +
  • + NXFLAT. + NXFLAT is a binary format that can be XIP from a file system. +
  • @@ -548,6 +551,14 @@

    + +
    + +

    +

  • Includes floating point math library.
  • +

    + + @@ -571,6 +582,14 @@

    + +
    + +

    +

  • A port cJSON
  • +

    + +
    From 6f1b104a8ccfd9a1a43a5d4a37705e9698231fa3 Mon Sep 17 00:00:00 2001 From: patacongo Date: Tue, 30 Oct 2012 14:32:52 +0000 Subject: [PATCH 1056/1518] Add documentation for the binary loader git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5278 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 27 +- Documentation/NuttXBinfmt.html | 467 ++++++++++++++++++++++++++ Documentation/NuttXDocumentation.html | 1 + Documentation/NuttxPortingGuide.html | 10 +- Documentation/NuttxUserGuide.html | 6 +- 5 files changed, 495 insertions(+), 16 deletions(-) create mode 100644 Documentation/NuttXBinfmt.html diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index fc0291846c..0c98d4ad2e 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -453,17 +453,14 @@

  • - Support for separately linked, loadable ELF modules. -
  • -

    - - -
    - -

    -

  • - NXFLAT. - NXFLAT is a binary format that can be XIP from a file system. + A binary loader with support for the following formats: +
      +
    • Separately linked ELF modules.
    • +
    • + Separately linked NXFLAT modules. + NXFLAT is a binary format that can be XIP from a file system. +
    • +
  • @@ -630,7 +627,7 @@

  • A NuttX port of Jeff Poskanzer's THTTPD HTTP server - integrated with NXFLAT to provide true, embedded CGI. + integrated with the NuttX binary loader to provide true, embedded CGI.
  • @@ -3691,7 +3688,11 @@ buildroot-1.10 2011-05-06 <gnutt@nuttx.org> - NXFLAT Binary Format + NuttX Binary Loader + + + + NXFLAT Binary Format diff --git a/Documentation/NuttXBinfmt.html b/Documentation/NuttXBinfmt.html new file mode 100644 index 0000000000..8d70d0135a --- /dev/null +++ b/Documentation/NuttXBinfmt.html @@ -0,0 +1,467 @@ + + +NuttX Binary Loader + + +

    + + + + +
    +

    NuttX Binary Loader

    +

    Last Updated: October 30, 2012

    +
    +

    + + + + + +
    +

    Table of Contents

    +
    + + + + + + + +
    +

    1.0 Introduction

    +
    + +

    + Binary Loaders. + The purpose of a binary loader is to load and execute modules in various binary formats that reside in a file system. + Loading refers instiating the binary module in some fashion, usually copy all or some of the binary module into memory and then linking the module with other components. + In most architectures, it is thebase FLASH code that is the primary component that the binary module must link with because that is where the RTOS and primary tasks reside. + Program modules can then be executed after they have been loaded. +

    + +

    + Binary Formats. + The binary loader provides generic support for different binary formats. + It supports a registration interface that allows the number of support binary formats to be loaded at run time. + Each binary format provides a common, interface for use by the binary loader. + When asked to load a binary, the binary loader will query each registered binary format, providing it with the path of the binary object to be loaded. + The binary loader will stop when first binary format the recognizes the binary object and successfully loads it or when all registered binary formats have attempt loading the binary object and failed. +

    + +

    + At present, the following binary formats are support by NuttX: +

    +
      +
    • + ELF. + Standard ELF formatted files. +
    • +
    • + NXFLAT. + NuttX NXFLAT formatted files. + More information about the NXFLAT binary format can be found in the + NXFLAT documentation. +
    + +

    + Executables and Libraries + The generic binary loader logic does not care what it is that it being loaded. It could load an executable program or a library. + There are no strict rules, but a library will tend to export symbols and a program will tend to import symbols: The program will use the symbols exported by the library. + However, at this point in time, none of the supported binary formts support exporting of symbols. +

    + +

    + binfmt. + In the NuttX source code, the short name binfmt is used to refer to the NuttX binary loader. + This is the name of the directory containing the binary loader and the name of the header files and variables used by the binary loader. +

    + +

    + The name binfmt is the same name used by the Linux binary loader. + However, the NuttX binary loader is an independent development and shares nothing with the Linux binary loader other the same name and the same basic functionality. +

    + + + + + +
    +

    2.0 Binary Loader Interface

    +
    + +

    2.1 Binary Loader Header Files

    +

    + The interface to the binary loader is described in the header file + + include/nuttx/binfmt/binfmt.h. + A brief summary of the data structurs and interfaces prototyped in that header file are listed below. +

    + +

    2.2 Binary Loader Data Structures

    + +

    + When a binary format registers with the binary loader, it provides a pointer to a write-able instance of the following data structure: +

    +
      +struct binfmt_s
      +{
      +  FAR struct binfmt_s *next;             /* Supports a singly-linked list */
      +  int (*load)(FAR struct binary_s *bin); /* Verify and load binary into memory */
      +};
      +
    + +

    + The load method is used to load the binary format into memory. + It returns either OK (0) meaning that the binary object was loaded successfully, or a negater errno indicating why the object was not loaded. +

    + +

    + The type struct binary_s is use both to (2) describe the binary object to be loaded, and if successfully loaded, (2) to provide information about where and how the binary object was loaded. + That structure is shown below: +

    +
      +struct symtab_s;
      +struct binary_s
      +{
      +  /* Information provided to the loader to load and bind a module */
      +
      +  FAR const char *filename;            /* Full path to the binary to be loaded */
      +  FAR const char **argv;               /* Argument list */
      +  FAR const struct symtab_s *exports;  /* Table of exported symbols */
      +  int nexports;                        /* The number of symbols in exports[] */
      +
      +  /* Information provided from the loader (if successful) describing the
      +   * resources used by the loaded module.
      +   */
      +
      +  main_t entrypt;                      /* Entry point into a program module */
      +  FAR void *mapped;                    /* Memory-mapped, address space */
      +  FAR void *alloc[BINFMT_NALLOC];      /* Allocated address spaces */
      +#ifdef CONFIG_BINFMT_CONSTRUCTORS
      +  FAR binfmt_ctor_t *ctors;            /* Pointer to a list of constructors */
      +  FAR binfmt_dtor_t *dtors;            /* Pointer to a list of destructors */
      +  uint16_t nctors;                     /* Number of constructors in the list */
      +  uint16_t ndtors;                     /* Number of destructors in the list */
      +#endif
      +  size_t mapsize;                      /* Size of the mapped address region (needed for munmap) */
      +  size_t stacksize;                    /* Size of the stack in bytes (unallocated) */
      +};
      +
    + +

    + Where the types binfmt_ctor_t and binfmt_dtor_t define the type of one C++ constructor or destructor: +

    + +
      +typedef FAR void (*binfmt_ctor_t)(void);
      +typedef FAR void (*binfmt_dtor_t)(void);
      +
    + +

    2.3 Binary Loader Function Interfaces

    + + + +

    2.3.1 register_binfmt()

    + +

    Function Prototype:

    +
      +#include <:nuttx/binfmt/binfmt.h>
      +int register_binfmt(FAR struct binfmt_s *binfmt);
      +
    +

    Description:

    +
      +Register a loader for a binary format. +
    +

    Returned Value:

    +
      +This is a NuttX internal function so it follows the convention that 0 (OK) is returned on success and a negated errno is returned on failure. +
    + +

    2.3.2 unregister_binfmt()

    +

    Function Prototype:

    +
      +#include <:nuttx/binfmt/binfmt.h>
      +int unregister_binfmt(FAR struct binfmt_s *binfmt);
      +
    +

    Description:

    +
      +Register a loader for a binary format. +
    +

    Returned Value:

    +
      +This is a NuttX internal function so it follows the convention that 0 (OK) is returned on success and a negated errno is returned on failure. +
    + +

    2.3.3 load_module()

    +

    Function Prototype:

    +
      +#include <:nuttx/binfmt/binfmt.h>
      +int load_module(FAR struct binary_s *bin);
      +
    +

    Description:

    +
      +Load a module into memory, bind it to an exported symbol take, and prep the module for execution. +
    +

    Returned Value:

    +
      +This is an end-user function, so it follows the normal convention: +Returns 0 (OK) on success. +On failure, it returns -1 (ERROR) with errno set appropriately. +
    + +

    2.3.4 unload_module()

    +

    Function Prototype:

    +
      +#include <:nuttx/binfmt/binfmt.h>
      +int unload_module(FAR const struct binary_s *bin);
      +
    +

    Description:

    +
      +

      + Unload a (non-executing) module from memory. + If the module has been started (via exec_module()) and has not exited, calling this will be fatal. +

      +

      + However, this function must be called after the module exist. + How this is done is up to your logic. + Perhaps you register it to be called by on_exit()? +

    +

    Returned Value:

    +
      +This is a NuttX internal function so it follows the convention that 0 (OK) is returned on success and a negated errno is returned on failure. +
    + +

    2.3.5 exec_module()

    +

    Function Prototype:

    +
      +#include <:nuttx/binfmt/binfmt.h>
      +int exec_module(FAR const struct binary_s *bin, int priority);
      +
    +

    Description:

    +
      +Execute a module that has been loaded into memory by load_module(). +
    +

    Returned Value:

    +
      +This is an end-user function, so it follows the normal convention: +Returns 0 (OK) on success. +On failure, it returns -1 (ERROR) with errno set appropriately. +
    + +

    2.3.7 exec()

    +

    Function Prototype:

    +
      +#include <:nuttx/binfmt/binfmt.h>
      +int exec(FAR const char *filename, FAR const char **argv,
      +         FAR const struct symtab_s *exports, int nexports);
      +
    +

    Description:

    +
      +This is a convenience function that wraps load_ and exec_module() into one call. +
    +

    Input Parameters:

    +
      +
    • filename: Fulll path to the binary to be loaded.
    • +
    • argv: Argument list.
    • +
    • exports: Table of exported symbols.
    • +
    • exports: The number of symbols in exports.
    • +
    +

    Returned Value:

    +
      +This is an end-user function, so it follows the normal convention: +Returns 0 (OK) on success. +On failure, it returns -1 (ERROR) with errno set appropriately. +
    + + + + + +
    +

    3.0 Symbol Tables

    +
    + +

    + Symbol Tables. + Symbol tables are lists of name value mappings: + The name is a string that identifies a symbol, and the value is an address in memory where the symbol of that name has been positioned. + In most NuttX architectures symbol tables are required, as a minimum, in order to dynamically link the loaded binary object with the base code on FLASH. + Since the binary object was separately built and separately linked, these symbols will appear as undefined symbols in the binary object. + The binary loader will use the symbol table to look up the symbol by its name and to provide the address associated with the symbol as needed to perform the dynamic linking of the binary object to the base FLASH code. +

    + +

    3.1 Symbol Table Header Files

    +

    + The interface to the symbol table logic is described in the header file + + include/nuttx/binfmt/symtab.h. + A brief summary of the data structurs and interfaces prototyped in that header file are listed below. +

    + +

    3.2 Symbol Table Data Structures

    +

    + struct symbtab_s describes one entry in the symbol table. +

    + +
      +struct symtab_s
      +{
      +  FAR const char *sym_name;          /* A pointer to the symbol name string */
      +  FAR const void *sym_value;         /* The value associated witht the string */
      +};
      +
    + +

    + A symbol table is a fixed size array of struct symtab_s. + The information is intentionally minimal and supports only: +

    +
      +
    1. + Function pointers as sym_values. + Of other kinds of values need to be supported, then typing information would also need to be included in the structure. +
    2. +
    3. + Fixed size arrays. + There is no explicit provisional for dyanamically adding or removing entries from the symbol table (realloc might be used for that purpose if needed). + The intention is to support only fixed size arrays completely defined at compilation or link time. +
    4. +
    + +

    3.3 Symbol Table Function Interfaces

    + + + +

    3.3.1 symtab_findbyname()

    +

    Function Prototype:

    +
      +#include <:nuttx/binfmt/symtab.h>
      +FAR const struct symtab_s *
      +symtab_findbyname(FAR const struct symtab_s *symtab,
      +                  FAR const char *name, int nsyms);
      +
    +

    Description:

    +
      + Find the symbol in the symbol table with the matching name. + This version assumes that table is not ordered with respect to symbol name and, hence, access time will be linear with respect to nsyms. +
    +

    Returned Value:

    +
      + A reference to the symbol table entry if an entry with the matching name is found; +NULL is returned if the entry is not found. +
    + +

    3.3.2 symtab_findorderedbyname()

    +

    Function Prototype:

    +
      +#include <:nuttx/binfmt/symtab.h>
      +FAR const struct symtab_s *
      +symtab_findorderedbyname(FAR const struct symtab_s *symtab,
      +                         FAR const char *name, int nsyms);
      +
    +

    Description:

    +
      + Find the symbol in the symbol table with the matching name. + This version assumes that table ordered with respect to symbol name. +
    +

    Returned Value:

    +
      + A reference to the symbol table entry if an entry with the matching name is found; + NULL is returned if the entry is not found. +
    + +

    3.3.3 symtab_findbyvalue()

    +

    Function Prototype:

    +
      +#include <:nuttx/binfmt/symtab.h>
      +FAR const struct symtab_s *
      +symtab_findbyvalue(FAR const struct symtab_s *symtab,
      +                   FAR void *value, int nsyms);
      +
    +

    Description:

    +
      + Find the symbol in the symbol table whose value closest (but not greater than), the provided value. + This version assumes that table is not ordered with respect to symbol name and, hence, access time will be linear with respect to nsyms. +
    +

    Returned Value:

    +
      + A reference to the symbol table entry if an entry with the matching name is found; + NULL is returned if the entry is not found. +
    + +

    3.3.4 symtab_findorderedbyvalue()

    +

    Function Prototype:

    +
      +#include <:nuttx/binfmt/symtab.h>
      +FAR const struct symtab_s *
      +symtab_findorderedbyvalue(FAR const struct symtab_s *symtab,
      +                          FAR void *value, int nsyms);
      +
    +

    Description:

    +
      + Find the symbol in the symbol table whose value closest (but not greater than), the provided value. + This version assumes that table is ordered with respect to symbol name. +
    +

    Returned Value:

    +
      + A reference to the symbol table entry if an entry with the matching name is found; + NULL is returned if the entry is not found. +
    + + + + + +
    +

    4.0 Configuration Variables

    +
    + +
      +

      + CONFIG_BINFMT_DISABLE: + By default, support for loadable binary formats is built. + This logic may be suppressed be defining this setting. +

      +

      + CONFIG_BINFMT_CONSTRUCTORS: + Build in support for C++ constructors in loaded modules. +

      +

      + CONFIG_SYMTAB_ORDEREDBYNAME: + Symbol tables are order by name (rather than value). +

      +
    + +

    + Additional configuration options may be required for the each enabled binary format. +

    + + diff --git a/Documentation/NuttXDocumentation.html b/Documentation/NuttXDocumentation.html index b26c831753..b502adc687 100644 --- a/Documentation/NuttXDocumentation.html +++ b/Documentation/NuttXDocumentation.html @@ -32,6 +32,7 @@
  • User Guide
  • Porting Guide
  • NuttShell (NSH)
  • +
  • Binary Loader
  • NXFLAT
  • NX Graphics
  • NxWidgets
  • diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index dd9d66881f..a2c58b41f8 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

    NuttX RTOS Porting Guide

    -

    Last Updated: October 29, 2012

    +

    Last Updated: October 30, 2012

    @@ -4580,6 +4580,14 @@ build So for the architectures that define CONFIG_ARCH_MATH_H=y, include/math.h will be the redirecting math.h header file; for the architectures that don't select CONFIG_ARCH_MATH_H, the redirecting math.h header file will stay out-of-the-way in include/nuttx/.

    +
  • CONFIG_ARCH_FLOAT_H. +

    + If you enable the generic, built-in math library, then that math library will expect your toolchain to provide the standard float.h header file. + The float.h header file defines the properties of your floating point implementation. + It would always be best to use your toolchain's float.h header file but if none is avaiable, a default float.h header file will provided if this option is selected. + However, there is no assurance that the settings in this float.h are actually correct for your platform! +

    +
  • CONFIG_ARCH_STDARG_H.

    There is also a redirecting version of stdarg.h in the source tree as well. diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 457347727c..24dc6b6ab7 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -186,8 +186,10 @@ paragraphs.

    Executing Programs within a File System. NuttX also provides internal interfaces for the execution of separately built programs that reside in a file system. - These internal interfaces are, however, non-standard and are documented - elsewhere. + These internal interfaces are, however, non-standard and are documented with the + NuttX binary loader and + NXFLAT. +

    Task Control Interfaces. The following task control interfaces are provided by NuttX:

    From a5f9ac71eb86e7c880944cc2a9ad67ff66b5e6f4 Mon Sep 17 00:00:00 2001 From: patacongo Date: Tue, 30 Oct 2012 19:25:50 +0000 Subject: [PATCH 1057/1518] Documentation update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5279 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttXBinfmt.html | 10 +- Documentation/NuttxUserGuide.html | 1417 +++++++++++++++-------------- 2 files changed, 724 insertions(+), 703 deletions(-) diff --git a/Documentation/NuttXBinfmt.html b/Documentation/NuttXBinfmt.html index 8d70d0135a..71c5b0a003 100644 --- a/Documentation/NuttXBinfmt.html +++ b/Documentation/NuttXBinfmt.html @@ -50,8 +50,8 @@

    Binary Loaders. The purpose of a binary loader is to load and execute modules in various binary formats that reside in a file system. - Loading refers instiating the binary module in some fashion, usually copy all or some of the binary module into memory and then linking the module with other components. - In most architectures, it is thebase FLASH code that is the primary component that the binary module must link with because that is where the RTOS and primary tasks reside. + Loading refers instantiating the binary module in some fashion, usually copy all or some of the binary module into memory and then linking the module with other components. + In most architectures, it is the base FLASH code that is the primary component that the binary module must link with because that is where the RTOS and primary tasks reside. Program modules can then be executed after they have been loaded.

    @@ -76,14 +76,14 @@ NXFLAT. NuttX NXFLAT formatted files. More information about the NXFLAT binary format can be found in the - NXFLAT documentation. + NXFLAT documentation.

    Executables and Libraries The generic binary loader logic does not care what it is that it being loaded. It could load an executable program or a library. There are no strict rules, but a library will tend to export symbols and a program will tend to import symbols: The program will use the symbols exported by the library. - However, at this point in time, none of the supported binary formts support exporting of symbols. + However, at this point in time, none of the supported binary formats support exporting of symbols.

    @@ -128,7 +128,7 @@ struct binfmt_s

    The load method is used to load the binary format into memory. - It returns either OK (0) meaning that the binary object was loaded successfully, or a negater errno indicating why the object was not loaded. + It returns either OK (0) meaning that the binary object was loaded successfully, or a negated errno indicating why the object was not loaded.

    diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 24dc6b6ab7..586b744c71 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -123,7 +123,7 @@ is discussed. Input Parameters: All input parameters are listed along with brief descriptions of each input parameter.

    -Returned Values: All possible values returned by the interface +Returned Value: All possible values returned by the interface function are listed. Values returned as side-effects (through pointer input parameters or through global variables) will be addressed in the description of the interface function. @@ -207,10 +207,10 @@ paragraphs.

    Function Prototype: -

    -   #include <sched.h>
    -   int task_create(char *name, int priority, int stack_size, main_t entry, const char *argv[]);
    -
    +
      +#include <sched.h>
      +int task_create(char *name, int priority, int stack_size, main_t entry, const char *argv[]);
      +

    Description: @@ -249,18 +249,18 @@ paragraphs.

    Input Parameters:

      -
    • name. Name of the new task
    • -
    • priority. Priority of the new task
    • -
    • stack_size. size (in bytes) of the stack needed
    • -
    • entry. Entry point of a new task
    • -
    • argv. A pointer to an array of input parameters. Up to +
    • name. Name of the new task
    • +
    • priority. Priority of the new task
    • +
    • stack_size. size (in bytes) of the stack needed
    • +
    • entry. Entry point of a new task
    • +
    • argv. A pointer to an array of input parameters. Up to CONFIG_MAX_TASK_ARG parameters may be provided. If fewer than CONFIG_MAX_TASK_ARG parameters are passed, the list should be terminated with a NULL argv[] value. If no parameters are required, argv may be NULL.

    - Returned Values: + Returned Value:

    • @@ -316,13 +316,13 @@ VxWorks provides the following similar interface:

      Input Parameters:

        -
      • tcb. Address of the new task's TCB -
      • name. Name of the new task (not used) -
      • priority. Priority of the new task -
      • stack. Start of the pre-allocated stack -
      • stack_size. size (in bytes) of the pre-allocated stack -
      • entry. Entry point of a new task -
      • argv. A pointer to an array of input parameters. Up to +
      • tcb. Address of the new task's TCB +
      • name. Name of the new task (not used) +
      • priority. Priority of the new task +
      • stack. Start of the pre-allocated stack +
      • stack_size. size (in bytes) of the pre-allocated stack +
      • entry. Entry point of a new task +
      • argv. A pointer to an array of input parameters. Up to CONFIG_MAX_TASK_ARG parameters may be provided. If fewer than CONFIG_MAX_TASK_ARG parameters are passed, the list should be terminated with a NULL argv[] value. @@ -330,7 +330,7 @@ VxWorks provides the following similar interface:

      -Returned Values: +Returned Value:

      • OK, or ERROR if the task cannot be initialized.

        @@ -370,7 +370,7 @@ VxWorks provides the following similar interface: Function Prototype:
             #include <sched.h>
        -    int task_activate( _TCB *tcb );
        +    int task_activate(_TCB *tcb);
         

        @@ -380,12 +380,12 @@ scheduler.

        Input Parameters:

          -
        • tcb. The TCB for the task for the task (same as the +
        • tcb. The TCB for the task for the task (same as the task_init argument).

        -Returned Values: +Returned Value:

        • OK, or ERROR if the task cannot be activated (errno is not set).
        @@ -401,7 +401,7 @@ mechanism to initialize and start a new task. POSIX Compatibility: This is a NON-POSIX interface. VxWorks provides the following similar interface:
        -    STATUS taskActivate( int tid );
        +    STATUS taskActivate(int tid);
         

        @@ -418,50 +418,55 @@ the pointer to the WIND_TCB cast to an integer.

        Function Prototype: -

        -    #include <sched.h>
        -    int task_delete( pid_t pid );
        -
        +
          +#include <sched.h>
          +int task_delete(pid_t pid);
          +

        -Description: This function causes a specified task to cease -to exist -- its stack and TCB will be deallocated. This function -is the companion to task_create(). + Description: + This function causes a specified task to cease to exist -- its stack and TCB will be deallocated. + This function is the companion to task_create().

        Input Parameters:

          -
        • pid. The task ID of the task to delete. An ID of -zero signifies the calling task. +
        • + pid. + The task ID of the task to delete. + An ID of zero signifies the calling task. + Any attempt by the calling task will be automatically re-directed to exit().
        -

        -Returned Values: +Returned Value:

          -
        • OK, or ERROR if the task cannot be deleted. -This function can fail if the provided pid does not correspond to a task (errno is not set) +
        • + OK, or ERROR if the task cannot be deleted. + This function can fail if the provided pid does not correspond to a task (errno is not set). +
        -

        Assumptions/Limitations:

        -task_delete() must be used with caution: If the task holds resources -(for example, allocated memory or semaphores needed by other tasks), then -task_delete() can strand those resources. + task_delete() must be used with caution: + If the task holds resources (for example, allocated memory or semaphores needed by other tasks), then task_delete() can strand those resources. +

        -POSIX Compatibility: This is a NON-POSIX interface. -VxWorks provides the following similar interface: -

        -    STATUS taskDelete( int tid );
        -
        +POSIX Compatibility: + This is a NON-POSIX interface. + VxWorks provides the following similar interface: +

        +
          +STATUS taskDelete(int tid);
          +

        The NuttX task_delete() differs from VxWorks' taskDelete() in the following ways:

          -
        • No support is provided for calling the tasks deletion routines -(because taskDeleteHookAdd() is not supported). -
        • Deletion of self is not supported. Use _exit(); +
        • No support is provided for calling the tasks deletion routines (because the VxWorks taskDeleteHookAdd() is not supported). + However, if atexit() or on_exit support is enabled, those will be called when the task deleted. +
        • Deletion of self is supported, but only because task_delete() will re-direct processing to exit().

        2.1.5 exit

        @@ -470,10 +475,10 @@ VxWorks provides the following similar interface: Function Prototype:
             #include <sched.h>
        -    void exit( int code );
        +    void exit(int code);
         
             #include <nuttx/unistd.h>
        -    void _exit( int code );
        +    void _exit(int code);
         

        @@ -484,11 +489,11 @@ execute any function registered with atexit() or on_exit() Input Parameters:

          -
        • code. (ignored) +
        • code. (ignored)

        -Returned Values: None. +Returned Value: None.

        Assumptions/Limitations: @@ -496,49 +501,59 @@ execute any function registered with atexit() or on_exit() POSIX Compatibility: This is equivalent to the ANSI interface:

        -    void exit( int code );
        +    void exit(int code);
         
        And the UNIX interface:
        -    void _exit( int code );
        +    void _exit(int code);
         

        The NuttX exit() differs from ANSI exit() in the following ways:

          -
        • The code parameter is ignored. +
        • The code parameter is ignored.

        2.1.6 task_restart

        -

        -Function Prototype: -

        -    #include <sched.h>
        -    int task_restart( pid_t pid );
        -
        - +Function Prototype: +
          +#include <sched.h>
          +int task_restart(pid_t pid);
          +

        -Description: This function "restarts" a task. -The task is first terminated and then reinitialized with same -ID, priority, original entry point, stack size, and parameters -it had when it was first started. + Description: + This function "restarts" a task. + The task is first terminated and then reinitialized with same ID, priority, original entry point, stack size, and parameters it had when it was first started.

        -NOTE: The normal task exit clean up is not performed. -For example, file descriptors are not closed; -any files opened prior to the restart will remain opened after the task is restarted. + NOTES:

        +
          +
        1. + The normal task exit clean up is not performed. + For example, file descriptors are not closed; any files opened prior to the restart will remain opened after the task is restarted. +
        2. +
        3. + Memory allocated by the task before it was restart is not freed. + A task that is subject to being restart must be designed in such a way as to avoid memory leaks. +
        4. +
        5. + Initialized data is not reset. + All global or static data is left in the same state as when the task was terminated. + This feature may be used by restart task to detect that it has been restarted, for example. +
        6. +

        Input Parameters:

          -
        • pid. The task ID of the task to delete. An ID of -zero signifies the calling task. +
        • pid. + The task ID of the task to delete. + An ID of zero would signify the calling task (However, support for a task to restart itself has not been implemented).
        -

        -Returned Values: +Returned Value:

        • OK, or ERROR if the task ID is invalid or the task could @@ -546,9 +561,8 @@ zero signifies the calling task. This function can fail if: (1) A pid of zero or the pid of the calling task is provided (functionality not implemented) (2) The pid is not associated with any task known to the system. -
        • +
        -

        Assumptions/Limitations:

        @@ -562,9 +576,13 @@ VxWorks provides the following similar interface: The NuttX task_restart() differs from VxWorks' taskRestart() in the following ways:

          -
        • Restart of the currently running task is not supported. -
        • The VxWorks description says that the ID, priority, etc. take -the value that they had when the task was terminated. +
        • + Restart of the currently running task is not supported by NuttX. +
        • +
        • + The VxWorks description says that the ID, priority, etc. take + the value that they had when the task was terminated. +

        2.1.7 getpid

        @@ -573,7 +591,7 @@ the value that they had when the task was terminated. Function Prototype:
             #include <unistd.h>
        -    pid_t getpid( void );
        +    pid_t getpid(void);
         

        @@ -583,7 +601,7 @@ level.

        Input Parameters: None.

        -Returned Values: +Returned Value:

        • The task ID of the calling task.
        @@ -663,9 +681,9 @@ Compatible with the POSIX interface of the same name.

      - Returned Values: - On success, sched_setparam() returns 0 (OK). - On error, -1 (ERROR) is returned, and errno is set appropriately. + Returned Value: + On success, sched_setparam() returns 0 (OK). + On error, -1 (ERROR) is returned, and errno is set appropriately.

        @@ -721,9 +739,9 @@ of the task specified by pid.

      -Returned Values: +Returned Value:

        -
      • 0 (OK) if successful, otherwise -1 (ERROR). +
      • 0 (OK) if successful, otherwise -1 (ERROR).

      @@ -734,101 +752,90 @@ interface of the same name.

      2.2.3 sched_setscheduler

      -Function Prototype: -

      -    #include <sched.h>
      -    int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param);
      -
      + Function Prototype: +

      +
        +#include <sched.h>
        +int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param);
        +

      Description: - sched_setscheduler() sets both the scheduling policy - and the priority for the task identified by pid. - If pid equals zero, the scheduler of the calling - thread will be set. - The parameter 'param' holds the priority of the thread under the new policy. + sched_setscheduler() sets both the scheduling policyand the priority for the task identified by pid. + If pid equals zero, the scheduler of the calling thread will be set. + The parameter param holds the priority of the thread under the new policy.

      -Input Parameters: + Input Parameters: +

      • - pid. The task ID of the task. If pid is zero, the - priority of the calling task is set. + pid. + The task ID of the task. + If pid is zero, the priority of the calling task is set.
      • - policy. Scheduling policy requested (either SCHED_FIFO or SCHED_RR). + policy. + Scheduling policy requested (either SCHED_FIFO or SCHED_RR).
      • - param. A structure whose member sched_priority is the - integer priority. The range of valid priority numbers is from - SCHED_PRIORITY_MIN through SCHED_PRIORITY_MAX. + param. + A structure whose member sched_priority is the integer priority. + The range of valid priority numbers is from SCHED_PRIORITY_MIN through SCHED_PRIORITY_MAX.

      - Returned Values: - On success, sched_setscheduler() returns OK (zero). On - error, ERROR (-1) is returned, and errno is set appropriately: + Returned Value: + On success, sched_setscheduler() returns OK (zero). On + error, ERROR (-1) is returned, and errno is set appropriately:

        -
      • EINVAL The scheduling policy is not one of the - recognized policies.
      • -
      • ESRCH The task whose ID is pid could not be found.
      • +
      • EINVAL: The scheduling policy is not one of the recognized policies.
      • +
      • ESRCH: The task whose ID is pid could not be found.
      -

      -Assumptions/Limitations: + Assumptions/Limitations: +

      - POSIX Compatibility: Comparable to the POSIX -interface of the same name. + POSIX Compatibility: Comparable to the POSIX interface of the same name. +

      2.2.4 sched_getscheduler

      Function Prototype: -

      -    #include <sched.h>
      -    int sched_getscheduler (pid_t pid);
      -
      +
        +#include <sched.h>
        +int sched_getscheduler (pid_t pid);
        +

      Description: - sched_getscheduler() returns the scheduling policy - currently applied to the task identified by pid. If - pid equals zero, the policy of the calling process will + sched_getscheduler() returns the scheduling policy + currently applied to the task identified by pid. If + pid equals zero, the policy of the calling process will be retrieved. - * - * Inputs: - * - * Return Value: - - This function returns the current scheduling -policy.

      Input Parameters:

        -
      • pid. +
      • pid. The task ID of the task to query. - If pid is zero, the calling task is queried. + If pid is zero, the calling task is queried.

      -Returned Values: +Returned Value:

      • - On success, sched_getscheduler() returns the policy for - the task (either SCHED_FIFO or SCHED_RR). - On error, ERROR (-1) is returned, and errno is set appropriately: + On success, sched_getscheduler() returns the policy for + the task (either SCHED_FIFO or SCHED_RR). + On error, ERROR (-1) is returned, and errno is set appropriately:
          -
        • ESRCH The task whose ID is pid could not be found.
        • +
        • ESRCH: The task whose ID is pid could not be found.

      Assumptions/Limitations:

      - POSIX Compatibility: Comparable to the POSIX -interface of the same name. -Differences from the full POSIX implementation include: -

        -
      • Does not report errors via errno. -
      + POSIX Compatibility: Comparable to the POSIX interface of the same name.

      2.2.5 sched_yield

      @@ -836,7 +843,7 @@ Differences from the full POSIX implementation include: Function Prototype:
           #include <sched.h>
      -    int sched_yield( void );
      +    int sched_yield(void);
       

      @@ -845,9 +852,9 @@ up the CPU (only to other tasks at the same priority).

      Input Parameters: None.

      -Returned Values: +Returned Value:

        -
      • 0 (OK) or -1 (ERROR) +
      • 0 (OK) or -1 (ERROR)

      @@ -871,13 +878,13 @@ possible task priority for a specified scheduling policy.

      Input Parameters:

        -
      • policy. Scheduling policy requested. +
      • policy. Scheduling policy requested.

      -Returned Values: +Returned Value:

        -
      • The maximum priority value or -1 (ERROR). +
      • The maximum priority value or -1 (ERROR).

      @@ -901,13 +908,13 @@ possible task priority for a specified scheduling policy.

      Input Parameters:

        -
      • policy. Scheduling policy requested. +
      • policy. Scheduling policy requested.

      -Returned Values: +Returned Value:

        -
      • The minimum priority value or -1 (ERROR) +
      • The minimum priority value or -1 (ERROR)

      @@ -927,9 +934,9 @@ interface of the same name.

      Description: - sched_rr_get_interval() writes the timeslice interval - for task identified by pid into the timespec structure - pointed to by interval. If pid is zero, the timeslice + sched_rr_get_interval() writes the timeslice interval + for task identified by pid into the timespec structure + pointed to by interval. If pid is zero, the timeslice for the calling process is written into 'interval. The identified process should be running under the SCHED_RR scheduling policy.' @@ -938,21 +945,21 @@ interface of the same name. Input Parameters:

        -
      • pid. The task ID of the task. If pid is zero, the +
      • pid. The task ID of the task. If pid is zero, the priority of the calling task is returned. -
      • interval. A structure used to return the time slice. +
      • interval. A structure used to return the time slice.

      - Returned Values: + Returned Value: On success, sched_rr_get_interval() returns OK (0). On error, ERROR (-1) is returned, and errno is set to:

        -
      • EFAULT Cannot copy to interval
      • -
      • EINVAL Invalid pid.
      • -
      • ENOSYS The system call is not yet implemented.
      • -
      • ESRCH The process whose ID is pid could not be found.
      • +
      • EFAULT: Cannot copy to interval
      • +
      • EINVAL: Invalid pid.
      • +
      • ENOSYS: The system call is not yet implemented.
      • +
      • ESRCH: The process whose ID is pid could not be found.

      @@ -989,7 +996,7 @@ priority of the calling task is returned. Function Prototype:

           #include <sched.h>
      -    int sched_lock( void );
      +    int sched_lock(void);
       

      @@ -1001,7 +1008,7 @@ number of times) or until it blocks itself.

      Input Parameters: None.

      -Returned Values: +Returned Value:

      • OK or ERROR.
      @@ -1012,7 +1019,7 @@ number of times) or until it blocks itself. POSIX Compatibility: This is a NON-POSIX interface. VxWorks provides the comparable interface:
      -    STATUS taskLock( void );
      +    STATUS taskLock(void);
       

      2.3.2 sched_unlock

      @@ -1021,7 +1028,7 @@ VxWorks provides the comparable interface: Function Prototype:
           #include <sched.h>
      -    int sched_unlock( void );
      +    int sched_unlock(void);
       

      @@ -1034,7 +1041,7 @@ eligible to preempt the current task will execute.

      Input Parameters: None.

      -Returned Values: +Returned Value:

      • OK or ERROR.
      @@ -1045,7 +1052,7 @@ eligible to preempt the current task will execute. POSIX Compatibility: This is a NON-POSIX interface. VxWorks provides the comparable interface:
      -    STATUS taskUnlock( void );
      +    STATUS taskUnlock(void);
       

      2.3.3 sched_lockcount

      @@ -1054,7 +1061,7 @@ VxWorks provides the comparable interface: Function Prototype:
           #include <sched.h>
      -    int32_t sched_lockcount( void )
      +    int32_t sched_lockcount(void)
       

      @@ -1065,7 +1072,7 @@ on this thread of execution.

      Input Parameters: None.

      -Returned Values: +Returned Value:

      • The current value of the lockCount.
      @@ -1152,7 +1159,7 @@ on this thread of execution.

    - If the calling process has SA_NOCLDWAIT set or has SIGCHLD set to SIG_IGN, and the process has no unwaited-for children that were transformed into zombie processes, the calling thread will block until all of the children of the process containing the calling thread terminate, and waitpid() will fail and set errno to ECHILD. + If the calling process has SA_NOCLDWAIT set or has SIGCHLD set to SIG_IGN, and the process has no unwaited-for children that were transformed into zombie processes, the calling thread will block until all of the children of the process containing the calling thread terminate, and waitpid() will fail and set errno to ECHILD.

    If waitpid() returns because the status of a child process is available, these functions will return a value equal to the process ID of the child process. @@ -1204,7 +1211,7 @@ on this thread of execution.

  • - Returned Values: + Returned Value:

    If waitpid() returns because the status of a child process is available, it will return a value equal to the process ID of the child process for which status is reported. @@ -1261,10 +1268,10 @@ on this thread of execution. Input Parameters:

      -
    • func. A pointer to the function to be called when the task exits.
    • +
    • func. A pointer to the function to be called when the task exits.

    - Returned Values: + Returned Value: On success, atexit() returns OK (0). On error, ERROR (-1) is returned, and errno is set to indicate the cause of the failure.

    @@ -1301,11 +1308,11 @@ on this thread of execution. Input Parameters:

      -
    • func. A pointer to the function to be called when the task exits.
    • -
    • arg. An argument that will be provided to the on_exit() function when the task exits.
    • +
    • func. A pointer to the function to be called when the task exits.
    • +
    • arg. An argument that will be provided to the on_exit() function when the task exits.

    - Returned Values: + Returned Value: On success, on_exit() returns OK (0). On error, ERROR (-1) is returned, and errno is set to indicate the cause of the failure.

    @@ -1355,7 +1362,7 @@ on this thread of execution. Function Prototype:
         #include <mqueue.h>
    -    mqd_t mq_open( const char *mqName, int oflags, ... );
    +    mqd_t mq_open(const char *mqName, int oflags, ...);
     

    @@ -1367,27 +1374,27 @@ until it is closed by a successful call to mq_close().

    Input Parameters:

      -
    • mqName. Name of the queue to open -
    • oflags. Open flags. These may be any combination of: +
    • mqName. Name of the queue to open +
    • oflags. Open flags. These may be any combination of:
        -
      • O_RDONLY. Open for read access. -
      • O_WRONLY. Open for write access. -
      • O_RDWR. Open for both read & write access. -
      • O_CREAT. Create message queue if it does not already +
      • O_RDONLY. Open for read access. +
      • O_WRONLY. Open for write access. +
      • O_RDWR. Open for both read & write access. +
      • O_CREAT. Create message queue if it does not already exist. -
      • O_EXCL. Name must not exist when opened. -
      • O_NONBLOCK. Don't wait for data. +
      • O_EXCL. Name must not exist when opened. +
      • O_NONBLOCK. Don't wait for data.
      -
    • ... Optional parameters. +
    • ... Optional parameters. When the O_CREAT flag is specified, POSIX requires that a third and fourth parameter be supplied:
        -
      • mode. The mode parameter is of type mode_t. In the POSIX +
      • mode. The mode parameter is of type mode_t. In the POSIX specification, this mode value provides file permission bits for the message queue. This parameter is required but not used in the present implementation. -
      • attr. A pointer to an mq_attr that is provided to initialize. +
      • attr. A pointer to an mq_attr that is provided to initialize. the message queue. If attr is NULL, then the messages queue is created with implementation-defined default message queue attributes. If attr is non-NULL, then the message queue mq_maxmsg attribute is set to the @@ -1401,9 +1408,9 @@ message that can be sent or received. Other elements of attr are ignored

      -Returned Values: +Returned Value:

        -
      • A message queue descriptor or -1 (ERROR) +
      • A message queue descriptor or -1 (ERROR)

      @@ -1424,7 +1431,7 @@ message size is limited at 22 bytes. Function Prototype:

           #include <mqueue.h>
      -    int mq_close( mqd_t mqdes );
      +    int mq_close(mqd_t mqdes);
       

      @@ -1434,30 +1441,32 @@ The mq_close() deallocates any system resources allocated by the system for use by this task for its message queue.

      If the calling task has attached a notification request to the message -queue via this mqdes (see mq_notify()), this attachment will be +queue via this mqdes (see mq_notify()), this attachment will be removed and the message queue is available for another task to attach for notification.

      Input Parameters:

        -
      • mqdes. Message queue descriptor. +
      • mqdes. Message queue descriptor.

      -Returned Values: +Returned Value:

        -
      • 0 (OK) if the message queue is closed successfully, otherwise, --1 (ERROR). +
      • 0 (OK) if the message queue is closed successfully, otherwise, +-1 (ERROR).

      Assumptions/Limitations:

        -
      • The behavior of a task that is blocked on either a mq_send() or -mq_receive() is undefined when mq_close() is called. -
      • The result of using this message queue descriptor after successful -return from mq_close() is undefined. +
      • + The behavior of a task that is blocked on either a mq_send() or mq_receive() is undefined when mq_close() is called. +
      • +
      • + The result of using this message queue descriptor after successful return from mq_close() is undefined. +

      POSIX Compatibility: Comparable to the POSIX interface @@ -1469,7 +1478,7 @@ of the same name. Function Prototype:

           #include <mqueue.h>
      -    int mq_unlink( const char *mqName );
      +    int mq_unlink(const char *mqName);
       

      @@ -1481,11 +1490,11 @@ closed.

      Input Parameters:

        -
      • mqName. Name of the message queue +
      • mqName. Name of the message queue

      -Returned Values: None. +Returned Value: None.

      Assumptions/Limitations:

      @@ -1502,8 +1511,7 @@ interface of the same name.

      Description: - This function adds the specified message, msg, - to the message queue, mqdes. + This function adds the specified message, msg, to the message queue, mqdes. The msglen parameter specifies the length of the message in bytes pointed to by msg. This length must not exceed the maximum message length from the mq_getattr().

      @@ -1523,8 +1531,22 @@ interface of the same name. is not queued and ERROR is returned.

      -NOTE: mq_send() may be called from an interrupt handler. -

      + NOTE: + mq_send() may be called from an interrupt handler. + However, it behaves differently when called from the interrupt level: +

      +
        +
      • + It does not check the size of the queue. + It will always post the message, even if there is already too many messages in queue. + This is because the interrupt handler does not have the option of waiting for the message queue to become non-full. +
      • +
      • + It doesn't allocate new memory (because you cannot allocate memory from an interrup handler). + Instead, there are are pool of pre-allocated message structures that may be used just for sending messages from interrupt handlers. + The number of such pre-allocated messages is a configuration parameter. +
      • +

      Input Parameters:

      @@ -1535,7 +1557,7 @@ interface of the same name.
    • prio. The priority of the message.

    - Returned Values: + Returned Value: On success, mq_send() returns 0 (OK); on error, -1 (ERROR) is returned, with errno set to indicate the error: @@ -1618,7 +1640,7 @@ interface of the same name.

  • prio. The priority of the message.
  • - Returned Values: + Returned Value: On success, mq_send() returns 0 (OK); on error, -1 (ERROR) is returned, with errno set to indicate the error: @@ -1689,7 +1711,7 @@ interface of the same name.

  • prio. If not NULL, the location to store message priority.

    - Returned Values:. + Returned Value:. One success, the length of the selected message in bytes is returned. On failure, -1 (ERROR) is returned and the errno is set appropriately:

    @@ -1770,7 +1792,7 @@ interface of the same name.
  • abstime. The absolute time to wait until a timeout is declared.

    - Returned Values:. + Returned Value:. One success, the length of the selected message in bytes is returned. On failure, -1 (ERROR) is returned and the errno is set appropriately:

    @@ -1848,7 +1870,7 @@ interface of the same name.

    - Returned Values: + Returned Value: On success mq_notify() returns 0; on error, -1 is returned, with errno set to indicate the error:

      @@ -1881,10 +1903,10 @@ interface of the same name. another task is waiting for the message queue to become non-empty. This is inconsistent with the POSIX specification which states, "If a process has registered for notification of message arrival at a message queue and - some process is blocked in mq_receive waiting to receive a message - when a message arrives at the queue, the arriving message shall satisfy the - appropriate mq_receive() ... The resulting behavior is as if the - message queue remains empty, and no notification shall be sent." + some process is blocked in mq_receive waiting to receive a message + when a message arrives at the queue, the arriving message will satisfy the + appropriate mq_receive() ... The resulting behavior is as if the + message queue remains empty, and no notification will be sent."

    @@ -1895,8 +1917,8 @@ interface of the same name. Function Prototype:
         #include <mqueue.h>
    -    int mq_setattr( mqd_t mqdes, const struct mq_attr *mqStat,
    -                     struct mq_attr *oldMqStat);
    +    int mq_setattr(mqd_t mqdes, const struct mq_attr *mqStat,
    +                   struct mq_attr *oldMqStat);
     

    @@ -1910,16 +1932,16 @@ would have been returned by mq_getattr()).

    Input Parameters:

      -
    • mqdes. Message queue descriptor -
    • mqStat. New attributes -
    • oldMqState. Old attributes +
    • mqdes. Message queue descriptor +
    • mqStat. New attributes +
    • oldMqState. Old attributes

    -Returned Values: +Returned Value:

      -
    • 0 (OK) if attributes are set successfully, otherwise -1 -(ERROR). +
    • 0 (OK) if attributes are set successfully, otherwise -1 +(ERROR).

    @@ -1934,7 +1956,7 @@ interface of the same name. Function Prototype:

         #include <mqueue.h>
    -    int mq_getattr( mqd_t mqdes, struct mq_attr *mqStat);
    +    int mq_getattr(mqd_t mqdes, struct mq_attr *mqStat);
     

    @@ -1943,22 +1965,22 @@ attributes associated with the specified message queue.

    Input Parameters:

      -
    • mqdes. Message queue descriptor -
    • mqStat. Buffer in which to return attributes. The returned +
    • mqdes. Message queue descriptor +
    • mqStat. Buffer in which to return attributes. The returned attributes include:
        -
      • mq_maxmsg. Max number of messages in queue. -
      • mq_msgsize. Max message size. -
      • mq_flags. Queue flags. -
      • mq_curmsgs. Number of messages currently in queue. +
      • mq_maxmsg. Max number of messages in queue. +
      • mq_msgsize. Max message size. +
      • mq_flags. Queue flags. +
      • mq_curmsgs. Number of messages currently in queue.

    -Returned Values: +Returned Value:

      -
    • 0 (OK) if attributes provided, -1 (ERROR) otherwise. +
    • 0 (OK) if attributes provided, -1 (ERROR) otherwise.

    @@ -2121,7 +2143,7 @@ interface of the same name. Function Prototype:

         #include <semaphore.h>
    -    int sem_init ( sem_t *sem, int pshared, unsigned int value );
    +    int sem_init(sem_t *sem, int pshared, unsigned int value);
     

    @@ -2130,22 +2152,22 @@ sem. Following a successful call to sem_init(), the semaphore may be used in subsequent calls to sem_wait(), sem_post(), and sem_trywait(). The semaphore remains usable until it is destroyed.

    -Only sem itself may be used for performing synchronization. The -result of referring to copies of sem in calls to sem_wait(), -sem_trywait(), sem_post(), and sem_destroy(), is +Only sem itself may be used for performing synchronization. The +result of referring to copies of sem in calls to sem_wait(), +sem_trywait(), sem_post(), and sem_destroy(), is not defined.

    Input Parameters:

      -
    • sem. Semaphore to be initialized -
    • pshared. Process sharing (not used) -
    • value. Semaphore initialization value +
    • sem. Semaphore to be initialized +
    • pshared. Process sharing (not used) +
    • value. Semaphore initialization value

    -Returned Values: +Returned Value:

      -
    • 0 (OK), or -1 (ERROR) if unsuccessful. +
    • 0 (OK), or -1 (ERROR) if unsuccessful.

    @@ -2164,29 +2186,29 @@ Differences from the full POSIX implementation include: Function Prototype:

         #include <semaphore.h>
    -    int sem_destroy ( sem_t *sem );
    +    int sem_destroy(sem_t *sem);
     

    Description: This function is used to destroy the un-named semaphore -indicated by sem. Only a semaphore that was created using -sem_init() may be destroyed using sem_destroy(). The effect -of calling sem_destroy() with a named semaphore is undefined. The -effect of subsequent use of the semaphore sem is undefined until -sem is re-initialized by another call to sem_init(). +indicated by sem. Only a semaphore that was created using +sem_init() may be destroyed using sem_destroy(). The effect +of calling sem_destroy() with a named semaphore is undefined. The +effect of subsequent use of the semaphore sem is undefined until +sem is re-initialized by another call to sem_init().

    The effect of destroying a semaphore upon which other tasks are currently blocked is undefined.

    Input Parameters:

      -
    • sem. Semaphore to be destroyed. +
    • sem. Semaphore to be destroyed.

    -Returned Values: +Returned Value:

      -
    • 0 (OK), or -1 (ERROR) if unsuccessful. +
    • 0 (OK), or -1 (ERROR) if unsuccessful.

    @@ -2201,7 +2223,7 @@ interface of the same name. Function Prototype:

         #include <semaphore.h>
    -    sem_t *sem_open ( const char *name, int oflag, ...);
    +    sem_t *sem_open(const char *name, int oflag, ...);
     

    @@ -2219,35 +2241,35 @@ been no calls to sem_unlink()).

    Input Parameters:

      -
    • name. Semaphore name -
    • oflag. Semaphore creation options. This may one of +
    • name. Semaphore name +
    • oflag. Semaphore creation options. This may one of the following bit settings:
        -
      • oflag = 0: Connect to the semaphore only if it already +
      • oflag = 0: Connect to the semaphore only if it already exists. -
      • oflag = O_CREAT: Connect to the semaphore if it exists, +
      • oflag = O_CREAT: Connect to the semaphore if it exists, otherwise create the semaphore. -
      • oflag = O_CREAT with O_EXCL (O_CREAT|O_EXCL): Create +
      • oflag = O_CREAT with O_EXCL (O_CREAT|O_EXCL): Create a new semaphore unless one of this name already exists.
    • ... Optional parameters. NOTE: When the O_CREAT flag is specified, POSIX requires that a third and fourth parameter be supplied:
        -
      • mode. The mode parameter is of type mode_t. +
      • mode. The mode parameter is of type mode_t. This parameter is required but not used in the present implementation. -
      • value. The value parameter is type unsigned int. The semaphore -is created with an initial value of value. Valid initial values for -semaphores must be less than or equal to SEM_VALUE_MAX (defined in +
      • value. The value parameter is type unsigned int. The semaphore +is created with an initial value of value. Valid initial values for +semaphores must be less than or equal to SEM_VALUE_MAX (defined in include/limits.h).

    -Returned Values: +Returned Value:

      -
    • A pointer to sem_t or -1 (ERROR) if unsuccessful. +
    • A pointer to sem_t or -1 (ERROR) if unsuccessful.

    @@ -2267,7 +2289,7 @@ just a counting semaphore. Function Prototype:

         #include <semaphore.h>
    -    int sem_close ( sem_t *sem );
    +    int sem_close(sem_t *sem);
     

    @@ -2286,13 +2308,13 @@ that another calling task has already locked.

    Input Parameters:

      -
    • sem. Semaphore descriptor +
    • sem. Semaphore descriptor

    -Returned Values: +Returned Value:

      -
    • 0 (OK), or -1 (ERROR) if unsuccessful. +
    • 0 (OK), or -1 (ERROR) if unsuccessful.

    @@ -2312,7 +2334,7 @@ interface of the same name. Function Prototype:

         #include <semaphore.h>
    -    int sem_unlink ( const char *name );
    +    int sem_unlink(const char *name);
     

    @@ -2324,13 +2346,13 @@ sem_close().

    Input Parameters:

      -
    • name. Semaphore name +
    • name. Semaphore name

    -Returned Values: +Returned Value:

      -
    • 0 (OK), or -1 (ERROR) if unsuccessful. +
    • 0 (OK), or -1 (ERROR) if unsuccessful.

    @@ -2358,7 +2380,7 @@ same name should be created after sem_unlink() is called. Function Prototype:

         #include <semaphore.h>
    -    int sem_wait ( sem_t *sem );
    +    int sem_wait(sem_t *sem);
     

    @@ -2369,23 +2391,23 @@ the lock or the call is interrupted by a signal.

    Input Parameters:

      -
    • sem. Semaphore descriptor. +
    • sem. Semaphore descriptor.

    -Returned Values: +Returned Value:

      -
    • 0 (OK), or -1 (ERROR) is unsuccessful +
    • 0 (OK), or -1 (ERROR) is unsuccessful

    -If sem_wait returns -1 (ERROR) then the cause of the failure +If sem_wait returns -1 (ERROR) then the cause of the failure will be indicated by the thread-specific errno. The following lists the possible values for errno:

      -
    • EINVAL: Indicates that the sem input parameter is +
    • EINVAL: Indicates that the sem input parameter is not valid. -
    • EINTR: Indicates that the wait was interrupt by a signal +
    • EINTR: Indicates that the wait was interrupt by a signal received by this task. In this case, the semaphore has not be acquired.

    @@ -2401,7 +2423,7 @@ interface of the same name.

         #include <semaphore.h>
         #include <time.h>
    -    int sem_wait ( sem_t *sem, const struct timespec *abstime);
    +    int sem_wait(sem_t *sem, const struct timespec *abstime);
     

    @@ -2416,20 +2438,20 @@ interface of the same name. Input Parameters:

    • - sem. Semaphore descriptor. + sem. Semaphore descriptor.
    • - abstime. The absolute time to wait until a timeout is declared. + abstime. The absolute time to wait until a timeout is declared.

    -Returned Values: +Returned Value:

      -
    • 0 (OK), or -1 (ERROR) is unsuccessful +
    • 0 (OK), or -1 (ERROR) is unsuccessful

    -If sem_wait returns -1 (ERROR) then the cause of the failure +If sem_wait returns -1 (ERROR) then the cause of the failure will be indicated by the thread-specific errno. The following lists the possible values for errno:

    @@ -2437,7 +2459,7 @@ The following lists the possible values for errno

  • EINVAL: - Indicates that the sem input parameter is not valid or the + Indicates that the sem input parameter is not valid or the thread would have blocked, and the abstime parameter specified a nanoseconds field value less than zero or greater than or equal to 1000 million. @@ -2469,7 +2491,7 @@ The following lists the possible values for errnoFunction Prototype:
         #include <semaphore.h>
    -    int sem_trywait ( sem_t *sem );
    +    int sem_trywait(sem_t *sem);
     

    @@ -2479,22 +2501,22 @@ returns without blocking.

    Input Parameters:

      -
    • sem. The semaphore descriptor +
    • sem. The semaphore descriptor

    -Returned Values: +Returned Value:

      -
    • 0 (OK) or -1 (ERROR) if unsuccessful +
    • 0 (OK) or -1 (ERROR) if unsuccessful
    -If sem_wait returns -1 (ERROR) then the cause of the failure +If sem_wait returns -1 (ERROR) then the cause of the failure will be indicated by the thread-specific
    errno. The following lists the possible values for errno:

      -
    • EINVAL: Indicates that the sem input parameter is +
    • EINVAL: Indicates that the sem input parameter is not valid. -
    • EAGAIN: Indicates that the semaphore was not acquired. +
    • EAGAIN: Indicates that the semaphore was not acquired.

    @@ -2510,13 +2532,13 @@ interface of the same name. Function Prototype:

         #include <semaphore.h>
    -    int sem_post ( sem_t *sem );
    +    int sem_post(sem_t *sem);
     

    Description: When a task has finished with a semaphore, it will call sem_post(). This function unlocks the semaphore referenced -by sem by performing the semaphore unlock operation. +by sem by performing the semaphore unlock operation.

    If the semaphore value resulting from this operation is positive, then no tasks were blocked waiting for the semaphore to become unlocked; @@ -2524,19 +2546,19 @@ The semaphore value is simply incremented.

    If the value of the semaphore resulting from this operation is zero, then on of the tasks blocked waiting for the semaphore will be allowed to -return successfully from its call to sem_wait(). +return successfully from its call to sem_wait().

    -NOTE: sem_post() may be called from an interrupt handler. +NOTE: sem_post() may be called from an interrupt handler.

    Input Parameters:

      -
    • sem. Semaphore descriptor +
    • sem. Semaphore descriptor

    -Returned Values: +Returned Value:

      -
    • 0 (OK) or -1 (ERROR) if unsuccessful. +
    • 0 (OK) or -1 (ERROR) if unsuccessful.

    @@ -2553,7 +2575,7 @@ interface of the same name. Function Prototype:

         #include <semaphore.h>
    -    int sem_getvalue ( sem_t *sem, int *sval );
    +    int sem_getvalue(sem_t *sem, int *sval);
     

    @@ -2570,14 +2592,14 @@ number of tasks waiting for the semaphore.

    Input Parameters:

      -
    • sem. Semaphore descriptor -
    • sval. Buffer by which the value is returned +
    • sem. Semaphore descriptor +
    • sval. Buffer by which the value is returned

    -Returned Values: +Returned Value:

      -
    • 0 (OK) or -1 (ERROR) if unsuccessful. +
    • 0 (OK) or -1 (ERROR) if unsuccessful.

    @@ -2618,7 +2640,7 @@ interface of the same name. Function Prototype:

         #include <wdog.h>
    -    WDOG_ID wd_create (void);
    +    WDOG_ID wd_create(void);
     

    @@ -2627,7 +2649,7 @@ by allocating the appropriate resources for the watchdog.

    Input Parameters: None.

    -Returned Values: +Returned Value:

    • Pointer to watchdog that may be used as a handle in subsequent NuttX calls (i.e., the watchdog ID), or NULL if insufficient resources @@ -2656,7 +2678,7 @@ initialization time). Function Prototype:
           #include <wdog.h>
      -    int wd_delete (WDOG_ID wdog);
      +    int wd_delete(WDOG_ID wdog);
       

      @@ -2666,12 +2688,12 @@ has been started.

      Input Parameters:

        -
      • wdog. The watchdog ID to delete. This is actually a +
      • wdog. The watchdog ID to delete. This is actually a pointer to a watchdog structure.

      -Returned Values: +Returned Value:

      • OK or ERROR
      @@ -2700,8 +2722,8 @@ before deallocating it (i.e., never returns ERROR). Function Prototype:
           #include <wdog.h>
      -    int wd_start( WDOG_ID wdog, int delay, wdentry_t wdentry,
      -                     intt argc, ....);
      +    int wd_start(WDOG_ID wdog, int delay, wdentry_t wdentry,
      +                 int argc, ....);
       

      @@ -2720,15 +2742,15 @@ wd_start() on a given watchdog ID has any effect.

      Input Parameters:

        -
      • wdog. Watchdog ID -
      • delay. Delay count in clock ticks -
      • wdentry. Function to call on timeout -
      • argc. The number of uint32_t parameters to pass to wdentry. -
      • .... uint32_t size parameters to pass to wdentry +
      • wdog. Watchdog ID +
      • delay. Delay count in clock ticks +
      • wdentry. Function to call on timeout +
      • argc. The number of uint32_t parameters to pass to wdentry. +
      • .... uint32_t size parameters to pass to wdentry

      -Returned Values: +Returned Value:

      • OK or ERROR
      @@ -2757,7 +2779,7 @@ number of parameters is determined by Function Prototype:
           #include <wdog.h>
      -    int wd_cancel (WDOG_ID wdog);
      +    int wd_cancel(WDOG_ID wdog);
       

      @@ -2767,11 +2789,11 @@ level.

      Input Parameters:

        -
      • wdog. ID of the watchdog to cancel. +
      • wdog. ID of the watchdog to cancel.

      -Returned Values: +Returned Value:

      • OK or ERROR
      @@ -2852,10 +2874,10 @@ VxWorks provides the following comparable interface:
    • parm.

    - Returned Values: + Returned Value:

    - If successful, the clock_settime() function will return zero (OK). + If successful, the clock_settime() function will return zero (OK). Otherwise, an non-zero error number will be returned to indicate the error:

      @@ -2880,10 +2902,10 @@ VxWorks provides the following comparable interface:
    • parm.

    - Returned Values: + Returned Value:

    - If successful, the clock_gettime() function will return zero (OK). + If successful, the clock_gettime() function will return zero (OK). Otherwise, an non-zero error number will be returned to indicate the error:

      @@ -2908,10 +2930,10 @@ VxWorks provides the following comparable interface:
    • parm.

    - Returned Values: + Returned Value:

    - If successful, the clock_getres() function will return zero (OK). + If successful, the clock_getres() function will return zero (OK). Otherwise, an non-zero error number will be returned to indicate the error:

      @@ -2936,10 +2958,10 @@ VxWorks provides the following comparable interface:
    • parm.

    - Returned Values: + Returned Value:

    - If successful, the mktime() function will return zero (OK). + If successful, the mktime() function will return zero (OK). Otherwise, an non-zero error number will be returned to indicate the error:

      @@ -2968,10 +2990,10 @@ VxWorks provides the following comparable interface:

    - Returned Values: + Returned Value:

    - If successful, the gmtime() function will return the pointer to a statically + If successful, the gmtime() function will return the pointer to a statically defined instance of struct tim. Otherwise, a NULL will be returned to indicate the error:

    @@ -3008,10 +3030,10 @@ VxWorks provides the following comparable interface: A user-provided buffer to receive the converted time structure.

    - Returned Values: + Returned Value:

    - If successful, the gmtime_r() function will return the pointer, result, + If successful, the gmtime_r() function will return the pointer, result, provided by the caller. Otherwise, a NULL will be returned to indicate the error:

    @@ -3055,7 +3077,7 @@ VxWorks provides the following comparable interface:

    Each implementation defines a set of clocks that can be used as timing bases - for per-thread timers. All implementations shall support a clock_id of + for per-thread timers. All implementations will support a clock_id of CLOCK_REALTIME.

    @@ -3069,7 +3091,7 @@ VxWorks provides the following comparable interface:

  • timerid. The pre-thread timer created by the call to timer_create().
  • - Returned Values: + Returned Value:

    If the call succeeds, timer_create() will return 0 (OK) and update the @@ -3119,11 +3141,11 @@ VxWorks provides the following comparable interface: The pre-thread timer, previously created by the call to timer_create(), to be deleted.

    - Returned Values: + Returned Value:

    - If successful, the timer_delete() function will return zero (OK). - Otherwise, the function will return a value of -1 (ERROR) and set + If successful, the timer_delete() function will return zero (OK). + Otherwise, the function will return a value of -1 (ERROR) and set errno to indicate the error:

      @@ -3197,11 +3219,11 @@ VxWorks provides the following comparable interface:
    • ovalue. A location in which to return the time remaining from the previous timer setting (ignored).

    - Returned Values: + Returned Value:

    - If the timer_gettime() succeeds, a value of 0 (OK) will be returned. - If an error occurs, the value -1 (ERROR) will be returned, and + If the timer_gettime() succeeds, a value of 0 (OK) will be returned. + If an error occurs, the value -1 (ERROR) will be returned, and errno set to indicate the error.

      @@ -3248,10 +3270,10 @@ VxWorks provides the following comparable interface: timer_create(), whose remaining count will be returned.

    - Returned Values: + Returned Value:

    - If successful, the timer_gettime() function will return zero (OK). + If successful, the timer_gettime() function will return zero (OK). Otherwise, an non-zero error number will be returned to indicate the error:

      @@ -3302,7 +3324,7 @@ VxWorks provides the following comparable interface: timer_create(), whose overrun count will be returned.

    - Returned Values: + Returned Value: If the timer_getoverrun() function succeeds, it will return the timer expiration overrun count as explained above. timer_getoverrun() will fail if:

    @@ -3348,7 +3370,7 @@ interface of the same name.
  • tzp. A reference to the timezone -- IGNORED.
  • - Returned Values: + Returned Value: See clock_gettime().

    @@ -3414,13 +3436,13 @@ by set such that all signals are excluded.

    Input Parameters:

      -
    • set. Signal set to initialize. +
    • set. Signal set to initialize.

    -Returned Values: +Returned Value:

      -
    • 0 (OK), or -1 (ERROR) if the signal set cannot be initialized. +
    • 0 (OK), or -1 (ERROR) if the signal set cannot be initialized.

    @@ -3444,13 +3466,13 @@ by set such that all signals are included.

    Input Parameters:

      -
    • set. Signal set to initialize +
    • set. Signal set to initialize

    -Returned Values: +Returned Value:

      -
    • 0 (OK), or -1 (ERROR) if the signal set cannot be initialized. +
    • 0 (OK), or -1 (ERROR) if the signal set cannot be initialized.

    @@ -3474,14 +3496,14 @@ signo to the signal set specified by set.

    Input Parameters:

      -
    • set. Signal set to add signal to -
    • signo. Signal to add +
    • set. Signal set to add signal to +
    • signo. Signal to add

    -Returned Values: +Returned Value:

      -
    • 0 (OK), or -1 (ERROR) if the signal number is invalid. +
    • 0 (OK), or -1 (ERROR) if the signal number is invalid.

    @@ -3505,14 +3527,14 @@ by signo from the signal set specified by set.

    Input Parameters:

      -
    • set. Signal set to delete the signal from -
    • signo. Signal to delete +
    • set. Signal set to delete the signal from +
    • signo. Signal to delete

    -Returned Values: +Returned Value:

      -
    • 0 (OK), or -1 (ERROR) if the signal number is invalid. +
    • 0 (OK), or -1 (ERROR) if the signal number is invalid.

    @@ -3536,16 +3558,16 @@ by signo is a member of the set specified by set.

    Input Parameters:

      -
    • set. Signal set to test -
    • signo. Signal to test for +
    • set. Signal set to test +
    • signo. Signal to test for

    -Returned Values: +Returned Value:

    • 1 (TRUE), if the specified signal is a member of the set,
    • 0 (OK or FALSE), if it is not, or -
    • -1 (ERROR) if the signal number is invalid. +
    • -1 (ERROR) if the signal number is invalid.

    @@ -3560,8 +3582,8 @@ interface of the same name. Function Prototype:

         #include <signal.h>
    -    int sigaction( int signo, const struct sigaction *act,
    -                   struct sigaction *oact );
    +    int sigaction(int signo, const struct sigaction *act,
    +                  struct sigaction *oact);
     

    @@ -3572,12 +3594,12 @@ signal. The structure sigaction, used to describe an action to be taken, is defined to include the following members:

      -
    • sa_u.sa_handler. A pointer to a signal-catching function. -
    • sa_u.sa_sigaction. An alternative form for the signal catching +
    • sa_u.sa_handler. A pointer to a signal-catching function. +
    • sa_u.sa_sigaction. An alternative form for the signal catching function. -
    • sa_mask. Additional set of signals to be blocked during +
    • sa_mask. Additional set of signals to be blocked during execution of the signal-catching function. -
    • sa_flags: Special flags to affect behavior of a signal. +
    • sa_flags: Special flags to affect behavior of a signal.

    If the argument act is not NULL, it points to a structure specifying the @@ -3603,15 +3625,15 @@ sigaction().

    Input Parameters:

      -
    • sig. Signal of interest -
    • act. Location of new handler -
    • oact. Location to store old handler +
    • sig. Signal of interest +
    • act. Location of new handler +
    • oact. Location to store old handler

    -Returned Values: +Returned Value:

      -
    • 0 (OK), or -1 (ERROR) if the signal number is invalid. +
    • 0 (OK), or -1 (ERROR) if the signal number is invalid.

    @@ -3650,25 +3672,25 @@ If sigprocmask() fails, the signal mask of the task is not changed.

    Input Parameters:

      -
    • how. How the signal mast will be changed: +
    • how. How the signal mast will be changed:
        -
      • SIG_BLOCK. The resulting set is the union of the -current set and the signal set pointed to by the set input parameter. -
      • SIG_UNBLOCK. The resulting set is the intersection +
      • SIG_BLOCK. The resulting set is the union of the +current set and the signal set pointed to by the set input parameter. +
      • SIG_UNBLOCK. The resulting set is the intersection of the current set and the complement of the signal set pointed -to by the set input parameter. -
      • SIG_SETMASK. The resulting set is the signal set -pointed to by the set input parameter. +to by the set input parameter. +
      • SIG_SETMASK. The resulting set is the signal set +pointed to by the set input parameter.
      -
    • set. Location of the new signal mask -
    • oset. Location to store the old signal mask +
    • set. Location of the new signal mask +
    • oset. Location to store the old signal mask

    -Returned Values: +Returned Value:

      -
    • 0 (OK), or -1 (ERROR) if how is invalid. +
    • 0 (OK), or -1 (ERROR) if how is invalid.

    @@ -3683,7 +3705,7 @@ interface of the same name. Function Prototype:

         #include <signal.h>
    -    int sigpending( sigset_t *set );
    +    int sigpending(sigset_t *set);
     

    @@ -3700,13 +3722,13 @@ is delivered more than once."

    Input Parameters:

      -
    • set. The location to return the pending signal set. +
    • set. The location to return the pending signal set.

    -Returned Values: +Returned Value:

      -
    • 0 (OK) or -1 (ERROR) +
    • 0 (OK) or -1 (ERROR)

    @@ -3721,7 +3743,7 @@ interface of the same name. Function Prototype:

         #include <signal.h>
    -    int sigsuspend( const sigset_t *set );
    +    int sigsuspend(const sigset_t *set);
     

    @@ -3739,14 +3761,14 @@ resources (a very bad idea).

    Input Parameters:

      -
    • set. The value of the signal mask to use while +
    • set. The value of the signal mask to use while suspended.

    -Returned Values: +Returned Value:

      -
    • -1 (ERROR) always +
    • -1 (ERROR) always

    @@ -3778,15 +3800,15 @@ with a NULL timeout parameter. (see below).

    Input Parameters:

      -
    • set. The set of pending signals to wait for. -
    • info. The returned signal values +
    • set. The set of pending signals to wait for. +
    • info. The returned signal values

    -Returned Values: +Returned Value:

    • Signal number that cause the wait to be terminated, otherwise --1 (ERROR) is returned. +-1 (ERROR) is returned.

    @@ -3801,8 +3823,8 @@ interface of the same name. Function Prototype:

         #include <signal.h>
    -    int sigtimedwait( const sigset_t *set, struct siginfo *info,
    -                      const struct timespec *timeout );
    +    int sigtimedwait(const sigset_t *set, struct siginfo *info,
    +                     const struct timespec *timeout);
     

    @@ -3821,26 +3843,26 @@ in the si_code member. The content of si_value is only meaningful if the signal was generated by sigqueue(). The following values for si_code are defined in signal.h:

      -
    • SI_USER. Signal sent from kill, raise, or abort -
    • SI_QUEUE. Signal sent from sigqueue -
    • SI_TIMER. Signal is result of timer expiration -
    • SI_ASYNCIO. Signal is the result of asynchronous IO completion -
    • SI_MESGQ. Signal generated by arrival of a message on an empty message queue. +
    • SI_USER. Signal sent from kill, raise, or abort +
    • SI_QUEUE. Signal sent from sigqueue +
    • SI_TIMER. Signal is result of timer expiration +
    • SI_ASYNCIO. Signal is the result of asynchronous IO completion +
    • SI_MESGQ. Signal generated by arrival of a message on an empty message queue.

    Input Parameters:

      -
    • set. The set of pending signals to wait for. -
    • info. The returned signal values -
    • timeout. The amount of time to wait +
    • set. The set of pending signals to wait for. +
    • info. The returned signal values +
    • timeout. The amount of time to wait

    -Returned Values: +Returned Value:

    • Signal number that cause the wait to be terminated, otherwise --1 (ERROR) is returned. +-1 (ERROR) is returned.

    @@ -3854,7 +3876,7 @@ Differences from the POSIX interface include:

  • No mechanism to return cause of ERROR. (It can be inferred from si_code in a non-standard way).
  • POSIX states that "If no signal is pending at the time of the -call, the calling task shall be suspended until one or more signals +call, the calling task will be suspended until one or more signals in set become pending or until it is interrupted by an unblocked, caught signal." The present implementation does not require that the unblocked signal be caught; the task will be resumed even if @@ -3884,17 +3906,17 @@ is delivered more than once."

    Input Parameters:

      -
    • tid. ID of the task to receive signal -
    • signo. Signal number -
    • value. Value to pass to task with signal +
    • tid. ID of the task to receive signal +
    • signo. Signal number +
    • value. Value to pass to task with signal

    -Returned Values: +Returned Value:

    • - On success (at least one signal was sent), zero (OK) is returned. - On error, -1 (ERROR) is returned, and errno is set appropriately. + On success (at least one signal was sent), zero (OK) is returned. + On error, -1 (ERROR) is returned, and errno is set appropriately.
      • EGAIN. The limit of signals which may be queued has been reached.
      • EINVAL. signo was invalid.
      • @@ -3944,17 +3966,17 @@ be sent.

        Input Parameters:

          -
        • pid. The id of the task to receive the signal. +
        • pid. The id of the task to receive the signal. The POSIX kill() specification encodes process group information as zero and negative pid values. Only positive, non-zero values of pid are supported by this implementation. ID of the task to receive signal -
        • signo. The signal number to send. +
        • signo. The signal number to send. If signo is zero, no signal is sent, but all error checking is performed.

        - Returned Values: + Returned Value:

        • OK or ERROR
        @@ -4064,9 +4086,6 @@ be sent.
      • pthread_attr_setscope. get and set the contentionscope attribute.
      • pthread_attr_setstack. get and set stack attributes.
      • pthread_attr_setstackaddr. get and set the stackaddr attribute.
      • -
      • pthread_barrier_destroy. destroy and initialize a barrier object.
      • -
      • pthread_barrier_init. destroy and initialize a barrier object.
      • -
      • pthread_barrier_wait. synchronize at a barrier.
      • pthread_cleanup_pop. establish cancellation handlers.
      • pthread_cleanup_push. establish cancellation handlers.
      • pthread_condattr_getclock. set the clock selection condition variable attribute.
      • @@ -4124,10 +4143,10 @@ for all of the individual attributes used by the implementation.
      • To be provided.

      -Returned Values: +Returned Value:

      -If successful, the pthread_attr_init() function will return -zero (OK). Otherwise, an error number will be +If successful, the pthread_attr_init() function will return +zero (OK). Otherwise, an error number will be returned to indicate the error:

        @@ -4156,10 +4175,10 @@ An attributes object can be deleted when it is no longer needed.
      • To be provided.

      -Returned Values: +Returned Value:

      -If successful, the pthread_attr_destroy() function will return -zero (OK). Otherwise, an error number will be +If successful, the pthread_attr_destroy() function will return +zero (OK). Otherwise, an error number will be returned to indicate the error:

        @@ -4187,10 +4206,10 @@ interface of the same name.
      • To be provided.

      -Returned Values: +Returned Value:

      -If successful, the pthread_attr_setschedpolicy() function will return -zero (OK). Otherwise, an error number will be +If successful, the pthread_attr_setschedpolicy() function will return +zero (OK). Otherwise, an error number will be returned to indicate the error:

        @@ -4218,10 +4237,10 @@ interface of the same name.
      • To be provided.

      -Returned Values: +Returned Value:

      -If successful, the pthread_attr_getschedpolicy() function will return -zero (OK). Otherwise, an error number will be +If successful, the pthread_attr_getschedpolicy() function will return +zero (OK). Otherwise, an error number will be returned to indicate the error:

        @@ -4237,9 +4256,9 @@ interface of the same name. Function Prototype:

        -   #include <pthread.h>
        +    #include <pthread.h>
             int pthread_attr_setschedparam(pthread_attr_t *attr,
        -				      const struct sched_param *param);
        +                                   const struct sched_param *param);
         

        Description: @@ -4250,10 +4269,10 @@ interface of the same name.

      • To be provided.

      -Returned Values: +Returned Value:

      -If successful, the pthread_attr_getschedpolicy() function will return -zero (OK). Otherwise, an error number will be +If successful, the pthread_attr_getschedpolicy() function will return +zero (OK). Otherwise, an error number will be returned to indicate the error:

        @@ -4269,9 +4288,9 @@ interface of the same name. Function Prototype:

        -   #include <pthread.h>
        -     int pthread_attr_getschedparam(pthread_attr_t *attr,
        -				      struct sched_param *param);
        +    #include <pthread.h>
        +    int pthread_attr_getschedparam(pthread_attr_t *attr,
        +                                   struct sched_param *param);
         

        Description: @@ -4282,10 +4301,10 @@ interface of the same name.

      • To be provided.

      -Returned Values: +Returned Value:

      -If successful, the pthread_attr_getschedparam() function will return -zero (OK). Otherwise, an error number will be +If successful, the pthread_attr_getschedparam() function will return +zero (OK). Otherwise, an error number will be returned to indicate the error:

        @@ -4303,7 +4322,7 @@ interface of the same name.
            #include <pthread.h>
             int pthread_attr_setinheritsched(pthread_attr_t *attr,
        -					int inheritsched);
        +                                     int inheritsched);
         

        Description: @@ -4314,10 +4333,10 @@ interface of the same name.

      • To be provided.

      -Returned Values: +Returned Value:

      -If successful, the pthread_attr_setinheritsched() function will return -zero (OK). Otherwise, an error number will be +If successful, the pthread_attr_setinheritsched() function will return +zero (OK). Otherwise, an error number will be returned to indicate the error:

        @@ -4335,7 +4354,7 @@ interface of the same name.
            #include <pthread.h>
              int pthread_attr_getinheritsched(const pthread_attr_t *attr,
        -					int *inheritsched);
        +                                      int *inheritsched);
         

        Description: @@ -4346,10 +4365,10 @@ interface of the same name.

      • To be provided.

      -Returned Values: +Returned Value:

      -If successful, the pthread_attr_getinheritsched() function will return -zero (OK). Otherwise, an error number will be +If successful, the pthread_attr_getinheritsched() function will return +zero (OK). Otherwise, an error number will be returned to indicate the error:

        @@ -4365,7 +4384,7 @@ interface of the same name. Function Prototype:

        -   #include <pthread.h>
        +    #include <pthread.h>
             int pthread_attr_setstacksize(pthread_attr_t *attr, long stacksize);
         

        @@ -4377,10 +4396,10 @@ interface of the same name.

      • To be provided.

      -Returned Values: +Returned Value:

      -If successful, the pthread_attr_setstacksize() function will return -zero (OK). Otherwise, an error number will be +If successful, the pthread_attr_setstacksize() function will return +zero (OK). Otherwise, an error number will be returned to indicate the error:

        @@ -4397,7 +4416,7 @@ interface of the same name.

             #include <pthread.h>
        -   int pthread_attr_getstacksize(pthread_attr_t *attr, long *stackaddr);
        +    int pthread_attr_getstacksize(pthread_attr_t *attr, long *stackaddr);
         

        Description: @@ -4408,10 +4427,10 @@ interface of the same name.

      • To be provided.

      -Returned Values: +Returned Value:

      -If successful, the pthread_attr_getstacksize() function will return -zero (OK). Otherwise, an error number will be +If successful, the pthread_attr_getstacksize() function will return +zero (OK). Otherwise, an error number will be returned to indicate the error:

        @@ -4429,8 +4448,8 @@ interface of the same name.
             #include <pthread.h>
             int pthread_create(pthread_t *thread, pthread_attr_t *attr,
        -			  pthread_startroutine_t startRoutine,
        -			  pthread_addr_t arg);
        +                       pthread_startroutine_t startRoutine,
        +                       pthread_addr_t arg);
         

        Description: @@ -4447,10 +4466,10 @@ specify details about the kind of thread being created.

      • To be provided.

      -Returned Values: +Returned Value:

      -If successful, the pthread_create() function will return -zero (OK). Otherwise, an error number will be +If successful, the pthread_create() function will return +zero (OK). Otherwise, an error number will be returned to indicate the error:

        @@ -4480,10 +4499,10 @@ return value and completion status will not be requested.
      • To be provided.

      -Returned Values: +Returned Value:

      -If successful, the pthread_detach() function will return -zero (OK). Otherwise, an error number will be +If successful, the pthread_detach() function will return +zero (OK). Otherwise, an error number will be returned to indicate the error:

        @@ -4512,10 +4531,10 @@ A thread may terminate it's own execution.
      • To be provided.

      -Returned Values: +Returned Value:

      -If successful, the pthread_exit() function will return -zero (OK). Otherwise, an error number will be +If successful, the pthread_exit() function will return +zero (OK). Otherwise, an error number will be returned to indicate the error:

        @@ -4537,10 +4556,10 @@ interface of the same name.

        Description: -

        The pthread_cancel() function shall request that thread +

        The pthread_cancel() function will request that thread be canceled. The target thread's cancelability state determines when the cancellation takes effect. When the -cancellation is acted on, thread shall be terminated.

        +cancellation is acted on, thread will be terminated.

        When cancelability is disabled, all cancels are held pending in the target thread until the thread changes the cancelability. @@ -4555,17 +4574,17 @@ immediately (when enable), interrupting the thread with its processing.

        Input Parameters:

          -
        • thread. +
        • thread. Identifies the thread to be canceled.

        -Returned Values: +Returned Value:

        -If successful, the pthread_cancel() function will return zero (OK). +If successful, the pthread_cancel() function will return zero (OK). Otherwise, an error number will be returned to indicate the error:

          -
        • ESRCH. +
        • ESRCH. No thread could be found corresponding to that specified by the given thread ID.
        Assumptions/Limitations: @@ -4573,7 +4592,7 @@ No thread could be found corresponding to that specified by the given thread ID. POSIX Compatibility: Comparable to the POSIX interface of the same name. Except:

          -
        • The thread-specific data destructor functions shall be called for thread. +
        • The thread-specific data destructor functions will be called for thread. However, these destructors are not currently supported.
        • Cancellation types are not supported. The thread will be canceled at the time that pthread_cancel() is called or, if cancellation is disabled, at @@ -4592,7 +4611,7 @@ the time when cancellation is re-enabled.
        • Description: -

          The pthread_setcancelstate() function atomically +

          The pthread_setcancelstate() function atomically sets both the calling thread's cancelability state to the indicated state and returns the previous cancelability state at the location referenced by oldstate. @@ -4604,19 +4623,19 @@ cancellation state is set to PTHREAD_CANCEL_ENABLE.

          Input Parameters:

            -
          • state +
          • state New cancellation state. One of PTHREAD_CANCEL_ENABLE or PTHREAD_CANCEL_DISABLE.<.li> -
          • oldstate. +
          • oldstate. Location to return the previous cancellation state.

          -Returned Values: +Returned Value:

          -If successful, the pthread_setcancelstate() function will return -zero (OK). Otherwise, an error number will be returned to indicate the error: +If successful, the pthread_setcancelstate() function will return +zero (OK). Otherwise, an error number will be returned to indicate the error:

            -
          • ESRCH. +
          • ESRCH. No thread could be found corresponding to that specified by the given thread ID.
          Assumptions/Limitations: @@ -4641,10 +4660,10 @@ interface of the same name.
        • To be provided.

        -Returned Values: +Returned Value:

        -If successful, the pthread_setcancelstate() function will return -zero (OK). Otherwise, an error number will be +If successful, the pthread_setcancelstate() function will return +zero (OK). Otherwise, an error number will be returned to indicate the error:

          @@ -4674,10 +4693,10 @@ the return value of the thread.
        • To be provided.

        -Returned Values: +Returned Value:

        -If successful, the pthread_join() function will return -zero (OK). Otherwise, an error number will be +If successful, the pthread_join() function will return +zero (OK). Otherwise, an error number will be returned to indicate the error:

          @@ -4707,10 +4726,10 @@ made available.
        • To be provided.

        -Returned Values: +Returned Value:

        -If successful, the pthread_yield() function will return -zero (OK). Otherwise, an error number will be +If successful, the pthread_yield() function will return +zero (OK). Otherwise, an error number will be returned to indicate the error:

          @@ -4739,10 +4758,10 @@ A thread may obtain a copy of its own thread handle.
        • To be provided.

        -Returned Values: +Returned Value:

        -If successful, the pthread_self() function will return -zero (OK). Otherwise, an error number will be +If successful, the pthread_self() function will return +zero (OK). Otherwise, an error number will be returned to indicate the error:

          @@ -4806,7 +4825,7 @@ interface of the same name.

        - Returned Values: + Returned Value: 0 (OK) if successful. Otherwise, the error code ESRCH if the value specified by thread does not refer to an existing thread. @@ -4871,11 +4890,11 @@ interface of the same name.

      - Returned Values: + Returned Value:

      - If successful, the pthread_setschedparam() function will return - zero (OK). Otherwise, an error number will be + If successful, the pthread_setschedparam() function will return + zero (OK). Otherwise, an error number will be returned to indicate the error:

        @@ -4917,7 +4936,7 @@ interface of the same name.

             #include <pthread.h>
        -    int pthread_key_create( pthread_key_t *key, void (*destructor)(void*) )
        +    int pthread_key_create(pthread_key_t *key, void (*destructor)(void*))
         

        Description: @@ -4925,38 +4944,38 @@ interface of the same name. This function creates a thread-specific data key visible to all threads in the system. Although the same key value may be used by different threads, the values bound to -the key by pthread_setspecific() are maintained on a +the key by pthread_setspecific() are maintained on a per-thread basis and persist for the life of the calling thread.

        -Upon key creation, the value NULL will be associated with +Upon key creation, the value NULL will be associated with the new key in all active threads. Upon thread -creation, the value NULL will be associated with all +creation, the value NULL will be associated with all defined keys in the new thread.

        Input Parameters:

          -
        • key is a pointer to the key to create. -
        • destructor is an optional destructor() function that may +
        • key is a pointer to the key to create. +
        • destructor is an optional destructor() function that may be associated with each key that is invoked when a thread exits. However, this argument is ignored in the current implementation.

        -Returned Values: +Returned Value:

        -If successful, the pthread_key_create() function will -store the newly created key value at *key and return -zero (OK). Otherwise, an error number will be +If successful, the pthread_key_create() function will +store the newly created key value at *key and return +zero (OK). Otherwise, an error number will be returned to indicate the error:

          -
        • EAGAIN. The system lacked sufficient resources +
        • EAGAIN. The system lacked sufficient resources to create another thread-specific data key, or the system-imposed limit on the total number of keys -per task {PTHREAD_KEYS_MAX} has been exceeded -
        • ENONMEM Insufficient memory exists to create the key. +per task {PTHREAD_KEYS_MAX} has been exceeded +
        • ENONMEM Insufficient memory exists to create the key.
        Assumptions/Limitations:

        @@ -4972,39 +4991,39 @@ interface of the same name.

             #include <pthread.h>
        -    int pthread_setspecific( pthread_key_t key, void *value )
        +    int pthread_setspecific(pthread_key_t key, void *value)
         

        Description:

        -The pthread_setspecific() function associates a thread- +The pthread_setspecific() function associates a thread- specific value with a key obtained via a previous call -to pthread_key_create(). Different threads may bind +to pthread_key_create(). Different threads may bind different values to the same key. These values are typically pointers to blocks of dynamically allocated memory that have been reserved for use by the calling thread.

        -The effect of calling pthread_setspecific() with a key value -not obtained from pthread_key_create() or after a key has been -deleted with pthread_key_delete() is undefined. +The effect of calling pthread_setspecific() with a key value +not obtained from pthread_key_create() or after a key has been +deleted with pthread_key_delete() is undefined.

        Input Parameters:

          -
        • key. The data key to set the binding for. -
        • value. The value to bind to the key. +
        • key. The data key to set the binding for. +
        • value. The value to bind to the key.

        -Returned Values: +Returned Value:

        -If successful, pthread_setspecific() will return zero (OK). +If successful, pthread_setspecific() will return zero (OK). Otherwise, an error number will be returned:

          -
        • ENOMEM. Insufficient memory exists to associate the value +
        • ENOMEM. Insufficient memory exists to associate the value with the key. -
        • EINVAL. The key value is invalid. +
        • EINVAL. The key value is invalid.

        Assumptions/Limitations: @@ -5022,31 +5041,31 @@ destructor function.

             #include <pthread.h>
        -    void *pthread_getspecific( pthread_key_t key )
        +    void *pthread_getspecific(pthread_key_t key)
         

        Description:

        -The pthread_getspecific() function returns the value +The pthread_getspecific() function returns the value currently bound to the specified key on behalf of the calling thread.

        -The effect of calling pthread_getspecific() with a key value -not obtained from pthread_key_create() or after a key has been -deleted with pthread_key_delete() is undefined. +The effect of calling pthread_getspecific() with a key value +not obtained from pthread_key_create() or after a key has been +deleted with pthread_key_delete() is undefined.

        Input Parameters:

          -
        • key. The data key to get the binding for. +
        • key. The data key to get the binding for.

        -Returned Values: +Returned Value:

        -The function pthread_getspecific() returns the thread- +The function pthread_getspecific() returns the thread- specific data associated with the given key. If no thread specific data is associated with the key, then -the value NULL is returned. +the value NULL is returned.

        Assumptions/Limitations:

        @@ -5063,25 +5082,25 @@ destructor function.

             #include <pthread.h>
        -    int pthread_key_delete( pthread_key_t key )
        +    int pthread_key_delete(pthread_key_t key)
         

        Description:

        This POSIX function should delete a thread-specific data -key previously returned by pthread_key_create(). However, +key previously returned by pthread_key_create(). However, this function does nothing in the present implementation.

        Input Parameters:

          -
        • key. The key to delete +
        • key. The key to delete

        -Returned Values: +Returned Value:

          -
        • Always returns EINVAL. +
        • Always returns EINVAL.

        Assumptions/Limitations: @@ -5106,10 +5125,10 @@ interface of the same name.

      • To be provided.

      -Returned Values: +Returned Value:

      -If successful, the pthread_mutexattr_init() function will return -zero (OK). Otherwise, an error number will be +If successful, the pthread_mutexattr_init() function will return +zero (OK). Otherwise, an error number will be returned to indicate the error:

        @@ -5137,10 +5156,10 @@ interface of the same name.
      • To be provided.

      -Returned Values: +Returned Value:

      -If successful, the pthread_mutexattr_destroy() function will return -zero (OK). Otherwise, an error number will be +If successful, the pthread_mutexattr_destroy() function will return +zero (OK). Otherwise, an error number will be returned to indicate the error:

        @@ -5158,7 +5177,7 @@ interface of the same name.
             #include <pthread.h>
             int pthread_mutexattr_getpshared(pthread_mutexattr_t *attr,
        -					int *pshared);
        +                                     int *pshared);
         

        Description: @@ -5169,10 +5188,10 @@ interface of the same name.

      • To be provided.

      -Returned Values: +Returned Value:

      -If successful, the pthread_mutexattr_getpshared() function will return -zero (OK). Otherwise, an error number will be +If successful, the pthread_mutexattr_getpshared() function will return +zero (OK). Otherwise, an error number will be returned to indicate the error:

        @@ -5190,7 +5209,7 @@ interface of the same name.
             #include <pthread.h>
            int pthread_mutexattr_setpshared(pthread_mutexattr_t *attr,
        -					int pshared);
        +                                    int pshared);
         

        Description: @@ -5201,10 +5220,10 @@ interface of the same name.

      • To be provided.

      -Returned Values: +Returned Value:

      -If successful, the pthread_mutexattr_setpshared() function will return -zero (OK). Otherwise, an error number will be +If successful, the pthread_mutexattr_setpshared() function will return +zero (OK). Otherwise, an error number will be returned to indicate the error:

        @@ -5237,10 +5256,10 @@ interface of the same name. for a description of possible mutex types that may be returned.

      -Returned Values: +Returned Value:

      -If successful, the pthread_mutexattr_settype() function will return -zero (OK). Otherwise, an error number will be +If successful, the pthread_mutexattr_settype() function will return +zero (OK). Otherwise, an error number will be returned to indicate the error:

        @@ -5291,10 +5310,10 @@ returned to indicate the error:

      -Returned Values: +Returned Value:

      -If successful, the pthread_mutexattr_settype() function will return -zero (OK). Otherwise, an error number will be +If successful, the pthread_mutexattr_settype() function will return +zero (OK). Otherwise, an error number will be returned to indicate the error:

        @@ -5311,7 +5330,7 @@ returned to indicate the error:
             #include <pthread.h>
             int pthread_mutex_init(pthread_mutex_t *mutex,
        -			      pthread_mutexattr_t *attr);
        +                           pthread_mutexattr_t *attr);
         

        Description: @@ -5322,10 +5341,10 @@ returned to indicate the error:

      • To be provided.

      -Returned Values: +Returned Value:

      -If successful, the pthread_mutex_init() function will return -zero (OK). Otherwise, an error number will be +If successful, the pthread_mutex_init() function will return +zero (OK). Otherwise, an error number will be returned to indicate the error:

        @@ -5353,10 +5372,10 @@ interface of the same name.
      • To be provided.

      -Returned Values: +Returned Value:

      -If successful, the pthread_mutex_destroy() function will return -zero (OK). Otherwise, an error number will be +If successful, the pthread_mutex_destroy() function will return +zero (OK). Otherwise, an error number will be returned to indicate the error:

        @@ -5419,9 +5438,9 @@ interface of the same name.
      • mutex. A reference to the mutex to be locked.

      -Returned Values: +Returned Value:

      -If successful, the pthread_mutex_lock() function will return zero (OK). +If successful, the pthread_mutex_lock() function will return zero (OK). Otherwise, an error number will be returned to indicate the error:

        @@ -5446,7 +5465,7 @@ interface of the same name. The function pthread_mutex_trylock() is identical to pthread_mutex_lock() except that if the mutex object referenced by mutex is currently locked (by any thread, including the current thread), the call returns immediately - with the errno EBUSY. + with the errno EBUSY.

        If a signal is delivered to a thread waiting for a mutex, upon return from the signal handler the thread resumes waiting for the mutex as if it was @@ -5459,9 +5478,9 @@ interface of the same name.

      • mutex. A reference to the mutex to be locked.

      -Returned Values: +Returned Value:

      -If successful, the pthread_mutex_trylock() function will return zero (OK). +If successful, the pthread_mutex_trylock() function will return zero (OK). Otherwise, an error number will be returned to indicate the error:

        @@ -5489,7 +5508,7 @@ interface of the same name. mutex's type attribute. If there are threads blocked on the mutex object referenced by mutex when pthread_mutex_unlock() is called, resulting in the mutex becoming available, the scheduling policy is used to determine - which thread shall acquire the mutex. (In the case of PTHREAD_MUTEX_RECURSIVE + which thread will acquire the mutex. (In the case of PTHREAD_MUTEX_RECURSIVE mutexes, the mutex becomes available when the count reaches zero and the calling thread no longer has any locks on this mutex).

        @@ -5504,10 +5523,10 @@ interface of the same name.
      • mutex.

      -Returned Values: +Returned Value:

      -If successful, the pthread_mutex_unlock() function will return -zero (OK). Otherwise, an error number will be +If successful, the pthread_mutex_unlock() function will return +zero (OK). Otherwise, an error number will be returned to indicate the error:

        @@ -5536,10 +5555,10 @@ interface of the same name.
      • To be provided.

      -Returned Values: +Returned Value:

      -If successful, the pthread_condattr_init() function will return -zero (OK). Otherwise, an error number will be +If successful, the pthread_condattr_init() function will return +zero (OK). Otherwise, an error number will be returned to indicate the error:

        @@ -5567,10 +5586,10 @@ interface of the same name.
      • To be provided.

      -Returned Values: +Returned Value:

      -If successful, the pthread_condattr_destroy() function will return -zero (OK). Otherwise, an error number will be +If successful, the pthread_condattr_destroy() function will return +zero (OK). Otherwise, an error number will be returned to indicate the error:

        @@ -5598,10 +5617,10 @@ interface of the same name.
      • To be provided.

      -Returned Values: +Returned Value:

      -If successful, the pthread_cond_init() function will return -zero (OK). Otherwise, an error number will be +If successful, the pthread_cond_init() function will return +zero (OK). Otherwise, an error number will be returned to indicate the error:

        @@ -5629,10 +5648,10 @@ interface of the same name.
      • To be provided.

      -Returned Values: +Returned Value:

      -If successful, the pthread_cond_destroy() function will return -zero (OK). Otherwise, an error number will be +If successful, the pthread_cond_destroy() function will return +zero (OK). Otherwise, an error number will be returned to indicate the error:

        @@ -5660,10 +5679,10 @@ interface of the same name.
      • To be provided.

      -Returned Values: +Returned Value:

      -If successful, the pthread_cond_broadcast() function will return -zero (OK). Otherwise, an error number will be +If successful, the pthread_cond_broadcast() function will return +zero (OK). Otherwise, an error number will be returned to indicate the error:

        @@ -5691,10 +5710,10 @@ interface of the same name.
      • To be provided.

      -Returned Values: +Returned Value:

      -If successful, the pthread_cond_signal() function will return -zero (OK). Otherwise, an error number will be +If successful, the pthread_cond_signal() function will return +zero (OK). Otherwise, an error number will be returned to indicate the error:

        @@ -5722,10 +5741,10 @@ interface of the same name.
      • To be provided.

      - Returned Values: + Returned Value:

      -If successful, the pthread_cond_wait() function will return -zero (OK). Otherwise, an error number will be +If successful, the pthread_cond_wait() function will return +zero (OK). Otherwise, an error number will be returned to indicate the error:

        @@ -5743,7 +5762,7 @@ interface of the same name.
             #include <pthread.h>
             int pthread_cond_timedwait(pthread_cond_t *cond, pthread_mutex_t *mutex,
        -				  const struct timespec *abstime);
        +                               const struct timespec *abstime);
         

        Description: @@ -5756,7 +5775,7 @@ interface of the same name.

      • To be provided.

      - Returned Values: + Returned Value:

      If successful, the pthread_cond_timedwait() function will return @@ -5796,7 +5815,7 @@ interface of the same name.

    - Returned Values: + Returned Value: 0 (OK) on success or EINVAL if attr is invalid.

    @@ -5829,7 +5848,7 @@ interface of the same name.

  • - Returned Values: 0 (OK) on success or EINVAL if attr is invalid. + Returned Value: 0 (OK) on success or EINVAL if attr is invalid.

    Assumptions/Limitations: @@ -5865,7 +5884,7 @@ interface of the same name.

  • pshared. The new value of the pshared attribute.
  • - Returned Values: 0 (OK) on success or EINVAL if either + Returned Value: 0 (OK) on success or EINVAL if either attr is invalid or pshared is not one of PTHREAD_PROCESS_SHARED or PTHREAD_PROCESS_PRIVATE.

    @@ -5898,7 +5917,7 @@ interface of the same name.
  • pshared. The location to stored the current value of the pshared attribute.
  • - Returned Values: 0 (OK) on success or EINVAL if + Returned Value: 0 (OK) on success or EINVAL if either attr or pshared is invalid.

    @@ -5950,7 +5969,7 @@ interface of the same name.

    - Returned Values:0 (OK) on success or on of the following error numbers: + Returned Value:0 (OK) on success or on of the following error numbers:

    • @@ -6003,7 +6022,7 @@ interface of the same name.
    • barrier. The barrier to be destroyed.

    - Returned Values: 0 (OK) on success or on of the following error numbers: + Returned Value: 0 (OK) on success or on of the following error numbers:

    • @@ -6072,7 +6091,7 @@ interface of the same name.
    • barrier. The barrier on which to wait.

    - Returned Values: 0 (OK) on success or EINVAL if the barrier is not valid. + Returned Value: 0 (OK) on success or EINVAL if the barrier is not valid.

    Assumptions/Limitations: @@ -6116,8 +6135,8 @@ interface of the same name.

    - Returned Values: - 0 (OK) on success or EINVAL if either once_control or init_routine are invalid. + Returned Value: + 0 (OK) on success or EINVAL if either once_control or init_routine are invalid.

    Assumptions/Limitations: @@ -6157,7 +6176,7 @@ interface of the same name.

    - Returned Values: + Returned Value:

    On success, the signal was sent and zero is returned. @@ -6232,11 +6251,11 @@ interface of the same name.

    - Returned Values: -

    -

    - 0 (OK) on success or EINVAL if how is invalid. + Returned Value:

    +
      + 0 (OK) on success or EINVAL if how is invalid. +

    Assumptions/Limitations:

    @@ -6314,7 +6333,7 @@ interface of the same name.

    - Returned Values: + Returned Value: The value of the variable (read-only) or NULL on failure.

    @@ -6341,11 +6360,11 @@ interface of the same name.
    • string - name=value string describing the environment setting to add/modify. + name=value string describing the environment setting to add/modify.

    - Returned Values: + Returned Value: Zero on success.

    @@ -6367,7 +6386,7 @@ interface of the same name. None

    - Returned Values: + Returned Value: Zero on success.

    @@ -6405,7 +6424,7 @@ interface of the same name.

    - Returned Values: + Returned Value: Zero on success.

    @@ -6432,7 +6451,7 @@ interface of the same name.

    - Returned Values: + Returned Value: Zero on success.

    @@ -6560,7 +6579,7 @@ interface of the same name.

       #include <poll.h>
    -  int     poll(struct pollfd *fds, nfds_t nfds, int timeout);
    +  int poll(struct pollfd *fds, nfds_t nfds, int timeout);
     

    Description: @@ -6607,7 +6626,7 @@ interface of the same name. timeout.

    - Returned Values: + Returned Value:

    On success, the number of structures that have nonzero revents fields. @@ -6629,11 +6648,11 @@ interface of the same name.

    Function Prototype:

    -
    -  #include <sys/select.h>
    -  int     select(int nfds, FAR fd_set *readfds, FAR fd_set *writefds,
    -                 FAR fd_set *exceptfds, FAR struct timeval *timeout);
    -
    +
      +#include <sys/select.h>
      +int select(int nfds, FAR fd_set *readfds, FAR fd_set *writefds,
      +           FAR fd_set *exceptfds, FAR struct timeval *timeout);
      +

    Description: select() allows a program to monitor multiple file descriptors, waiting @@ -6660,7 +6679,7 @@ interface of the same name.

  • timeout. Return at this time if none of these events of interest occur.
  • - Returned Values: + Returned Value:

    • 0: Timer expired
    • @@ -6802,10 +6821,10 @@ void *memmove(void *dest, const void *src, size_t count);

      Function Prototype:

      -
      -  #include <unistd.h>
      -  int pipe(int filedes[2]);
      -
      +
        +#include <unistd.h>
        +int pipe(int filedes[2]);
        +

      Description:

        @@ -6824,7 +6843,7 @@ void *memmove(void *dest, const void *src, size_t count);

        - Returned Values: + Returned Value:

          0 is returned on success; otherwise, -1 is returned with errno set appropriately. @@ -6836,10 +6855,10 @@ void *memmove(void *dest, const void *src, size_t count);

          Function Prototype:

          -
          -  #include <sys/stat.h>
          -  int mkfifo(FAR const char *pathname, mode_t mode);
          -
          +
            +#include <sys/stat.h>
            +int mkfifo(FAR const char *pathname, mode_t mode);
            +

          Description:

            @@ -6871,7 +6890,7 @@ void *memmove(void *dest, const void *src, size_t count);

          - Returned Values: + Returned Value:

            0 is returned on success; otherwise, -1 is returned with errno set appropriately. @@ -6933,7 +6952,7 @@ struct fat_format_s

          - Returned Values: + Returned Value:

            Zero (OK) on success; @@ -7189,7 +7208,7 @@ FAR void *mmap(FAR void *start, size_t length, int prot, int flags, int fd, off_

          - Returned Values: + Returned Value:

            On success, mmap() returns a pointer to the mapped area. @@ -7246,10 +7265,10 @@ Those socket APIs are discussed in the following paragraphs.

            Function Prototype:

            -
            -  #include <sys/socket.h>
            -  int socket(int domain, int type, int protocol);
            -
            +
              +#include <sys/socket.h>
              +int socket(int domain, int type, int protocol);
              +

            Description: socket() creates an endpoint for communication and returns a descriptor. @@ -7264,7 +7283,7 @@ Those socket APIs are discussed in the following paragraphs.

          • protocol: (see sys/socket.h)

          - Returned Values: + Returned Value: 0 on success; -1 on error with errno set appropriately:

            @@ -7288,10 +7307,10 @@ Those socket APIs are discussed in the following paragraphs.

            Function Prototype:

            -
            -  #include <sys/socket.h>
            -  int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
            -
            +
              +#include <sys/socket.h>
              +int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
              +

            Description: bind() gives the socket sockfd the local address addr. @@ -7310,7 +7329,7 @@ Those socket APIs are discussed in the following paragraphs.

          • addrlen: Length of addr.

          - Returned Values: + Returned Value: 0 on success; -1 on error with errno set appropriately:

            @@ -7330,10 +7349,10 @@ Those socket APIs are discussed in the following paragraphs.

            Function Prototype:

            -
            -  #include <sys/socket.h>
            -  int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
            -
            +
              +#include <sys/socket.h>
              +int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
              +

            Description: connect() connects the socket referred to by the file descriptor @@ -7365,7 +7384,7 @@ Those socket APIs are discussed in the following paragraphs.

          • addrlen: Length of actual addr

          - Returned Values: + Returned Value: 0 on success; -1 on error with errno set appropriately:

        • EACCES or EPERM: @@ -7409,10 +7428,10 @@ Those socket APIs are discussed in the following paragraphs.

          Function Prototype:

          -
          -  #include <sys/socket.h>
          -  int listen(int sockfd, int backlog);
          -
          +
            +#include <sys/socket.h>
            +int listen(int sockfd, int backlog);
            +

          Description: To accept connections, a socket is first created with socket(), a @@ -7432,7 +7451,7 @@ Those socket APIs are discussed in the following paragraphs.

          the request may be ignored so that retries succeed.

        - Returned Values: + Returned Value: On success, zero is returned. On error, -1 is returned, and errno is set appropriately.

        @@ -7447,10 +7466,10 @@ Those socket APIs are discussed in the following paragraphs.

        Function Prototype:

        -
        -  #include <sys/socket.h>
        -  int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
        -
        +
          +#include <sys/socket.h>
          +int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
          +

        Description: The accept() function is used with connection-based socket types @@ -7488,7 +7507,7 @@ Those socket APIs are discussed in the following paragraphs.

      • addrlen: Input: allocated size of addr, Return: returned size of addr.

      - Returned Values: + Returned Value: Returns -1 on error. If it succeeds, it returns a non-negative integer that is a descriptor for the accepted socket.

      @@ -7525,10 +7544,10 @@ Those socket APIs are discussed in the following paragraphs.

      Function Prototype:

      -
      -  #include <sys/socket.h>
      -  ssize_t send(int sockfd, const void *buf, size_t len, int flags);
      -
      +
        +#include <sys/socket.h>
        +ssize_t send(int sockfd, const void *buf, size_t len, int flags);
        +

      Description: The send() call may be used only when the socket is in a connected state @@ -7549,7 +7568,7 @@ Those socket APIs are discussed in the following paragraphs.

    • flags: Send flags

    - Returned Values: + Returned Value: See sendto().

    @@ -7557,11 +7576,11 @@ Those socket APIs are discussed in the following paragraphs.

    Function Prototype:

    -
    -  #include <sys/socket.h>
    -  ssize_t sendto(int sockfd, const void *buf, size_t len, int flags,
    -                 const struct sockaddr *to, socklen_t tolen);
    -
    +
      +#include <sys/socket.h>
      + ssize_t sendto(int sockfd, const void *buf, size_t len, int flags,
      +               const struct sockaddr *to, socklen_t tolen);
      +

    Description: If sendto() is used on a connection-mode (SOCK_STREAM, SOCK_SEQPACKET) @@ -7582,7 +7601,7 @@ Those socket APIs are discussed in the following paragraphs.

  • tolen: The length of the address structure

    - Returned Values: + Returned Value: On success, returns the number of characters sent. On error, -1 is returned, and errno is set appropriately:

    @@ -7630,10 +7649,10 @@ Those socket APIs are discussed in the following paragraphs.

    Function Prototype:

    -
    -  #include <sys/socket.h>
    -  ssize_t recv(int sockfd, void *buf, size_t len, int flags);
    -
    +
      +#include <sys/socket.h>
      +ssize_t recv(int sockfd, void *buf, size_t len, int flags);
      +

    Description: The recv() call is identical to @@ -7652,7 +7671,7 @@ Those socket APIs are discussed in the following paragraphs.

  • flags: Receive flags
  • - Returned Values: + Returned Value: See recvfrom().

    @@ -7660,11 +7679,11 @@ Those socket APIs are discussed in the following paragraphs.

    Function Prototype:

    -
    -  #include <sys/socket.h>
    -  ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags,
    -                   struct sockaddr *from, socklen_t *fromlen);
    -
    +
      +#include <sys/socket.h>
      +ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags,
      +                 struct sockaddr *from, socklen_t *fromlen);
      +

    Description: recvfrom() receives messages from a socket, and may be used to receive @@ -7688,7 +7707,7 @@ Those socket APIs are discussed in the following paragraphs.

  • fromlen: The length of the address structure.
  • - Returned Values: + Returned Value: On success, returns the number of characters sent. If no data is available to be received and the peer has performed an orderly shutdown, recv() will return 0. Othwerwise, on errors, -1 is returned, and errno is set appropriately: @@ -7723,11 +7742,11 @@ Those socket APIs are discussed in the following paragraphs.

    Function Prototype:

    -
    -  #include <sys/socket.h>
    -  int setsockopt(int sockfd, int level, int option,
    -                 const void *value, socklen_t value_len);
    -
    +
      +#include <sys/socket.h>
      +int setsockopt(int sockfd, int level, int option,
      +               const void *value, socklen_t value_len);
      +

    Description: setsockopt() sets the option specified by the option argument, @@ -7753,7 +7772,7 @@ Those socket APIs are discussed in the following paragraphs.

  • value_len: The length of the argument value
  • - Returned Values: + Returned Value: On success, returns the number of characters sent. On error, -1 is returned, and errno is set appropriately:

    @@ -7783,11 +7802,11 @@ Those socket APIs are discussed in the following paragraphs.

    Function Prototype:

    -
    -  #include <sys/socket.h>
    -  int getsockopt(int sockfd, int level, int option,
    -                 void *value, socklen_t *value_len);
    -
    +
      +#include <sys/socket.h>
      +int getsockopt(int sockfd, int level, int option,
      +               void *value, socklen_t *value_len);
      +

    Description: getsockopt() retrieve those value for the option specified by the @@ -7816,7 +7835,7 @@ Those socket APIs are discussed in the following paragraphs.

  • value_len: The length of the argument value

    - Returned Values: + Returned Value: On success, returns the number of characters sent. On error, -1 is returned, and errno is set appropriately:

    @@ -7904,9 +7923,11 @@ OS resources. These hidden structures include:

    Function Prototype:

    -

        #include <errno.h>
    -    #define errno *get_errno_ptr()
    -    int *get_errno_ptr( void )
    +
      +#include <errno.h>
      +#define errno *get_errno_ptr()
      +int *get_errno_ptr(void);
      +

    Description: get_errno_ptr() returns a pointer to the thread-specific errno value. From 1dbfe2b50b52fe74e7328ef2c4df95dfe8515c27 Mon Sep 17 00:00:00 2001 From: patacongo Date: Wed, 31 Oct 2012 17:53:28 +0000 Subject: [PATCH 1058/1518] Documentation update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5282 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttShell.html | 299 ++++++++++++++++++++++++++--------- 1 file changed, 222 insertions(+), 77 deletions(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index 78a5651074..f8ef41fb96 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -8,7 +8,7 @@

    NuttShell (NSH)

    -

    Last Updated: October 20, 2012

    +

    Last Updated: October 31, 2012

    @@ -89,229 +89,259 @@
    - 2.2 Concatenate Files (cat) + 2.2 Base64 Decode (base64dec)
    - 2.3 Change Current Working Directory (cd) + 2.3 Base64 Encode (base64enc)
    - 2.4 Copy Files (cp) + 2.4 Concatenate Files (cat)
    - 2.5 Show or set the date and time (date) + 2.5 Change Current Working Directory (cd)
    - 2.6 Copy and Convert Files (dd) + 2.6 Copy Files (cp)
    - 2.7 Show volume status (df) + 2.7 Show or set the date and time (date)
    - 2.8 Echo Strings and Variables (echo) + 2.8 Copy and Convert Files (dd)
    - 2.9 Execute User Code (exec) + 2.9 Show volume status (df)
    - 2.10 Exit NSH (exit) + 2.10 Echo Strings and Variables (echo)
    - 2.11 Show Memory Manager Status (free) + 2.11 Execute User Code (exec)
    - 2.12 Get File Via TFTP (get) + 2.12 Exit NSH (exit)
    - 2.13 Show Usage Command Usage (help) + 2.13 Show Memory Manager Status (free)
    - 2.14 Show Network Configuration (ifconfig) + 2.14 Get File Via TFTP (get)
    - 2.15 Send a signal to a task (kill) + 2.15 Show Usage Command Usage (help)
    - 2.16 Setup/teardown the Loop Device (losetup) + 2.16 Show Network Configuration (ifconfig)
    - 2.17 List Directory Contents (ls) + 2.17 Send a signal to a task (kill)
    - 2.18 Access Memory (mb, mh, and mw) + 2.18 Setup/teardown the Loop Device (losetup)
    - 2.19 Show Current Tasks and Threads (ps) + 2.19 List Directory Contents (ls)
    - 2.20 Create a Directory (mkdir) + 2.20 Calculate MD5 (md5)
    - 2.21 Create a FAT Filesystem (mkfatfs) + 2.21 Access Memory (mb, mh, and mw)
    - 2.22 Create a FIFO (mkfifo) + 2.22 Show Current Tasks and Threads (ps)
    - 2.23 Create a RAMDISK (mkrd) + 2.23 Create a Directory (mkdir)
    - 2.24 Mount a File System (mount) + 2.24 Create a FAT Filesystem (mkfatfs)
    - 2.25 Rename a File (mv) + 2.25 Create a FIFO (mkfifo)
    - 2.26 Mount an NFS file system (nfsmount) + 2.26 Create a RAMDISK (mkrd)
    - 2.27 Check Network Peer (ping) + 2.27 Mount a File System (mount)
    - 2.28 Send File Via TFTP (put) + 2.28 Rename a File (mv)
    - 2.29 Show Current Working Directory (pwd) + 2.29 Mount an NFS file system (nfsmount)
    - 2.30 Remove a File (rm) + 2.30 Check Network Peer (ping)
    - 2.31 Remove a Directory (rmdir) + 2.31 Send File Via TFTP (put)
    - 2.32 Set an Environment Variable (set) + 2.32 Show Current Working Directory (pwd)
    - 2.33 Execute an NSH Script (sh) + 2.33 Remove a File (rm)
    - 2.34 Wait for Seconds (sleep) + 2.34 Remove a Directory (rmdir)
    - 2.35 Unmount a File System (umount) + 2.35 Set an Environment Variable (set)
    - 2.36 Unset an Environment Variable (unset) + 2.36 Execute an NSH Script (sh)
    - 2.37 Wait for Microseconds (usleep) + 2.37 Wait for Seconds (sleep)
    - 2.38 Get File Via HTTP (wget) + 2.38 Unmount a File System (umount)
    - 2.39 Hexadecimal Dump (xd) + 2.39 Unset an Environment Variable (unset) + + + +
    + + 2.40 URL Decode (urldecode) + + + +
    + + 2.41 URL Encode (urlencode) + + + +
    + + 2.42 Wait for Microseconds (usleep) + + + +
    + + 2.43 Get File Via HTTP (wget) + + + +
    + + 2.44 Hexadecimal Dump (xd) @@ -750,7 +780,41 @@ test <expression> + +
    -

    2.2 Concatenate Files (cat)

    +

    2.2 Base64 Decode (base64dec)

    +
    + +

    Command Syntax:

    +
      +base64dec [-w] [-f] <string or filepath>
      +
    +

    + Synopsis. + To be provided. +

    + + + + + +
    +

    2.3 Base64 Encode (base64enc)

    +
    + +

    Command Syntax:

    +
      +base64enc [-w] [-f] <string or filepath>
      +
    +

    + Synopsis. + To be provided. +

    + + + +
    +

    2.4 Concatenate Files (cat)

    @@ -768,7 +832,7 @@ cat <path> [<path> [<path> -

    2.3 Change Current Working Directory (cd)

    +

    2.5 Change Current Working Directory (cd)

    @@ -810,7 +874,7 @@ cd [<dir-path>|-|~|..]
    -

    2.4 Copy Files (cp)

    +

    2.6 Copy Files (cp)

    @@ -828,7 +892,7 @@ cp <source-path> <dest-path>
    -

    2.5 Show or set the date and time (date)

    +

    2.7 Show or set the date and time (date)

    @@ -855,7 +919,7 @@ data -s "Sep 1 11:30:00 2011"
    -

    2.6 Copy and Convert Files (dd)

    +

    2.8 Copy and Convert Files (dd)

    @@ -913,7 +977,7 @@ nsh> dd if=/dev/ram0 of=/dev/null
    -

    2.7 Show Volument Status (df)

    +

    2.9 Show Volument Status (df)

    @@ -941,7 +1005,7 @@ nsh>
    -

    2.8 Echo Strings and Variables (echo)

    +

    2.10 Echo Strings and Variables (echo)

    @@ -959,7 +1023,7 @@ echo [<string|$name> [<string|$name>...]]
    -

    2.9 Execute User Code (exec)

    +

    2.11 Execute User Code (exec)

    @@ -978,7 +1042,7 @@ exec <hex-address>
    -

    2.10 Exit NSH (exit)

    +

    2.12 Exit NSH (exit)

    @@ -997,7 +1061,7 @@ exit
    -

    2.11 Show Memory Manager Status (free)

    +

    2.13 Show Memory Manager Status (free)

    @@ -1039,7 +1103,7 @@ nsh>
    -

    2.12 Get File Via TFTP (get)

    +

    2.14 Get File Via TFTP (get)

    @@ -1074,7 +1138,7 @@ get [-b|-n] [-f <local-path>] -h <ip-address> <remote-path>
    -

    2.13 Show Usage Command Usage (help)

    +

    2.15 Show Usage Command Usage (help)

    @@ -1106,7 +1170,7 @@ help [-v] [<cmd>]
    -

    2.14 Show Network Configuration (ifconfig)

    +

    2.16 Show Network Configuration (ifconfig)

    @@ -1157,7 +1221,7 @@ ifconfig nic_name ip_address
    -

    2.15 Send a signal to a task (kill)

    +

    2.17 Send a signal to a task (kill)

    @@ -1198,7 +1262,7 @@ nsh>
    -

    2.16 Setup/teardown the Loop Device (losetup)

    +

    2.18 Setup/teardown the Loop Device (losetup)

    @@ -1251,7 +1315,7 @@ losetup d <dev-path>
    -

    2.17 List Directory Contents (ls)

    +

    2.19 List Directory Contents (ls)

    @@ -1288,7 +1352,24 @@ ls [-lRs] <dir-path> + +
    -

    2.18 Access Memory (mb, mh, and mw)

    +

    2.20 Calculate MD5 (md5)

    +
    + +

    Command Syntax:

    +
      +md5 [-f] <string or filepath>
      +
    +

    + Synopsis. + To be provided. +

    + + + +
    +

    2.21 Access Memory (mb, mh, and mw)

    @@ -1342,7 +1423,7 @@ nsh>
    -

    2.19 Show Current Tasks and Threads (ps)

    +

    2.22 Show Current Tasks and Threads (ps)

    @@ -1368,7 +1449,7 @@ nsh>
    -

    2.20 Create a Directory (mkdir)

    +

    2.23 Create a Directory (mkdir)

    @@ -1403,7 +1484,7 @@ nsh>
    -

    2.21 Create a FAT Filesystem (mkfatfs)

    +

    2.24 Create a FAT Filesystem (mkfatfs)

    @@ -1423,7 +1504,7 @@ mkfatfs <path>
    -

    2.22 Create a FIFO (mkfifo)

    +

    2.25 Create a FIFO (mkfifo)

    @@ -1461,7 +1542,7 @@ nsh>
    -

    2.23 Create a RAMDISK (mkrd)

    +

    2.26 Create a RAMDISK (mkrd)

    @@ -1512,7 +1593,7 @@ nsh>
    -

    2.24 Mount a File System (mount)

    +

    2.27 Mount a File System (mount)

    @@ -1591,7 +1672,7 @@ nsh> mount
    -

    2.25 Rename a File (mv)

    +

    2.28 Rename a File (mv)

    @@ -1609,7 +1690,7 @@ mv <old-path> <new-path>
    -

    2.26 Mount an NFS file system (nfsmount)

    +

    2.29 Mount an NFS file system (nfsmount)

    @@ -1628,7 +1709,7 @@ nfsmount <server-address> <mount-point> <remote-path>
    -

    2.27 Check Network Peer (ping)

    +

    2.30 Check Network Peer (ping)

    @@ -1661,7 +1742,7 @@ nsh>
    -

    2.28 Send File Via TFTP (put)

    +

    2.31 Send File Via TFTP (put)

    @@ -1696,7 +1777,7 @@ put [-b|-n] [-f <remote-path>] -h <ip-address> <local-path>
    -

    2.29 Show Current Working Directory (pwd)

    +

    2.32 Show Current Working Directory (pwd)

    @@ -1726,7 +1807,7 @@ nsh>
    -

    2.30 Remove a File (rm)

    +

    2.33 Remove a File (rm)

    @@ -1760,7 +1841,7 @@ nsh>
    -

    2.31 Remove a Directory (rmdir)

    +

    2.34 Remove a Directory (rmdir)

    @@ -1795,7 +1876,7 @@ nsh>
    -

    2.32 Set an Environment Variable (set)

    +

    2.35 Set an Environment Variable (set)

    @@ -1821,7 +1902,7 @@ nsh>
    -

    2.33 Execute an NSH Script (sh)

    +

    2.36 Execute an NSH Script (sh)

    @@ -1839,7 +1920,7 @@ sh <script-path>
    -

    2.34 Wait for Seconds (sleep)

    +

    2.37 Wait for Seconds (sleep)

    @@ -1856,7 +1937,7 @@ sleep <sec>
    -

    2.35 Unmount a File System (umount)

    +

    2.38 Unmount a File System (umount)

    @@ -1886,7 +1967,7 @@ nsh>
    -

    2.36 Unset an Environment Variable (unset)

    +

    2.39 Unset an Environment Variable (unset)

    @@ -1912,7 +1993,41 @@ nsh> + +
    -

    2.37 Wait for Microseconds (usleep)

    +

    2.40 URL Decode (urldecode)

    +
    + +

    Command Syntax:

    +
      +urldecode [-f] <string or filepath>
      +
    +

    + Synopsis. + To be provided. +

    + + + + + +
    +

    2.41 URL Encode (urlencode)

    +
    + +

    Command Syntax:

    +
      +urlencode [-f] <string or filepath>
      +
    +

    + Synopsis. + To be provided. +

    + + + +
    +

    2.42 Wait for Microseconds (usleep)

    @@ -1929,7 +2044,7 @@ usleep <usec>
    - 2.37 Get File Via HTTP (wget) + 2.43 Get File Via HTTP (wget)
    @@ -1956,7 +2071,7 @@ wget [-o <local-path>] <url>
    -

    2.38 Hexadecimal dump (xd)

    +

    2.44 Hexadecimal dump (xd)

    @@ -2024,6 +2139,16 @@ nsh> !CONFIG_NSH_DISABLESCRIPT CONFIG_NSH_DISABLE_TEST + + base64dec + CONFIG_NETUTILS_CODECS && CONFIG_CODECS_BASE64 + CONFIG_NSH_DISABLE_BASE64DEC + + + base64enc + CONFIG_NETUTILS_CODECS && CONFIG_CODECS_BASE64 + CONFIG_NSH_DISABLE_BASE64ENC + cat CONFIG_NFILE_DESCRIPTORS > 0 @@ -2105,6 +2230,11 @@ nsh> CONFIG_NFILE_DESCRIPTORS > 0 CONFIG_NSH_DISABLE_LS + + md5 + CONFIG_NETUTILS_CODECS && CONFIG_CODECS_HASH_MD5 + CONFIG_NSH_DISABLE_MD5 + mb,mh,mw
    @@ -2212,6 +2342,16 @@ nsh> !CONFIG_DISABLE_ENVIRON CONFIG_NSH_DISABLE_UNSET + + urldecode + !CONFIG_NETUTILS_CODECS && CONFIG_CODECS_URLCODE + CONFIG_NSH_DISABLE_URLDECODE + + + urlencode + !CONFIG_NETUTILS_CODECS && CONFIG_CODECS_URLCODE + CONFIG_NSH_DISABLE_URLENCODE + usleep !CONFIG_DISABLE_SIGNALS @@ -3517,6 +3657,8 @@ mount -t vfat /dev/ram1 /tmp
  • binfs
  • Built-In applications
  • Built-in variables
  • +
  • base64dec
  • +
  • base64enc
  • cat
  • cd
  • Command summaries
  • @@ -3597,6 +3739,7 @@ mount -t vfat /dev/ram1 /tmp
  • losetup
  • ls
  • mb
  • +
  • md5
  • mh
  • mw
  • mkdir
  • @@ -3652,6 +3795,8 @@ mount -t vfat /dev/ram1 /tmp
  • unset
  • up_cxxinitialize()
  • up_nsh.c
  • +
  • urldecode
  • +
  • urlencode
  • usleep
  • waitpid()
  • wget
  • From 57abed97b2687e5fe9a4fb55fd12bd57bfcd8497 Mon Sep 17 00:00:00 2001 From: patacongo Date: Thu, 1 Nov 2012 12:19:20 +0000 Subject: [PATCH 1059/1518] Put uClibc++ header files in a different directory from NuttX header files git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5287 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 0c98d4ad2e..be23be91d2 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -556,6 +556,14 @@

    + +
    + +

    +

  • Add-on uClibc++ C++ Library is available (LGPL).
  • +

    + + From 844eb528d1e54547ffe5143e32e549f3ad1346cc Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 4 Nov 2012 18:54:04 +0000 Subject: [PATCH 1060/1518] Add interfaces flags, extend ifconfig, add ifup and ifdown commands (Darcy Gong git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5308 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttShell.html | 199 ++++++++++++++++++++++++----------- 1 file changed, 136 insertions(+), 63 deletions(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index f8ef41fb96..31546a100c 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -8,7 +8,7 @@

    NuttShell (NSH)

    -

    Last Updated: October 31, 2012

    +

    Last Updated: November 4, 2012

    @@ -173,175 +173,187 @@
    - 2.16 Show Network Configuration (ifconfig) + 2.16 Manage Network Configuration (ifconfig)
    - 2.17 Send a signal to a task (kill) + 2.17 Take a network down (ifdown)
    - 2.18 Setup/teardown the Loop Device (losetup) + 2.18 Bring a network up (ifup)
    - 2.19 List Directory Contents (ls) + 2.19 Send a signal to a task (kill)
    - 2.20 Calculate MD5 (md5) + 2.20 Setup/teardown the Loop Device (losetup)
    - 2.21 Access Memory (mb, mh, and mw) + 2.21 List Directory Contents (ls)
    - 2.22 Show Current Tasks and Threads (ps) + 2.22 Calculate MD5 (md5)
    - 2.23 Create a Directory (mkdir) + 2.23 Access Memory (mb, mh, and mw)
    - 2.24 Create a FAT Filesystem (mkfatfs) + 2.24 Show Current Tasks and Threads (ps)
    - 2.25 Create a FIFO (mkfifo) + 2.25 Create a Directory (mkdir)
    - 2.26 Create a RAMDISK (mkrd) + 2.26 Create a FAT Filesystem (mkfatfs)
    - 2.27 Mount a File System (mount) + 2.27 Create a FIFO (mkfifo)
    - 2.28 Rename a File (mv) + 2.28 Create a RAMDISK (mkrd)
    - 2.29 Mount an NFS file system (nfsmount) + 2.29 Mount a File System (mount)
    - 2.30 Check Network Peer (ping) + 2.30 Rename a File (mv)
    - 2.31 Send File Via TFTP (put) + 2.31 Mount an NFS file system (nfsmount)
    - 2.32 Show Current Working Directory (pwd) + 2.32 Check Network Peer (ping)
    - 2.33 Remove a File (rm) + 2.33 Send File Via TFTP (put)
    - 2.34 Remove a Directory (rmdir) + 2.34 Show Current Working Directory (pwd)
    - 2.35 Set an Environment Variable (set) + 2.35 Remove a File (rm)
    - 2.36 Execute an NSH Script (sh) + 2.36 Remove a Directory (rmdir)
    - 2.37 Wait for Seconds (sleep) + 2.37 Set an Environment Variable (set)
    - 2.38 Unmount a File System (umount) + 2.38 Execute an NSH Script (sh)
    - 2.39 Unset an Environment Variable (unset) + 2.39 Wait for Seconds (sleep)
    - 2.40 URL Decode (urldecode) + 2.40 Unmount a File System (umount)
    - 2.41 URL Encode (urlencode) + 2.41 Unset an Environment Variable (unset)
    - 2.42 Wait for Microseconds (usleep) + 2.42 URL Decode (urldecode)
    - 2.43 Get File Via HTTP (wget) + 2.43 URL Encode (urlencode)
    - 2.44 Hexadecimal Dump (xd) + 2.44 Wait for Microseconds (usleep) + + + +
    + + 2.45 Get File Via HTTP (wget) + + + +
    + + 2.46 Hexadecimal Dump (xd) @@ -1170,18 +1182,18 @@ help [-v] [<cmd>]
    -

    2.16 Show Network Configuration (ifconfig)

    +

    2.16 Manage Network Configuration (ifconfig)

    Command Syntax:

      -ifconfig [nic_name [ip_address]]
      +ifconfig [nic_name [ip]] [dr|gw|gateway <dr-address>] [netmask <net-mask>] [dns <dns-address>] [hw <hw-mac>]]
       

    Synopsis. - Two forms of the ifconfigcommand are supported: + Multiple forms of the ifconfigcommand are supported:

    1. @@ -1214,14 +1226,63 @@ eth0 HWaddr 00:18:11:80:10:06

         ifconfig nic_name ip_address
        -
          +
        + +
      • + Other forms to be provided
    + +
    -

    2.17 Send a signal to a task (kill)

    +

    2.17 Take a network down (ifdown)

    +
    + +

    Command Syntax:

    +
      +ifdown <nic-name>
      +
    +

    + Synopsis. + Take down the interface identified by the name <nic-name>. +

    +

    + Example: +

    +
      +ifdown eth0
      +
    + + + + + +
    +

    2.18 Bring a network up (ifup)

    +
    + +

    Command Syntax:

    +
      +ifup <nic-name>
      +
    +

    + Synopsis. + Bring up down the interface identified by the name <nic-name>. +

    +

    + Example: +

    +
      +ifup eth0
      +
    + + + +
    +

    2.19 Send a signal to a task (kill)

    @@ -1262,7 +1323,7 @@ nsh>
    -

    2.18 Setup/teardown the Loop Device (losetup)

    +

    2.20 Setup/teardown the Loop Device (losetup)

    @@ -1315,7 +1376,7 @@ losetup d <dev-path>
    -

    2.19 List Directory Contents (ls)

    +

    2.21 List Directory Contents (ls)

    @@ -1352,7 +1413,7 @@ ls [-lRs] <dir-path>
    -

    2.20 Calculate MD5 (md5)

    +

    2.22 Calculate MD5 (md5)

    @@ -1369,7 +1430,7 @@ md5 [-f] <string or filepath>
    -

    2.21 Access Memory (mb, mh, and mw)

    +

    2.23 Access Memory (mb, mh, and mw)

    @@ -1423,7 +1484,7 @@ nsh>
    -

    2.22 Show Current Tasks and Threads (ps)

    +

    2.24 Show Current Tasks and Threads (ps)

    @@ -1449,7 +1510,7 @@ nsh>
    -

    2.23 Create a Directory (mkdir)

    +

    2.25 Create a Directory (mkdir)

    @@ -1484,7 +1545,7 @@ nsh>
    -

    2.24 Create a FAT Filesystem (mkfatfs)

    +

    2.26 Create a FAT Filesystem (mkfatfs)

    @@ -1504,7 +1565,7 @@ mkfatfs <path>
    -

    2.25 Create a FIFO (mkfifo)

    +

    2.27 Create a FIFO (mkfifo)

    @@ -1542,7 +1603,7 @@ nsh>
    -

    2.26 Create a RAMDISK (mkrd)

    +

    2.28 Create a RAMDISK (mkrd)

    @@ -1593,7 +1654,7 @@ nsh>
    -

    2.27 Mount a File System (mount)

    +

    2.29 Mount a File System (mount)

    @@ -1672,7 +1733,7 @@ nsh> mount
    -

    2.28 Rename a File (mv)

    +

    2.30 Rename a File (mv)

    @@ -1690,7 +1751,7 @@ mv <old-path> <new-path>
    -

    2.29 Mount an NFS file system (nfsmount)

    +

    2.31 Mount an NFS file system (nfsmount)

    @@ -1709,7 +1770,7 @@ nfsmount <server-address> <mount-point> <remote-path>
    -

    2.30 Check Network Peer (ping)

    +

    2.32 Check Network Peer (ping)

    @@ -1742,7 +1803,7 @@ nsh>
    -

    2.31 Send File Via TFTP (put)

    +

    2.33 Send File Via TFTP (put)

    @@ -1777,7 +1838,7 @@ put [-b|-n] [-f <remote-path>] -h <ip-address> <local-path>
    -

    2.32 Show Current Working Directory (pwd)

    +

    2.34 Show Current Working Directory (pwd)

    @@ -1807,7 +1868,7 @@ nsh>
    -

    2.33 Remove a File (rm)

    +

    2.35 Remove a File (rm)

    @@ -1841,7 +1902,7 @@ nsh>
    -

    2.34 Remove a Directory (rmdir)

    +

    2.36 Remove a Directory (rmdir)

    @@ -1876,7 +1937,7 @@ nsh>
    -

    2.35 Set an Environment Variable (set)

    +

    2.37 Set an Environment Variable (set)

    @@ -1902,7 +1963,7 @@ nsh>
    -

    2.36 Execute an NSH Script (sh)

    +

    2.38 Execute an NSH Script (sh)

    @@ -1920,7 +1981,7 @@ sh <script-path>
    -

    2.37 Wait for Seconds (sleep)

    +

    2.39 Wait for Seconds (sleep)

    @@ -1937,7 +1998,7 @@ sleep <sec>
    -

    2.38 Unmount a File System (umount)

    +

    2.40 Unmount a File System (umount)

    @@ -1967,7 +2028,7 @@ nsh>
    -

    2.39 Unset an Environment Variable (unset)

    +

    2.41 Unset an Environment Variable (unset)

    @@ -1993,7 +2054,7 @@ nsh>
    -

    2.40 URL Decode (urldecode)

    +

    2.42 URL Decode (urldecode)

    @@ -2010,7 +2071,7 @@ urldecode [-f] <string or filepath>
    -

    2.41 URL Encode (urlencode)

    +

    2.43 URL Encode (urlencode)

    @@ -2027,7 +2088,7 @@ urlencode [-f] <string or filepath>
    -

    2.42 Wait for Microseconds (usleep)

    +

    2.44 Wait for Microseconds (usleep)

    @@ -2044,7 +2105,7 @@ usleep <usec>
    - 2.43 Get File Via HTTP (wget) + 2.45 Get File Via HTTP (wget)
    @@ -2071,7 +2132,7 @@ wget [-o <local-path>] <url>
    -

    2.44 Hexadecimal dump (xd)

    +

    2.46 Hexadecimal dump (xd)

    @@ -2215,6 +2276,16 @@ nsh> CONFIG_NET CONFIG_NSH_DISABLE_IFCONFIG + + ifdown + CONFIG_NET + CONFIG_NSH_DISABLE_IFUPDOWN + + + ifup + CONFIG_NET + CONFIG_NSH_DISABLE_IFUPDOWN + kill !CONFIG_DISABLE_SIGNALS @@ -3723,9 +3794,9 @@ mount -t vfat /dev/ram1 /tmp
  • /etc/init.d/rcS
  • exec
  • exec_namedapp()
  • +
  • exit
  • -
  • exit
  • free
  • g_cmdmap
  • genromfs
  • @@ -3734,6 +3805,8 @@ mount -t vfat /dev/ram1 /tmp
  • help
  • if-then[-else]-fi
  • ifconfig
  • +
  • ifdown
  • +
  • ifup
  • Initialization sequence
  • kill
  • losetup
  • From c6b3252b7d2f053dc034dd69a48348ff291ee7ad Mon Sep 17 00:00:00 2001 From: patacongo Date: Mon, 5 Nov 2012 15:42:58 +0000 Subject: [PATCH 1061/1518] Prep for 6.23 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5313 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 743 ++++++++++++++------------------------- 1 file changed, 261 insertions(+), 482 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index be23be91d2..af81335349 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

    NuttX RTOS

    -

    Last Updated: October 29, 2012

    +

    Last Updated: November 5, 2012

    @@ -537,14 +537,14 @@ - C Library + C/C++ Libraries

    -

  • Fully integrated into the OS.
  • +
  • Standard C Library Fully integrated into the OS.
  • @@ -552,7 +552,7 @@

    -

  • Includes floating point math library.
  • +
  • Includes floating point support via a Standard Math Library.
  • @@ -560,7 +560,7 @@

    -

  • Add-on uClibc++ C++ Library is available (LGPL).
  • +
  • Add-on uClibc++ module provides Standard C++ Library(LGPL).
  • @@ -1039,200 +1039,143 @@ -

    NuttX-6.22 Release Notes

    +

    NuttX-6.23 Release Notes

    - The 89th release of NuttX, Version 6.22, was made on September 29, 2012, and is available for download from the + The 90th release of NuttX, Version 6.23, was made on November 5, 2012, and is available for download from the SourceForge website. - Note that the release consists of two tarballs: nuttx-6.22.tar.gz and apps-6.22.tar.gz. + Note that the release consists of two tarballs: nuttx-6.23.tar.gz and apps-6.23.tar.gz. Both may be needed (see the top-level nuttx/README.txt file for build information) The change log associated with the release is available here. Unreleased changes after this release are available in SVN. These unreleased changes are also listed here.

    - This release corresponds with SVN release number: r5206, + This release corresponds with SVN release number: r5313, Note that all SVN information has been stripped from the tarballs. If you need the SVN configuration, you should check out directly from SVN. - Revision r5206 should equivalent to release 6.22 of NuttX 6.22: + Revision r5313 should equivalent to release 6.23 of NuttX:

      -svn checkout -r5206 svn://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
      +svn checkout -r5313 svn://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
       

    Or

      -svn checkout -r5206 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
      +svn checkout -r5313 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
       

    Additional new features and extended functionality

    +
    • RTOS: - Application entry point is no longer user_start, but can be configured using CONFIG_USER_ENTRYPOINT. - NuttX now supports two work queues: A lower priority work queue (for extended processing) and a higher priority work queue (for quick, high priority operations). + If both atexit() and on_exit() are enabled, use on_exit() to implement atexit(). + Updates for RGMP 4.0.

    • - Memory Management: - Added a new granule-based allocated that can be used to manage, aligned and quantized DMA memory. -

      -
    • -
    • -

      - File System: - Add hooks to allocate I/O memory with and external allocated (need if required by DMA). -

      -
    • -
    • -

      - Networking: - ENC28J60 driver is (finally) verified. + Binfmt: + Add support for loading and executing ELF binary modules from a file system.

    • Drivers: - Add hooks USB device drivers to allocate I/O memory with and external allocated (need if required by DMA). - Driver for the Windbond SPI FLASH family (W25x16, W25x32, W25x64, and others). - ADS7843E driver extended for TSC2046 and XPT2046 and verified. + Maxim MAX11802 touchscreen controller (Petteri Aimonen)

    • - ARMv7-M: - Added logic to reset the MCU using the NVIC. + STM32 Driver: + Implementation of /dev/random using the STM32 Random Number Generator (RNG).

    • - STM32: - Add support for STM32F103VET6. + STM32 Boards: + ADC support for the Shenzhou IV board. + Relay support for the Shenzhou IV board (both by Darcy Gong).

    • - STM32 Drivers: - Add logic to re-initialize UARTs a second time to enable DMA (Mike Smith). - I2C driver error recovery (Mike Smith). + C++ Standard Library: + Support is now included for the add-on uClibc++ C++ standard library support. + This includes support for iostreams, strings, STL, RTTI, exceptions -- the complete C++ environment. + uClibc++ is provided as a separate add-on package due to licensing issues. + Contributed by Qiang Yu and David of the RGMP team. +

      +

      + Add support for __cxa_atexit().

    • - STM32 boards: - Support for USB host added add to several configurations (or at least explained in README files). - Support for the Shenzhou STM32F107 board (see www.armjishu.com). - Support for M3 Wildfire STM32F103 board (v2 and v3). + C Standard Library: +

      + Optimized generic and ARM-specific memcpy() function. + Optimized memset() function. +

      +

      + Add support for ferror()), feof()), and clearerror()).

    • - Build System:: - Kconfig string de-quoting logic. - Remove comments from defconfig files (Kate). - Add tool to create NuttX-style symbol tables. - Numerous changes to configuration logic as needed for the new mconf-based configuration (much of this from Richard Cochran). - Refactor common Make.defs logic into tools/Config.mk (Richard Cochran). -

      -
    • -
    • + Standard Math Library:

      - Library: - Configurable terse output from strerror(). - Added perror() (Kate). - Add %n format to sscanf() (Kate). + Port of the math library from Rhombus OS by Nick Johnson (Darcy Gong).

    • Applications: - Numerous changes and extensions to the old uIP web server (from Kate and Max Holtzberg, see the ChangeLog for specific extensions). - UDP network discovery utility (Max Holtzberg). - Embeddable Lightweight XML-RPC Server (http://www.drdobbs.com/web-development/an-embeddable-lightweight-xml-rpc-server/184405364, Max Holtzberg). + New NSH commands: ifup, ifdown, urlencode, urldecode, base64enc, bas64dec, and md5 (Darcy Gong). + Extensions to the ifconfig command (Darcy Gong), + Add support for NSH telnet login (Darcy Gong). + Enancements to NSH ping command to support pinging hosts with very long round-trip times. +

      +

      + Many extensions to the webclient/wget and DNS resolver logic from Darcy Gong. + SON, Base64, URL encoding, and MD5 libraries contributed by Darcy Gong. +

      +

      + New examples: ELF loader, JSON, wgetjson, cxxtest, relays.

    +

    Bugfixes (see the change log for details) Some of these are very important (marked critical):

      -
    • -

      - RTOS: - Fixes to priority inheritance logic (critical). - waitpid() critical section. - Assertion in work_cancel() (Mike Smith). - mmap() (Kate). -

      -
    • -
    • -

      - FAT File System: - Improper Boolean expression caused un-necessary writes and performance issues (critical, Ronen Vainish). -

      -
    • -
    • -

      - Networking: - Remove an un-necessary delay from recvfrom(). - This greatly improves network performance (critical, Max Holtzberg). -

      -
    • -
    • -

      - Graphics: - NX parameter checking errors. -

      -
    • Drivers: - Fix double release of memory in SDIO-based, MMC/SD driver (Ronen Vainish). -

      -
    • -
    • -

      - LPC17xx: - Ethernet driver fixes needed for certain PHYs (Kate). -

      -
    • -
    • -

      - AVR: - Fix build error (Richard Cochran). -

      -
    • -
    • -

      - STM32: - USB OTG FS host driver NAKing an retries. - Power management compilation errors (Diego Sanchez). - Missing SPI3 remap logic. + W25 SPI FLASH

    • STM32 Drivers: - Fix for Ethernet errata for STM32F107 (critical). - Ethernet buffer alignment check. - Add "kludge" to Ethernet driver to handle DM9161 PHY which (at least on the Shenzhou board), sometimes does not come up correctly. + ADC reset

    • - Applications: - THTTPD (Kate). - NSH ping when IP address is on a different network (Darcy Gong). + Fraphics: + Missing implementation of the blocked method (*critical*, Petteri Aimonen).

    • - Library: - fread(), fflush(), fdopen(): Fix error handling logic (Ronen Vainish). - Fix some field-width handling issues in sscanf() + C Library: + Floating point numbers in printf and related formatting functions (Mike Smith), + cf[get|set]speed() (Mike Smith)

    @@ -3238,351 +3181,179 @@ Other memory:
      -nuttx-6.22 2012-09-29 Gregory Nutt <gnutt@nuttx.org>
      +nuttx-6.23 2012-11-05 Gregory Nutt <gnutt@nuttx.org>
       
      -    * include/semaphore.h, sched/sem_holders.c, and lib/semaphore/sem_init.c:
      -      Fix some strange (and probably wrong) list handling when
      -      CONFIG_PRIORITY_INHERITANCE and CONFIG_SEM_PREALLOCHOLDERS are defined.
      -      This list handling was probably causing errors reported by Mike Smith
      -    * sched/sched_waitpid.c: Fix a possible issue with logic logic that
      -      should be brought into a critical section (suggested by Mike Smith)
      -    * sched/sched_setuptaskfiles.c: Should be 'struct socket' not
      -      'struct sockets'.  How did this compile before? (found by Kate)
      -    * syscall/syscall.csv:  Fix prototype for usleep() and prctl() (also
      -      from Kate).
      -    * arch/arm/src/lpc17xx/lpc17_ethernet.c:  Conditionally elide setting PHY
      -      speed/duplex.  This does not work for certain PHYs.  Still some unresolved
      -      issues (also from Kate).
      -    * tools/Config.mk, Makefile, configs/*/Make.defs:  Add a new Makefile
      -      fragment to de-quote certain strings from the Kconfig logic that
      -      need to be used at path segments (Richard Cochran).
      -    * arch/arm/src/stm32/stm32_usbotghost.c:  The STM32 USB host driver only
      -      works with debug turned on.  The problem appears to be that with debug
      -      OFF, there are more NAKs occuring in more places than before and this
      -      reveals a variety of errors.  This check in improves NAK robustness
      -      for control transfers but does not resolve all of the issues.
      -    * configs/stm3220g-eval/*/defconfig:  Calibrated delay loop.  It had
      -      never been calibrated was way off.
      -    * sched/sem_holder.c: Add logic to handler some priority inheritance
      -      cases when sem_post() is called from an interrupt handler.  The
      -      logic is clearly wrong, but it is not known if this is the
      -      cause of any known bugs.
      -    * lib/stdio/lib_perror():  Add perror().  Contributed by Kate.
      -    * lib/string/lib_strerror():  Add option CONFIG_LIBC_STRERROR that
      -      is now required to enabled strerror().  Add an option
      -      CONFIG_LIBC_STRERROR_SHORT that can be used to output shortened
      -      strings by strerror().
      -    * arch/arm/src/stm32/stm32_usbotghost.c:  Finally... the USB OTG FS
      -      appears to handle NAKing correctly.
      -    * configs/stm32f4discovery/*:  Added and verifed support for USB OTG FS
      -      host on the STM32F4Discovery board.
      -    * configs/*/defconfig: Remove configuration documentation from config
      -      files.  It is redundant, error-prone, and difficult to maintain.
      -      Configuration documentation is available in configs/README.txt for
      -      common configurations and in configs/*/README.txt for board and MCU-
      -      specific configurations.
      -    * configs/stm3240g-eval: Add USB host support.
      -    * sched/os_bring.c, configs/*/defconfig, tools/mkconfig.c, and others:  Added
      -      configuration variable CONFIG_USER_ENTRYPOINT that may be used to change
      -      the default entry from user_start to some other symbol.  Contributed by
      -      Kate. NOTE: This change does introduce a minor backward incompatibility.
      -      For example, if your application uses NSH as its start-up program, then your
      -      build will now fail because it will be unable to find "user_start".  The fix
      -      for this link failure is to add the following to your configuration file:
      -      CONFIG_USER_ENTRYPOINT="nsh_main".
      -    * libs/stdio/lib_libfread.c and lib_*flush*.c:  Correct a couple of
      -      error cases where the lib semaphore was not be released on error
      -      exits (thanks Ronen Vainish).  Also, improved some error reporting:
      -      the generic ERROR was being used instead of the specific errno
      -      value; the errno variable was not always set correctly.
      -    * tools/mkfsdata.pl: The uIP web server CGI image making perl script was
      -      moved from apps/netutils/webserver/makefsdata to nuttx/tools/mkfsdata.pl
      -      (Part of a larger change submitted by Max Holtzberg).
      -    * configs/stm3240g-eval/script/ld.script:  All of the identical ld.script
      -      files for the STM3240G-EVAL were replaced by one version in this directory.
      -    * configs/stm3240g-eval/webserver:  Configuration submitted by Max Holtzberg
      -      for testing the changes to the uIP web server (see apps/ChangeLog.txt).
      -    * lib/stdio/lib_perror.c:  Remove CONFIG_LIBC_PERROR_DEVNAME.  What was I
      -      thinking?  Arbitrary streams cannot be shared by different tasks.
      -    * tools/mksyscall.c, csvparser.c, and csvparser.h: Separate CSV parsing
      -      logic from mksyscall.c into files where it can be shared.
      -    * tools/mksymtab.c:  Add a tool that can be used to convert a CSV file
      -      into a NuttX-style symbol table.
      -    * sched/work_cancel.c:  Fix a bad assertion (reported by Mike Smith)
      -    * configs/stm3210e-eval/src/up_idle.c:  Correct some power management
      -      compilation errors (reported by Diego Sanchez).
      -    * include/nuttx/wqueue.h, sched/work*, and others:  Added logic to support
      -      a second, lower priority work queue (CONFIG_SCHED_LPWORK).
      -    * arch/arm/src/stm32/stm32_dma.c, chip/stm32*_memorymap.h:  FSMC SRAM is
      -      only 16-bits wide and the SDIO DMA must be set up differently.
      -    * arch/arm/src/stm32/stm32_dma.c:  Back out the 16-bit DMA change. It
      -      is incorrect.
      -    * configs/:  Make use of UART4/5 vs USART4/5 consistent in all places.
      -    * Kconfig: Serial 2STOP setting must be integer 0/1, not a boolean.
      -    * lib/misc/sendfile.c and include/sys/sendfile.h:  Add a Linux style
      -      sendfile() (non-standard!)
      -    * Kconfig: Refactor serial settings (moved from chip to drivers/serial).
      -      AVR "teensy" now builds with Kconfig (contributed by Richard Cochran).
      -    * Kconfig: Add configuration settings for the LPC17xx
      -    * Kconfig: Add configuration settings for the LM3S (from Richard Cochran).
      -    * Kconfig: Verify configuration settings for the STM32.  This includes
      -      changes in the way that the external SRAM is configured:  Define
      -      CONFIG_HEAP2_SIZE (decimal) instead of CONFIG_HEAP2_END (hex).
      -    * tools/configure.sh:  Don't append the apps directory path setting
      -      if the correct setting is already in defined in the defconfig file.
      -    * fs/fat/fs_utils.c:  Improperly constructed bool expression.  This
      -      would cause many unnecessary writes to FLASH (Thanks Ronen Vainish).
      -    * Kconfig: Verify configuration settings for the LPC43xx.  This includes
      -      some corrections to configuration variable names and defconfig settings.
      -    * Kconfig: Add and verify configuration settings for the LPC31xx.
      -    * arch/arm/src/stm32/stm32_uart.h and stm32_serial.c:  Add logic to
      -      re-initialize the console UART as needed to enable DMA on the
      -      console UART (contributed by Mike Smith).
      -    * net/recvfrom.c, net/Kconfig, include/nuttx/net/uipopt.h: Remove delay
      -      after receiving data.  That has historical reasons to be there (it
      -      was needed before read-ahead buffering was added), but kills performance.
      -      (Noted by Max Holtzberg).
      -    * configs/shenzhou:  Add beginnings of a board configuration for the
      -      Shenzhou STM32107 board (see www.armjishu.com).  Very little is in
      -      place as of this initial check-in.
      -    * QEMU: Fixes from Richard Cochran to build QEMU with Kconfig files.
      -    * arch/*/src/Makefile:  Remove some old logic that was kicked off
      -      when CONFIG_BOOT_RUNFROMFLASH=y.  The old logic used to use
      -      objcopy to move sections.  Newer logic changes the load position
      -      of sections in the the linker script.  As far as I can tell, there
      -      is nothing in the source tree now that depends on the old way of
      -      doing things (if I am wrong, they will need a change to the linker
      -      script).
      -    * configs/fire-stm32v2:  Configuration for the M3 Wildfire board.  I
      -      don't know very much about this board other than is has an
      -      STM32F103VET6 chip, LCD, touchscreen, and ENC28J60 network.  Very
      -      little is in place on the initial check-in.
      -    * configs/shenzhou: Coding for the Shenzhou board port is complete,
      -      but tested has been deferred until I get the right tools.
      -    * arch/arc/include/stm32/chip.h and arch/arm/src/stm32/chip.h:
      -      Add support for the STM32F103VET6.
      -    * fs/fs_fdopen.c: Bad check for failure to allocate memory.  (Noted
      -      by Ronen Vainish).
      -    * drivers/mmcsd/mmcsd_sdio.c: If the MMC/SD driver were ever
      -      uninitialized then there would be a double release of memory
      -      (Noted by Ronen Vainish).
      -    * fs/mmap/fs_rammap.c:  Fix logic error and errno check (contributed
      -      by Kate).
      -    * arch/avr/src: Fixes from AVR32 build errors that have crept in
      -      over the time; incorporated Kconfig for AVR3 (Richard Cochran).
      -    * fs/fat and include/nuttx/fs/fat.h: The FAT file system allocates
      -      memory for sector I/O buffers used to exchange data with the
      -      configured block driver.  In some contexts, the block driver may
      -      require DMA-capable memory.  If CONFIG_FAT_DMAMEMORY is defined,
      -      then the FAT FS will use platform-provided DMA memory allocators
      -      to allocate the block driver I/O buffers.
      -    * CONFIG_NET_ENC28J60 renamed CONFIG_ENC28J60 to be consistent
      -      in all places.
      -    * drivers/enc28j60.c, include/nuttx/net/enc28j60.h, and 
      -      olimex-strp711/src/up_enc28j60.c:  No longer passes IRQ number
      -      as a parameter.  Instead now passes a call table to manage
      -      ENC28J60 GPIO interrupts.  That is because GPIO interrupts are
      -      handled in different ways by different MCUs and some do not
      -      support IRQ numbers for GPIO interrupts.
      -    * mm/mm_gran* and include/nuttx/gran.h:  Add a simple granule-
      -      based allocator.  The intent of this allocator is to support
      -      simple allocation of DMA I/O buffers.  The initial check-in
      -      is code complete but untested (not event built into the
      -      mm/Makefile yet.
      -    * confgs/fire-stm32v2: The board port is basically functional.
      -      Not all features have been verified.  The ENC28J60 network
      -      is not yet functional.
      -    * configs/stm3240g-eval/discover:  A configuration for testing
      -      the UDP discovery utility.  Contributed by Max Holtzberg.
      -    * mm/README.txt:  Add a new README file.
      -    * include/nuttx/usb/usb.h, arch/*/src/*usb.c, and arch/*/src/*otg*.c:
      -      Add hooks to to use common, external DMA buffer allocation
      -      implementation.
      -    * net/recvfrom.c: Don't block in recvfrom if (1) read-ahead buffering
      -      is enabled and (2) some data was obtained from read-ahead buffers.
      -      Blocking is a bad idea in that case because there is no timeout!
      -      (submitted by Max Holtzberg).
      -    * configs/stm3240g-eval/xmlrpc: An example configuration for the
      -      Embeddable Lightweight XML-RPC Server at apps/examples/xmlrpc.
      -      See http://www.drdobbs.com/web-development/\
      -      an-embeddable-lightweight-xml-rpc-server/184405364 for more info.
      -      Contributed by Max Holtzberg.
      -    * configs/*/nxwm/defconfig and sched/task_exithook.c: Fixes for
      -      bugs that crept in during recent changes.  (Submitted by Max
      -      Holtzberg).
      -    * arch/arm/include/armv7-m/irq.h:  Fix a critical bug in irqsave().
      -      It looks like sometimes the compile will re-order some instructions
      -      inapproapriately.  This end result is that interrupts will get
      -      stuck off.
      -    * drivers/mtd/w25.c:  Beginning of a driver for the Windbond SPI
      -      FLASH family (W25x16, W25x32, and W25x64).  The initial check-in
      -      is basically just the SST25 driver with some name changes.
      -    * arch/arm/include/armv7-m/irq.h and arch/arm/src/stm32/stm32_spi.c:
      -      Back out the last change in irq.h.  It is (most likely) fine the
      -      way it was.  The really interrupt related problem was in stm32_spi.c:
      -      When SPI3 is not enabled, then the irqrestore() falls in the
      -      else clause.
      -    * include/nuttx/compiler.h and other files:  Moved always_inline
      -      and noinline __attributes__ here.  Also replaced all occurrences
      -      of explicit __atributes__ in other files with definitions from
      -      this header file.
      -    * drivers/mtd/w25.c:  The Windbond SPI FLASH W25 FLASH driver is
      -      code complete (but still untested).
      -    * arch/arm/src/stm32/stm32_i2c.c:  I2C improvements from Mike Smith.
      -      Unified configuration logic; dynamic timeout calculations;
      -      I2C reset logic to recover from locked devices on the bus.
      -    * configs/*/*/Make.defs, tools/Config.mk, Makefile:  Refactor all
      -      common make definitions from the various Make.defs files into
      -      the common tools/Config.mk.  Add support for a verbosity options:
      -      Specify V=1 on the make command line in order to see the exact
      -      commands used in the build (Contributed by Richard Cochran).
      -    * drivers/net/enc28j60.c:  The ENC28J60 Ethernet driver is
      -      now functional.
      -    * configs/fire-stm32v2:  Add support or the fire-stm32v3 board as
      -      well (untested because I do not have a v3 board).
      -    * lib/stdio/lib_sscanf.c:  Add %n psuedo-format (from Kate).
      -    * lib/stdio/lib_sscanf.c:  There is an issue of handling input
      -      when (1) no fieldwidth is provided and (2) there is no space
      -      seperating the input values.  No solutions is in place for this
      -      case now (either space or a fieldwidth must be provided).  But
      -      at least some of the bad logic that attempted to handle this
      -      case has been removed (noted by Kate).
      -    * arch/arm/src/stm32/stm32_eth.c:  DMA buffer sizes must be an
      -      even multiple of 4, 8, or 16 bytes.
      -    * arch/arm/src/stm32/stm32_idle.c:  Fixes STM32F107 DMA issues:
      -      We cannot go into sleep mode while Ethernet is actively DMAing.
      -    * configs/shenzhou/src/up_ssd1289.c:  Add infrastructure to support
      -      SSD1289 LCD.  Initial checkin is just a clone of the
      -      STM32F4Discovery's FSMC-based LCD interface.  The Shenzhou
      -      will need a completely need bit-banging interface; this
      -      initial check-in is only for the framework.
      -    * configs/shenzhou/src/up_ssd1289.c:  Bit-banging driver is
      -      code complete.
      -    * configs/shenzhou/src/up_lcd.c:  Oops. Shenzhou LCD does not
      -      have an SSD1289 controller.  Its an ILI93xx.  Ported the
      -      STM3240G-EVAL ILI93xx driver to work on the Shenzhou board.
      -    * configs/shenzhou/nxwm:  Added an NxWM configuration for the
      -      Shenzhou board.  This is untested on initial check-in.  It will
      -      be used to verify the Shenzhou LCD driver (and eventually the
      -      touchscreen driver).
      -    * configs/shenzhou/src/up_touchscreen.c:  Add ADS7843E touchscreen
      -      support for the Shenzhou board.  The initial check-in is untested
      -      and basically a clone of the the touchscreen support for the SAM-3U.
      -    * tools/cfgparser.c: There are some NxWidget configuration
      -      settings that must be de-quoted.
      -    * arch/arm/src/stm32/Kconfig: There is no SPI4.  Some platforms
      -      support SPI3 and some do not (still not clear).
      -    * nuttx/configs/shenzhou: Various fixes to build new NxWM
      -      configuration.
      -    * configs/shenzhou:  Oops.  The Shenzhou LCD is and SSD1289,
      -      not an ILI93xx.
      -    * configs/shenzhou/src/up_ssd1289.c: The LCD is basically functional
      -      on the Shenzhou board.
      -    * graphics/nxmu:  Correct some bad parameter checking that caused
      -      failures when DEBUG was enabled.
      -    * arch/arm/src/armv7-m/nvic.h:  Add bit definitions for the AIRCR
      -      register.
      -    * drivers/input/ads7843.c:  Need semaphore protection in logic
      -      that samples the position.
      -    * drivers/lcd/ssd1289.c:  On some platforms we are unable to
      -      read the device ID -- reason unknown; workaround in place.
      -    * drivers/input/ads7843.c:  Add thresholding options and an
      -      option to swap X and Y positions.  Fix some logic errors in
      -      the SPI locking/selecting logic.
      -    * arch/arm/src/armv7-m/up_systemreset.c:  Add logic to reset
      -      the Cortex-Mx using the AIRCR register.  Contributed by Darcy
      -      Gong.
      -    * arch/arm/src/stm32/up_eth.c:  Add logic specifically for the
      -      DM9161 PHY.  If the DM9161 failed to initialize, then use the
      -      up_sysemreset() logic to reset the MCU.  Contributed by Darcy
      -      Gong.
      -    * arch/arm/src/stm32/stm32_gpio.c:  Add missing logic to set bit
      -      for SPI3 remap.  This fixes the XPT2046 touchscreen driver using
      -      drivers/input/ads7843.c
      -    * configs/shenzhou/src/up_ssd1289.c:  Fix naming error in
      -      conditional compilation.
      -    * configs/shenzhou/nxwm/defconfig:  Disable reading from the LCD.
      -      This does not work.  The hardware and the driver support the
      -      capability, but there is some bug that causes memory corruption.
      -      The work around for now:  Just disable reading from the LCD.
      -    * drivers/lcd/ssd1289.c:  Add some logic to reduce the amount of
      -      output when CONFIG_DEBUG_LCD is enabled.
      -    * configs/shenzhou/nxwm/defconfig:  Bug found and fixed... The
      -      original configuration had too much stuff turned on.  Reducing
      -      stack sizes, some features, and buffer sizes made the
      -      configuration reliable (Reading from the LCD is still disabled).
      -    * net/uip/uip_icmpping.c:  Fix problem that prevented ping from
      -      going outside of local network.  Submitted by Darcy Gong
      +    * arch/arm/src/stm32/stm32_rng.c, chip/stm32_rng.h, and other files:
      +      Implementation of /dev/random using the STM32 Random Number
      +      Generator (RNG).
      +    * board.h file for shenzhou, fire-stm32v2, and olimex-stm32-p107:
      +      Add frequencies for HSE, HSI, LSE, and LSI.  These are needed
      +      by the STM32 watchdog driver.
      +    * CONFIG_EXAMPLES_*: To make things consistent, changed all occurrences
      +      of CONFIG_EXAMPLE_* to CONFIG_EXAMPLES_*.
      +    * drivers/mtd/w25.c and configs/*/src/up_w25.c:  Several fixes for the
      +      W25 SPI FLASH.
      +    * configs/*/Make.defs:  All buildroot tools now use the extension
      +      xxx-nuttx-elf- vs. xxx-elf-
      +    * configs/shenzhou/*/Make.defs:  Now uses the new buildroot 4.6.3
      +      EABI toolchain.
      +    * lib/stdio/lib_libdtoa.c:  Another dtoa() fix from Mike Smith.
      +    * configs/shenzhou/src/up_adc.c:  Add ADC support for the Shenzhou
      +      board (Darcy Gong).
      +    * configs/shenzhou/thttpd:  Add a THTTPD configuration for the
      +      Shenzhou board (Darcy Gong).
      +    * include/termios.h and lib/termios/libcf*speed.c: The non-standard,
      +      "hidden" c_speed cannot be type const or else static instantiations
      +      of termios will be required to initialize it (Mike Smith).
      +    * drivers/input/max11802.c/h, and include/nuttx/input max11802.h:  Adds
      +      support for the Maxim MAX11802 touchscreen controller (contributed by
      +      Petteri Aimonen).
      +    * graphics/nxtk/nxtk_events.c:  Missing implementatin of the blocked
      +      method.  This is a critical bugfix for graphics support (contributed
      +      by Petteri Aimonen).
      +    * drivers/usbdev/pl2303.c, drivers/usbdev/usbmsc.h, and
      +      include/nuttx/usb/cdcacm.h: USB_CONFIG_ATTR_SELFPOWER vs.
      +      USB_CONFIG_ATT_SELFPOWER (contributed by Petteri Aimonen).
      +    * arch/arm/src/armv7-m/up_memcpy.S:  An optimized memcpy() function for
      +      the ARMv7-M family contributed by Mike Smith.
      +    * lib/strings/lib_vikmemcpy.c:  As an option, the larger but faster
      +      implemementation of memcpy from Daniel Vik is now available (this is
      +      from http://www.danielvik.com/2010/02/fast-memcpy-in-c.html).
      +    * lib/strings/lib_memset.c: CONFIG_MEMSET_OPTSPEED will select a
      +      version of memset() optimized for speed.  By default, memset() is
      +      optimized for size.
      +    * lib/strings/lib_memset.c: CONFIG_MEMSET_64BIT will perform 64-bit
      +      aligned memset() operations.
      +    * arch/arm/src/stm32/stm32_adc.c:  Need to put the ADC back into the
      +      initial reset in the open/setup logic.  Opening the ADC driver works
      +      the first time, but not the second because the device is left in a
      +      powered down state on the last close.
      +    * configs/olimex-lpc1766stck/scripts:  Replace all of the identical
      +      ld.script files with the common one in this directory.
      +    * configs/stm3220g-eval/scripts:  Replace all of the identical
      +      ld.script files with the common one in this directory.
      +    * configs/hymini-stm32v/scripts:  Replace all of the identical
      +      ld.script files with the common one in this directory.
      +    * configs/lpcxpresso-lpc1768/scripts:  Replace all of the identical
      +      ld.script files with the common one in this directory.
      +    * binfmt/elf.c, binfmt/libelf, include/elf.h, include/nuttx/elf.h: Add
      +      basic framework for loadable ELF module support.  The initial check-
      +      in is non-functional and is simply the framework for ELF support.
      +    * include/nuttx/binfmt.h, nxflat.h, elf.h, and symtab.h:  Moved to
      +      include/nuttx/binfmt/.
      +    * arch/sim/src/up_elf.c and arch/x86/src/common/up_elf.c:  Add
      +      for ELF modules.
      +    * arch/arm/include/elf.h:  Added ARM ELF header file.
      +    * include/elf32.h:  Renamed elf.h to elf32.h.
      +    * configs/stm32f4discovery/ostest:  Converted to use the new
      +      Kconfig-based configuration system.
      +    * configs/stm32f4discovery/elf and configs/stm32f4discovery/scripts/gnu-elf.ld
      +      Add a configuration for testing the ARM ELF loader.
      +    * binfmt/libelf:  Can't use fstat(). NuttX does not yet support it.  Damn!
      +    * binfmt/libelf:  The basic ELF module execution appears fully functional.
      +    * configs/shenzhou/src/up_relays.c:  Add support for relays from the
      +      Shenzhou board.  Contributed by Darcy Gong.
      +    * lib/fixedmath: Moved the old lib/math to lib/fixedmath to make room for
      +      the math library from the Rhombus OS
      +    * lib/math: Now contains the math library from the Rhombus OS by Nick Johnson
      +      (submitted by Darcy Gong).
      +    * include/float.h:  Add a first cut at the float.h header file.  This
      +      really should be an architecture/toolchain-specific header file.  It
      +      is only used if CONFIG_ARCH_FLOAT_H is defined.
      +    * lib/math: Files now conform to coding standards.  Separated float,
      +      double, and long double versions of code into separate files so that
      +      they don't draw in so much un-necessary code when doing a dumb link.
      +    * binfmt/libelf:  The ELF loader is working correctly with C++ static
      +      constructors and destructors and all.
      +    * Documentation/NuttXBinfmt.html:  Add documentionof the binary loader.
      +    * configs/sim/ostest:  Converted to use the mconfig configuration tool.
      +    * configs/sim/cxxtest:  New test that will be used to verify the uClibc++
      +      port (eventually).
      +    * include/nuttx/fs/fs.h, lib/stdio/lib_libfread.c, lib_ferror.c,
      +      lib_feof.c, and lib_clearerr.c:  Add support for ferror(), feof(),
      +      and clearerror().  ferror() support is bogus at the moment (it
      +      is equivalent to !feof()); the others should be good.
      +    * configs/stm32f4discovery/include/board.h:  Correct timer 2-7
      +      base frequency (provided by Freddie Chopin).
      +    * include/nuttx/sched.h, sched/atexit.c, and sched/task_deletehook.c:
      +      If both atexit() and on_exit() are enabled, then implement atexit()
      +      as just a special caseof on_exit().  This assumes that the ABI can
      +      handle receipt of more call parameters than the receiving function
      +      expects.  That is usually the case if parameters are passed in
      +      registers.
      +    * libxx/libxx_cxa_atexit():  Implements __cxa_atexit()
      +    * configs/stm32f4discovery/cxxtest:  New test that will be used to
      +      verify the uClibc++ port (eventually).  The sim platform turned not
      +      to be a good platform for testing uClibc++.  The sim example will not
      +      run because the simulator will attempt to execute the static
      +      constructors before main() starts. BUT... NuttX is not initialized
      +      and this results in a crash.  On the STM324Discovery, I will have
      +      better control over when the static constructors run.
      +    * RGMP 4.0 updated from Qiany Yu.
      +    * configs/*/Make.defs and configs/*/ld.script:  Massive clean-up
      +      and standardization of linker scripts from Freddie Chopin.
      +    * net/netdev_ioctl.c:  Add interface state flags and ioctl calls
      +      to bring network interfaces up and down (from Darcy Gong).
      +    * config/stm32f4discovery: Enable C++ exceptions.  Now the entire
      +      apps/examples/cxxtest works -- meaning the the uClibc++ is
      +      complete and verified for the STM32 platform.
       
      -apps-6.22 2012-09-29 Gregory Nutt <gnutt@nuttx.org>
      +apps-6.23 2012-11-05 Gregory Nutt <gnutt@nuttx.org>
       
      -    * apps/netutils/thttpd/thttpd_cgi.c:  Missing NULL in argv[]
      -      list (contributed by Kate).
      -    * apps/nshlib/nsh_parse.c: CONFIG_NSH_DISABLE_WGET not CONFIG_NSH_DISABLE_GET
      -      in one location (found by Kate).
      -    * apps/examples/ostest/prioinherit.c:  Limit the number of test
      -      threads to no more than 3 of each priority.  Bad things happen
      -      when the existing logic tried to created several hundred test
      -      treads!
      -    * apps/nshlib/nsh.h:  Both CONFIG_LIBC_STRERROR and CONFIG_NSH_STRERROR
      -      must be defined to use strerror() with NSH.
      -    * apps/examples/*/*_main.c, system/i2c/i2c_main.c, and others:  Added
      -      configuration variable CONFIG_USER_ENTRYPOINT that may be used to change
      -      the default entry from user_start to some other symbol.  Contributed by
      -      Kate.
      -    * apps/netutils/webserver/httpd/c:  Fix a typo that as introduced in
      -      version r4402:  'lese' instead of 'else' (Noted by Max Holtzberg).
      -    * tools/mkfsdata.pl: The uIP web server CGI image making perl script was
      -      moved from apps/netutils/webserver/makefsdata to nuttx/tools/mkfsdata.pl
      -      (Part of a larger change submitted by Max Holtzberg).
      -    * apps/netutils/webserver, apps/examples/uip, and apps/include/netutils/httpd.h:
      -      The "canned" version of the uIP web servers content that was at 
      -      netutils/webserver/httpd_fsdata.c has been replaced with a dynamically
      -      built configuration located at apps/examples/uip (Contributed by
      -      Max Holtzberg).
      -    * apps/netutils/webserver:  Several inenhancements from Kate including the
      -      ability to elide scripting and SERVER headers and the ability to map
      -      files into memory before transferring them.
      -    * apps/netutils/webserver:  Add ability to map a URL to CGI function.
      -      Contributed by Kate.
      -    * apps/nshlib/nsh_mntcmds.c: The changes of 6.21 introduced holes in the
      -      error handling:  Now the number of arguments to mount can be 0 or 4.
      -      Additional parameter checking is required to prevent mysterious errors
      -      (submiteed by Kate).
      -    * apps/netutils/webserver/httpd_mmap.c:  Fix errors when the mmap()
      -      length is zero (submitted by Kate).
      -    * apps/netutils/webserver/httpd_sendfile.c:  Add and option,
      -      CONFIG_NETUTILS_HTTPD_SENDFILE to transfer files using the NuttX
      -      sendfile() interface.
      -    * apps/netutils/discover:  A UDP network discovery utility contributed
      -      by Max Holtzberg.
      -    * apps/examples/discover:  A test example for the UDP network discovery
      -      utility (also contribed by Max Holtzberg).
      -    * apps/examples/*/main.c:  Too many files called main.c.  Each renamed
      -      to something unique so that they will not collide in the archive.
      -    * apps/netutils/xmlrpc: The Embeddable Lightweight XML-RPC Server
      -      discussed at http://www.drdobbs.com/web-development/\
      -      an-embeddable-lightweight-xml-rpc-server/184405364.  Contributed by
      -      Max Holtzberg.
      -    * apps/netutils/uip_listenon.c:  Logic in uip_server.c that creates
      -      the listening socket was moved to this new file to support re-use.
      -      Contributed by Kate.
      -    * apps/netutils/webserver/httpd.c:  The option CONFIG_NETUTILS_HTTPD_SINGLECONNECT
      -      can now be used to limit the server to a single thread.  Option
      -      CONFIG_NETUTILS_HTTPD_TIMEOUT can be used to generate HTTP 408 errors.
      -      Both from Kate.
      -    * apps/netutils/webserver/httpd.c:  Improvements to HTTP parser from
      -      Kate.
      -    * apps/netutils/webserver/httpd.c:  Add support for Keep-alive connections
      -      (from Kate).
      -    * apps/NxWidget/Kconfig:  This is a kludge.  I created this NxWidgets
      -      directory that ONLY contains Kconfig.  NxWidgets does not live in
      -      either the nuttx/ or the apps/ source trees.  This kludge makes it
      -      possible to configure NxWidgets/NxWM without too much trouble (with
      -      the tradeoff being a kind ugly structure and some maintenance issues).
      -    * apps/examples/Make.defs: Missing support for apps/examples/watchdog.
      -    * apps/NxWidgets/Kconfig:  Add option to turn on the memory monitor
      -      feature of the NxWidgets/NxWM unit tests.
      +    * vsn: Moved all NSH commands from vsn/ to system/.  Deleted the vsn/
      +      directory.
      +    * Makefile:  Change order of includes when CONFIG_NEWCONFIG=y.  In
      +      that case, namedapp must be included first so that the namedapp
      +      context is established first.  If the namedapp context is established
      +      later, it will overwrite any existing namedapp_list.h and nameapp_proto.h
      +      files.
      +    * CONFIG_EXAMPLES_*: To make things consistent, changed all occurrences
      +      of CONFIG_EXAMPLE_* to CONFIG_EXAMPLES_*.
      +    * Kconfig:  Fleshed out apps/examples/adc/Kconfig and apps/examples/wget/Kconfig.
      +      There are still a LOT of empty, stub Kconfig files.
      +    * Kconfig:  Fleshed out apps/examples/buttons/Kconfig. There are still a LOT
      +      of empty, stub Kconfig files.
      +    * apps/netutils/webserver/httpd.c:  Fix a bug that I introduced in
      +      recent check-ins (Darcy Gong).
      +    * apps/netutils/webclient/webclient.c:  Fix another but that I introduced
      +      when I was trying to add correct handling for loss of connection (Darcy Gong)
      +    * apps/nshlib/nsh_telnetd.c:  Add support for login to Telnet session via
      +      username and password (Darcy Gong).
      +    * apps/netutils/resolv/resolv.c (and files using the DNS resolver): Various
      +      DNS address resolution improvements from Darcy Gong.
      +    * apps/nshlib/nsh_netcmds.c:  The ping command now passes a maximum round
      +      trip time to uip_icmpping().  This allows pinging of hosts on complex
      +      networks where the ICMP ECHO round trip time may exceed the ping interval.
      +    * apps/examples/nxtext/nxtext_main.c:  Fix bad conditional compilation
      +      when CONFIG_NX_KBD is not defined.  Submitted by Petteri Aimonen.
      +    * apps/examples/nximage/nximage_main.c:  Add a 5 second delay after the
      +      NX logo is presented so that there is time for the image to be verified.
      +      Suggested by Petteri Aimonen.
      +    * apps/Makefile: Small change that reduces the number of shell invocations
      +      by one (Mike Smith).
      +    * apps/examples/elf:  Test example for the ELF loader.
      +    * apps/examples/elf:  The ELF module test example appears fully functional.
      +    * apps/netutils/json:  Add a snapshot of the cJSON project.  Contributed by
      +      Darcy Gong.
      +    * apps/examples/json:  Test example for cJSON from Darcy Gong
      +    * apps/nshlib/nsh_netinit.c: Fix static IP DNS problem (Darcy Gong)
      +    * apps/netutils/resolv/resolv.c: DNS fixes from Darcy Gong.
      +    * COPYING: Licensing information added.
      +    * apps/netutils/codec and include/netutils/urldecode.h, base64.h, and md5.h:
      +      A port of the BASE46, MD5 and URL CODEC library from Darcy Gong.
      +    * nsnlib/nsh_codeccmd.c:  NSH commands to use the CODEC library.
      +      Contributed by Darcy Gong.
      +    * apps/examples/wgetjson: Test example contributed by Darcy Gong
      +    * apps/examples/cxxtest:  A test for the uClibc++ library provided by
      +      Qiang Yu and the RGMP team.
      +    * apps/netutils/webclient, apps/netutils.codes, and apps/examples/wgetjson:
      +      Add support for wget POST interface.  Contributed by Darcy Gong.
      +    * apps/examples/relays:  A relay example contributed by Darcy Gong.
      +    * apps/nshlib/nsh_netcmds: Add ifup and ifdown commands (from Darcy
      +      Gong).
      +    * apps/nshlib/nsh_netcmds: Extend the ifconfig command so that it
      +      supports setting IP addresses, network masks, name server addresses,
      +      and hardware address (from Darcy Gong).
       
       NxWidgets-1.3 2012-09-29 Gregory Nutt <gnutt@nuttx.org>
       
      @@ -3597,36 +3368,44 @@ NxWidgets-1.3 2012-09-29 Gregory Nutt <gnutt@nuttx.org>
           * Kconfig:  Add option to turn on the memory monitor feature of the
             NxWidgets/NxWM unit tests.
       
      +uClibc++-1.0 2011-11-05 <gnutt@nuttx.org>
      +
      +    * The initial release of the uClibc++ implementation of the standard
      +      C++ library for NuttX.  This package was contributed ay Qiang Yu and
      +      David for the RGMP team.
      +
      +buildroot-1.11 2011-11-05 <gnutt@nuttx.org>
      +
      +    * configs/avr-defconfig-4.3.3 - Added --enable-long-long as a GCC
      +      option.
      +    * configs/avr-defconfig-4.5.2 - New configuration.
      +    * Config.in and almost all configurations in configs/ - Changed the
      +      default nuttx path to $(TOPDIR)/../../nuttx
      +    * Misc files.  Patch provided by Gerd v. Egidy that solves the following
      +      problems
      +      - binutils 2.21 is not available on the gnu servers anymore, they replaced
      +        it with 2.21.1
      +      - there is some assembler error when compiling gcc for arm, gcc bugzilla
      +        43999
      +      - you can't build nuttx for cortex m3/m4 because of a missing instruction
      +        in the assembler, binutils bugzilla 12296
      +    * Add support for binutils 2.22 and GCC 4.6.3.
      +    * Change name of all tools from xxx-elf to xxx-nuttx-elf
      +    * Added an ARM EABI GCC 4.6.3 configuration (tool name is arm-nuttx-eabi-).
      +    * ldnxflat: Add support for the R_ARM_REL32 relocation.  This relocation
      +      type was not generated by GCC/LD prior to gcc-4.6.3
      +    * R_ARM_REL32 logic is conditionally disabled because it has not been
      +      tested.
      +    * ldnxflat: Correct a memory allocation error that could cause written
      +      past the end of allocated memory.  Partial restoration of R_ARM_REL32
      +      logic.  There are lots of issues that I still do not understand here.
      +
       pascal-3.0 2011-05-15 Gregory Nutt <gnutt@nuttx.org>
       
           * nuttx/:  The Pascal add-on module now installs and builds under the
             apps/interpreters directory.  This means that the pascal-2.1 module is
             incompatible with will all releases of NuttX prior to nuttx-6.0 where the 
             apps/ module was introduced.
      -
      -buildroot-1.10 2011-05-06 <gnutt@nuttx.org>
      -
      -    * Add patch submitted by Dimiter Georgiev to work around problems in building
      -      GDB 6.8 with versions of Cygwin > 1.7.
      -    * configs/i486-defconfig-4.3.3 - Builds an i486 cross development toolchain
      -      using gcc 4.3.3.  Why wouldyou want such a thing?  On Linux, of course,
      -      such a thing is not needed because you can use the installed GCC to build
      -      i486 ELF binaries.  But that will not work under Cygwin!  The Cygwin
      -      toolchain (and probably MinGW), build DOS MZ format executables (i.e.,
      -      .exe files).  That is probably not usable for most NuttX targets.
      -      Instead, you should use this i486-nuttx-elf-gcc to generate true ELF binaries
      -      under Cygwin.
      -    * Makefile - Alter copy arguments to avoid permissions problems when
      -      copying NuttX header files.
      -    * toolchain/nxflat/nxflat.mk and Makefile - Fix include paths.
      -    * toolchain/gcc/3.3.6 - Added a patch to fixed compilation error on Ubuntu
      -      9.10.
      -    * toolchain/nxflat/Makefile - Correct static library link order.
      -    * configs/arm920t-defconfig-4.3.3 - Enable support for NXFLAT tools.
      -    * toolchain/binutils/2.21 and toolchain/gcc/4.5.2 - Add support for GCC
      -      4.5.2 with binutils 2.21.
      -    * configs/arm920t-eabi-defconfig-4.5.2 - Add a configuration to build a
      -      GCC 4.5.2 EABI ARM toolchain for the ARM920t.
       
    From 233f7f69ac2efb1a528185d12820ba092ede39c2 Mon Sep 17 00:00:00 2001 From: patacongo Date: Mon, 5 Nov 2012 20:02:56 +0000 Subject: [PATCH 1062/1518] Make ostest RR scheduler test use less memory from Freddie Chopin; Plus build fix from Darcy Gong git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5314 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index af81335349..dd7b83cfc8 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -560,7 +560,7 @@ From 09bdd3496323e1332f178f2ae8293dfecba41631 Mon Sep 17 00:00:00 2001 From: patacongo Date: Tue, 6 Nov 2012 13:36:51 +0000 Subject: [PATCH 1063/1518] STM32 F100 High Density support and generic board configuration from Freddie Chopin git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5315 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/README.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/README.html b/Documentation/README.html index 5fef40fc16..7c82c3f157 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -184,6 +184,8 @@ | | | `- README.txt | | |- stm3240g-eval/ | | | `- README.txt + | | |- stm32f100rc_generic/ + | | | `- README.txt | | |- stm32f4discovery/ | | | `- README.txt | | |- sure-pic32mx/ From 5446f8faed53336cc2658e7c1cb22478a528d3fb Mon Sep 17 00:00:00 2001 From: patacongo Date: Fri, 9 Nov 2012 14:54:29 +0000 Subject: [PATCH 1064/1518] Several patches from Petteri Aimonen (mostly NxWidgets) git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5324 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttShell.html | 164 +++++++++++++++++++++-------------- Documentation/README.html | 72 ++++++++------- 2 files changed, 140 insertions(+), 96 deletions(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index 31546a100c..1b14f96f61 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -8,7 +8,7 @@

    -

  • Add-on uClibc++ module provides Standard C++ Library(LGPL).
  • +
  • Add-on uClibc++ module provides Standard C++ Library (LGPL).
  • NuttShell (NSH)

    -

    Last Updated: November 4, 2012

    +

    Last Updated: November 9, 2012

    @@ -173,187 +173,193 @@
    - 2.16 Manage Network Configuration (ifconfig) + 2.16 Hexadecimal Dump of File or Device (hexdump)
    - 2.17 Take a network down (ifdown) + 2.17 Manage Network Configuration (ifconfig)
    - 2.18 Bring a network up (ifup) + 2.18 Take a network down (ifdown)
    - 2.19 Send a signal to a task (kill) + 2.19 Bring a network up (ifup)
    - 2.20 Setup/teardown the Loop Device (losetup) + 2.20 Send a signal to a task (kill)
    - 2.21 List Directory Contents (ls) + 2.21 Setup/teardown the Loop Device (losetup)
    - 2.22 Calculate MD5 (md5) + 2.22 List Directory Contents (ls)
    - 2.23 Access Memory (mb, mh, and mw) + 2.23 Calculate MD5 (md5)
    - 2.24 Show Current Tasks and Threads (ps) + 2.24 Access Memory (mb, mh, and mw)
    - 2.25 Create a Directory (mkdir) + 2.25 Show Current Tasks and Threads (ps)
    - 2.26 Create a FAT Filesystem (mkfatfs) + 2.26 Create a Directory (mkdir)
    - 2.27 Create a FIFO (mkfifo) + 2.27 Create a FAT Filesystem (mkfatfs)
    - 2.28 Create a RAMDISK (mkrd) + 2.28 Create a FIFO (mkfifo)
    - 2.29 Mount a File System (mount) + 2.29 Create a RAMDISK (mkrd)
    - 2.30 Rename a File (mv) + 2.30 Mount a File System (mount)
    - 2.31 Mount an NFS file system (nfsmount) + 2.31 Rename a File (mv)
    - 2.32 Check Network Peer (ping) + 2.32 Mount an NFS file system (nfsmount)
    - 2.33 Send File Via TFTP (put) + 2.33 Check Network Peer (ping)
    - 2.34 Show Current Working Directory (pwd) + 2.34 Send File Via TFTP (put)
    - 2.35 Remove a File (rm) + 2.35 Show Current Working Directory (pwd)
    - 2.36 Remove a Directory (rmdir) + 2.36 Remove a File (rm)
    - 2.37 Set an Environment Variable (set) + 2.37 Remove a Directory (rmdir)
    - 2.38 Execute an NSH Script (sh) + 2.38 Set an Environment Variable (set)
    - 2.39 Wait for Seconds (sleep) + 2.39 Execute an NSH Script (sh)
    - 2.40 Unmount a File System (umount) + 2.40 Wait for Seconds (sleep)
    - 2.41 Unset an Environment Variable (unset) + 2.41 Unmount a File System (umount)
    - 2.42 URL Decode (urldecode) + 2.42 Unset an Environment Variable (unset)
    - 2.43 URL Encode (urlencode) + 2.43 URL Decode (urldecode)
    - 2.44 Wait for Microseconds (usleep) + 2.44 URL Encode (urlencode)
    - 2.45 Get File Via HTTP (wget) + 2.45 Wait for Microseconds (usleep)
    - 2.46 Hexadecimal Dump (xd) + 2.46 Get File Via HTTP (wget) + + + +
    + + 2.47 Hexadecimal Dump of Memory (xd) @@ -1182,7 +1188,31 @@ help [-v] [<cmd>] + +
    -

    2.16 Manage Network Configuration (ifconfig)

    +

    2.16 Hexadecimal Dump of File or Device (hexdump)

    +
    + +

    Command Syntax:

    +
      +hexdump <file or device>
      +
    +

    + Synopsis. + Dump data in hexadecimal format from a file or character device. +

    + + +
    + + + + + + + +
    +

    2.17 Manage Network Configuration (ifconfig)

    @@ -1236,7 +1266,7 @@ ifconfig nic_name ip_address
    -

    2.17 Take a network down (ifdown)

    +

    2.18 Take a network down (ifdown)

    @@ -1259,7 +1289,7 @@ ifdown eth0
    -

    2.18 Bring a network up (ifup)

    +

    2.19 Bring a network up (ifup)

    @@ -1282,7 +1312,7 @@ ifup eth0
    -

    2.19 Send a signal to a task (kill)

    +

    2.20 Send a signal to a task (kill)

    @@ -1323,7 +1353,7 @@ nsh>
    -

    2.20 Setup/teardown the Loop Device (losetup)

    +

    2.21 Setup/teardown the Loop Device (losetup)

    @@ -1376,7 +1406,7 @@ losetup d <dev-path>
    -

    2.21 List Directory Contents (ls)

    +

    2.22 List Directory Contents (ls)

    @@ -1413,7 +1443,7 @@ ls [-lRs] <dir-path>
    -

    2.22 Calculate MD5 (md5)

    +

    2.23 Calculate MD5 (md5)

    @@ -1430,7 +1460,7 @@ md5 [-f] <string or filepath>
    -

    2.23 Access Memory (mb, mh, and mw)

    +

    2.24 Access Memory (mb, mh, and mw)

    @@ -1484,7 +1514,7 @@ nsh>
    -

    2.24 Show Current Tasks and Threads (ps)

    +

    2.25 Show Current Tasks and Threads (ps)

    @@ -1510,7 +1540,7 @@ nsh>
    -

    2.25 Create a Directory (mkdir)

    +

    2.26 Create a Directory (mkdir)

    @@ -1545,7 +1575,7 @@ nsh>
    -

    2.26 Create a FAT Filesystem (mkfatfs)

    +

    2.27 Create a FAT Filesystem (mkfatfs)

    @@ -1565,7 +1595,7 @@ mkfatfs <path>
    -

    2.27 Create a FIFO (mkfifo)

    +

    2.28 Create a FIFO (mkfifo)

    @@ -1603,7 +1633,7 @@ nsh>
    -

    2.28 Create a RAMDISK (mkrd)

    +

    2.29 Create a RAMDISK (mkrd)

    @@ -1654,7 +1684,7 @@ nsh>
    -

    2.29 Mount a File System (mount)

    +

    2.30 Mount a File System (mount)

    @@ -1733,7 +1763,7 @@ nsh> mount
    -

    2.30 Rename a File (mv)

    +

    2.31 Rename a File (mv)

    @@ -1751,7 +1781,7 @@ mv <old-path> <new-path>
    -

    2.31 Mount an NFS file system (nfsmount)

    +

    2.32 Mount an NFS file system (nfsmount)

    @@ -1770,7 +1800,7 @@ nfsmount <server-address> <mount-point> <remote-path>
    -

    2.32 Check Network Peer (ping)

    +

    2.33 Check Network Peer (ping)

    @@ -1803,7 +1833,7 @@ nsh>
    -

    2.33 Send File Via TFTP (put)

    +

    2.34 Send File Via TFTP (put)

    @@ -1838,7 +1868,7 @@ put [-b|-n] [-f <remote-path>] -h <ip-address> <local-path>
    -

    2.34 Show Current Working Directory (pwd)

    +

    2.35 Show Current Working Directory (pwd)

    @@ -1868,7 +1898,7 @@ nsh>
    -

    2.35 Remove a File (rm)

    +

    2.36 Remove a File (rm)

    @@ -1902,7 +1932,7 @@ nsh>
    -

    2.36 Remove a Directory (rmdir)

    +

    2.37 Remove a Directory (rmdir)

    @@ -1937,7 +1967,7 @@ nsh>
    -

    2.37 Set an Environment Variable (set)

    +

    2.38 Set an Environment Variable (set)

    @@ -1963,7 +1993,7 @@ nsh>
    -

    2.38 Execute an NSH Script (sh)

    +

    2.39 Execute an NSH Script (sh)

    @@ -1981,7 +2011,7 @@ sh <script-path>
    -

    2.39 Wait for Seconds (sleep)

    +

    2.40 Wait for Seconds (sleep)

    @@ -1998,7 +2028,7 @@ sleep <sec>
    -

    2.40 Unmount a File System (umount)

    +

    2.41 Unmount a File System (umount)

    @@ -2028,7 +2058,7 @@ nsh>
    -

    2.41 Unset an Environment Variable (unset)

    +

    2.42 Unset an Environment Variable (unset)

    @@ -2054,7 +2084,7 @@ nsh>
    -

    2.42 URL Decode (urldecode)

    +

    2.43 URL Decode (urldecode)

    @@ -2071,7 +2101,7 @@ urldecode [-f] <string or filepath>
    -

    2.43 URL Encode (urlencode)

    +

    2.44 URL Encode (urlencode)

    @@ -2088,7 +2118,7 @@ urlencode [-f] <string or filepath>
    -

    2.44 Wait for Microseconds (usleep)

    +

    2.45 Wait for Microseconds (usleep)

    @@ -2105,7 +2135,7 @@ usleep <usec>
    - 2.45 Get File Via HTTP (wget) + 2.46 Get File Via HTTP (wget)
    @@ -2132,7 +2162,7 @@ wget [-o <local-path>] <url>
    -

    2.46 Hexadecimal dump (xd)

    +

    2.47 Hexadecimal Dump of Memory (xd)

    @@ -2271,6 +2301,11 @@ nsh>
    CONFIG_NSH_DISABLE_HELP + + hexdump + CONFIG_NFILE_DESCRIPTORS > 0 + CONFIG_NSH_DISABLE_HEXDUMP + ifconfig CONFIG_NET @@ -3795,14 +3830,15 @@ mount -t vfat /dev/ram1 /tmp
  • exec
  • exec_namedapp()
  • exit
  • +
  • free
  • -
  • free
  • g_cmdmap
  • genromfs
  • get
  • Greeting
  • help
  • +
  • hexdump
  • if-then[-else]-fi
  • ifconfig
  • ifdown
  • diff --git a/Documentation/README.html b/Documentation/README.html index 7c82c3f157..61d5c43af1 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -246,38 +246,46 @@ | | `- README.txt | `- tools/ | `- README.txt - `- apps/ - |- README.txt - |- examples/ - | |- json/README.txt - | |- pashello/README.txt - | `- README.txt - |- graphics/ - | `- "tiff/README.txt - |- interpreters/ - | |- ficl/README.txt - | `- README.txt - |- modbus/ - | `- README.txt - |- netutils/ - | | |- discover/README.txt - | | |- ftpc/README.txt - | | |- json/README.txt - | | |- telnetd/README.txt - | `- README.txt - |- nshlib/ - | `- README.txt - |- NxWidgets/ - | `- README.txt - `- system/ - |- i2c/README.txt - |- free/README.txt - |- install/README.txt - |- poweroff/README.txt - |- ramtron/README.txt - |- sdcard/README.txt - |- sysinfo/README.txt - `- README.txt + |- apps/ + | |- README.txt + | |- examples/ + | | |- json/README.txt + | | |- pashello/README.txt + | | `- README.txt + | |- graphics/ + | | `- "tiff/README.txt + | |- interpreters/ + | | |- ficl/README.txt + | | `- README.txt + | |- modbus/ + | | `- README.txt + | |- netutils/ + | | | |- discover/README.txt + | | | |- ftpc/README.txt + | | | |- json/README.txt + | | | |- telnetd/README.txt + | | `- README.txt + | |- nshlib/ + | | `- README.txt + | |- NxWidgets/ + | | `- README.txt + | `- system/ + | |- i2c/README.txt + | |- free/README.txt + | |- install/README.txt + | |- poweroff/README.txt + | |- ramtron/README.txt + | |- sdcard/README.txt + | |- sysinfo/README.txt + | `- README.txt + `- NxWidgets + |- Doxygen + | `- README.txt + |- tools + | `- README.txt + |- UnitTests + | `- README.txt + `- README.txt From aac006ebda8ca71add2c05b07256f1ae2318589e Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 10 Nov 2012 15:47:45 +0000 Subject: [PATCH 1065/1518] move lib/ to libc/ to make room for a true lib/ directory. Rename libraries to match git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5328 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttXNxFlat.html | 4 ++-- Documentation/NuttxPortingGuide.html | 14 +++++++------- Documentation/README.html | 4 ++-- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Documentation/NuttXNxFlat.html b/Documentation/NuttXNxFlat.html index 2e6d2f59a8..3a2ed80460 100644 --- a/Documentation/NuttXNxFlat.html +++ b/Documentation/NuttXNxFlat.html @@ -407,7 +407,7 @@ any following arguments. nuttx/syscall/syscall.csv that describes the NuttX RTOS interface, and
  • - nuttx/lib/lib/csv that describes the NuttX C library interface. + nuttx/libc/lib.csv that describes the NuttX C library interface.
    • @@ -424,7 +424,7 @@ Where:
       

         cd nuttx/tools
        -cat ../syscall/syscall.csv ../lib/lib.csv | sort >tmp.csv
        +cat ../syscall/syscall.csv ../libc/lib.csv | sort >tmp.csv
         ./mksymtab.exe tmp.csv tmp.c
         
      diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index a2c58b41f8..e602d2cd37 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -52,7 +52,7 @@ 2.6 nuttx/fs/
      2.7 nuttx/graphics/
      2.8 nuttx/include/
      - 2.9 nuttx/lib/
      + 2.9 nuttx/libc/
      2.10 nuttx/libxx/
      2.11 nuttx/mm/
      2.12 nuttx/net
      @@ -230,9 +230,9 @@ | | | `-- (more standard header files) | | |-- (non-standard include sub-directories) | | `-- (non-standard header files) -| |-- lib/ +| |-- libc/ | | |-- Makefile -| | `-- (lib source files) +| | `-- (libc source files) | |-- libxx/ | | |-- Makefile | | `-- (libxx management source files) @@ -1160,15 +1160,15 @@ include/ `-- (More standard header files)
    -

    2.9 nuttx/lib

    +

    2.9 nuttx/libc

    This directory holds a collection of standard libc-like functions with custom interfaces into NuttX.

    - Normally the logic in this file builds to a single library (liblib.a). + Normally the logic in this file builds to a single library (libc.a). However, if NuttX is built as a separately compiled kernel (with CONFIG_NUTTX_KERNEL=y), then the contents of this directory are built as two libraries: - One for use by user programs (libulib.a) and one for use only within the <kernel> space (libklib.a). + One for use by user programs (libuc.a) and one for use only within the <kernel> space (libkc.a).

    These user/kernel space libraries (along with the sycalls of nuttx/syscall) are needed to support the two differing protection domains. @@ -1177,7 +1177,7 @@ include/ Directory structure:

      -lib/
      +libc/
       |-- libgen/
       |   `-- (Implementation of functions from libgen.h)
       |-- math/
      diff --git a/Documentation/README.html b/Documentation/README.html
      index 61d5c43af1..0a4cc93b0c 100644
      --- a/Documentation/README.html
      +++ b/Documentation/README.html
      @@ -236,8 +236,8 @@
        |   |       `- README.txt
        |   |- graphics/
        |   |   `- README.txt
      - |   |- lib/
      - |   |   `- README.txt
      + |   |- libc/
      + |   |   `- README.txt
        |   |- libxx/
        |   |   `- README.txt
        |   |- mm/
      
      From e20618369e0a818f2f0bb05423766c0203f017e0 Mon Sep 17 00:00:00 2001
      From: patacongo 
      Date: Sun, 11 Nov 2012 00:57:22 +0000
      Subject: [PATCH 1066/1518] Generated libraries are now installed in a new lib/
       directory
      
      git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5332 42af7a65-404d-4744-a932-0658087f49c3
      ---
       Documentation/README.html | 2 ++
       1 file changed, 2 insertions(+)
      
      diff --git a/Documentation/README.html b/Documentation/README.html
      index 0a4cc93b0c..771c605c7e 100644
      --- a/Documentation/README.html
      +++ b/Documentation/README.html
      @@ -236,6 +236,8 @@
        |   |       `- README.txt
        |   |- graphics/
        |   |   `- README.txt
      + |   |- lib/
      + |   |   `- README.txt
        |   |- libc/
        |   |   `- README.txt
        |   |- libxx/
      
      From 5abdb929b28c4b66223a64f01d5031ac2a605bd0 Mon Sep 17 00:00:00 2001
      From: patacongo 
      Date: Tue, 13 Nov 2012 00:38:59 +0000
      Subject: [PATCH 1067/1518] Add tools/mkdeps.bat and tools/mkdeps.c
      
      git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5342 42af7a65-404d-4744-a932-0658087f49c3
      ---
       Documentation/NuttX.html | 2 --
       1 file changed, 2 deletions(-)
      
      diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html
      index dd7b83cfc8..154e5aa2b8 100644
      --- a/Documentation/NuttX.html
      +++ b/Documentation/NuttX.html
      @@ -2971,8 +2971,6 @@ avr, m68k, m68hc11, m68hc12, m9s12, blackfin, m32c, h8, and SuperH ports.
               NOTE: dependencies are suppress by setting the make variable MKDEPS to point
               to the do-nothing dependency script, tools/mknulldeps.sh.
      -        Dependencies can be enabled for the Windows native GCC compilers by setting
      -        MKDEPS to point to $(TOPDIR)/tools/mkdeps.sh --winpaths $(TOPDIR).
             

    From f0614cb6b68a6762d691fdfc64af97a6d6a58fbf Mon Sep 17 00:00:00 2001 From: patacongo Date: Thu, 15 Nov 2012 17:43:29 +0000 Subject: [PATCH 1068/1518] Move some (hopefully) un-necessary quotes in Makefiles for Mike git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5356 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index e602d2cd37..50cc0ace56 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -701,17 +701,30 @@ makefiles in the build (once it is installed). This make fragment should define:

      -
    • Tools: CC, LD, AR, NM, OBJCOPY, OBJDUMP
    • -
    • Tool options: CFLAGS, LDFLAGS
    • -
    • COMPILE, ASSEMBLE, ARCHIVE, CLEAN, and MKDEP macros
    • +
    • Tools: CC, LD, AR, NM, OBJCOPY, OBJDUMP
    • +
    • Tool options: CFLAGS, LDFLAGS

    - When this makefile fragment runs, it will be passed TOPDIR which + When this makefile fragment runs, it will be passed TOPDIR which is the path to the root directory of the build. This makefile - fragment may include ${TOPDIR}/.config to perform configuration - specific settings. For example, the CFLAGS will most likely be - different if CONFIG_DEBUG=y. + fragment should include:

    +
      +
    • $(TOPDIR)/.config : Nuttx configuration
    • +
    • $(TOPDIR)/tools/Config.mk : Common definitions
    • +
    +

    + Definitions in the Make.defs file probably depend on some of the + settings in the .config file. For example, the CFLAGS will most likely be + different if CONFIG_DEBUG=y. +

    +

    + The included tools/Config.mk file contains additional definitions that may + be overriden in the architecture-specific Make.defs file as necessary: +

    +
      +
    • COMPILE, ASSEMBLE, ARCHIVE, CLEAN, and MKDEP macros
    • +
  • From 6894a8c057947266536bbcdbcfc1ca63cbdea5a2 Mon Sep 17 00:00:00 2001 From: patacongo Date: Wed, 21 Nov 2012 00:39:30 +0000 Subject: [PATCH 1069/1518] Implement pause() git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5376 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxUserGuide.html | 40 +++++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 586b744c71..5326f22805 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -13,7 +13,7 @@

    NuttX Operating System

    User's Manual

    by

    Gregory Nutt

    -

    Last Updated: August 1, 2012

    +

    Last Updated: November 20, 2012

    @@ -3419,6 +3419,7 @@ interface of the same name.
  • 2.8.11 sigtimedwait
  • 2.8.12 sigqueue
  • 2.8.13 kill
  • +
  • 2.8.14 pause
  • 2.8.1 sigemptyset

    @@ -3946,7 +3947,7 @@ be sent. Function Prototype:
        #include <sys/types.h>
    -   #include <signal.h>
    +   #include <signal.h>
        int kill(pid_t pid, int sig);
     
    @@ -3996,6 +3997,39 @@ be sent.
  • Sending of signals to 'process groups' is not supported in NuttX.
  • +

    2.8.14 pause

    + +

    +Function Prototype: +

    +   #include <unistd.h>
    +   int pause(void);
    +
    + +

    +Description: + The pause() function will suspend the calling thread until delivery of a non-blocked signal. +

    +Input Parameters: +
      +
    • None +
    + +

    + Returned Value: + Since pause() suspends thread execution indefinitely unless interrupted a signal, there is no successful completion return value. + A value of -1 (ERROR will always be returned and errno set to indicate the error (EINTR). +

    + +

    + Assumptions/Limitations: +

    +

    + POSIX Compatibility: + In the POSIX description of this function is the pause() function will suspend the calling thread until delivery of a signal whose action is either to execute a signal-catching function or to terminate the process. + This implementation only waits for any non-blocked signal to be recieved. +

    + diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 50cc0ace56..c3f6286df8 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -1264,6 +1264,7 @@ tools/ |-- configure.sh |-- cfgparser.c |-- cfgparser.h +|-- copydir.sh |-- define.sh |-- incdir.sh |-- indent.sh @@ -1278,7 +1279,6 @@ tools/ |-- mkversion.c |-- unlink.sh |-- version.sh -|-- winlink.sh `-- zipme.sh From 13acc5c39a090dee6febf5e5e648c25e4c1082a4 Mon Sep 17 00:00:00 2001 From: patacongo Date: Mon, 10 Dec 2012 18:40:01 +0000 Subject: [PATCH 1073/1518] Add source files for z180 git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5426 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/README.html | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Documentation/README.html b/Documentation/README.html index 771c605c7e..ef18031431 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -46,8 +46,10 @@ | | | `- src/ | | | `-README.txt | | |- z80/ - | | | `- src/ - | | | `- z80/README.txt + | | | |- src/z80 + | | | | `- README.txt + | | | `- src/z180 + | | | `- README.txt | | `- README.txt | |- configs/ | | |- amber/ From 5e3ca97297e55f5388536d4562c044adbe819f25 Mon Sep 17 00:00:00 2001 From: patacongo Date: Tue, 11 Dec 2012 18:04:04 +0000 Subject: [PATCH 1074/1518] Add support for the Z180 MMU and generic hooks for processes git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5428 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 5 ++++- Documentation/README.html | 5 +++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index c3f6286df8..0ed46cba16 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

    NuttX RTOS Porting Guide

    -

    Last Updated: October 30, 2012

    +

    Last Updated: December 11, 2012

    @@ -6711,6 +6745,7 @@ pid_t getpid(void); void _exit(int status) noreturn_function; unsigned int sleep(unsigned int seconds); void usleep(unsigned long usec); +int pause(void); int close(int fd); int dup(int fd); @@ -8187,6 +8222,7 @@ notify a task when a message is available on a queue.
  • OS Interfaces
  • +
  • pause
  • pipe
  • poll
  • poll.h
  • From 7daa1127f601345df353a34e1556202173d0fcc8 Mon Sep 17 00:00:00 2001 From: patacongo Date: Wed, 21 Nov 2012 17:44:14 +0000 Subject: [PATCH 1070/1518] Update for ez80 Windows native build (still does not work) git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5377 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxUserGuide.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 5326f22805..d9dddf9be6 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -4027,7 +4027,7 @@ be sent.

    POSIX Compatibility: In the POSIX description of this function is the pause() function will suspend the calling thread until delivery of a signal whose action is either to execute a signal-catching function or to terminate the process. - This implementation only waits for any non-blocked signal to be recieved. + This implementation only waits for any non-blocked signal to be received.

    From c9331b5ee52e8d346a5680697299fde93e100bb7 Mon Sep 17 00:00:00 2001 From: patacongo Date: Tue, 27 Nov 2012 16:26:54 +0000 Subject: [PATCH 1071/1518] Add chip ID funcitions for Shenzhou and Cloudctrl boards; Extened NSH ifconfig command and improve DHCPC -- All from Darcy Gong git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5393 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttShell.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index 1b14f96f61..0b5f7aa11b 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -8,7 +8,7 @@

    NuttShell (NSH)

    -

    Last Updated: November 9, 2012

    +

    Last Updated: November 27, 2012

    @@ -1219,7 +1219,7 @@ hexdump <file or device>

    Command Syntax:

      -ifconfig [nic_name [ip]] [dr|gw|gateway <dr-address>] [netmask <net-mask>] [dns <dns-address>] [hw <hw-mac>]]
      +ifconfig [nic_name [<ip-address>|dhcp]] [dr|gw|gateway <dr-address>] [netmask <net-mask>] [dns <dns-address>] [hw <hw-mac>]]
       

    Synopsis. From e58df6672aed339a488192b2a9a6a837ee4cbd08 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 8 Dec 2012 16:37:43 +0000 Subject: [PATCH 1072/1518] Add tools/link.bat, unlink.bat, and copydir.bat git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5419 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 ++-- Documentation/NuttxPortingGuide.html | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 154e5aa2b8..49f48d2d68 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -2957,7 +2957,7 @@ avr, m68k, m68hc11, m68hc12, m9s12, blackfin, m32c, h8, and SuperH ports.

    NOTE: In this environment, it should be possible to use the NTFS mklink command to create links. - This should only require a minor modification to the build scripts (see tools/winlink.sh script). + This should only require a minor modification to the build scripts (see tools/copydir.sh script).

  • Dependencies @@ -3057,7 +3057,7 @@ if [ -x "$WINELOADER" ]; then exec "$WINELOADER" "$appname" "$@"; fi NOTE: One of the members on the NuttX forum reported that they successful built NuttX using such a GNUWin32-based, Windows native environment. They reported that the only necessary change was to the use the NTFS mklink command to create links - (see tools/winlink.sh script). + (see tools/copydir.sh script).

  • @@ -3697,6 +3697,9 @@ void (*notify)(FAR struct pm_callback_s *cb, enum pm_state_e pmstate);
  • CONFIG_ARCH_IRQPRIO: Define if the architecture supports prioritization of interrupts and the up_prioritize_irq() API.
  • +
  • CONFIG_ADDRENV: + The CPU supports an MMU and CPU port supports provision of address + environments for tasks (making the, perhaps, processes).
  • diff --git a/Documentation/README.html b/Documentation/README.html index ef18031431..7dd23ac3dd 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -8,7 +8,7 @@

    NuttX README Files

    -

    Last Updated: October 27, 2012

    +

    Last Updated: December 11, 2012

    @@ -49,7 +49,8 @@ | | | |- src/z80 | | | | `- README.txt | | | `- src/z180 - | | | `- README.txt + | | | |- README.txt + | | | `- z180_mmu.txt | | `- README.txt | |- configs/ | | |- amber/ From 4880f372dcad599b62eb951dc4a98ec4d3455e45 Mon Sep 17 00:00:00 2001 From: patacongo Date: Tue, 11 Dec 2012 21:42:15 +0000 Subject: [PATCH 1075/1518] configs/p112: Add a configuration for the Z180 P112 board git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5429 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/README.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/README.html b/Documentation/README.html index 7dd23ac3dd..281b738b8d 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -150,6 +150,8 @@ | | | |- include/README.txt | | | |- src/README.txt | | | `- README.txt + | | |- p112/ + | | | `- README.txt | | |- pcblogic-pic32mx/ | | | `- README.txt | | |- pic32-starterkit/ From bd735e8e8a219045d4a8bfc4d447522fa764e037 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 15 Dec 2012 16:03:45 +0000 Subject: [PATCH 1076/1518] Documentation update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5439 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 143 +++++++++++++++++++++++++++++---------- 1 file changed, 108 insertions(+), 35 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 49f48d2d68..d8d393a7c7 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

    NuttX RTOS

    -

    Last Updated: November 5, 2012

    +

    Last Updated: December 15, 2012

    @@ -1234,12 +1234,13 @@ svn checkout -r5313 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code -
  • Zilog +
  • ZiLOG
  • @@ -2774,6 +2775,35 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1);
      + + + + Zilog Z180. + + + +
      + +

      + P112. + The P112 is a hobbyist single board computer based on a 16MHz Z80182 with up to 1MB of memory, serial, +parallel and diskette IO, and realtime clock, in a 3.5-inch drive form factor.. + The P112 computer originated as a commercial product of "D-X Designs Pty Ltd"[ of Australia. +

      +

      + Dave Brooks was successfully funded through Kickstarter for and another run of P112 boards in November of 2012. + In addition Terry Gulczynski makes additional P112 derivative hobbyist home brew computers. +

      +
        +

        + STATUS: + Most of the NuttX is in port for both the Z80182 and for the P112 board. + Boards from Kickstarter project will not be available, however, until the first quarter of 2013. + So it will be some time before this port is verified on hardware. +

        +
          + + @@ -2842,7 +2872,7 @@ avr, m68k, m68hc11, m68hc12, m9s12, blackfin, m32c, h8, and SuperH ports. - Linux + GNU make + GCC/binutils + Linux + GNU make + GCC/binutils for Linux @@ -2866,7 +2896,7 @@ avr, m68k, m68hc11, m68hc12, m9s12, blackfin, m32c, h8, and SuperH ports. - Linux + GNU make + SDCC + Linux + GNU make + SDCC for Linux @@ -2885,7 +2915,7 @@ avr, m68k, m68hc11, m68hc12, m9s12, blackfin, m32c, h8, and SuperH ports. - Cygwin + GNU make + GCC/binutils + Windows with Cygwin + GNU make + GCC/binutils (custom built under Cygwin) @@ -2893,10 +2923,8 @@ avr, m68k, m68hc11, m68hc12, m9s12, blackfin, m32c, h8, and SuperH ports.

          This combination works well too. - It works just as well as the native Linux environment except - that compilation and build times are a little longer. - The custom NuttX buildroot referenced above may be build in - the Cygwin environment as well. + It works just as well as the native Linux environment except that compilation and build times are a little longer. + The custom NuttX buildroot referenced above may be build in the Cygwin environment as well.

          @@ -2904,7 +2932,7 @@ avr, m68k, m68hc11, m68hc12, m9s12, blackfin, m32c, h8, and SuperH ports. - Cygwin + GNU make + SDCC + Windows with Cygwin + GNU make + SDCC (custom built under Cygwin) @@ -2919,7 +2947,7 @@ avr, m68k, m68hc11, m68hc12, m9s12, blackfin, m32c, h8, and SuperH ports. - Cygwin + GNU make + Windows Native Toolchain + Windows with Cygwin + GNU make + Windows Native Toolchain @@ -2975,15 +3003,65 @@ avr, m68k, m68hc11, m68hc12, m9s12, blackfin, m32c, h8, and SuperH ports.

          Supported Windows Native Toolchains. - At present, only the Zilog Z16F, z8Encore, and eZ80Acclaim ports use a non-GCC native Windows - toolchain(the Zilog ZDS-II toolchain). - Support for Windows native GCC toolchains (CodeSourcery and devkitARM) is currently implemented - for the NXP LPC214x, STMicro STR71x, and Luminary LMS6918 ARM ports. - (but could easily be extended to any other GCC-based platform with a small effort). + At present, the following Windows native toolchains are in use: +

            +
          1. GCC built for Windows (such as CodeSourcery, Atollic, devkitARM, etc.),
          2. +
          3. SDCC built for Windows,
          4. +
          5. the ZiLOG XDS-II toolchain for Z16F, z8Encore, and eZ80Acclaim parts.
          6. +

          + + + + Windows Native (CMD.exe) + GNUWin32 (including GNU make) + MinGW Host GCC compiler + Windows Native Toolchain + + +
          + +

          + Build support has been added to support building natively in a Windes CMD.exe rather than in a POSIX-like environment. +

          +

          + This build: +

          +
            +
          1. Uses all Windows style paths
          2. +
          3. Uses primarily Windows batch commands from cmd.exe, with
          4. +
          5. A few extensions from GNUWin32
          6. +
          +

          + This capability first appeared in NuttX-6.24 and should still be considered a work in progress because: (1) it has not been verfied on all targets and tools, and (2) still lacks some of the creature-comforts of the more mature environments. + The windows native build logic initiatiated if CONFIG_WINDOWS_NATIVE=y is defined in the NuttX configuration file: +

          +

          + At present, this build environment also requires: +

          +
            +
          • + CMD.exe Shell. + The build must be performed in a Windows CMD.execmd shell that comes with Windows. + I prefer the ConEmu command shell which can be downloaded from: + http://code.google.com/p/conemu-maximus5/ +
          • +
          • + GNUWin32. + The build still relies on some Unix-like commands. + I usethe GNUWin32 tools that can be downloaded from http://gnuwin32.sourceforge.net/. + See the top-level nuttx/README.txt file for some download, build, and installation notes. +
          • +
          • + MinGW-GCC. + MinGW-GCC is used to compiler the C tools in the nuttx/tools directory that are neede by the build. + MinGW-GCC can be downloaded from http://www.mingw.org/. + If you are using GNUWin32, then it is recommendedthe you not install the optional MSYS components as there may be conflicts. +
          • + + + @@ -3028,8 +3106,7 @@ if [ -x "$WINELOADER" ]; then exec "$WINELOADER" "$appname" "$@"; fi - Other Environments? - Windows Native make + Windows Native Toolchain? + Other Environments? @@ -3046,19 +3123,15 @@ if [ -x "$WINELOADER" ]; then exec "$WINELOADER" "$appname" "$@"; fi modification of the Make system would be required.

            - GNUWin32. - For example, with suitable make system changes, it should be possible to - use native GNU tools (such as those from - GNUWin32) - to build NuttX. - However, that environment has not been used as of this writing. -

            -

            - NOTE: One of the members on the NuttX forum - reported that they successful built NuttX using such a GNUWin32-based, Windows native environment. - They reported that the only necessary change was to the use the NTFS mklink command to create links - (see tools/copydir.sh script). -

            + MSYS. + I have not used MSYS but what I gather from talking with NuttX users is that MSYS can be used as an alternative to Cygwin in any of the above Cygwin environments. + This is not surprising since MSYS is based on an older version of Cygwin (cygwin-1.3). + MSYS has been modified, however, to interoperate in the Windows environment better than Cygwin and that may be of value to some users. +

            +

            + MSYS, however, cannot be used with the native Windows NuttX build because it will invoke the MSYS bash shell instead of the CMD.exe shell. + Use GNUWin32 in the native Windows build envionment. +

            From 66ff566f2f06ef9bf0a6b01fe28687ac6aa5ec5c Mon Sep 17 00:00:00 2001 From: patacongo Date: Mon, 17 Dec 2012 14:43:31 +0000 Subject: [PATCH 1077/1518] Integrate PATH traversal logic and binary format logic git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5441 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttXBinfmt.html | 139 +++++++++++++++++++++++++-- Documentation/NuttxPortingGuide.html | 8 +- 2 files changed, 137 insertions(+), 10 deletions(-) diff --git a/Documentation/NuttXBinfmt.html b/Documentation/NuttXBinfmt.html index 71c5b0a003..830a05caa3 100644 --- a/Documentation/NuttXBinfmt.html +++ b/Documentation/NuttXBinfmt.html @@ -8,7 +8,7 @@

            NuttX Binary Loader

            -

            Last Updated: October 30, 2012

            +

            Last Updated: December 17, 2012

            @@ -141,7 +141,7 @@ struct binary_s { /* Information provided to the loader to load and bind a module */ - FAR const char *filename; /* Full path to the binary to be loaded */ + FAR const char *filename; /* Full path to the binary to be loaded1 */ FAR const char **argv; /* Argument list */ FAR const struct symtab_s *exports; /* Table of exported symbols */ int nexports; /* The number of symbols in exports[] */ @@ -164,6 +164,14 @@ struct binary_s };
          +

            + 1The filename must be the full, absolute path to the file to be executed unless CONFIG_BINFMT_EXEPATH is defined. + In that case, filename may be a relative path; + a set of candidate absolute paths will be generated using the PATH environment variable and load_module() will attempt to load each file that is found at those absolute paths. +

          + +

          +

          Where the types binfmt_ctor_t and binfmt_dtor_t define the type of one C++ constructor or destructor:

          @@ -175,15 +183,31 @@ typedef FAR void (*binfmt_dtor_t)(void);

          2.3 Binary Loader Function Interfaces

          +

          + Binary format management: +

          +

          + Basic module management: +

          + +

          + PATH traversal logic: +

          +

          2.3.1 register_binfmt()

          @@ -224,7 +248,15 @@ int load_module(FAR struct binary_s *bin);

        Description:

          -Load a module into memory, bind it to an exported symbol take, and prep the module for execution. +

          + Load a module into memory, bind it to an exported symbol take, and prep the module for execution. +

          +

          + load_module() will use the filename field in the struct binary_s in order to locate the module to be loaded from the file system. + The filename must be the full, absolute path to the file to be executed unless CONFIG_BINFMT_EXEPATH is defined. + In that case, filename may be a relative path; + a set of candidate absolute paths will be generated using the PATH environment variable and load_module() will attempt to load each file that is found at those absolute paths. +

        Returned Value:

          @@ -281,22 +313,111 @@ int exec(FAR const char *filename, FAR const char **argv,

        Description:

          -This is a convenience function that wraps load_ and exec_module() into one call. + This is a convenience function that wraps load_ and exec_module() into one call.

        Input Parameters:

          -
        • filename: Fulll path to the binary to be loaded.
        • +
        • filename: Full path to the binary to be loaded.
        • argv: Argument list.
        • exports: Table of exported symbols.
        • exports: The number of symbols in exports.

        Returned Value:

          -This is an end-user function, so it follows the normal convention: -Returns 0 (OK) on success. -On failure, it returns -1 (ERROR) with errno set appropriately. + This is an end-user function, so it follows the normal convention: + Returns 0 (OK) on success. + On failure, it returns -1 (ERROR) with errno set appropriately.
        +

        2.3.8 exepath_init()

        +

        Function Prototype:

        +
          +#include <:nuttx/binfmt/binfmt.h>
          +#ifdef CONFIG_BINFMT_EXEPATH
          +EXEPATH_HANDLE exepath_init(void);
          +#endif
          +
        +

        Description:

        +
          +

          + Initialize for the traversal of each value in the PATH variable. + The usage is sequence is as follows: +

          +
            +
          1. + Call exepath_init() to initialize for the traversal. + exepath_init() will return an opaque handle that can then be provided to exepath_next() and exepath_release(). +
          2. +
          3. + Call exepath_next() repeatedly to examine every file that lies in the directories of the PATH variable. +
          4. +
          5. + Call exepath_release() to free resources set aside by exepath_init(). +
          6. +
          +
        +

        Input Parameters: None

        +

        Returned Value:

        +
          + On success, exepath_init() return a non-NULL, opaque handle that may subsequently be used in calls to exepath_next() and exepath_release(). + On error, a NULL handle value will be returned. + The most likely cause of an error would be that the there is no value associated with the PATH variable. +
        + +

        2.3.9 exepath_next()

        +

        Function Prototype:

        +
          +#include <:nuttx/binfmt/binfmt.h>
          +#ifdef CONFIG_BINFMT_EXEPATH
          +FAR char *exepath_next(EXEPATH_HANDLE handle, FAR const char *relpath);
          +#endif
          +
        +

        Description:

        +
          + Traverse all possible values in the PATH variable in attempt to find the full path to an executable file when only a relative path is provided. +
        +

        Input Parameters:

        +
          +
        • handle: The handle value returned by exepath_init().
        • +
        • relpath: The relative path to the file to be found.
        • +
        +

        Returned Value:

        +
          +

          + On success, a non-NULL pointer to a null-terminated string is provided. + This is the full path to a file that exists in the file system. + This function will verify that the file exists (but will not verify that it is marked executable). +

          +

          + NOTE: The string pointer return in the success case points to allocated memory. + This memory must be freed by the called by calling kfree(). +

          +

          + NULLrelpath from any absolute path in the PATH variable. + In this case, there is no point in calling exepath_next() further; exepath_release() must be called to release resources set aside by expath_init(). +

          +
        + +

        2.3.10- exepath_release()

        +

        Function Prototype:

        +
          +#include <:nuttx/binfmt/binfmt.h>
          +#ifdef CONFIG_BINFMT_EXEPATH
          +void exepath_release(EXEPATH_HANDLE handle);
          +#endif
          +
        +

        Description:

        +
          + Release all resources set aside by exepath_init when the handle value was created. + The handle value is invalid on return from this function. + Attempts to all exepath_next() or exepath_release() with such a stale handle will result in undefined (i.e., not good) behavior. +
        +

        Input Parameters:

        +
          +
        • handle: The handle value returned by exepath_init().
        • +
        +

        Returned Value: None

        +
        diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 0ed46cba16..5361a28665 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

        NuttX RTOS Porting Guide

        -

        Last Updated: December 11, 2012

        +

        Last Updated: December 17, 2012

        @@ -4163,6 +4163,12 @@ build CONFIG_BINFMT_DISABLE: By default, support for loadable binary formats is built. This logic may be suppressed be defining this setting. +
      • + CONFIG_BINFMT_EXEPATH: Use the contents of the PATH environment variable to locate executable files. Default: n +
      • +
      • + CONFIG_PATH_INITIAL: The initial value of the PATH variable. This is the colon-separated list of absolute paths. E.g., "/bin:/usr/bin:/sbin" +
      • CONFIG_BINFMT_CONSTRUCTORS: Build in support for C++ constructors in loaded modules.
      • From c25382c41b69a954289acf7925d72657aa62d19b Mon Sep 17 00:00:00 2001 From: patacongo Date: Tue, 18 Dec 2012 16:15:27 +0000 Subject: [PATCH 1078/1518] Restructre address environment interfaces in preparation for incorporation into binfmt/ logic git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5442 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttXBinfmt.html | 14 +- Documentation/NuttxPortingGuide.html | 259 +++++++++++++++++++++++++-- 2 files changed, 252 insertions(+), 21 deletions(-) diff --git a/Documentation/NuttXBinfmt.html b/Documentation/NuttXBinfmt.html index 830a05caa3..9c9fd3a510 100644 --- a/Documentation/NuttXBinfmt.html +++ b/Documentation/NuttXBinfmt.html @@ -164,13 +164,13 @@ struct binary_s };
      -

        - 1The filename must be the full, absolute path to the file to be executed unless CONFIG_BINFMT_EXEPATH is defined. - In that case, filename may be a relative path; - a set of candidate absolute paths will be generated using the PATH environment variable and load_module() will attempt to load each file that is found at those absolute paths. -

      - -

      +
        +

        + 1The filename must be the full, absolute path to the file to be executed unless CONFIG_BINFMT_EXEPATH is defined. + In that case, filename may be a relative path; + a set of candidate absolute paths will be generated using the PATH environment variable and load_module() will attempt to load each file that is found at those absolute paths. +

        +

      Where the types binfmt_ctor_t and binfmt_dtor_t define the type of one C++ constructor or destructor: diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 5361a28665..526892d3ef 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

      NuttX RTOS Porting Guide

      -

      Last Updated: December 17, 2012

      +

      Last Updated: December 18, 2012

      @@ -92,7 +92,8 @@ 4.1.17 up_enable_irq()
      4.1.18 up_prioritize_irq()
      4.1.19 up_putc()
      - 4.1.20 System Time and Clock + 4.1.20 System Time and Clock
      + 4.1.21 Address Environments
    4.2 APIs Exported by NuttX to Architecture-Specific Logic
      @@ -1622,7 +1623,7 @@ The system can be re-made subsequently by just typing make. is defined.

      -

      Inputs:

      +

      Input Parameters:

      • tcb: The TCB of new task. @@ -1658,7 +1659,7 @@ The system can be re-made subsequently by just typing make. is defined.

        -

        Inputs:

        +

        Input Parameters:

        • tcb: The TCB of new task. @@ -1694,7 +1695,7 @@ The system can be re-made subsequently by just typing make. function is called.

          -

          Inputs: +

          Input Parameters:

          • tcb: Refers to the tcb to be unblocked. This tcb is in one of the waiting tasks lists. It must be moved to @@ -1715,7 +1716,7 @@ The system can be re-made subsequently by just typing make. logic. Interrupts will always be disabled when this function is called. -

            Inputs:

            +

            Input Parameters:

            • tcb: Refers to a task in the ready-to-run list (normally the task at the head of the list). It most be @@ -1771,7 +1772,7 @@ The system can be re-made subsequently by just typing make. function is called.

              -

              Inputs:

              +

              Input Parameters:

              • tcb: The TCB of the task that has been reprioritized @@ -2110,6 +2111,236 @@ else To retrieve that variable use:

                +

                4.1.21 Address Environments

                + +

                + CPUs that support memory management units (MMUs) may provide address environments within which tasks and their child threads execute. + The configuration indicates the CPUs ability to support address environments by setting the configuration varabile CONFIG_ADDRENV=y. + These address environments are created only when tasks are created via exec() or exec_module() (see include/nuttx/binfmt/binfmt.h). +

                +

                + When CONFIG_ADDRENV=y is set in the board configuration, the CPU-specific logic must provide a set of interfaces as defined in the header file include/nuttx/arch.h. + These interfaces are listed below and described in detail in the following paragraphs. +

                +

                + The CPU-specific logic must provide two categories in interfaces: +

                +
                  +
                1. +

                  + Binary Loader Support. + These are low-level interfaces used in binfmt/ to instantiate tasks with address environments. + These interfaces all operate on type task_addrenv_t which is an abstract representation of a asks's address environment and must be defined in arch/arch.h if CONFIG_ADDRENVM is defined. + These low-level interfaces include: +

                  + +
                2. +
                3. +

                  + Tasking Support. + Other interfaces must be provided to support higher-level interfaces used by the NuttX tasking logic. + These interfaces are* used by the functions in sched/ and all operate on the TCB which as been assigned an address environment by up_addrenv_assign(). +

                  +
                    +
                  • + 4.1.21.7 up_addrenv_share(): + Clone the address environment assigned to one TCB to another. + This operation is done when a pthread is created that share's the same address environment. +
                  • +
                  • + 4.1.21.8 up_addrenv_release(): + ARelease the TCBs reference to an address environment when a task/thread exits. +
                  • +
                  +
                4. +
                + + +

                4.1.21.1 up_addrenv_create()

                +

                Prototype:

                +
                  + int up_addrenv_create(size_t envsize, FAR task_addrenv_t *addrenv); +
                +

                Description:

                +
                  + This function is called from the binary loader logic when a new task is created in order to instantiate an address environment for the task. + up_addrenv_create() is essentially the allocator of the physical memory for the new task. +
                +

                Input Parameters:

                +
                  +
                • envsize: The size (in bytes) of the address environment needed by the task.
                • +
                • addrenv: The location to return the representation of the task address environment.
                • +
                +

                Returned Value:

                +
                  + Zero (OK) on success; a negated errno value on failure. +
                + +

                4.1.21.2 up_addrenv_vaddr()

                +

                Prototype:

                +

                  + int up_addrenv_vaddr(FAR task_addrenv_t addrenv, FAR void **vaddr); +
                +

                Description:

                +
                  + Return the virtual address associated with the newly create address environment. + This function is used by the binary loaders in order get an address that can be used to initialize the new task. +
                +

                Input Parameters:

                +
                  +
                • addrenv: The representation of the task address environment previously returned by up_addrenv_create.
                • +
                • vaddr: The location to return the virtual address.
                • +
                +

                Returned Value:

                +
                  + Zero (OK) on success; a negated errno value on failure. +
                + +

                4.1.21.3 up_addrenv_select()

                +

                Prototype:

                +

                  + int up_addrenv_select(task_addrenv_t addrenv, hw_addrenv_t *oldenv); +
                +

                Description:

                +
                  + After an address environment has been established for a task (via up_addrenv_create()), this function may be called to to instantiate that address environment in the virtual address space. + This might be necessary, for example, to load the code for the task from a file or to access address environment private data. +
                +

                Input Parameters:

                +
                  +
                • addrenv: The representation of the task address environment previously returned by up_addrenv_create.
                • +
                • oldenv: + The address environment that was in place before up_addrenv_select() was called. + This may be used with up_addrenv_restore() to restore the original address environment that was in place before up_addrenv_select() was called. + Note that this may be a task agnostic, hardware representation that is different from task_addrenv_t. +
                • +
                +

                Returned Value:

                +
                  + Zero (OK) on success; a negated errno value on failure. +
                + +

                4.1.21.4 up_addrenv_restore()

                +

                Prototype:

                +

                  + int up_addrenv_restore(hw_addrenv_t oldenv); +
                +

                Description:

                +
                  + After an address environment has been temporarilty instantiated by up_addrenv_select, + this function may be called to to restore the original address environment. +
                +

                Input Parameters:

                +
                  +
                • oldenv: The hardware representation of the address environment previously returned by up_addrenv_select().
                • +
                +

                Returned Value:

                +
                  + Zero (OK) on success; a negated errno value on failure. +
                + +

                4.1.21.5 up_addrenv_destroy()

                +

                Prototype:

                +

                  + int up_addrenv_destroy(task_addrenv_t addrenv); +
                +

                Description:

                +
                  + Called from the binary loader loader during error handling to destroy the address environment previously created by up_addrenv_create(). +
                +

                Input Parameters:

                +
                  +
                • addrenv: The representation of the task address environment previously returned by up_addrenv_create.
                • +
                +

                Returned Value:

                +
                  + Zero (OK) on success; a negated errno value on failure. +
                + +

                4.1.21.6 up_addrenv_assign()

                +

                Prototype:

                +

                  + int up_addrenv_assign(task_addrenv_t addrenv, FAR _TCB *tcb); +
                +

                Description:

                +
                  + Assign an address environment to a TCB. +
                +

                Input Parameters:

                +
                  +
                • addrenv: The representation of the task address environment previously returned by up_addrenv_create.
                • +
                • tcb: The TCB of the task to receive the address environment.
                • +
                +

                Returned Value:

                +
                  + Zero (OK) on success; a negated errno value on failure. +
                + +

                4.1.21.7 up_addrenv_share()

                +

                Prototype:

                +

                  + int up_addrenv_share(FAR const _TCB *ptcb, FAR _TCB *ctcb); +
                +

                Description:

                +
                  + This function is called from the core scheduler logic when a thread is created that needs to share the address ennvironment of its parent task. + In this case, the parent's address environment needs to be "cloned" for the child thread. +
                +

                Input Parameters:

                +
                  +
                • ptcb: The TCB of the parent task that has the address environment.
                • +
                • ctcb: The TCB of the child thread needing the address environment.
                • +
                +

                Returned Value:

                +
                  + Zero (OK) on success; a negated errno value on failure. +
                + +

                4.1.21.8 up_addrenv_release()

                +

                Prototype:

                +

                  + int up_addrenv_release(FAR _TCB *tcb); +
                +

                Description:

                +
                  + This function is called when a task or thread exits in order to release its reference to an address environment. + When there are no furtherreferences to an address environment, that address environment should + be destroyed. +
                +

                Input Parameters:

                +
                  +
                • tcb: The TCB of the task or thread whose the address environment will be released.
                • +
                +

                Returned Value:

                +
                  + Zero (OK) on success; a negated errno value on failure. +
                +

                4.2 APIs Exported by NuttX to Architecture-Specific Logic

                These are standard interfaces that are exported by the OS @@ -3470,7 +3701,7 @@ extern void up_ledoff(int led); All PM interfaces are declared in the file include/nuttx/power/pm.h.

                -

                6.4.2.1 pm_initialize()

                +

                6.4.2.1 pm_initialize()

                Function Prototype:

                   #include <nuttx/power/pm.h>
                  @@ -3487,7 +3718,7 @@ None
                   None
                   

                  -

                  6.4.2.2 pm_register()

                  +

                  6.4.2.2 pm_register()

                  Function Prototype:

                     #include <nuttx/power/pm.h>
                    @@ -3507,7 +3738,7 @@ int pm_register(FAR struct pm_callback_s *callbacks);
                     Zero (OK) on success; otherwise a negater errno value is returned.
                     

                    -

                    6.4.2.3 pm_activity()

                    +

                    6.4.2.3 pm_activity()

                    Function Prototype:

                       #include <nuttx/power/pm.h>
                      @@ -3534,7 +3765,7 @@ void pm_activity(int priority);
                         This function may be called from an interrupt handler (this is the ONLY PM function that may be called from an interrupt handler!).
                       

                      -

                      6.4.2.4 pm_checkstate()

                      +

                      6.4.2.4 pm_checkstate()

                      Function Prototype:

                         #include <nuttx/power/pm.h>
                        @@ -3561,7 +3792,7 @@ enum pm_state_e pm_checkstate(void);
                           The recommended power management state.
                         

                        -

                        6.4.2.5 pm_changestate()

                        +

                        6.4.2.5 pm_changestate()

                        Function Prototype:

                           #include <nuttx/power/pm.h>
                          @@ -3596,7 +3827,7 @@ enum pm_state_e pm_checkstate(void);
                             These callback functions can be used to provide power management information to the driver.
                           

                          -

                          6.4.3.1 prepare()

                          +

                          6.4.3.1 prepare()

                          Function Prototype:

                             int (*prepare)(FAR struct pm_callback_s *cb, enum pm_state_e pmstate);
                            @@ -3624,7 +3855,7 @@ int (*prepare)(FAR struct pm_callback_s *cb, enum pm_state_e pmstate);
                                consumption modes!
                             

                            -

                            6.4.3.1 notify()

                            +

                            6.4.3.1 notify()

                            Function Prototype:

                               #include <nuttx/power/pm.h>
                              
                              From b2afcd2b141a7c72225f1cf00f6d1e6e01c98f99 Mon Sep 17 00:00:00 2001
                              From: patacongo 
                              Date: Wed, 19 Dec 2012 17:54:26 +0000
                              Subject: [PATCH 1079/1518] Incorporate address environment interfaces in
                               binfmt/ logic
                              
                              git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5443 42af7a65-404d-4744-a932-0658087f49c3
                              ---
                               Documentation/NuttxPortingGuide.html | 8 +++++---
                               1 file changed, 5 insertions(+), 3 deletions(-)
                              
                              diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html
                              index 526892d3ef..0408f82ac8 100644
                              --- a/Documentation/NuttxPortingGuide.html
                              +++ b/Documentation/NuttxPortingGuide.html
                              @@ -2130,7 +2130,7 @@ else
                                   

                              Binary Loader Support. These are low-level interfaces used in binfmt/ to instantiate tasks with address environments. - These interfaces all operate on type task_addrenv_t which is an abstract representation of a asks's address environment and must be defined in arch/arch.h if CONFIG_ADDRENVM is defined. + These interfaces all operate on type task_addrenv_t which is an abstract representation of a asks's address environment and must be defined in arch/arch.h if CONFIG_ADDRENV is defined. These low-level interfaces include:

                                @@ -2174,7 +2174,7 @@ else
                              • 4.1.21.8 up_addrenv_release(): - ARelease the TCBs reference to an address environment when a task/thread exits. + Release the TCB's reference to an address environment when a task/thread exits.
                              @@ -3930,7 +3930,9 @@ void (*notify)(FAR struct pm_callback_s *cb, enum pm_state_e pmstate); up_prioritize_irq() API.
                            • CONFIG_ADDRENV: The CPU supports an MMU and CPU port supports provision of address - environments for tasks (making the, perhaps, processes).
                            • + environments for tasks (making the, perhaps, processes). + In this case, the CPU-specific logic must provide a set of address environment interfaces as defined in the Address Environments paragraph. +

                            From 470c8d3b31a9467b4890fdd0eaa2b0c50a958efe Mon Sep 17 00:00:00 2001 From: patacongo Date: Thu, 20 Dec 2012 20:22:21 +0000 Subject: [PATCH 1080/1518] Prep for release 6.24 git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5447 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 811 +++++++++++++++++++++++++++------------ 1 file changed, 556 insertions(+), 255 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index d8d393a7c7..5d9d3af3ba 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                            NuttX RTOS

                            -

                            Last Updated: December 15, 2012

                            +

                            Last Updated: December 20, 2012

                            @@ -339,6 +339,14 @@

                            + +
                            + +

                            +

                          • Optional tasks with address environments (Processes).
                          • +

                            + +
                            @@ -464,6 +472,13 @@

                            + +
                            + +

                            +

                          • PATH variable support.
                          • +

                            +
                            @@ -1039,30 +1054,31 @@ -

                            NuttX-6.23 Release Notes

                            +

                            NuttX-6.24 Release Notes

                            - The 90th release of NuttX, Version 6.23, was made on November 5, 2012, and is available for download from the + The 91st release of NuttX, Version 6.24, was made on December 20, 2012, and is available for download from the SourceForge website. - Note that the release consists of two tarballs: nuttx-6.23.tar.gz and apps-6.23.tar.gz. + Note that the release consists of two tarballs: nuttx-6.24.tar.gz and apps-6.24.tar.gz. Both may be needed (see the top-level nuttx/README.txt file for build information) The change log associated with the release is available here. Unreleased changes after this release are available in SVN. These unreleased changes are also listed here.

                            - This release corresponds with SVN release number: r5313, + This release corresponds with SVN release number: r5447, Note that all SVN information has been stripped from the tarballs. If you need the SVN configuration, you should check out directly from SVN. - Revision r5313 should equivalent to release 6.23 of NuttX: + Revision r5447 should equivalent to release 6.24 of NuttX:

                              -svn checkout -r5313 svn://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
                              +svn checkout -r5447 svn://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
                               
                            -

                            Or

                            +

                            Or (HTTP):

                              -svn checkout -r5313 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
                              +svn checkout -r5447 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
                               
                            +

                            Additional new features and extended functionality

                            @@ -1071,114 +1087,277 @@ svn checkout -r5313 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
                          • RTOS: - If both atexit() and on_exit() are enabled, use on_exit() to implement atexit(). - Updates for RGMP 4.0.

                            +
                              +
                            • + Implemented the POSIX pause() function (still has some compiance issues). +
                            • +
                            • + Tasking logic is extended to support the notion of address environments. + An address environment is the key notion underlying "process" vs. tasks. + If tasks are created with address environments (by binfmt), the OS will propogate that environment to child threads and will destroy the address environment when all threads in the "process" exists. +
                            • +
                            • + If support for the PATH variable is enabled, the OS start up logic will create an initial environment containing the default PATH setting (CONFIG_PATH_INITIAL). + This initial PATH will then be inherited by all tasks. +
                            • +
                          • - Binfmt: - Add support for loading and executing ELF binary modules from a file system. + Binfmt:

                            +
                              +
                            • + The NuttX binary loaders have been updated to support the PATH environment variable. + Now, if the PATH is properly defined, programs can be executed from mass storage using only the file name. + This feature is added to support more standard behavior (eventually, NSH will support execution of programs in file systems by just entering the file name, perhaps in 6.25?). +
                            • +
                            • + The NXFLAT and ELF binary loaders have been extended to create address environments for any new tasks executed from the file system. + This feature requires that the architecture support a memory management unit (MMU) and the address environment interfaces declared in include/nuttx/arch.h (currently, this is only supported by the z180). +
                            • +
                          • Drivers: - Maxim MAX11802 touchscreen controller (Petteri Aimonen) -

                            + LCD driver for the Univision UG-2864AMBAG01 OLED
                          • - STM32 Driver: - Implementation of /dev/random using the STM32 Random Number Generator (RNG). -

                            + STM32: + Support for STM32F100 high density chips contributed by Freddie Chopin. +
                          • +
                          • +

                            + STM32 Drivers: + Added optional RS-485 direction bit control (from Freddie Chopin).

                          • STM32 Boards: - ADC support for the Shenzhou IV board. - Relay support for the Shenzhou IV board (both by Darcy Gong).

                            +
                              +
                            • + Support for generic STM32F100RC board contributed by Freddie Chopin. +
                            • +
                            • + stm32f4discovery/nxlines: STM32F4Discovery support for the UG-2864AMBAG01 OLED. +
                            • +
                            • + stm32f4discovery/winbuild: A version of the NuttX OS test configured to build natively on Windows. +
                            • +
                            • + stm32f4discovery/elf: Now uses the PATH variable to find ELF executables. +
                            • +
                            • + configs/cloudctrl: Added for Darcy Gong's CloudController board +
                            • +
                          • - C++ Standard Library: - Support is now included for the add-on uClibc++ C++ standard library support. - This includes support for iostreams, strings, STL, RTTI, exceptions -- the complete C++ environment. - uClibc++ is provided as a separate add-on package due to licensing issues. - Contributed by Qiang Yu and David of the RGMP team. -

                            -

                            - Add support for __cxa_atexit(). -

                            + PIC32 Boards: + Update the Mirtoo configuration for Release 2 of the Mirtoo module.
                          • - C Standard Library: -

                            - Optimized generic and ARM-specific memcpy() function. - Optimized memset() function. -

                            -

                            - Add support for ferror()), feof()), and clearerror()). -

                            + Calypso: + Add Calypso keypad driver (from Denis Carilki).
                          • - Standard Math Library: -

                            - Port of the math library from Rhombus OS by Nick Johnson (Darcy Gong). + ZiLOG:

                            +
                              +
                            • + Add support for the z180 chip family and, specifically, for the P112 retro hardware (see http://p112.feedle.net/). +
                            • +
                            • + All ZiLOG configurations updated to use the current ZDS-II and/or SDCC toolchains. +
                            • +
                            +
                          • +
                          • +

                            + Graphics: +

                            +
                              +
                            • + Add a semaphore handshake so that operations on buffers from the NXMU client will be blocked until the NX server operates on the buffer data (from Petteri Aimonen). +
                            • +
                            • + nxtk_subwindowmove() and nxtk_getwindow(): Improvements to clipping logic from Petteri Aimonen. +
                            • +
                            +
                          • +
                          • +

                            + C Library: + lib/ sub-directory renamed libc/ (there is a new lib/ sub-directory that is used to hold all archives). +

                          • +
                          • +

                            + C++: + Exception stubs from Petteri Aimonen.

                          • Applications: - New NSH commands: ifup, ifdown, urlencode, urldecode, base64enc, bas64dec, and md5 (Darcy Gong). - Extensions to the ifconfig command (Darcy Gong), - Add support for NSH telnet login (Darcy Gong). - Enancements to NSH ping command to support pinging hosts with very long round-trip times.

                            -

                            - Many extensions to the webclient/wget and DNS resolver logic from Darcy Gong. - SON, Base64, URL encoding, and MD5 libraries contributed by Darcy Gong. +

                              +
                            • + Add NSH hexdump command to dump the contents of a file (or character device) to the console (contributed by Petteri Aimonen). +
                            • +
                            • + Extend the NSH ifconfig command plus various DHCPC improvements (from Darcy Gong). +
                            • +
                            +
                          • +
                          • +

                            + apps/examples:

                            -

                            - New examples: ELF loader, JSON, wgetjson, cxxtest, relays. +

                              +
                            • + ostest: Replace large tables with algorithmic prime number generation. + This allows the roundrobin test to run on platforms with minimal SRAM (Freddie Chopin). +
                            • +
                            • + keypadtest: A new keypad test example contributed by Denis Carikli. +
                            • +
                            • + elf and nxflat: If CONFIG_BINFMT_EXEPATH is defined, these examples will now use a relative path to the program and expect the binfmt/ logic to find the absolute path to the program using the PATH variable. +
                            • +
                            +
                          • +
                          • +

                            + Build system:

                            +
                              +
                            • +

                              + New top-level Makefiles: Makefile.unix and Makefile.win (along with numerous changes to other make-related files). + This adds basic support for building NuttX natively under Windows from a CMD.exe window (rather than in a POSIX-like environment). + This build: (1) Uses all Windows style paths, (2) Uses primarily Windows batch commands from CMD.exe, with (3) a few extensions from GNUWin32. +

                              +

                              + This capability should still be considered a work in progress because: (1) it has not been verfied on all targets and tools, and (2) still lacks some of the creature-comforts of the more mature environments (like a function configure.sh script and make menuconfig support). +

                            • +
                            • + Example Windows native builds for STM32F4Discovery, eZ80, z16f, z8, Z80, and Z180. +
                            • +
                            • + Several configurations have been converted to work the kconfig-frontends mconf configuration tool: stm32f4discovery/nxlines, and all eZ80, z16f, z8, Z80, and Z180 configurations. +
                            • +
                            • + Architectures now include a common Toolchain.defs file that can be used to manage toolchains in a more configurable way (most of this contributed by Mike Smith). +
                            • +
                            +
                          • +
                          • +

                            + Build tools: +

                            +
                              +
                            • + Renamed tools/winlink.sh to tools/copydir.sh. +
                            • +
                            • + Several new tools/scripts to support the Windows native build: tools/mkdeps.bat, tools/mkdeps.c, tools/link.bat, tools/unlink.bat, and tools/ copydir.bat. +
                            • +
                            • + tools/incdir.sh and tools/incdir.bat now support an -s option to generate system header file paths. +
                            • +
                            • + tools/b16.c: Fixed precision math conversion utility. +
                            • +

                          - Bugfixes (see the change log for details) + Bugfixes (see the change log for details). Some of these are very important (marked critical):

                            +
                          • +

                            + RTOS: + Fix some backward conditional compilation in the work queue logic (Freddie Chopin). +

                          • +
                          • +

                            + File System: + Uninitialized variable caused assertions (from Lorenz Meier). +

                          • Drivers: - W25 SPI FLASH -

                            + Partial fix for STM32 OTG FS device drivers and fix for short, unaligned writes in the flash translation layer (drivers/mtd/ftl.c), both from Petteri Aimonen.
                          • STM32 Drivers: - ADC reset

                            +
                              +
                            • + Qencoder driver and TIM3 driver fixes from Ryan Sundberg. +
                            • +
                            • + Fix timeout delay calculation in the STM32 OTG FS host driver. +
                            • +
                          • - Fraphics: - Missing implementation of the blocked method (*critical*, Petteri Aimonen). + LPC17xx Drivers: + Resources not being properly released when I2C driver is un-initialized. +

                          • +
                          • +

                            + Graphics:

                            +
                              +
                            • + Fix logic when the mouse drags outside of the window; fix another "blocked message" handling case (both from Petteri Aimonen). +
                            • +
                            • + nxtk_filltrapwindow(): Correct an offset problem (also from Peterri Aimonen). +
                            • +
                            • + nxglib_splitline(): Correct the "fat flat line" bug. +
                            • +
                          • C Library: - Floating point numbers in printf and related formatting functions (Mike Smith), - cf[get|set]speed() (Mike Smith)

                            +
                              +
                            • + nrand() changes to prevent coefficients from becoming zero which would "lock up" the random number generate. +
                            • +
                            • + Add rounding functions to the math library (contributed by Petteri Aimonen). +
                            • +
                            +
                          • +
                          • +

                            + Build system: + Changes to MIN definitions in all limit.h header files to avoid integer overflows. + For example from (-128) to (-127 - 1) (from Petteri Aimonen). +

                          • +
                          • +

                            + Applications: + Modbus fixes from Freddie Chopin.

                          +

                          As well as other, less critical bugs. See the ChangeLog for additional, detailed changes. @@ -1310,8 +1489,9 @@ svn checkout -r5313 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

                            STATUS: - This port was contributed by Denis Carilki and includes the work of Denis, Alan Carvalho de Assis, and Stefan Richter. - Calypso support first appeared in NuttX-6.17. + This port was contributed by Denis Carilki and includes the work of Denis Carikli, Alan Carvalho de Assis, and Stefan Richter. + Calypso support first appeared in NuttX-6.17 with LCD drivers. + Support for the Calypso keyboard was added in NuttX-6.24 by Denis Carilki.

                          @@ -1340,8 +1520,8 @@ svn checkout -r5313 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

                          Development Environments: - 1) Linux with native Linux GNU toolchain, 2) Cygwin with Cygwin GNU toolchain, or 3) Cygwin - with Windows native toolchain (CodeSourcery or devkitARM). A DIY toolchain for Linux + 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS + with Windows native toolchain (CodeSourcery or devkitARM), or 4) Native Windows. A DIY toolchain for Linux or Cygwin is provided by the NuttX buildroot package. @@ -1405,8 +1585,8 @@ svn checkout -r5313 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

                          Development Environments: - 1) Linux with native Linux GNU toolchain, 2) Cygwin with Cygwin GNU toolchain, or 3) Cygwin - with Windows native toolchain (CodeSourcery or devkitARM). A DIY toolchain for Linux + 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS + with Windows native toolchain (CodeSourcery or devkitARM), or 4) Native Windows. A DIY toolchain for Linux or Cygwin is provided by the NuttX buildroot package. @@ -1558,8 +1738,8 @@ svn checkout -r5313 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

                          Development Environments: - 1) Linux with native Linux GNU toolchain, 2) Cygwin with Cygwin GNU toolchain, or 3) Cygwin - with Windows native toolchain (CodeSourcery or devkitARM). A DIY toolchain for Linux + 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS + with Windows native toolchain (CodeSourcery or devkitARM), or 4) Native Windows. A DIY toolchain for Linux or Cygwin is provided by the NuttX buildroot package. @@ -1672,7 +1852,9 @@ svn checkout -r5313 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

                          STMicro STM32F100x. Chip support for these STM32 "Value Line" family was contributed by Mike Smith and users have reported that they have successful brought up NuttX on there proprietary boards using this logic. + This logic was extended to support the high density STM32F100RC chips by Freddie Chopin However, there is no specific board support for this chip families in the NuttX source tree. + There is, however, generic support for STM32F100RC boards.

                          @@ -1744,8 +1926,8 @@ svn checkout -r5313 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

                        Development Environments: - 1) Linux with native Linux GNU toolchain, 2) Cygwin with Cygwin GNU toolchain, or 3) Cygwin - with Windows native toolchain (RIDE7, CodeSourcery or devkitARM). A DIY toolchain for Linux + 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS + with Windows native toolchain (RIDE7, CodeSourcery or devkitARM), or 4) Native Windows. A DIY toolchain for Linux or Cygwin is provided by the NuttX buildroot package. @@ -1839,8 +2021,8 @@ svn checkout -r5313 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

                        Development Environments: - 1) Linux with native Linux GNU toolchain, 2) Cygwin with Cygwin GNU toolchain, or 3) Cygwin - with Windows native toolchain (CodeSourcery or devkitARM). A DIY toolchain for Linux + 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS + with Windows native toolchain (CodeSourcery or devkitARM), or 4) Native Windows. A DIY toolchain for Linux or Cygwin is provided by the NuttX buildroot package. @@ -1974,8 +2156,8 @@ svn checkout -r5313 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

                        Development Environments: - 1) Linux with native Linux GNU toolchain, 2) Cygwin with Cygwin GNU toolchain, or 3) Cygwin - with Windows native toolchain (CodeSourcery devkitARM or Code Red). A DIY toolchain for Linux + 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS + with Windows native toolchain (CodeSourcery devkitARM or Code Red), or 4) Native Windows. A DIY toolchain for Linux or Cygwin is provided by the NuttX buildroot package. @@ -2165,7 +2347,7 @@ svn checkout -r5313 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

                        Development Environments: - 1) Linux with native Linux GNU toolchain, 2) Cygwin with Cygwin GNU Cortex-M3 or 4toolchain, or 3) Cygwin with Windows native GNU Cortex-M3 or M4 toolchain (CodeSourcery or devkitARM). A DIY toolchain for Linux or Cygwin is provided by the NuttX + 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU Cortex-M3 or 4 toolchain, 3) Cygwin/MSYS with Windows native GNU Cortex-M3 or M4 toolchain (CodeSourcery or devkitARM), or 4) Native Windows. A DIY toolchain for Linux or Cygwin is provided by the NuttX buildroot package. I use FreeScale's CodeWarrior IDE only to work with the JTAG debugger built into the Kinetis boards. I use the Code Red IDE with the some of the NXP parts and the Atollic toolchain with some of the STMicroelectronics parts. @@ -2284,7 +2466,7 @@ svn checkout -r5313 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

                        Development Environments: - 1) Linux with native Linux GNU toolchain, 2) Cygwin with Cygwin GNU toolchain, or 3) Cygwin with Windows native toolchain. + 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS with Windows native toolchain, or 4) Native Windows. All testing, however, has been performed using the NuttX DIY toolchain for Linux or Cygwin is provided by the NuttX buildroot package. As a result, that toolchain is recommended. @@ -3252,192 +3434,311 @@ Other memory:

                          -nuttx-6.23 2012-11-05 Gregory Nutt <gnutt@nuttx.org>
                          +nuttx-6.24 2012-12-20 Gregory Nutt <gnutt@nuttx.org>
                           
                          -    * arch/arm/src/stm32/stm32_rng.c, chip/stm32_rng.h, and other files:
                          -      Implementation of /dev/random using the STM32 Random Number
                          -      Generator (RNG).
                          -    * board.h file for shenzhou, fire-stm32v2, and olimex-stm32-p107:
                          -      Add frequencies for HSE, HSI, LSE, and LSI.  These are needed
                          -      by the STM32 watchdog driver.
                          -    * CONFIG_EXAMPLES_*: To make things consistent, changed all occurrences
                          -      of CONFIG_EXAMPLE_* to CONFIG_EXAMPLES_*.
                          -    * drivers/mtd/w25.c and configs/*/src/up_w25.c:  Several fixes for the
                          -      W25 SPI FLASH.
                          -    * configs/*/Make.defs:  All buildroot tools now use the extension
                          -      xxx-nuttx-elf- vs. xxx-elf-
                          -    * configs/shenzhou/*/Make.defs:  Now uses the new buildroot 4.6.3
                          -      EABI toolchain.
                          -    * lib/stdio/lib_libdtoa.c:  Another dtoa() fix from Mike Smith.
                          -    * configs/shenzhou/src/up_adc.c:  Add ADC support for the Shenzhou
                          -      board (Darcy Gong).
                          -    * configs/shenzhou/thttpd:  Add a THTTPD configuration for the
                          -      Shenzhou board (Darcy Gong).
                          -    * include/termios.h and lib/termios/libcf*speed.c: The non-standard,
                          -      "hidden" c_speed cannot be type const or else static instantiations
                          -      of termios will be required to initialize it (Mike Smith).
                          -    * drivers/input/max11802.c/h, and include/nuttx/input max11802.h:  Adds
                          -      support for the Maxim MAX11802 touchscreen controller (contributed by
                          -      Petteri Aimonen).
                          -    * graphics/nxtk/nxtk_events.c:  Missing implementatin of the blocked
                          -      method.  This is a critical bugfix for graphics support (contributed
                          -      by Petteri Aimonen).
                          -    * drivers/usbdev/pl2303.c, drivers/usbdev/usbmsc.h, and
                          -      include/nuttx/usb/cdcacm.h: USB_CONFIG_ATTR_SELFPOWER vs.
                          -      USB_CONFIG_ATT_SELFPOWER (contributed by Petteri Aimonen).
                          -    * arch/arm/src/armv7-m/up_memcpy.S:  An optimized memcpy() function for
                          -      the ARMv7-M family contributed by Mike Smith.
                          -    * lib/strings/lib_vikmemcpy.c:  As an option, the larger but faster
                          -      implemementation of memcpy from Daniel Vik is now available (this is
                          -      from http://www.danielvik.com/2010/02/fast-memcpy-in-c.html).
                          -    * lib/strings/lib_memset.c: CONFIG_MEMSET_OPTSPEED will select a
                          -      version of memset() optimized for speed.  By default, memset() is
                          -      optimized for size.
                          -    * lib/strings/lib_memset.c: CONFIG_MEMSET_64BIT will perform 64-bit
                          -      aligned memset() operations.
                          -    * arch/arm/src/stm32/stm32_adc.c:  Need to put the ADC back into the
                          -      initial reset in the open/setup logic.  Opening the ADC driver works
                          -      the first time, but not the second because the device is left in a
                          -      powered down state on the last close.
                          -    * configs/olimex-lpc1766stck/scripts:  Replace all of the identical
                          -      ld.script files with the common one in this directory.
                          -    * configs/stm3220g-eval/scripts:  Replace all of the identical
                          -      ld.script files with the common one in this directory.
                          -    * configs/hymini-stm32v/scripts:  Replace all of the identical
                          -      ld.script files with the common one in this directory.
                          -    * configs/lpcxpresso-lpc1768/scripts:  Replace all of the identical
                          -      ld.script files with the common one in this directory.
                          -    * binfmt/elf.c, binfmt/libelf, include/elf.h, include/nuttx/elf.h: Add
                          -      basic framework for loadable ELF module support.  The initial check-
                          -      in is non-functional and is simply the framework for ELF support.
                          -    * include/nuttx/binfmt.h, nxflat.h, elf.h, and symtab.h:  Moved to
                          -      include/nuttx/binfmt/.
                          -    * arch/sim/src/up_elf.c and arch/x86/src/common/up_elf.c:  Add
                          -      for ELF modules.
                          -    * arch/arm/include/elf.h:  Added ARM ELF header file.
                          -    * include/elf32.h:  Renamed elf.h to elf32.h.
                          -    * configs/stm32f4discovery/ostest:  Converted to use the new
                          -      Kconfig-based configuration system.
                          -    * configs/stm32f4discovery/elf and configs/stm32f4discovery/scripts/gnu-elf.ld
                          -      Add a configuration for testing the ARM ELF loader.
                          -    * binfmt/libelf:  Can't use fstat(). NuttX does not yet support it.  Damn!
                          -    * binfmt/libelf:  The basic ELF module execution appears fully functional.
                          -    * configs/shenzhou/src/up_relays.c:  Add support for relays from the
                          -      Shenzhou board.  Contributed by Darcy Gong.
                          -    * lib/fixedmath: Moved the old lib/math to lib/fixedmath to make room for
                          -      the math library from the Rhombus OS
                          -    * lib/math: Now contains the math library from the Rhombus OS by Nick Johnson
                          -      (submitted by Darcy Gong).
                          -    * include/float.h:  Add a first cut at the float.h header file.  This
                          -      really should be an architecture/toolchain-specific header file.  It
                          -      is only used if CONFIG_ARCH_FLOAT_H is defined.
                          -    * lib/math: Files now conform to coding standards.  Separated float,
                          -      double, and long double versions of code into separate files so that
                          -      they don't draw in so much un-necessary code when doing a dumb link.
                          -    * binfmt/libelf:  The ELF loader is working correctly with C++ static
                          -      constructors and destructors and all.
                          -    * Documentation/NuttXBinfmt.html:  Add documentionof the binary loader.
                          -    * configs/sim/ostest:  Converted to use the mconfig configuration tool.
                          -    * configs/sim/cxxtest:  New test that will be used to verify the uClibc++
                          -      port (eventually).
                          -    * include/nuttx/fs/fs.h, lib/stdio/lib_libfread.c, lib_ferror.c,
                          -      lib_feof.c, and lib_clearerr.c:  Add support for ferror(), feof(),
                          -      and clearerror().  ferror() support is bogus at the moment (it
                          -      is equivalent to !feof()); the others should be good.
                          -    * configs/stm32f4discovery/include/board.h:  Correct timer 2-7
                          -      base frequency (provided by Freddie Chopin).
                          -    * include/nuttx/sched.h, sched/atexit.c, and sched/task_deletehook.c:
                          -      If both atexit() and on_exit() are enabled, then implement atexit()
                          -      as just a special caseof on_exit().  This assumes that the ABI can
                          -      handle receipt of more call parameters than the receiving function
                          -      expects.  That is usually the case if parameters are passed in
                          -      registers.
                          -    * libxx/libxx_cxa_atexit():  Implements __cxa_atexit()
                          -    * configs/stm32f4discovery/cxxtest:  New test that will be used to
                          -      verify the uClibc++ port (eventually).  The sim platform turned not
                          -      to be a good platform for testing uClibc++.  The sim example will not
                          -      run because the simulator will attempt to execute the static
                          -      constructors before main() starts. BUT... NuttX is not initialized
                          -      and this results in a crash.  On the STM324Discovery, I will have
                          -      better control over when the static constructors run.
                          -    * RGMP 4.0 updated from Qiany Yu.
                          -    * configs/*/Make.defs and configs/*/ld.script:  Massive clean-up
                          -      and standardization of linker scripts from Freddie Chopin.
                          -    * net/netdev_ioctl.c:  Add interface state flags and ioctl calls
                          -      to bring network interfaces up and down (from Darcy Gong).
                          -    * config/stm32f4discovery: Enable C++ exceptions.  Now the entire
                          -      apps/examples/cxxtest works -- meaning the the uClibc++ is
                          -      complete and verified for the STM32 platform.
                          -
                          -apps-6.23 2012-11-05 Gregory Nutt <gnutt@nuttx.org>
                          -
                          -    * vsn: Moved all NSH commands from vsn/ to system/.  Deleted the vsn/
                          +    * arch/arm/src/stm32:  Support for STM32F100 high density chips
                          +      added by Freddie Chopin.
                          +    * configs/stm32f100_generic:  Support for generic STM32F100RC board
                          +      contributed by Freddie Chopin.
                          +    * arch/arm/src/stm32_otgfsdev.c:  Partial fix from Petteri Aimonen.
                          +    * drivers/lcd/ug-2864ambag01.c and include/nuttx/lcd/ug_2864ambag01.h:
                          +      LCD driver for the Univision OLED of the same name (untested on
                          +      initial check-in).
                          +    * configs/stm32f4discovery/nxlines:  Configure to use mconf/Kconfig
                          +      tool.
                          +    * configs/stm32f4discovery/src/up_ug2864ambag01.c:  Board-specific
                          +      initialization for UG-2864AMBAG01 OLED connecte to STM32F4Disovery.
                          +    * libxx/libxx_stdthrow.cxx:  Exception stubs from Petteri Aimonen.
                          +    * configs/stm32f4discovery/src/up_ug2864ambag01.c: Driver has been
                          +      verified on the STM32F4Discovery platform.  Some tuning of the
                          +      configuration could improve the presentation.  Lower resolution displays
                          +      are also more subject to the "fat, flat line bug" that I need to fix
                          +      someday.  See http://www.nuttx.org/doku.php?id=wiki:graphics:nxgraphics
                          +      for a description of the fat, flat line bug.
                          +    * libc:  Renamed nuttx/lib to nuttx/libc to make space for a true lib/
                          +      directory that will be forthcoming.  Also rename libraries:  liblib.a -> libc.a,
                          +      libulib.a -> libuc.a, libklib.a -> libkc.a, liblibxx.a ->libcxx.a.
                          +      (I will probably, eventually rename libxx to libcxx for consistency)
                          +    * Makefile, lib/: A new, empty directory that will hold generated libraries.
                          +      This simplifies the library patch calculations and lets me get rid of some
                          +      bash logic.  The change is functional, but only partially complete;
                          +      additional logic is needed in the arch/*/src/Makefile's as well.  Right
                          +      now that logic generate multiple library paths, all pointing to the lib/
                                 directory.
                          -    * Makefile:  Change order of includes when CONFIG_NEWCONFIG=y.  In
                          -      that case, namedapp must be included first so that the namedapp
                          -      context is established first.  If the namedapp context is established
                          -      later, it will overwrite any existing namedapp_list.h and nameapp_proto.h
                          -      files.
                          -    * CONFIG_EXAMPLES_*: To make things consistent, changed all occurrences
                          -      of CONFIG_EXAMPLE_* to CONFIG_EXAMPLES_*.
                          -    * Kconfig:  Fleshed out apps/examples/adc/Kconfig and apps/examples/wget/Kconfig.
                          -      There are still a LOT of empty, stub Kconfig files.
                          -    * Kconfig:  Fleshed out apps/examples/buttons/Kconfig. There are still a LOT
                          -      of empty, stub Kconfig files.
                          -    * apps/netutils/webserver/httpd.c:  Fix a bug that I introduced in
                          -      recent check-ins (Darcy Gong).
                          -    * apps/netutils/webclient/webclient.c:  Fix another but that I introduced
                          -      when I was trying to add correct handling for loss of connection (Darcy Gong)
                          -    * apps/nshlib/nsh_telnetd.c:  Add support for login to Telnet session via
                          -      username and password (Darcy Gong).
                          -    * apps/netutils/resolv/resolv.c (and files using the DNS resolver): Various
                          -      DNS address resolution improvements from Darcy Gong.
                          -    * apps/nshlib/nsh_netcmds.c:  The ping command now passes a maximum round
                          -      trip time to uip_icmpping().  This allows pinging of hosts on complex
                          -      networks where the ICMP ECHO round trip time may exceed the ping interval.
                          -    * apps/examples/nxtext/nxtext_main.c:  Fix bad conditional compilation
                          -      when CONFIG_NX_KBD is not defined.  Submitted by Petteri Aimonen.
                          -    * apps/examples/nximage/nximage_main.c:  Add a 5 second delay after the
                          -      NX logo is presented so that there is time for the image to be verified.
                          -      Suggested by Petteri Aimonen.
                          -    * apps/Makefile: Small change that reduces the number of shell invocations
                          -      by one (Mike Smith).
                          -    * apps/examples/elf:  Test example for the ELF loader.
                          -    * apps/examples/elf:  The ELF module test example appears fully functional.
                          -    * apps/netutils/json:  Add a snapshot of the cJSON project.  Contributed by
                          -      Darcy Gong.
                          -    * apps/examples/json:  Test example for cJSON from Darcy Gong
                          -    * apps/nshlib/nsh_netinit.c: Fix static IP DNS problem (Darcy Gong)
                          -    * apps/netutils/resolv/resolv.c: DNS fixes from Darcy Gong.
                          -    * COPYING: Licensing information added.
                          -    * apps/netutils/codec and include/netutils/urldecode.h, base64.h, and md5.h:
                          -      A port of the BASE46, MD5 and URL CODEC library from Darcy Gong.
                          -    * nsnlib/nsh_codeccmd.c:  NSH commands to use the CODEC library.
                          -      Contributed by Darcy Gong.
                          -    * apps/examples/wgetjson: Test example contributed by Darcy Gong
                          -    * apps/examples/cxxtest:  A test for the uClibc++ library provided by
                          -      Qiang Yu and the RGMP team.
                          -    * apps/netutils/webclient, apps/netutils.codes, and apps/examples/wgetjson:
                          -      Add support for wget POST interface.  Contributed by Darcy Gong.
                          -    * apps/examples/relays:  A relay example contributed by Darcy Gong.
                          -    * apps/nshlib/nsh_netcmds: Add ifup and ifdown commands (from Darcy
                          -      Gong).
                          -    * apps/nshlib/nsh_netcmds: Extend the ifconfig command so that it
                          -      supports setting IP addresses, network masks, name server addresses,
                          -      and hardware address (from Darcy Gong).
                          +    * arch/*/src/Makefile:  Now uses only the libraries in lib/
                          +      Replace bash fragments that test for board/Makefile.
                          +    * Makefile.win:  The beginnings of a Windows-native build.  This is just
                          +      the beginning and not yet ready for prime time use.
                          +    * configs/stm32f4discovery/winbuild:  This is a version of the standard
                          +      NuttX OS test, but configured to build natively on Windows.  Its only
                          +      real purpose is to very the native Windows build logic.
                          +    * tools/mkdeps.bat and tools/mkdeps.c:  mkdeps.bat is a failed attempt
                          +      to leverage mkdeps.sh to CMD.exe.  It fails because the are certain
                          +      critical CFLAG values that cannot be passed on the CMD.exe command line
                          +      (like '=').  mkdeps.c is a work in progress that will, hopefully,
                          +      replace both mkdeps.sh and mkdeps.bat.
                          +    * tools/Config.mk:  Centralize the definition of the script that will be
                          +      used to generated header file include paths for the compiler.  This
                          +      needs to be centralized in order to support the Windows native build.
                          +    * tools/incdir.bat:  A replacement for tools/incdir.sh for use with the
                          +      the Windows native build.
                          +    * Makefile.unix:  The existing top-level Makefile has been renamed
                          +      Makefile.unix.
                          +    * Makefile:  This is a new top-level Makefile that just includes
                          +      either Makefile.unix or Makefile.win
                          +    * configs/stm3240g-eval/src:  Qencoder fixes from Ryan Sundberg.
                          +    * arch/arm/src/stm32/stm32_qencoder.c: TIM3 bug fix from Ryan Sundberg.
                          +    * tools/mkromfsimg.sh: Correct typo in an error message (Ryan Sundberg)
                          +    * arch/*/src/Makefile:  Remove tftboot install and creation of System.map
                          +      for Windows native build.  The first is a necessary change, the second
                          +      just needs re-implemented.
                          +    * configs/mirtoo: Update Mirtoo pin definitions for Release 2.  Provided
                          +      by Konstantin Dimitrov.
                          +    * Fixed an uninitialized variable in the file system that can cause 
                          +      assertions if DEBUG on (contributed by Lorenz Meier).
                          +    * Config.mk:  Defined DELIM to be either / or \, depending upon
                          +      CONFIG_WINDOWS_NATIVE.  This will allow me to eliminate a lot of
                          +      conditional logic elsewhere.
                          +    * nuttx/graphics: One a mouse button is pressed, continue to report all
                          +      mouse button events to the first window that received the the initial
                          +      button down event, even if the mouse attempts to drag outside the
                          +      window. From Petteri Aimonen.
                          +    * nuttx/graphics/nxmu/nx_block.c:  One more fix to the NX block message
                          +      logic from Petteri Aimonen.
                          +    * include/nuttx/wqueue.h: Some basic definitions to support a user-
                          +      space work queue (someday in the future).
                          +    * graphics/nxmu:  Add semaphores so buffers messages that send buffers
                          +      will block until the buffer data has been acted upon.
                          +    * graphics/nxmw:  Extended the blocked messages to cover mouse movement
                          +      and redraw events.  These will also cause problems if sent to a window
                          +      while it is closing.
                          +    * arch/several:  Change UARTs are enabled for i.MX, LM3S, ez80, and M16C to
                          +      match how they are enabled for other architectures.
                          +    * configs/ez80f910200kitg:  Convert to use mconf configuration.
                          +    * sched/pause.c:  Implements the POSIX pause() function.
                          +    * ez80: Lots of changes to ez80 configurations and build logic as I
                          +      struggle to get a clean Windows build (still not working).
                          +    * configs/cloudctrl:   Darcy Gong's CloudController board.  This is a
                          +      small network relay development board. Based on the Shenzhou IV development
                          +      board design.  It is based on the STM32F107VC MCU.
                          +    * arch/arm/src/stm32_serial.c and stm32_lowputc.c:  Added optional RS-485
                          +      direction bit control. From Freddie Chopin.
                          +    * Lots of build files:  ARMv7-M and MIPS32 Make.defs now include a common
                          +      Toolchain.defs file that can be used to manage toolchains in a more
                          +      configurable way.  Contributed by Mike Smith
                          +    * configs/stm32f4discovery/winbuild and configs/cloudctrl:  Adapted to use
                          +      Mike's Toolchain.defs.
                          +    * tools/configure.sh:  Adapted to handle paths and setenv.bat files correctly
                          +      for native Windows builds.
                          +    * More of build files:  AVR and AVR32 Make.defs now include a common
                          +      Toolchain.defs file that can be used to manage toolchains in a more
                          +      configurable way.  Contributed by Mike Smith
                          +    * tools/incdir.sh and incdir.bat: Add -s option to generate system header
                          +      file paths.
                          +    * nuttx/arch/arm/src/arm/Toolchain.defs: Add support for more ARM toolchains
                          +      (from Mike Smith).
                          +    * arch/arm/src/stm32/stm32f40xxx_rcc.c:  Enabled FLASH prefetch (from Petteri
                          +      Aimonen).
                          +    * graphics/nxtk/nxtk_filltrapwindow.c:  Correct an offset problem (from
                          +      Peterri Aimonen).
                          +    * graphics/nxglib/nxglib_splitline.c:  Fix error in drawing of near horizontal
                          +      lines (from Peterri Aimonen).
                          +    * sched/task_exithook.c:  Missing right bracket with certain conditional
                          +      compilation (thanks James Goppert).
                          +    * arch/arm/srch/stm32/stm32_otgfshost.c:  Replace timeout handling; use
                          +      system tick instead of frame counter.  The frame counter gets reset to
                          +      zero at 0x3fff making it error prone.
                          +    * arch/arm/src/stm32/stm32f20xx_rcc.c and stm32f40xx_rcc.c: Added option
                          +      CONFIG_STM32_FLASH_PREFETCH.  FLASH prefetch will now only be enabled
                          +      if this option is selected.
                          +    * confgs/ez80f910200zco/ostest:  Now uses Kconfig/mconf configuration
                          +      tool. Updated to build in native Windows environment.  Other ez80f910200zco
                          +      build scripts also updated.
                          +    * configs/z8f64200100kit/ostest: Update to same level as ez80 configurations.
                          +    * nuttx/configs/z8f64200100kit/scripts/setenv.bat: Add support for native
                          +      Windows build.
                          +    * nuttx/arch/arm/src/lpc17xx/lpc17_i2c.c: Resources not being released when
                          +      I2C is uninitialized.
                          +    * cloudctrl/src/up_chipid.c and shenzhou/src/up_chipid.c:  Add functions to
                          +      get chip ID.  Contributed by Darcy Gong.  These should not be board-dependent,
                          +      but should be in arch/arm/src/stm32 where they can be used from any board.
                          +    * sched/work_thread.c: Fix backward conditional compilation.  This might
                          +      has caused a memory leak.  From Freddie Chopin.
                          +    * configs/<many>/Make.defs:  Fix typo -wstrict-prototypes should be
                          +      -Wstrict-prototypes (From Denis Carilki).
                          +    * arch/arm/src/calapyso/calypso_keypad.c:  Add Calypso keypad driver.  From
                          +      Denis Carilki.
                          +    * z8encore000zco/ostest and z8f64200100kit/ostest:  Converted to use Kconfig/
                          +      mconf configuration tool.
                          +    * arch/arm/src/armv7-m/up_exception.S: missing curly braces for push/pop
                          +      From Freddie Chopin.
                          +    * z8encore000zco/ostest and z8f64200100kit/ostest:  Can now be modified to
                          +      support the Windows native builds (see corresponding README.txt files).
                          +    * configs/z16f2800100zcog - All configurations updated to use the ZDS-II
                          +      5.0.1 toolchain.
                          +    * configs/z16f2800100zcog - All configurations updated to use Kconfig/mconf
                          +      configuration tools.
                          +    * configs/z16f2800100zcog/ostest - Now supports a native Windows build
                          +      (other ZNEO configs may also support the native build, but this has not
                          +      been verfiied).
                          +    * include/nuttx/input/keypad.h, arch/arm/src/calypso/calypso_keypad.c, and
                          +      configs/compal_e99/nsh_highram: First cut at a standard keypad interface
                          +      definition.  Contributed by Denis Carikli.
                          +    * libc/stdlib/lib_rand.c:  Always add one to result congruential generators
                          +      to avoid the value zero.  Suggested by Freddie Chopin.
                          +    * tools/b16.c:  Fixed precision math conversion utility.
                          +    * graphics/nxglib/nxglib_splitline.c:  Fix the "fat, flat line bug"
                          +    * arch/z80/src/*/Toolchain.defs:  Add dummy Toolchain.defs files for the
                          +      z80 family.
                          +    * configs/z80sim/ostest:  Converted to build with the Kconfig/mconf tool.
                          +      Current configuration failed to build for me (Ubuntu 12.10, SDCC 3.2.0
                          +      pre-built for Linux) due to a glibc memory corruptionerror in SDCC.
                          +    * configs/z80sim/ostest: Default is now the Windows native build.  See
                          +      configs/z80sim/README.txt for instructions to convert back to a Linux or
                          +      or Cygwin build.
                          +    * arch/z80/src/Makefile.sdccw:  Renamed makefiles with extensions zdiil,
                          +      zdiiw, sdccl, and sdccw for the ZDS-II vs SDCC compilers and for the
                          +      POSIX vs Windows native builds.
                          +    * nuttx/drivers/mtd/ftl.c:  Fix for the flash translation layer. Short
                          +      unaligned writes were buggy.  From Petteri Aimonen.
                          +    * nuttx/libc/math/lib_round*.c:  Add rounding functions to the math
                          +      library.  Contributed by Petteri Aimonen.
                          +    * include/cxx/cstdlib:  Add stroul().  From Petteri Aimonen.
                          +    * arch/*/include/limits.h:  Change signed minimum values from, for example,
                          +      (-128) to (-127 - 1) to avoid overflows under certain conditions.  From
                          +      Peterri Aimonen.
                          +    * graphics/nxtk/nxtk_subwindowmove.c: Previously it was very difficult to
                          +      do e.g. "scroll by dx, dy". When given the full window area, nxtk_subwindowmove
                          +      would clip the offset always to 0,0. It makes more sense for it to clip the
                          +      source area and not modify the offset.  From Petteri Aimonen.
                          +    * graphics/nxtk/nxtk_getwindow.c: Clipping would change the offset of returned
                          +      data, and caller has no way to know what the new offset would be. This messes
                          +      up font drawing when the text is partially out of window, e.g. when scrolling.
                          +      Also from Petteri Aimonen.
                          +    * include/stdbool.h: Can now be disabled for C++ files if CONFIG_C99_BOOL8 is
                          +      defined.  CONFIG_C99_BOOL8 indicates (1) that the sizeof(_Bool) is one in both
                          +      C and C++, and (2) the the C compiler is C99 and supports the _Bool intrinsic
                          +      type. Requested by Freddie Chopin.
                          +    * include/stdlib/lib_rand.c:  Various additional changes so that the integer
                          +      value zero can be returned.  Requested by Freddie Chopin.
                          +    * arch/z80/src/Makefile.sdcc*, z80/up_mem.h:  Redesign Z80 build so that it
                          +      no longer depends on Bash scripts.
                          +    * configs/z80sim/nsh and pashello:  Converted to (1) use the kconfig-frontends
                          +      configuration tool, and (2) to build natively under Windows.  The NSH
                          +      configuration is verified; the pashello configuration needs a more TLC.
                          +    * tools/copydir.sh:  Rename tools/winlink.sh to tools/copydir.sh
                          +    * tools/link.bat, unlink.bat, and copydir.bat:  Add Windows counterparts
                          +      to the link.sh, unlink.sh, and copydir.sh Bash scripts.
                          +    * configs/z80sim/pashello:  Now builds correctly.
                          +    * configs/xtrs/ostest, nsh, and pashello:  Converted to (1) use the kconfig-
                          +      frontends configuration tool, and (2) to build natively under Windows.
                          +    * drivers/serial/Kconfig and sched/Kconfig:  Two names for same configuration:
                          +      CONFIG_LOWLEVEL_CONSOLE is bogus and CONFIG_DEV_LOWCONSOLE is in the wrong
                          +      Kconfig file.  Moved to drivers/serial/Kconfig replacing CONFIG_LOWLEVEL_CONSOLE.
                          +    * arch/z80/include/z180:  Add header files for z180 chips.  Initial versions
                          +      are just clones of z80 header files.
                          +    * arch/z80/src/z180:  Add source files for z180 chips.  Initial versions
                          +      are just clones of z80 source files.
                          +    * include/nuttx/arch.h:  Add address environment control interfaces (for use
                          +      with CPUs the provide MCUs and support process-like address environments).
                          +    * arch/z80/src/z180/z180_mmu.*:  Add MMU support for z180 tasks.
                          +    * configs/p112:  Add very basic board support and an examples/ostest
                          +      configuration for the venerable P112 board.
                          +    * sched/os_bringup.c: If CONFIG_PATH_INITIAL is defined, then the initial
                          +      environment of the task started by os_bringup() will have the PATH
                          +      environment variable defined to be that string.
                          +    * binfmt/binfmt_exepath.c:  If CONFIG_BINFMT_EXEPATH is defined, then this
                          +      file will be built.  It contains logic to search for regular files at
                          +      the absolutes paths found in the current PATH environment variable
                          +      setting.  This is untested and not yet hooked into the binfmt exec()
                          +      logic on initial check-in
                          +    * binfmt/binfmt_loadmodule.c: load_module() will now traverse the PATH
                          +      variable to locate files from their relative path.
                          +    * include/nuttx/arch.h and arch/z80/src/z180/z180_mmu.c:  Restructure the
                          +      address environment interfaces so that they will better integrate with
                          +      binfmt/.
                          +    * binfmt/libelf/*, binfmt/libnxflat/* and other files:  Integrate the
                          +      address environment interfaces.  If CONFIG_ADDRENV=y, then binfmt/
                          +      will now create an address environment for new tasks (instead of
                          +      just malloc'ing the task memory).
                          +    * configs/stm32f4discovery/elf:  Enable support/test of the PATH
                          +      to find executables using a relative path.
                           
                          -NxWidgets-1.3 2012-09-29 Gregory Nutt <gnutt@nuttx.org>
                          +apps-6.24 2012-12-20 Gregory Nutt <gnutt@nuttx.org>
                           
                          -    * UnitTests/*/main.cxx:  Change entry point name to be consistent
                          -      with with entry point naming conventions introduced in NuttX
                          -      6.22.
                          -    * Kconfig:  Added a mconfig configuration file.  Eventually, NxWidgets
                          -      needs to get hooked into the NuttX mconf configuration.  Still not
                          -      exactly sure how to do that.
                          -    * libnxwidgets/Makefile and NxWidgets/nxwm/Makefile:  Need updates
                          -      for consistency with recent changes to NuttX build system (>= 6.22)
                          -    * Kconfig:  Add option to turn on the memory monitor feature of the
                          -      NxWidgets/NxWM unit tests.
                          +    * apps/examples/ostest/roundrobin.c:  Replace large tables with
                          +      algorithmic prime number generation.  This allows the roundrobin
                          +      test to run on platforms with minimal SRAM (Freddie Chopin).
                          +    * apps/nshlib/nsh_dbgcmds.c:  Add hexdump command to dump the contents
                          +      of a file (or character device) to the console  Contributed by Petteri
                          +      Aimonen.
                          +    * apps/examples/modbus:  Fixes from Freddie Chopin
                          +    * apps/examples/modbus/Kconfig: Kconfig logic for FreeModBus contributed
                          +      by Freddie Chopin.
                          +    * Makefile, */Makefile:  Various fixes for Windows native build.  Now uses
                          +      make foreach loops instead of shell loops.
                          +    * apps/examples/elf/test/*/Makefile: OSX doesn't support install -D, use
                          +      mkdir -p then install without the -D.  From Mike Smith.
                          +    * apps/examples/relays/Makefile: Reduced stack requirement (Darcy Gong).
                          +    * apps/nshlib and apps/netutils/dhcpc:  Extend the NSH ifconfig command plus
                          +      various DHCPC improvements(Darcy Gong).
                          +    * apps/nshlib/nsh_apps.c: Fix compilation errors when CONFIG_NSH_DISABLEBG=y.
                          +      From Freddie Chopin.
                          +    * Rename CONFIG_PCODE and CONFIG_FICL as CONFIG_INTERPRETERS_PCODE and
                          +      CONFIG_INTERPRETERS_FICL for consistency with other configuration naming.
                          +    * apps/examples/keypadtest:  A keypad test example contributed by Denis
                          +      Carikli.
                          +    * apps/examples/elf and nxflat:  If CONFIG_BINFMT_EXEPATH is defined, these
                          +      tests will now use a relative path to the program and expect the binfmt/
                          +      logic to find the absolute path to the program using the PATH variable.
                          +
                          +NxWidgets-1.4 2012-12-20 Gregory Nutt <gnutt@nuttx.org>
                          +
                          +    * libnxwidgets/Makefile, NxWidgets/nxwm/Makefile, and
                          +      NxWidgets/UnitTests/nxwm/Makefile:  Makefile improvements from
                          +      submitted by Petteri Aimonen.  Other Makefiles in the UnitTests
                          +      directory probably also need these changes.
                          +    * libnxwidgets/src/ccallback.cxx: Fix misplaced #endif.  Provided
                          +      by Petteri Aimonen.
                          +    * libnxwidgets/src/cnxserver.cxx:  Reduce delay to allow NX server
                          +      to start.  One second was un-necessarily long.  Reduced to 50 MS.
                          +      Reduction suggested by Petteri Aimonen.
                          +    * tools/bitmap_converter.py:  This script converts from any image type
                          +      supported by Python imaging library to the RLE-encoded format used by
                          +      NxWidgets.
                          +    * NxWidgets/nxwm/src/capplicationwindow.cxx: If the "desktop" is empty,
                          +      users have no need to minimize any windows. If the buttons are small,
                          +      it's easy to hit minimize button accidentally when trying to close an
                          +      application.  Contributed by Petteri Aimonen.
                          +    * NxWidgets/nxwm/src/ctaskbar.cxx:  Add an option to eliminate the
                          +      background image.  Contributed by Petteri Aimonen.
                          +    * NxWidgets/nxwm/src/chexcalculator.cxx and NxWidgets/nxwm/src/cstartwindow.cxx:
                          +      The config settings CONFIG_NXWM_STARTWINDOW_ICON and CONFIG_NXWM_HEXCALCULATOR_ICON
                          +      allow changing the icons used for these applications. However, to declare symbols
                          +      for these icons user would need to modify NxWidgets header files.
                          +      This commit adds a simple forward declaration to the relevant files, based on the
                          +      configured icon. If the icon does not exist, linker will give an error about it.
                          +      Contributed by Petteri Aimonen.
                          +    * NxWidgets::CTaskBar: Highlight the current window in the task bar.
                          +      Contributed by Petteri Aimonen.
                          +    * NxWidgets/libnxwidgets/src/glyph_cycle.cxx:  Width of glyph_cycle was wrong;
                          +      Destructor needs to by public.  From Petteri Aimonen.
                          +    * NxWidgets::CNumericEdit.  This is basically a label with plus and minus buttons.
                          +      Contributed by Petteri, Aimonen.
                          +    * NxWM::CStartWindow:  Fix mq_receive error handling with signal is recieved.
                          +      From Petteri Aimonen.
                          +    * NxWidgets::CNxTimer:  Replace the original (apparently non-functional) signal-
                          +      based solution with a work queue-based solution.  This raises some isses about
                          +      using the internal work queues from user space.  I have decided to implemented
                          +      user-space work queues (someday) in order to accomplish that functionaliy.
                          +      Submitted by Petteri Aimonen.
                          +    * NxWidgets:CText and NxWidgets:CNumericEdite:  Fix some memory freeing bugs
                          +      (from Petteri Aimonen).
                          +    * NxWidgets::CScrollingPanel:  Usability improvements.  It is borderless for now,
                          +      because there was no easy way to redraw only the required part of the border.
                          +      Contributed by Petteri Aimonen.
                          +    * NxWidgets::CNxWidgets and NxWM::CStartWindow: Small changes to make sub-
                          +      classing easier (from Petteri Aimonen).
                           
                           uClibc++-1.0 2011-11-05 <gnutt@nuttx.org>
                           
                          
                          From 782803e51ba117fc80d367a41f32b33a91e24949 Mon Sep 17 00:00:00 2001
                          From: patacongo 
                          Date: Fri, 21 Dec 2012 20:09:32 +0000
                          Subject: [PATCH 1081/1518] Patches from Petteri Aimonen (plus a few other
                           things)
                          
                          git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5448 42af7a65-404d-4744-a932-0658087f49c3
                          ---
                           Documentation/NuttX.html | 2 +-
                           1 file changed, 1 insertion(+), 1 deletion(-)
                          
                          diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html
                          index 5d9d3af3ba..f48994babd 100644
                          --- a/Documentation/NuttX.html
                          +++ b/Documentation/NuttX.html
                          @@ -373,7 +373,7 @@
                             

                          -

                        • May be built either as an open, flat embedded RTOS or as a separtely built, secure micro-kernel with a system call interface.
                        • +
                        • May be built either as an open, flat embedded RTOS or as a separately built, secure micro-kernel with a system call interface.
                        • From 89adfcdfe9fc53f1cd425114c048cd32dec1e900 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 23 Dec 2012 17:32:41 +0000 Subject: [PATCH 1082/1518] Mostly costmetic updates git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5452 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index f48994babd..84f298d3ac 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1078,7 +1078,6 @@ svn checkout -r5447 svn://svn.code.sf.net/p/nuttx/code/trunk nuttx-code svn checkout -r5447 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
                        -

                        Additional new features and extended functionality

                        @@ -1244,7 +1243,7 @@ svn checkout -r5447 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code This build: (1) Uses all Windows style paths, (2) Uses primarily Windows batch commands from CMD.exe, with (3) a few extensions from GNUWin32.

                        - This capability should still be considered a work in progress because: (1) it has not been verfied on all targets and tools, and (2) still lacks some of the creature-comforts of the more mature environments (like a function configure.sh script and make menuconfig support). + This capability should still be considered a work in progress because: (1) It has not been verfied on all targets and tools, and (2) it still lacks some of the creature-comforts of the more mature environments (like a functional configure.sh script and make menuconfig support).

                      • Example Windows native builds for STM32F4Discovery, eZ80, z16f, z8, Z80, and Z180. @@ -1890,8 +1889,7 @@ svn checkout -r5447 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
                      • - These ports uses a GNU arm-nuttx-elf toolchain* under either Linux or Cygwin (with native Windows GNU - tools or Cygwin-based GNU tools). + These ports uses a GNU arm-nuttx-elf toolchain* under either Linux or Cygwin (with native Windows GNU tools or Cygwin-based GNU tools).

                          @@ -1999,8 +1997,7 @@ svn checkout -r5447 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code Atmel AT91SAM3U. This port uses the Atmel SAM3U-EK development board that features the AT91SAM3U4E MCU. - This port uses a GNU arm-nuttx-elf or arm-eabi toolchain* under either Linux or Cygwin (with native Windows GNU - tools or Cygwin-based GNU tools). + This port uses a GNU arm-nuttx-elf or arm-eabi toolchain* under either Linux or Cygwin (with native Windows GNU tools or Cygwin-based GNU tools).

                            @@ -2884,7 +2881,7 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1); Zilog z16f Microncontroller. This port use the Zilog z16f2800100zcog development kit and the Zilog ZDS-II Windows command line tools. - The development environment is Cygwin under WinXP. + The development environment is either Windows native or Cygwin under Windows.

                              @@ -2914,7 +2911,7 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1);

                              Both boards are based on the eZ80F091 part and both use the Zilog ZDS-II Windows command line tools. - The development environment is Cygwin under WinXP. + The development environment is either Windows native or Cygwin under Windows.

                                @@ -2946,7 +2943,7 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1);

                              and the Zilog ZDS-II Windows command line tools. - The development environment is Cygwin under WinXP. + The development environment is either Windows native or Cygwin under Windows.

                                From 4f5690d3d6998fb19bf42d952728fb5f7d5bc68d Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 23 Dec 2012 20:22:41 +0000 Subject: [PATCH 1083/1518] Rename namedapp as simply builtin git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5454 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttShell.html | 81 ++++++++++++++++++------------------ 1 file changed, 40 insertions(+), 41 deletions(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index 0b5f7aa11b..cc3f078ddf 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -2515,7 +2515,7 @@ nsh> CONFIG_NSH_BUILTIN_APPS - Support external registered, "named" applications that can be + Support external registered, "builtin" applications that can be executed from the NSH command line (see apps/README.txt for more information). @@ -3239,48 +3239,48 @@ Builtin Apps: Note that no detailed help information beyond the name of the built-in application is provided.

                                -

                                4.3.1 Named Applications

                                +

                                4.3.1 Built-In Applications

                                Overview. - The underlying logic that supports the NSH built-in applications is called "Named Applications". - The named application logic can be found at apps/namedapp. + The underlying logic that supports the NSH built-in applications is called "Built-In Applications". + The builtin application logic can be found at apps/builtin. This logic simply does the following:

                                1. - It supports registration mechanism so that named applications can dynamically register themselves at build time, and + It supports registration mechanism so that builtin applications can dynamically register themselves at build time, and

                                2. - Utility functions to look up, list, and execute the named applications. + Utility functions to look up, list, and execute the builtin applications.

                                - Named Application Utility Functions. - The utility functions exported by the named application logic are prototyped in apps/include/apps.h. + Built-In Application Utility Functions. + The utility functions exported by the builtin application logic are prototyped in apps/include/apps.h. These utility functions include:

                                • - int namedapp_isavail(FAR const char *appname); + int builtin_isavail(FAR const char *appname); Checks for availability of application registered as appname during build time.

                                • - const char *namedapp_getname(int index); + const char *builtin_getname(int index); Returns a pointer to a name of built-in application pointed by the index. This is the utility function that is used by NSH in order to list the available built-in applications when "nsh> help" is entered.

                                • - int exec_namedapp(FAR const char *appname, FAR const char **argv); - Executes built-in named application registered during compile time. + int exec_builtin(FAR const char *appname, FAR const char **argv); + Executes built-in builtin application registered during compile time. This is the utility function used by NSH to execute the built-in application.

                                @@ -3292,23 +3292,23 @@ Builtin Apps:
                                1. - apps/namedapp/namedapp_proto.h: + apps/builtin/builtin_proto.h: Prototypes of application task entry points.

                                2. - apps/namedapp/namedapp_list.h: + apps/builtin/builtin_list.h: Application specific information and start-up requirements

                                - Registration of Named Applications. + Registration of Built-In Applications. The NuttX build occurs in several phases as different build targets are executed: (1) context when the configuration is established, (2) depend when target dependencies are generated, and (3) default (all) when the normal compilation and link operations are performed. - Named application information is collected during the make context build phase. + Built-in application information is collected during the make context build phase.

                                @@ -3376,7 +3376,7 @@ make apps_distclean

                      - Logic for the context target in apps/examples/hello/Makefile registers the hello_main() application in the namedapp's namedapp_proto.hand namedapp_list.h files. + Logic for the context target in apps/examples/hello/Makefile registers the hello_main() application in the builtin's builtin_proto.hand builtin_list.h files. That logic that does that in apps/examples/hello/Makefile is abstracted below:

                        @@ -3388,13 +3388,13 @@ make apps_distclean include $(APPDIR)/Make.defs

                    - This defines a macro called REGISTER that adds data to the namedapp header files: + This defines a macro called REGISTER that adds data to the builtin header files:

                       define REGISTER
                           @echo "Register: $1"
                      -    @echo "{ \"$1\", $2, $3, $4 }," >> "$(APPDIR)/namedapp/namedapp_list.h"
                      -    @echo "EXTERN int $4(int argc, char *argv[]);" >> "$(APPDIR)/namedapp/namedapp_proto.h"
                      +    @echo "{ \"$1\", $2, $3, $4 }," >> "$(APPDIR)/builtin/builtin_list.h"
                      +    @echo "EXTERN int $4(int argc, char *argv[]);" >> "$(APPDIR)/builtin/builtin_proto.h"
                       endef
                       

                    @@ -3412,7 +3412,7 @@ STACKSIZE = 2048

                  • - And finally, the Makefile invokes the REGISTER macro to added the hello_main() named application. + And finally, the Makefile invokes the REGISTER macro to added the hello_main() builtin application. Then, when the system build completes, the hello command can be executed from the NSH command line. When the hello command is executed, it will start the task with entry point hello_main() with the default priority and with a stack size of 2K.

                    @@ -3424,16 +3424,16 @@ STACKSIZE = 2048

                    - Other Uses of Named Application. - The primary purpose of named applications is to support command line execution of applications from NSH. - However, there are two other uses of named applications that should be mentioned. + Other Uses of Built-In Application. + The primary purpose of builtin applications is to support command line execution of applications from NSH. + However, there are two other uses of builtin applications that should be mentioned.

                    1. - Named Application Start-Up main() function. - A named application can even be used as the main, start-up entry point into your embedded software. + Built-In Application Start-Up main() function. + A builtin application can even be used as the main, start-up entry point into your embedded software. When the user defines this option in the NuttX configuration file:

                        @@ -3451,11 +3451,11 @@ CONFIG_BUILTIN_APP_START=<application name>
                         
                           
                      • binfs. - binfs is a tiny file system located at apps/namedapp/binfs.c. - This provides an alternative what of visualizing installed named applications. - Without binfs, you can see the installed named applications using the NSH help command. + binfs is a tiny file system located at apps/builtin/binfs.c. + This provides an alternative what of visualizing installed builtin applications. + Without binfs, you can see the installed builtin applications using the NSH help command. binfs will create a tiny pseudo-file system mounted at /bin. - Using binfs, you can see the available named applications by listing the contents of /bin directory. + Using binfs, you can see the available builtin applications by listing the contents of /bin directory. This gives some superficial Unix compatibility, but does not really add any new functionality.

                    @@ -3762,7 +3762,12 @@ mount -t vfat /dev/ram1 /tmp
                  • Background command priority
                  • binfs
                  • Built-In applications
                  • +
                  • Built-In application start-up main()
                  • Built-in variables
                  • +
                  • builtin_getname()
                  • +
                  • builtin_isavail()
                  • +
                  • builtin_list.h
                  • +
                  • builtin_proto.h
                  • base64dec
                  • base64enc
                  • cat
                  • @@ -3827,12 +3832,12 @@ mount -t vfat /dev/ram1 /tmp
                  • echo
                  • Environment Variables
                  • /etc/init.d/rcS -
                  • exec
                  • -
                  • exec_namedapp()
                  • -
                  • exit
                  • -
                  • free
                +
              • exec
              • +
              • exec_builtin()
              • +
              • exit
              • +
              • free
              • g_cmdmap
              • genromfs
              • get
              • @@ -3858,12 +3863,6 @@ mount -t vfat /dev/ram1 /tmp
              • mkromfsimg.sh
              • mount
              • mv
              • -
              • Named application start-up main()
              • -
              • Named applications
              • -
              • namedapp_getname()
              • -
              • namedapp_isavail()
              • -
              • namedapp_list.h
              • -
              • namedapp_proto.h
              • nfsmount
              • nice
              • NSH library (nshlib)
              • @@ -3887,7 +3886,7 @@ mount -t vfat /dev/ram1 /tmp
              • PWD
              • rcS.template
              • Re-directed commands
              • -
              • Registration of named applications
              • +
              • Registration of builtin applications
              • rm
              • rmdir
              • ROMFS, Modifying the ROMFS image
              • From 24554450fd1b3b3f5a81a8fc75bd7c3a6fd43a97 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 23 Dec 2012 22:17:09 +0000 Subject: [PATCH 1084/1518] Remove .context kludge from apps/ directory git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5455 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttShell.html | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index cc3f078ddf..7ad96da79b 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -3349,11 +3349,7 @@ int hello_main(int argc, char *argv[])

              • - And finally, the apps/examples/Makefilewill execute the context target in all configured examplesub-directores, getting us finally to apps/examples/Makefile (which is covered below).

                -
              • -

                - At the conclusion of the context phase, the apps/Makefile will touch a file called .context in the apps/ directory, preventing any further configurations during any subsequent context phase build attempts. -

                + And finally, the apps/examples/Makefile will execute the context target in all configured examplesub-directores, getting us finally to apps/examples/Makefile which is covered below.

                @@ -3417,9 +3413,8 @@ STACKSIZE = 2048 When the hello command is executed, it will start the task with entry point hello_main() with the default priority and with a stack size of 2K.

                  -.context:
                  +context:
                     $(call REGISTER,$(APPNAME),$(PRIORITY),$(STACKSIZE),$(APPNAME)_main)
                  -  @touch $@
                   
                From cceff4e3bb8242efa09d738f3d2895c82c518ef6 Mon Sep 17 00:00:00 2001 From: patacongo Date: Wed, 26 Dec 2012 18:54:59 +0000 Subject: [PATCH 1085/1518] Implement encoding the usbhost HID keyboard driver; configre olimex-lpc1766stk HID keyboard configuration to use the kconfig-frontends tool git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5461 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 148 ++++++++++++++++++++++++++- 1 file changed, 147 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 0408f82ac8..ebb3eff4bf 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -131,7 +131,8 @@ 6.3.12 PWM Drivers
                6.3.13 CAN Drivers
                6.3.14 Quadrature Encoder Drivers
                - 6.3.15 Watchdog Timer Drivers + 6.3.15 Watchdog Timer Drivers
                + 6.3.16 Keyboard/Keypad Drivers
              6.4 Power Management
                @@ -3620,6 +3621,151 @@ extern void up_ledoff(int led);
              +

              6.3.16 Keyboard/Keypad Drivers

              +

              + "Out-of-Band" Commands. + Keyboards and keypads are the same device for NuttX. + A keypad is thought of as simply a keyboard with fewer keys. + In NuttX, a keyboard/keypad driver is simply a character driver that may have an (optional) encoding/decoding layer on the data returned by the character driver. + A keyboard may return simple text data (alphabetic, numeric, and punctuaction) or control characters (enter, control-C, etc.). + We can think about this the normal "in-band" keyboard data stream. + However, in addition, most keyboards support actions that cannot be represented as text data. + Such actions include things like cursor controls (home, up arrow, page down, etc.), editing functions (insert, delete, etc.), volume controls, (mute, volume up, etc.) and other special functions. + We can think about this as special, "out-of-band" keyboard commands. + In this case, some special encoding may be required to multiplex the in-band text data and out-of-band command streams. +

              +

              + Encoding/Decoding Layer. + An optional encoding/decoding layer can be used with the basic character driver to encode the out-of-band commands into the text data stream. + The function interfaces that comprise that encoding/decoding layer are defined in the header file include/nuttx/input/kbd_code.h. + These functions provide an matched set of (a) driver encoding interfaces, and (b) application decoding interfaces. +

              +
                +
              1. +

                + Driver Encoding Interfaces. +

                +
                  +
                • +

                  + kbd_puttext() +

                  +

                  Function Prototype:

                  +
                    +#include <nuttx/streams.h>
                    +#include <nuttx/input/kbd_codec.h>
                    +void kbd_puttext(int ch, FAR struct lib_outstream_s *stream);
                    +
                  +

                  Description:

                  +
                    + Put one byte of normal, "in-band" ASCII data into the output stream. +
                  +

                  Input Pameters:

                  +
                    +
                  • + ch: The character to be added to the output stream. +
                  • +
                  • + stream: An instance of lib_outstream_s to perform the actual low-level put operation. +
                  • +
                  +

                  Returned Value:

                  +
                    + None. +
                  +
                • +
                • +

                  + kbd_putspecial() +

                  +

                  Function Prototype:

                  +
                    +#include <nuttx/streams.h>
                    +#include <nuttx/input/kbd_codec.h>
                    +void kbd_putspecial(enum kbd_keycode_e keycode, FAR struct lib_outstream_s *stream);
                    +
                  +

                  Description:

                  +
                    + Put one special, "out-of-band" command into the output stream. +
                  +

                  Input Pameters:

                  +
                    +
                  • + keycode: The command to be added to the output stream. + The enumeration enum kbd_keycode_e keycode identifies all commands known to the system. +
                  • +
                  • + stream: An instance of lib_outstream_s to perform the actual low-level put operation. +
                  • +
                  +

                  Returned Value:

                  +
                    + None. +
                  +
                • +
                +
              2. +
              3. +

                + Application Decoding Interfaces. +

                +
                  +
                • +

                  + kbd_get() +

                  +

                  Function Prototype:

                  +
                    +#include <nuttx/streams.h>
                    +#include <nuttx/input/kbd_codec.h>
                    +int kbd_get(FAR struct lib_instream_s *stream, FAR struct kbd_getstate_s *state, FAR uint8_t *pch);
                    +
                  +

                  Description:

                  +
                    + Get one byte of data or special command from the driver provided input buffer. +
                  +

                  Input Pameters:

                  +
                    +
                  • + stream: An instance of lib_instream_s to perform the actual low-level get operation. +
                  • +
                  • + pch: The location character to save the returned value. + This may be either a normal, "in-band" ASCII characer or a special, "out-of-band" command (i.e., a value from enum kbd_getstate_s. +
                  • +
                  • + state: A user provided buffer to support parsing. + This structure should be cleared the first time that kbd_get is called. +
                  • +
                  +

                  Returned Value:

                  +
                    +
                  • + 1: + Indicates the successful receipt of a special, "out-of-band" command. + The returned value in pch is a value from enum kbd_getstate_s. +
                  • +
                  • + 0: + Indicates the successful receipt of normal, "in-band" ASCII data. + The returned value in pch is a simple byte of text or control data. +
                  • +
                  • + EOF: + An error has getting the next character (reported by the stream). + Normally indicates the end of file. +
                  • +
                  +
                • +
                +
              4. +
              +

              + I/O Streams. + Notice the use of the abstract I/O streams in these interfaces. + These stream interfaces are defined in include/nuttx/streams.h. +

              +

              6.4 Power Management

              6.4.1 Overview

              From bf0e0a5151d8196b102bacf5d5c096d52c65b38c Mon Sep 17 00:00:00 2001 From: patacongo Date: Thu, 27 Dec 2012 14:01:59 +0000 Subject: [PATCH 1086/1518] Add support for key release events git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5464 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 140 +++++++++++++++++++++------ 1 file changed, 110 insertions(+), 30 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index ebb3eff4bf..e626bf7a57 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -3623,20 +3623,27 @@ extern void up_ledoff(int led);

              6.3.16 Keyboard/Keypad Drivers

              - "Out-of-Band" Commands. - Keyboards and keypads are the same device for NuttX. + Keypads vs. Keyboards + Keyboards and keypads are really the same devices for NuttX. A keypad is thought of as simply a keyboard with fewer keys. +

              +

              + Special Commands. In NuttX, a keyboard/keypad driver is simply a character driver that may have an (optional) encoding/decoding layer on the data returned by the character driver. - A keyboard may return simple text data (alphabetic, numeric, and punctuaction) or control characters (enter, control-C, etc.). - We can think about this the normal "in-band" keyboard data stream. - However, in addition, most keyboards support actions that cannot be represented as text data. + A keyboard may return simple text data (alphabetic, numeric, and punctuaction) or control characters (enter, control-C, etc.) when a key is pressed. + We can think about this the "normal" keyboard data stream. + However, in addition, most keyboards support actions that cannot be represented as text or control data. Such actions include things like cursor controls (home, up arrow, page down, etc.), editing functions (insert, delete, etc.), volume controls, (mute, volume up, etc.) and other special functions. - We can think about this as special, "out-of-band" keyboard commands. - In this case, some special encoding may be required to multiplex the in-band text data and out-of-band command streams. + In this case, some special encoding may be required to multiplex the normal text data and special command key press data streams. +

              +

              + Key Press and Release Events + Sometimes the time that a key is released is needed by applications as well. + Thus, in addition to normal and special key press events, it may also be necessary to encode normal and special key release events.

              Encoding/Decoding Layer. - An optional encoding/decoding layer can be used with the basic character driver to encode the out-of-band commands into the text data stream. + An optional encoding/decoding layer can be used with the basic character driver to encode the keyboard events into the text data stream. The function interfaces that comprise that encoding/decoding layer are defined in the header file include/nuttx/input/kbd_code.h. These functions provide an matched set of (a) driver encoding interfaces, and (b) application decoding interfaces.

              @@ -3644,21 +3651,23 @@ extern void up_ledoff(int led);
            • Driver Encoding Interfaces. + These are interfaces used by the keyboard/keypad driver to encode keyboard events and data.

              • - kbd_puttext() + kbd_press()

                Function Prototype:

                   #include <nuttx/streams.h>
                   #include <nuttx/input/kbd_codec.h>
                  -void kbd_puttext(int ch, FAR struct lib_outstream_s *stream);
                  +void kbd_press(int ch, FAR struct lib_outstream_s *stream);
                   

                Description:

                  - Put one byte of normal, "in-band" ASCII data into the output stream. + Indicates a normal key press event. + Put one byte of normal keyboard data into the output stream.

                Input Pameters:

                  @@ -3676,19 +3685,78 @@ void kbd_puttext(int ch, FAR struct lib_outstream_s *stream);
                • - kbd_putspecial() + kbd_release()

                  Function Prototype:

                     #include <nuttx/streams.h>
                     #include <nuttx/input/kbd_codec.h>
                    -void kbd_putspecial(enum kbd_keycode_e keycode, FAR struct lib_outstream_s *stream);
                    +void kbd_release(uint8_t ch, FAR struct lib_outstream_s *stream);
                     

                  Description:

                    - Put one special, "out-of-band" command into the output stream. + Encode the release of a normal key.

                  Input Pameters:

                  +
                    +
                  • + ch: The character associated with the key that was releared. +
                  • +
                  • + stream: An instance of lib_outstream_s to perform the actual low-level put operation. +
                  • +
                  +

                  Returned Value:

                  +
                    + None. +
                  +
                • +
                • +

                  + kbd_specpress() +

                  +

                  Function Prototype:

                  +
                    +#include <nuttx/streams.h>
                    +#include <nuttx/input/kbd_codec.h>
                    +void kbd_specpress(enum kbd_keycode_e keycode, FAR struct lib_outstream_s *stream);
                    +
                  +

                  Description:

                  +
                    + Denotes a special key press event. + Put one special keyboard command into the output stream. +
                  +

                  Input Pameters:

                  +
                    +
                  • + keycode: The command to be added to the output stream. + The enumeration enum kbd_keycode_e keycode identifies all commands known to the system. +
                  • +
                  • + stream: An instance of lib_outstream_s to perform the actual low-level put operation. +
                  • +
                  +

                  Returned Value:

                  +
                    + None. +
                  +
                • +
                • +

                  + kbd_specrel() +

                  +

                  Function Prototype:

                  +
                    +#include <nuttx/streams.h>
                    +#include <nuttx/input/kbd_codec.h>
                    +void kbd_specrel(enum kbd_keycode_e keycode, FAR struct lib_outstream_s *stream);
                    +
                  +

                  Description:

                  +
                    + Denotes a special key release event. + Put one special keyboard command into the output stream. +
                  +

                  Input Pameters:

                  • keycode: The command to be added to the output stream. @@ -3708,17 +3776,18 @@ void kbd_putspecial(enum kbd_keycode_e keycode, FAR struct lib_outstream_s *stre
                  • Application Decoding Interfaces. -

                    + These are user interfaces to decode the values returned by the keyboard/keypad driver. +

                    • - kbd_get() + kbd_decode()

                      Function Prototype:

                         #include <nuttx/streams.h>
                         #include <nuttx/input/kbd_codec.h>
                        -int kbd_get(FAR struct lib_instream_s *stream, FAR struct kbd_getstate_s *state, FAR uint8_t *pch);
                        +int kbd_decode(FAR struct lib_instream_s *stream, FAR struct kbd_getstate_s *state, FAR uint8_t *pch);
                         

                      Description:

                        @@ -3730,30 +3799,41 @@ int kbd_get(FAR struct lib_instream_s *stream, FAR struct kbd_getstate_s *state, stream: An instance of lib_instream_s to perform the actual low-level get operation.
                      • - pch: The location character to save the returned value. - This may be either a normal, "in-band" ASCII characer or a special, "out-of-band" command (i.e., a value from enum kbd_getstate_s. + pch: The location to save the returned value. + This may be either a normal, character code or a special command (i.e., a value from enum kbd_getstate_s.
                      • state: A user provided buffer to support parsing. - This structure should be cleared the first time that kbd_get is called. + This structure should be cleared the first time that kbd_decode() is called.

                      Returned Value:

                      • - 1: - Indicates the successful receipt of a special, "out-of-band" command. - The returned value in pch is a value from enum kbd_getstate_s. -
                      • -
                      • - 0: - Indicates the successful receipt of normal, "in-band" ASCII data. + KBD_PRESS (0): + Indicates the successful receipt of normal, keyboard data. + This corresponds to a keypress event. The returned value in pch is a simple byte of text or control data.
                      • - EOF: - An error has getting the next character (reported by the stream). - Normally indicates the end of file. + KBD_RELEASE (1): + Indicates a key release event. + The returned value in pch is the byte of text or control data corresponding to the released key. +
                      • +
                      • + KBD_SPECPRESS (2): + Indicates the successful receipt of a special keyboard command. + The returned value in pch is a value from enum kbd_getstate_s. +
                      • +
                      • + KBD_SPECREL (3): + Indicates a special command key release event. + The returned value in pch is a value from enum kbd_getstate_s. +
                      • +
                      • + KBD_ERROR (EOF): + An error has getting the next character (reported by the stream). + Normally indicates the end of file.
                    • From df7c89a69ddbded4472ccb724727a35858f6cfb6 Mon Sep 17 00:00:00 2001 From: patacongo Date: Fri, 28 Dec 2012 23:40:54 +0000 Subject: [PATCH 1087/1518] Add board support at configs/zp214xpa for the The0.net ZP213X/4XPA board with the LPC2148; Add configurations sim/nxlines. convert mcu123-lpc214x/nsh to use the kconfig-frontends. git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5465 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 84f298d3ac..dc454c0b61 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                      NuttX RTOS

                      -

                      Last Updated: December 20, 2012

                      +

                      Last Updated: December 28, 2012

                      @@ -1505,7 +1505,8 @@ svn checkout -r5447 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

                      NXP LPC214x. Support is provided for the NXP LPC214x family of processors. In particular, - support is provided for the mcu123.com lpc214x evaluation board (LPC2148). + support is provided for (1) the mcu123.com lpc214x evaluation board (LPC2148) + and (1) the The0.net ZPA213X/4XPA development board (with the The0.net UG-2864AMBAG01 OLED) This port also used the GNU arm-nuttx-elf toolchain* under Linux or Cygwin.

                        From bff4d8ee600c0284ff789a59f8e58952e1a2d816 Mon Sep 17 00:00:00 2001 From: patacongo Date: Fri, 4 Jan 2013 21:37:31 +0000 Subject: [PATCH 1088/1518] Add tools/configure.c and configure.bat git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5478 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 31 +++++++++++++++++++--------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index e626bf7a57..559253d45b 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -1263,23 +1263,23 @@ tools/ |-- Makefile.host |-- Makefile.export |-- README.txt -|-- configure.sh +|-- configure.sh / configure.bat |-- cfgparser.c |-- cfgparser.h -|-- copydir.sh -|-- define.sh -|-- incdir.sh +|-- copydir.sh / copydir.bat +|-- define.sh / define.bat +|-- incdir.sh / indir.bat |-- indent.sh -|-- link.sh +|-- link.sh / link.bat |-- mkconfig.c -|-- mkdeps.sh +|-- mkdeps.sh / mkdeps.bat |-- mkexport.sh |-- mkimage.sh |-- mknulldeps.sh |-- mkromfsimg.sh |-- mksyscall.c |-- mkversion.c -|-- unlink.sh +|-- unlink.sh / unlink.bat |-- version.sh `-- zipme.sh
                      @@ -1416,17 +1416,28 @@ netutils/

                           cd tools
                        -  ./configure.sh <board-name>[/<config-dir>]
                        +  ./configure.sh <board-name>[/<config-dir>]
                         

                      - And if configs/<board-name>/[<config-dir>/appconfig + There is an alternative Windows batch file, configure.bat, that can be used insteach of configure.sh in the windows native enironment like: +

                      +
                        +  cd tools
                        +  configure.bat <board-name>[\<config-dir>]
                        +
                      +

                      + See tools/README.txt for more information about these scripts. +

                      + +

                      + If configs/<board-name>/[<config-dir>]/appconfig exists and your application directory is not in the standard loction (../apps), then you should also specify the location of the application directory on the command line like:

                           cd tools
                        -  ./configure.sh -a <app-dir> <board-name>[/<config-dir>]
                        +  ./configure.sh -a <app-dir> <board-name>[/<config-dir>]
                         

                      From e47a801fd15b899ee06d27e37882194dea8c028a Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 5 Jan 2013 13:19:53 +0000 Subject: [PATCH 1089/1518] Correct some errors in the LPC17xx SYSCON register bit definitions (from Rommel Marcello) git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5479 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 +- Documentation/NuttxPortingGuide.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index dc454c0b61..876aa2a0ac 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                      NuttX RTOS

                      -

                      Last Updated: December 28, 2012

                      +

                      Last Updated: January 4, 2012

                      diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 559253d45b..24b4852e03 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

                      NuttX RTOS Porting Guide

                      -

                      Last Updated: December 18, 2012

                      +

                      Last Updated: January 4, 2012

                      From 50a2131b7873d13de2937091b90de1910f82b38a Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 6 Jan 2013 17:00:08 +0000 Subject: [PATCH 1090/1518] Remove CONFIG_BUILTIN_APPS_START git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5482 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttShell.html | 25 +++---------------------- 1 file changed, 3 insertions(+), 22 deletions(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index 7ad96da79b..95a75b22c5 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -3421,29 +3421,10 @@ context:

                      Other Uses of Built-In Application. The primary purpose of builtin applications is to support command line execution of applications from NSH. - However, there are two other uses of builtin applications that should be mentioned. + However, there is one other use of builtin applications that should be mentioned.

                        -
                      1. -

                        - Built-In Application Start-Up main() function. - A builtin application can even be used as the main, start-up entry point into your embedded software. - When the user defines this option in the NuttX configuration file: -

                        -
                          -CONFIG_BUILTIN_APP_START=<application name>
                          -
                        -

                        - that application will be invoked immediately after system starts instead of the default CONFIG_USER_ENTRYPOINT() entry point. - Note that <application name> must be provided just as it would have been on the NSH command line. - For example, hello would result in hello_main() being started at power-up. -

                        -

                        - This option might be useful in some develop environments where you use NSH only during the debug phase, but want to eliminate NSH in the final product. - Setting CONFIG_BUILTIN_APP_START in this way will bypass NSH and execute your application just as if it were entered from the NSH command line. -

                        -
                      2. binfs. binfs is a tiny file system located at apps/builtin/binfs.c. @@ -3452,7 +3433,8 @@ CONFIG_BUILTIN_APP_START=<application name> binfs will create a tiny pseudo-file system mounted at /bin. Using binfs, you can see the available builtin applications by listing the contents of /bin directory. This gives some superficial Unix compatibility, but does not really add any new functionality. -

                        +

                        +

                      4.3.2 Synchronous Built-In Applications

                      @@ -3770,7 +3752,6 @@ mount -t vfat /dev/ram1 /tmp
                    • Command summaries
                    • Command table
                    • Conditional command execution
                    • -
                    • CONFIG_BUILTIN_APP_START
                    • CONFIG_DISABLE_MOUNTPOINT
                    • CONFIG_FS_ROMFS
                    • CONFIG_NFILE_DESCRIPTORS
                    • From fccd51cdac5fa6f861349b98aeae56a3d75e71bb Mon Sep 17 00:00:00 2001 From: patacongo Date: Tue, 8 Jan 2013 00:04:12 +0000 Subject: [PATCH 1091/1518] Documentation update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5491 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 +- Documentation/NuttxPortingGuide.html | 2 +- Documentation/NuttxUserGuide.html | 39 +++++++++++++++++++++++++++- 3 files changed, 40 insertions(+), 3 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 876aa2a0ac..21f732c970 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                      NuttX RTOS

                      -

                      Last Updated: January 4, 2012

                      +

                      Last Updated: January 4, 2013

                      diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 24b4852e03..48fafb89f5 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

                      NuttX RTOS Porting Guide

                      -

                      Last Updated: January 4, 2012

                      +

                      Last Updated: January 4, 2013

                      diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index d9dddf9be6..5c76737e5a 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -13,7 +13,7 @@

                      NuttX Operating System

                      User's Manual

                      by

                      Gregory Nutt

                      -

                      Last Updated: November 20, 2012

                      +

                      Last Updated: January 7, 2013

                      @@ -201,6 +201,7 @@ paragraphs.
                    • 2.1.5 exit
                    • 2.1.6 task_restart
                    • 2.1.7 getpid
                    • +
                    • 2.1.8 vfork

                    2.1.1 task_create

                    @@ -613,6 +614,40 @@ level. Compatible with the POSIX interface of the same name.

                    +

                    2.1.8 vfork

                    +

                    + Function Prototype: +

                    +
                      +#include <unistd.h>
                      +pid_t vfork(void);
                      +
                    +

                    + Description: + The vfork() function has the same effect as fork(), except that the behavior is undefined if the process created by vfork() either modifies any data other than a variable of type pid_t used to store the return value from vfork(), or returns from the function in which vfork() was called, or calls any other function before successfully calling _exit() or one of the exec family of functions. +

                    +

                    + NOTE: + vfork() is not an independent NuttX feature, but is implemented in architecture-specific logic (using only helper functions from the NuttX core logic). + As a result, vfork() may not be available on all architectures. +
                    +

                    + Input Parameters: + None. +

                    +

                    + Returned Value: + Upon successful completion, vfork() returns 0 to the child process and returns + the process ID of the child process to the parent process. + Otherwise, -1 is returned to the parent, no child process is created, and errno is set to indicate the error. +

                    + Assumptions/Limitations: +

                    +

                    + POSIX Compatibility: + Compatible with the Unix interface of the same name. +

                    + @@ -536,7 +536,7 @@ @@ -1009,7 +1009,7 @@ This configuration file contains a long list of settings that control what is built into NuttX and what is not. There are hundreds of such settings - (see the NuttX Porting Guide + (see the NuttX Porting Guide for a partial list that excludes platform specific settings). These many, many configuration options allow NuttX to be highly tuned to meet size requirements. @@ -3837,7 +3837,7 @@ pascal-3.0 2011-05-15 Gregory Nutt <gnutt@nuttx.org> - + diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 0b67eddb74..fec7106b00 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

                    NuttX RTOS Porting Guide

                    -

                    Last Updated: January 12, 2013

                    +

                    Last Updated: January 13, 2013

                    @@ -6741,6 +6776,7 @@ int telldir(FAR DIR *dirp);
                       #include <unistd.h>
                       
                      +pid_t   vfork(void);
                       pid_t   getpid(void);
                       void    _exit(int status) noreturn_function;
                       unsigned int sleep(unsigned int seconds);
                      @@ -8363,6 +8399,7 @@ notify a task when a message is available on a queue.
                         
                    • unistd.h, unistd.h
                    • unlink
                    • +
                    • vfork
                    • vfprintf
                    • vprintf
                    • vsprintf
                    • From 751c4115658dfb2c6c35e077b6fc67611cf0899d Mon Sep 17 00:00:00 2001 From: patacongo Date: Tue, 8 Jan 2013 16:25:30 +0000 Subject: [PATCH 1092/1518] Add execv() and execl(); Move lm3s header files for compatibility git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5492 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxUserGuide.html | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 5c76737e5a..918b69d0fa 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -202,6 +202,8 @@ paragraphs.
                    • 2.1.6 task_restart
                    • 2.1.7 getpid
                    • 2.1.8 vfork
                    • +
                    • 2.1.9 execv
                    • +
                    • 2.1.10 execl

                    2.1.1 task_create

                    @@ -648,6 +650,9 @@ pid_t vfork(void); Compatible with the Unix interface of the same name.

                    +

                    2.1.9 execv

                    +

                    2.1.10 execl

                    +
                    @@ -6798,6 +6803,12 @@ FAR char *getcwd(FAR char *buf, size_t size); int unlink(FAR const char *pathname); int rmdir(FAR const char *pathname); + +#ifdef CONFIG_LIBC_EXECFUNCS +int execl(FAR const char *path, ...); +int execv(FAR const char *path, FAR char *const argv[]); +#endif + int getopt(int argc, FAR char *const argv[], FAR const char *optstring); @@ -8198,7 +8209,9 @@ notify a task when a message is available on a queue.
                  • Driver operations
                  • dup
                  • dup2
                  • +
                  • execl
                  • eXecute In Place (XIP)
                  • +
                  • execv
                  • exit
                  • FAT File System Support
                  • fclose
                  • @@ -8333,9 +8346,9 @@ notify a task when a message is available on a queue.
                  • ROMFS
                  • sched_getparam
                  • sched_get_priority_max
                  • +
                  • sched_get_priority_min
                  • -
                  • sched_get_priority_min
                  • sched_get_rr_interval
                  • sched_lockcount
                  • sched_lock
                  • From f571e401432c8b0281c3ac55cc33de02cd163b47 Mon Sep 17 00:00:00 2001 From: patacongo Date: Tue, 8 Jan 2013 16:51:22 +0000 Subject: [PATCH 1093/1518] Documentation update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5493 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxUserGuide.html | 129 +++++++++++++++++++++++++++++- 1 file changed, 128 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 918b69d0fa..89bc08942a 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -13,7 +13,7 @@

                    NuttX Operating System

                    User's Manual

                    by

                    Gregory Nutt

                    -

                    Last Updated: January 7, 2013

                    +

                    Last Updated: January 8, 2013

                    @@ -651,7 +651,134 @@ pid_t vfork(void);

                    2.1.9 execv

                    +

                    + Function Prototype: +

                    +
                      +#include <unistd.h>
                      +#ifdef CONFIG_LIBC_EXECFUNCS
                      +int execv(FAR const char *path, FAR char *const argv[]);
                      +#endif
                      +
                    +

                    + Description: + The standard exec family of functions will replace the current process image with a new process image. + The new image will be constructed from a regular, executable file called the new process image file. + There will be no return from a successful exec, because the calling process image is overlaid by the new process image. +

                    +

                    + Simplified execl() and execv() functions are provided by NuttX for compatibility. + NuttX is a tiny embedded RTOS that does not support processes and hence the concept of overlaying a tasks process image with a new process image does not make any sense. + In NuttX, these functions are wrapper functions that: +

                    +
                      +
                    1. + Call the non-standard binfmt function exec(), and then +
                    2. +
                    3. + exit(0). +
                    4. +
                    +

                    + Note the inefficiency when execv() or execl() is called in the normal, two-step process: + (1) first call vfork() to create a new thread, then (2) call execv() or execl() to replace the new thread with a program from the file system. + Since the new thread will be terminated by the execv() or execl() call, it really served no purpose other than to support Unix compatility. +

                    +

                    + The non-standard binfmt function exec() needs to have (1) a symbol table that provides the list of symbols exported by the base code, and (2) the number of symbols in that table. + This information is currently provided to exec() from execv() or execl() via NuttX configuration settings: +

                    +
                      +
                    • + CONFIG_LIBC_EXECFUNCS: + Enable execv() and execl() support +
                    • +
                    • + CONFIG_EXECFUNCS_SYMTAB: + Symbol table used by execv() or execl(). +
                    • +
                    • + CONFIG_EXECFUNCS_NSYMBOLS: + Number of symbols in the symbol table +
                    • +
                    +

                    + As a result of the above, the current implementations of execl() and execv() suffer from some incompatibilities that may or may not be addressed in a future version of NuttX. + Other than just being an inefficient use of MCU resource, the most serious of these is that + the exec'ed task will not have the same task ID as the vfork'ed function. + So the parent function cannot know the ID of the exec'ed task.

                    +

                    + Input Parameters: +

                    +
                      +
                    • + path: + The path to the program to be executed. + If CONFIG_BINFMT_EXEPATH is defined in the configuration, then this may be a relative path from the current working directory. + Otherwise, path must be the absolute path to the program. +
                    • +
                    • + argv: + A pointer to an array of string arguments. + The end of the array is indicated with a NULL entry. + +
                    +

                    + Returned Value: + This function does not return on success. + On failure, it will return -1 (ERROR) and will set the errno value appropriately. +

                    + Assumptions/Limitations: +

                    +

                    + POSIX Compatibility: + Similar with the Unix interface of the same name. + There are, however, several compatibility issues as detailed in the description above. +

                    +

                    2.1.10 execl

                    +

                    + Function Prototype: +

                    +
                      +#include <unistd.h>
                      +#ifdef CONFIG_LIBC_EXECFUNCS
                      +int execl(FAR const char *path, ...);
                      +#endif
                      +
                    +

                    + Description: + execl() is functionally equivalent to execv(), differing only in the form of its input parameters. + See the decription of execv() for additional information. +

                    +

                    + Input Parameters: +

                    +
                      +
                    • + path: + The path to the program to be executed. + If CONFIG_BINFMT_EXEPATH is defined in the configuration, then this may be a relative path from the current working directory. + Otherwise, path must be the absolute path to the program. +
                    • +
                    • + ...: + A list of the string arguments to be recevied by the program. + Zero indicates the end of the list. + +
                    +

                    + Returned Value: + This function does not return on success. + On failure, it will return -1 (ERROR) and will set the errno value appropriately. +

                    + Assumptions/Limitations: +

                    +

                    + POSIX Compatibility: + Similar with the Unix interface of the same name. + There are, however, several compatibility issues as detailed in the description of execv(). +

                    From fc53817aaf52d020b08d00055a41c6db2bbe58a0 Mon Sep 17 00:00:00 2001 From: patacongo Date: Wed, 9 Jan 2013 14:48:55 +0000 Subject: [PATCH 1094/1518] Rename LM3S files, variables, and types from lm3s_ to lm_; Rename configuration variables from CONFIG_LM3S_ to CONFIG_LM_ git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5497 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 48fafb89f5..b1664f3f09 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -2901,7 +2901,7 @@ extern void up_ledoff(int led);
                  • Examples: - arch/arm/src/chip/lm3s_serial.c, arch/arm/src/lpc214x/lpc214x_serial.c, arch/z16/src/z16f/z16f_serial.c, etc. + arch/arm/src/chip/lm_serial.c, arch/arm/src/lpc214x/lpc214x_serial.c, arch/z16/src/z16f/z16f_serial.c, etc.

                  • From 33da0eb1436a51f3b9a7eff9477141f1d8ad8e4d Mon Sep 17 00:00:00 2001 From: patacongo Date: Thu, 10 Jan 2013 00:45:11 +0000 Subject: [PATCH 1095/1518] Add spawn attribute logic which will eventually be needed to support posix_spawn() git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5501 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 21f732c970..f6e9a41bae 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1239,8 +1239,8 @@ svn checkout -r5447 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
                  • New top-level Makefiles: Makefile.unix and Makefile.win (along with numerous changes to other make-related files). - This adds basic support for building NuttX natively under Windows from a CMD.exe window (rather than in a POSIX-like environment). - This build: (1) Uses all Windows style paths, (2) Uses primarily Windows batch commands from CMD.exe, with (3) a few extensions from GNUWin32. + This adds basic support for building NuttX natively under from Windows console (rather than in a POSIX-like environment). + This build: (1) Uses all Windows style paths, (2) Uses primarily standard Windows batch commands with (3) a few additional commands from GNUWin32 (such as GNU make).

                    This capability should still be considered a work in progress because: (1) It has not been verfied on all targets and tools, and (2) it still lacks some of the creature-comforts of the more mature environments (like a functional configure.sh script and make menuconfig support). @@ -3202,7 +3202,7 @@ avr, m68k, m68hc11, m68hc12, m9s12, blackfin, m32c, h8, and SuperH ports.

                  • - Build support has been added to support building natively in a Windes CMD.exe rather than in a POSIX-like environment. + Build support has been added to support building natively in a Windows console rather than in a POSIX-like environment.

                    This build: @@ -3221,10 +3221,10 @@ avr, m68k, m68hc11, m68hc12, m9s12, blackfin, m32c, h8, and SuperH ports.

                    • - CMD.exe Shell. - The build must be performed in a Windows CMD.execmd shell that comes with Windows. - I prefer the ConEmu command shell which can be downloaded from: + Windows Console. + The build must be performed in a Windows console window. + This may be using the standard CMD.exe terminal that comes with Windows. + I prefer the ConEmu terminal which can be downloaded from: http://code.google.com/p/conemu-maximus5/
                    • From 4e062864b9e26c5084fa7234c5b0a279bff67105 Mon Sep 17 00:00:00 2001 From: patacongo Date: Fri, 11 Jan 2013 21:51:54 +0000 Subject: [PATCH 1096/1518] Documentation update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5512 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxUserGuide.html | 748 +++++++++++++++++++++++++++--- 1 file changed, 694 insertions(+), 54 deletions(-) diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 89bc08942a..c6eabd29a5 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -13,7 +13,7 @@

                      NuttX Operating System

                      User's Manual

                      by

                      Gregory Nutt

                      -

                      Last Updated: January 8, 2013

                      +

                      Last Updated: January 11, 2013

                    @@ -193,18 +193,52 @@ paragraphs.

                    Task Control Interfaces. The following task control interfaces are provided by NuttX:

                    +

                    + Non-standard task control interfaces inspired by VxWorks interfaces: +

                    +

                    + Standard interfaces +

                    + +

                    + Standard vfork and exec[v|l] interfaces: +

                    + +

                    + Standard posix_spawn interfaces: +

                    + +

                    2.1.1 task_create

                    @@ -472,53 +506,7 @@ STATUS taskDelete(int tid);
                  • Deletion of self is supported, but only because task_delete() will re-direct processing to exit(). -

                    2.1.5 exit

                    - -

                    -Function Prototype: -

                    -    #include <sched.h>
                    -    void exit(int code);
                    -
                    -    #include <nuttx/unistd.h>
                    -    void _exit(int code);
                    -
                    - -

                    -Description: This function causes the calling task to cease -to exist -- its stack and TCB will be deallocated. exit differs from -_exit in that it flushes streams, closes file descriptors and will -execute any function registered with atexit() or on_exit(). -

                    -Input Parameters: -

                      -
                    • code. (ignored) -
                    - -

                    -Returned Value: None. - -

                    -Assumptions/Limitations: - -

                    -POSIX Compatibility: This is equivalent to the ANSI interface: -

                    -    void exit(int code);
                    -
                    -And the UNIX interface: -
                    -    void _exit(int code);
                    -
                    - -

                    - The NuttX exit() differs from ANSI exit() in the following ways: -

                    -
                      -
                    • The code parameter is ignored. -
                    - -

                    2.1.6 task_restart

                    +

                    2.1.5 task_restart

                    Function Prototype:

                      @@ -588,6 +576,52 @@ VxWorks provides the following similar interface:
                         
                       
                    +

                    2.1.6 exit

                    + +

                    +Function Prototype: +

                    +    #include <sched.h>
                    +    void exit(int code);
                    +
                    +    #include <nuttx/unistd.h>
                    +    void _exit(int code);
                    +
                    + +

                    +Description: This function causes the calling task to cease +to exist -- its stack and TCB will be deallocated. exit differs from +_exit in that it flushes streams, closes file descriptors and will +execute any function registered with atexit() or on_exit(). +

                    +Input Parameters: +

                      +
                    • code. (ignored) +
                    + +

                    +Returned Value: None. + +

                    +Assumptions/Limitations: + +

                    +POSIX Compatibility: This is equivalent to the ANSI interface: +

                    +    void exit(int code);
                    +
                    +And the UNIX interface: +
                    +    void _exit(int code);
                    +
                    + +

                    + The NuttX exit() differs from ANSI exit() in the following ways: +

                    +
                      +
                    • The code parameter is ignored. +
                    +

                    2.1.7 getpid

                    @@ -780,6 +814,595 @@ int execl(FAR const char *path, ...); There are, however, several compatibility issues as detailed in the description of execv().

                    +

                    2.1.11 posix_spawn and posix_spawnp

                    +

                    + Function Prototype: +

                    +
                      +#include <spawn.h>
                      +int posix_spawn(FAR pid_t *pid, FAR const char *path,
                      +      FAR const posix_spawn_file_actions_t *file_actions,
                      +      FAR const posix_spawnattr_t *attr,
                      +      FAR char *const argv[], FAR char *const envp[]);
                      +int posix_spawnp(FAR pid_t *pid, FAR const char *file,
                      +      FAR const posix_spawn_file_actions_t *file_actions,
                      +      FAR const posix_spawnattr_t *attr,
                      +      FAR char *const argv[], FAR char *const envp[]);
                      +
                    +

                    + Description: + The posix_spawn() and posix_spawnp() functions will create a new, child task, constructed from a regular executable file.

                    +

                    +

                    + Input Parameters: +

                    +
                      +
                    • +

                      + pid: + Upon successful completion, posix_spawn() and posix_spawnp() will return the task ID of the child task to the parent task, in the variable pointed to by a non-NULL pid argument. + If the pid argument is a null pointer, the process ID of the child is not returned to the caller. +

                      +
                    • +
                    • +

                      + path or file: + The path argument to posix_spawn() is the absolute path that identifies the file to execute. + The file argument to posix_spawnp() may also be a relative path and will be used to construct a pathname that identifies the file to execute. + In the case of a relative path, the path prefix for the file will be obtained by a search of the directories passed as the environment variable PATH. +

                      +

                      + NOTE: NuttX provides only one implementation: + If CONFIG_BINFMT_EXEPATH is defined, then only posix_spawnp() behavior is supported; otherwise, only posix_spawn behavior is supported. +

                    • +
                    • +

                      + file_actions: + If file_actions is a null pointer, then file descriptors open in the calling process will remain open in the child process (unless CONFIG_FDCLONE_STDIO is defined). + If file_actions is not NULL, then the file descriptors open in the child process will be those open in the calling process as modified by the spawn file actions object pointed to by file_actions. +

                      +
                    • +
                    • +

                      + attr: + If the value of the attr parameter is NULL, the all default values for the POSIX spawn attributes will be used. + Otherwise, the attributes will be set according to the spawn flags. + The posix_spawnattr_t spawn attributes object type is defined in spawn.h. + It will contains these attributes, not all of which are supported by NuttX: +

                      +
                        +
                      • + POSIX_SPAWN_SETPGROUP: + Setting of the new task's process group is not supported. + NuttX does not support process groups. +
                      • +
                      • + POSIX_SPAWN_SETSCHEDPARAM: + Set new tasks priority to the sched_param value. +
                      • +
                      • + POSIX_SPAWN_SETSCHEDULER: + Set the new task's scheduler policy to the sched_policy value. +
                      • +
                      • + POSIX_SPAWN_RESETIDS + Resetting of the effective user ID of the child process is not supported. + NuttX does not support effective user IDs. +
                      • +
                      • + POSIX_SPAWN_SETSIGMASK: + Set the new task's signal mask. +
                      • +
                      • + POSIX_SPAWN_SETSIGDEF: + Resetting signal default actions is not supported. + NuttX does not support default signal actions. +
                      • +
                      +
                    • +
                    • +

                      + argv: + argv[] is the argument list for the new task. argv[] is an array of pointers to null-terminated strings. + The list is terminated with a null pointer. +

                      +
                    • +
                    • +

                      + envp: + The envp[] argument is not used by NuttX and may be NULL. + In standard implementations, envp[] is an array of character pointers to null-terminated strings that provide the environment for the new process image. + The environment array is terminated by a null pointer. + In NuttX, the envp[] argument is ignored and the new task will inherit the environment of the parent task unconditionally.

                      +
                    • +
                    +

                    + Returned Value: + posix_spawn() and posix_spawnp() will return zero on success. + Otherwise, an error number will be returned as the function return value to indicate the error: +

                    +
                      +
                    • + EINVAL: + The value specified by file_actions or attr is invalid. +
                    • +
                    • + Any errors that might have been return if vfork() and excec[l|v]() had been called. +
                    • +
                    +

                    + Assumptions/Limitations: +

                    +
                      +
                    • + NuttX provides only posix_spawn() or posix_spawnp() behavior depending upon the setting of CONFIG_BINFMT_EXEPATH: + If CONFIG_BINFMT_EXEPATH is defined, then only posix_spawnp() behavior is supported; otherwise, only posix_spawn() behavior is supported. +
                    • +
                    • + The envp argument is not used and the environ variable is not altered (NuttX does not support the environ variable). +
                    • +
                    • + Process groups are not supported (See POSIX_SPAWN_SETPGROUP above). +
                    • +
                    • + Effective user IDs are not supported (See POSIX_SPAWN_RESETIDS above). +
                    • +
                    • + Signal default actions cannot be modified in the newly task executed because NuttX does not support default signal actions (See POSIX_SPAWN_SETSIGDEF). +
                    • +
                    +

                    + POSIX Compatibility: + The value of the argv[0] received by the child task is assigned by NuttX. + For the caller of posix_spawn(), the provided argv[0] will correspond to argv[1] received by the new task. +

                    + +

                    2.1.12 posix_spawn_file_actions_init

                    +

                    + Function Prototype: +

                    +
                      +#include <spawn.h>
                      +int posix_spawn_file_actions_init(FAR posix_spawn_file_actions_t *file_actions);
                      +
                    +

                    + Description: + The posix_spawn_file_actions_init() function initializes the object referenced by file_actions to an empty set of file actions for subsequent use in a call to posix_spawn() or posix_spawnp(). +

                    +

                    + Input Parameters: +

                    +
                      +
                    • + file_actions: + The address of the posix_spawn_file_actions_t to be initialized. +
                    • +
                    +

                    + Returned Value: + On success, this function returns 0; on failure it will return an error number from <errno.h>. +

                    + +

                    2.1.13 posix_spawn_file_actions_destroy

                    +

                    + Function Prototype: +

                    +
                      +#include <spawn.h>
                      +int posix_spawn_file_actions_destroy(FAR posix_spawn_file_actions_t *file_actions);
                      +
                    +

                    + Description: + The posix_spawn_file_actions_destroy() function destroys the object referenced by file_actions which was previously intialized by posix_spawn_file_actions_init(), returning any resources obtained at the time of initialization to the system for subsequent reuse. + A posix_spawn_file_actions_t may be reinitialized after having been destroyed, but must not be reused after destruction, unless it has been reinitialized. +

                    +

                    + Input Parameters: +

                    +
                      +
                    • + file_actions: + The address of the posix_spawn_file_actions_t to be destroyed. +
                    • +
                    +

                    + Returned Value: + On success, this function returns 0; on failure it will return an error number from <errno.h> +

                    + +

                    2.1.14 posix_spawn_file_actions_addclose

                    +

                    + Function Prototype: +

                    +
                      +#include <spawn.h>
                      +int posix_spawn_file_actions_addclose(FAR posix_spawn_file_actions_t *file_actions, int fd);
                      +
                    +

                    + Description: + The posix_spawn_file_actions_addclose() function adds a close operation to the list of operations associated with the object referenced by file_actions, for subsequent use in a call to posix_spawn() or posix_spawnp(). + The descriptor referred to by fd is closed as if close() had been called on it prior to the new child process starting execution. +

                    +

                    + Input Parameters: +

                    +
                      +
                    • + file_actions: + The address of the posix_spawn_file_actions_t object to which the close operation will be appended. +
                    • +
                    • + fd: + The file descriptor to be closed. +
                    • +
                    +

                    + Returned Value: + On success, this function returns 0; on failure it will return an error number from <errno.h> +

                    + +

                    2.1.15 posix_spawn_file_actions_adddup2

                    +

                    + Function Prototype: +

                    +
                      +#include <spawn.h>
                      +int posix_spawn_file_actions_adddup2(FAR posix_spawn_file_actions_t *file_actions, int fd1, int fd2);
                      +
                    +

                    + Description: + The posix_spawn_file_actions_adddup2() function adds a dup2 operation to the list of operations associated with the object referenced by file_actions, for subsequent use in a call to posix_spawn() or posix_spawnp(). + The descriptor referred to by fd2 is created as if dup2() had been called on fd1 prior to the new child process starting execution. +

                    +

                    + Input Parameters: +

                    +
                      +
                    • + file_actions: + The address of the posix_spawn_file_actions_t object to which the dup2 operation will be appended. +
                    • +
                    • + fd1: + The file descriptor to be be duplicated. + The first file descriptor to be argument to dup2(). +
                    • +
                    • + fd2: + The file descriptor to be be created. + The second file descriptor to be argument to dup2(). +
                    • +
                    +

                    + Returned Value: + On success, this function returns 0; on failure it will return an error number from <errno.h> +

                    + +

                    2.1.16 posix_spawn_file_actions_addopen

                    +

                    + Function Prototype: +

                    +
                      +#include <spawn.h>
                      +int posix_spawn_file_actions_addopen(FAR posix_spawn_file_actions_t *file_actions,
                      +      int fd, FAR const char *path, int oflags, mode_t mode);
                      +
                    +

                    + Description: + The posix_spawn_file_actions_addopen() function adds an open operation to the list of operations associated with the object referenced by file_actions, for subsequent use in a call to posix_spawn() or posix_spawnp(). + The descriptor referred to by fd is opened using the path, oflag, and mode arguments as if open() had been called on it prior to the new child process starting execution. + The string path is copied by the posix_spawn_file_actions_addopen() function during this process, so storage need not be persistent in the caller. +

                    +

                    + Input Parameters: +

                    +
                      +
                    • + file_actions: + The address of the posix_spawn_file_actions_t object to which the open operation will be appended. +
                    • +
                    • + fd: + The file descriptor to be opened. +
                    • +
                    • + path: + The path to be opened. +
                    • +
                    • + oflags: + Open flags. +
                    • +
                    • + mode: + File creation mode/ +
                    • +
                    +

                    + Returned Value: + On success, this function returns 0; on failure it will return an error number from <errno.h> +

                    + +

                    2.1.17 posix_spawnattr_init

                    +

                    + Function Prototype: +

                    +
                      +#include <spawn.h>
                      +int posix_spawnattr_init(FAR posix_spawnattr_t *attr);
                      +
                    +

                    + Description: + The posix_spawnattr_init() function initializes the object referenced by attr, to an empty set of spawn attributes for subsequent use in a call to posix_spawn() or posix_spawnp(). +

                    +

                    + Then the spawn attributes are no longer needed, they should be destroyed by calling posix_spawnattr_destroyed(). + In NuttX, however, posix_spawnattr_destroyed() is just stub: +

                    +
                      +#define posix_spawnattr_destroy(attr) (0)
                      +
                    +

                    + For portability, the convention of calling posix_spawnattr_destroyed() when the attributes are not longer needed should still be followed. +

                    +

                    + Input Parameters: +

                    +
                      +
                    • + attr: + The address of the spawn attributes to be initialized. +
                    • +
                    +

                    + Returned Value: + On success, this function returns 0; on failure it will return an error number from <errno.h> +

                    + +

                    2.1.18 posix_spawnattr_getflags

                    +

                    + Function Prototype: +

                    +
                      +#include <spawn.h>
                      +int posix_spawnattr_getflags(FAR const posix_spawnattr_t *attr, FAR short *flags);
                      +
                    +

                    + Description: + The posix_spawnattr_getflags() function will obtain the value of the spawn-flags attribute from the attributes object referenced by attr. +

                    +

                    + Input Parameters: +

                    +
                      +
                    • + attr: + The address spawn attributes to be queried. +
                    • +
                    • + flags: + The location to return the spawn flags +
                    • +
                    +

                    + Returned Value: + On success, this function returns 0; on failure it will return an error number from <errno.h> +

                    + +

                    2.1.19 posix_spawnattr_getschedparam

                    +

                    + Function Prototype: +

                    +
                      +#include <spawn.h>
                      +int posix_spawnattr_getschedparam(FAR const posix_spawnattr_t *attr, FAR struct sched_param *param);
                      +
                    +

                    + Description: + The posix_spawnattr_getschedparam() function will obtain the value of the spawn-schedparam attribute from the attributes object referenced by attr. +

                    +

                    + Input Parameters: +

                    +
                      +
                    • + attr: + The address spawn attributes to be queried. +
                    • +
                    • + param: + The location to return the spawn-schedparam value. +
                    • +
                    +

                    + Returned Value: + On success, this function returns 0; on failure it will return an error number from <errno.h> +

                    + +

                    2.1.20 posix_spawnattr_getschedpolicy

                    +

                    + Function Prototype: +

                    +
                      +#include <spawn.h>
                      +int posix_spawnattr_getschedpolicy(FAR const posix_spawnattr_t *attr, FAR int *policy);
                      +
                    +

                    + Description: + The posix_spawnattr_getschedpolicy() function will obtain the value of the spawn-schedpolicy attribute from the attributes object referenced by attr. +

                    +

                    + Input Parameters: +

                    +
                      +
                    • + attr: + The address spawn attributes to be queried. +
                    • +
                    • + policy: + The location to return the spawn-schedpolicy value. +
                    • +
                    +

                    + Returned Value: + On success, this function returns 0; on failure it will return an error number from <errno.h> +

                    + +

                    2.1.21 posix_spawnattr_getsigmask

                    +

                    + Function Prototype: +

                    +
                      +#include <spawn.h>
                      +#ifndef CONFIG_DISABLE_SIGNALS
                      +int posix_spawnattr_getsigmask(FAR const posix_spawnattr_t *attr, FAR sigset_t *sigmask);
                      +#endif
                      +
                    +

                    + Description: + The posix_spawnattr_getsigdefault() function will obtain the value of the spawn-sigmask attribute from the attributes object referenced by attr. +

                    +

                    + Input Parameters: +

                    +
                      +
                    • + attr: + The address spawn attributes to be queried. +
                    • +
                    • + sigmask: + The location to return the spawn-sigmask value. +
                    • +
                    +

                    + Returned Value: + On success, this function returns 0; on failure it will return an error number from <errno.h> +

                    + +

                    2.1.22 posix_spawnattr_setflags

                    +

                    + Function Prototype: +

                    +
                      +#include <spawn.h>
                      +int posix_spawnattr_setflags(FAR posix_spawnattr_t *attr, short flags);
                      +
                    +

                    + Description: + The posix_spawnattr_setflags() function will set the spawn-flags attribute in an initialized attributes object referenced by attr. +

                    +

                    + Input Parameters: +

                    +
                      +
                    • + attr: + The address spawn attributes to be used. +
                    • +
                    • + flags: + The new value of the spawn-flags attribute. +
                    • +
                    +

                    + Returned Value: + On success, this function returns 0; on failure it will return an error number from <errno.h> +

                    + +

                    2.1.23 posix_spawnattr_setschedparam

                    +

                    + Function Prototype: +

                    +
                      +#include <spawn.h>
                      +int posix_spawnattr_setschedparam(FAR posix_spawnattr_t *attr, FAR const struct sched_param *param);
                      +
                    +

                    + Description: + The posix_spawnattr_setschedparam() function will set the spawn-schedparam attribute in an initialized attributes object referenced by attr. +

                    +

                    + Input Parameters: +

                    +
                      +
                    • + attr: + The address spawn attributes to be used. +
                    • +
                    • + param: + The new value of the spawn-schedparam attribute. +
                    • +
                    +

                    + Returned Value: + On success, this function returns 0; on failure it will return an error number from <errno.h> +

                    + +

                    2.1.24 posix_spawnattr_setschedpolicy

                    +

                    + Function Prototype: +

                    +
                      +#include <spawn.h>
                      +int posix_spawnattr_setschedpolicy(FAR posix_spawnattr_t *attr, int policy);
                      +
                    +

                    + Description: + The posix_spawnattr_setschedpolicy() function will set the spawn-schedpolicy attribute in an initialized attributes object referenced by attr. +

                    +

                    + Input Parameters: +

                    +
                      +
                    • + attr: + The address spawn attributes to be used. +
                    • +
                    • + policy: + The new value of the spawn-schedpolicy attribute. +
                    • +
                    +

                    + Returned Value: + On success, this function returns 0; on failure it will return an error number from <errno.h> +

                    + +

                    2.1.25 posix_spawnattr_setsigmask

                    +

                    + Function Prototype: +

                    +
                      +#include <spawn.h>
                      +#ifndef CONFIG_DISABLE_SIGNALS
                      +int posix_spawnattr_setsigmask(FAR posix_spawnattr_t *attr, FAR const sigset_t *sigmask);
                      +#endif
                      +
                    +

                    + Description: + The posix_spawnattr_setsigmask() function will set the spawn-sigmask attribute in an initialized attributes object referenced by attr. +

                    +

                    + Input Parameters: +

                    +
                      +
                    • + attr: + The address spawn attributes to be used. +
                    • +
                    • + sigmask: + The new value of the spawn-sigmask attribute. +
                    • +
                    +

                    + Returned Value: + On success, this function returns 0; on failure it will return an error number from <errno.h> +

                    + - + + -
                    @@ -8395,13 +9018,30 @@ notify a task when a message is available on a queue.
                  • on_exit
                  • open
                  • opendir
                  • -
                  • OS Interfaces
                  • pause
                  • pipe
                  • poll
                  • poll.h
                  • +
                    +
                  • posix_spawn
                  • +
                  • posix_spawn_file_actions_addclose
                  • +
                  • posix_spawn_file_actions_adddup2
                  • +
                  • posix_spawn_file_actions_addopen
                  • +
                  • posix_spawn_file_actions_destroy
                  • +
                  • posix_spawn_file_actions_init
                  • +
                  • posix_spawnattr_init
                  • +
                  • posix_spawnattr_destroy
                  • +
                  • posix_spawnattr_getflags
                  • +
                  • posix_spawnattr_getschedparam
                  • +
                  • posix_spawnattr_getschedpolicy
                  • +
                  • posix_spawnattr_getsigmask
                  • +
                  • posix_spawnattr_setflags
                  • +
                  • posix_spawnattr_setschedparam
                  • +
                  • posix_spawnattr_setschedpolicy
                  • +
                  • posix_spawnattr_setsigmask
                  • +
                  • posix_spawnp
                  • printf
                  • Pthread Interfaces
                  • pthread_attr_destroy
                  • @@ -8467,6 +9107,8 @@ notify a task when a message is available on a queue.
                  • recv
                  • recvfrom
                  • rename
                  • +
                  • rmdir
                  • rewinddir
                  • ROM disk driver
                  • @@ -8474,8 +9116,6 @@ notify a task when a message is available on a queue.
                  • sched_getparam
                  • sched_get_priority_max
                  • sched_get_priority_min
                  • -
                  • sched_get_rr_interval
                  • sched_lockcount
                  • sched_lock
                  • From d771538bc5eaa615759b2b6f9d56645fa4b05cc7 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 12 Jan 2013 19:58:45 +0000 Subject: [PATCH 1097/1518] Fix a *critical* bug in the task exit logic. Implements SIGCHILD git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5513 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 50 ++++++++++++++++++++++++---- 1 file changed, 44 insertions(+), 6 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index b1664f3f09..0b67eddb74 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

                    NuttX RTOS Porting Guide

                    -

                    Last Updated: January 4, 2013

                    +

                    Last Updated: January 12, 2013

                    @@ -4480,6 +4480,11 @@ build task name to save in the TCB. Useful if scheduler instrumentation is selected. Set to zero to disable.
                  • +
                  • + CONFIG_SCHED_HAVE_PARENT: Remember the ID of the parent thread when a new child thread is created. + This support enables a few minor features (such as SIGCHLD) and slightly increases the size of the Task Control Block (TCB) of every task to hold the ID of the parent thread. + Default: disabled. +
                  • CONFIG_SYSTEM_TIME16: The range of system time is, by default, 32-bits. @@ -4582,7 +4587,7 @@ build
                  • CONFIG_SIG_SIGWORK: The signal number that will be used to wake-up - the worker thread. Default: 4 + the worker thread. Default: 17
                  • CONFIG_SCHED_LPWORK: If CONFIG_SCHED_WORKQUEUE is defined, then a single work queue is created by default. @@ -4624,9 +4629,41 @@ build user_start.
                  • +

                    + Signal Numbers: +

                    +
                      +
                    • + CONFIG_SIG_SIGUSR1: + Value of standard user signal 1 (SIGUSR1). Default: 1 +
                    • +
                    • + CONFIG_SIG_SIGUSR2: + Value of standard user signal 2 (SIGUSR2). Default: 2 +
                    • +
                    • + CONFIG_SIG_SIGALARM: + Default the standard signal used with POSIX timers (SIGALRM). Default: 3 +
                    • +
                    • + CONFIG_SIG_SIGCHLD: + The SIGCHLD signal is sent to the parent of a child process when it exits, is interrupted (stopped), or resumes after being interrupted. + Default: 4 +
                    • +
                    • + CONFIG_SIG_SIGCONDTIMEDOUT: + This non-standard signal number is used in the implementation of pthread_cond_timedwait(). + Default 16. +
                    • +
                    • + CONFIG_SIG_SIGWORK: + SIGWORK is a non-standard signal used to wake up the internal NuttX worker thread. + Default: 17. +
                    • +

                    - Binary Loaders: + Binary Loaders:

                    • @@ -4680,7 +4717,7 @@ build

                    - System Logging: + System Logging:

                    • @@ -4737,7 +4774,7 @@ build

                    - Kernel build options: + Kernel build options:

                    • @@ -4748,7 +4785,7 @@ build

                    - OS setup related to on-demand paging: + OS setup related to on-demand paging:

                    • @@ -4906,6 +4943,7 @@ build

                    + Disabling OS Features. The following can be used to disable categories of APIs supported by the OS. If the compiler supports weak functions, then it should not be necessary to disable functions unless you want to From 79ce47264280a8e2a688dc6ded6784a5a033ed7d Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 13 Jan 2013 18:53:00 +0000 Subject: [PATCH 1098/1518] Use SIGCHLD with waitpid(); implemented wait() and waitid() git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5515 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 8 +- Documentation/NuttxPortingGuide.html | 10 +- Documentation/NuttxUserGuide.html | 181 +++++++++++++++++++++++++-- 3 files changed, 179 insertions(+), 20 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index f6e9a41bae..22651de79e 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -286,7 +286,7 @@

                  • Easily extensible to new processor architectures, SoC architecture, or board architectures. - A Porting Guide is available. + A Porting Guide is available.

                  • -

                  • Power management sub-system.
                  • +
                  • Power management sub-system.
                  • Porting GuidePorting Guide
                    @@ -4482,7 +4482,8 @@ build
                  • CONFIG_SCHED_HAVE_PARENT: Remember the ID of the parent thread when a new child thread is created. - This support enables a few minor features (such as SIGCHLD) and slightly increases the size of the Task Control Block (TCB) of every task to hold the ID of the parent thread. + This support enables some additional features (such as SIGCHLD) and modifies the behavior of other interfaces. + For example, it makes waitpid() more standards complete by restricting the waited-for tasks to the children of the caller. Default: disabled.
                  • @@ -4601,10 +4602,11 @@ build CONFIG_SCHED_LPWORKPERIOD: How often the lower priority worker thread checks for work in units of microseconds. Default: 50*1000 (50 MS).
                  • - CONFIG_SCHED_LPWORKSTACKSIZE - The stack size allocated for the lower priority worker thread. Default: CONFIG_IDLETHREAD_STACKSIZE. + CONFIG_SCHED_LPWORKSTACKSIZE: The stack size allocated for the lower priority worker thread. Default: CONFIG_IDLETHREAD_STACKSIZE.
                  • - CONFIG_SCHED_WAITPID: Enables the waitpid() API + CONFIG_SCHED_WAITPID: Enables the waitpid() interface in a default, non-standard mode (non-standard in the sense that the waited for PID need not be child of the caller). + If SCHED_HAVE_PARENT is also defined, then this setting will modify the behavior or waitpid() (making more spec compliant) and will enable the waitid() and waitp() interfaces as well.
                  • CONFIG_SCHED_ATEXIT: Enables the atexit() API diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index c6eabd29a5..3cfb63f11e 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -13,7 +13,7 @@

                    NuttX Operating System

                    User's Manual

                    by

                    Gregory Nutt

                    -

                    Last Updated: January 11, 2013

                    +

                    Last Updated: January 13, 2013

                    @@ -1776,8 +1776,10 @@ priority of the calling task is returned.

                    Task synchronization interfaces

                    2.3.1 sched_lock

                    @@ -1886,10 +1888,12 @@ on this thread of execution. Description:

                    - The following discussion is a general description of the waitpid() interface. - However, as of this writing, the implementation of waitpid() is fragmentary (but usable). - It simply supports waiting for any task to complete execution. - NuttX does not support any concept of parent/child processes or of process groups nor signals related to child processes (SIGCHLD). + The following discussion is a general description of the waitpid() interface. + However, as of this writing, the implementation of waitpid() is incomplete (but usable). + If CONFIG_SCHED_HAVE_PARENT is defined, waitpid() will be a little more compliant to specifications. + Without CONFIG_SCHED_HAVE_PARENT, waitpid() simply supports waiting for any task to complete execution. + With CONFIG_SCHED_HAVE_PARENT, waitpid() will use SIGCHLD and can, therefore, wait for any child of the parent to complete. + The implementation is incomplete in either case, however: NuttX does not support any concept of process groups. Nor does NuttX retain the status of exited tasks so if waitpid() is called after a task has exited, then no status will be available. The options argument is currently ignored.
                    @@ -2038,7 +2042,158 @@ on this thread of execution. Comparable to the POSIX interface of the same name, but the implementation is incomplete (as detailed above).

                    -

                    2.3.5 atexit

                    +

                    2.3.5 waitid

                  • +

                    +Function Prototype: +

                    +    #include <sys/wait.h>
                    +    #ifdef CONFIG_SCHED_HAVE_PARENT
                    +    int waitid(idtype_t idtype, id_t id, FAR siginfo_t *info, int options);
                    +    #endif
                    +
                    +

                    + Description: +

                    +
                    + The following discussion is a general description of the waitid() interface. + However, as of this writing, the implementation of waitid() is incomplete (but usable). + If CONFIG_SCHED_HAVE_PARENT is defined, waitid() will be a little more compliant to specifications. + waitpid() simply supports waiting a specific child task (P_PID or for any child task P_ALL to complete execution. + SIGCHLD is used. + The implementation is incomplete in either case, however: NuttX does not support any concept of process groups. + Nor does NuttX retain the status of exited tasks so if waitpid() is called after a task has exited, then no status will be available. + The options argument is currently ignored. +
                    +

                    + The waitid() function suspends the calling thread until one child of the process containing the calling thread changes state. + It records the current state of a child in the structure pointed to by info. + If a child process changed state prior to the call to waitid(), waitid() returns immediately. + If more than one thread is suspended in wait() or waitpid() waiting termination of the same process, exactly one thread will return the process status at the time of the target process termination +

                    +

                    + The idtype and id arguments are used to specify which children waitid() will wait for. +

                    +

                    +

                      +
                    • + If idtype is P_PID, waitid() will wait for the child with a process ID equal to (pid_t)id. +
                    • +
                    • + If idtype is P_PGID, waitid() will wait for any child with a process group ID equal to (pid_t)id. +
                    • +
                    • + If idtype is P_ALL, waitid() will wait for any children and id is ignored. +
                    +

                    + The options argument is used to specify which state changes waitid() will will wait for. + It is formed by OR-ing together one or more of the following flags: +

                    +
                      +
                    • + WEXITED: + Wait for processes that have exited. +
                    • +
                    • + WSTOPPED: + Status will be returned for any child that has stopped upon receipt of a signal. +
                    • +
                    • + WCONTINUES: + Status will be returned for any child that was stopped and has been continued. +
                    • +
                    • + WNOHANG: + Return immediately if there are no children to wait for. +
                    • +
                    • + WNOWAIT: + Keep the process whose status is returned in info in a waitable state. + This will not affect the state of the process; + the process may be waited for again after this call completes. +
                    • +
                    + The info argument must point to a siginfo_t structure. + If waitid() returns because a child process was found that satisfied the conditions indicated by the arguments idtype and options, then the structure pointed to by info will be filled in by the system with the status of the process. + The si_signo member will always be equal to SIGCHLD. +

                    +

                    + Input Parameters: + See the description above. +

                    +

                    + Returned Value: + If waitid() returns due to the change of state of one of its children, 0 is returned. + Otherwise, -1 is returned and errno is set to indicate the error. +

                    +

                    + The waitid() function will fail if: +

                    +
                      +
                    • + ECHILD: +
                    • + The calling process has no existing unwaited-for child processes. +
                    • + EINTR: +
                    • + The waitid() function was interrupted by a signal. +
                    • + EINVAL: + An invalid value was specified for options, or idtype and id specify an invalid set of processes. +
                    • +
                    +

                    + Assumptions/Limitations: +

                    + POSIX Compatibility: + Comparable to the POSIX interface of the same name, but the implementation is incomplete (as detailed in the description above). +

                    + +

                    2.3.6 wait

                    +

                    +Function Prototype: +

                    +    #include <sys/wait.h>
                    +    #ifdef CONFIG_SCHED_HAVE_PARENT
                    +    pid_t wait(FAR int *stat_loc);
                    +    #endif
                    +
                    +

                    + Description: +

                    +
                    + The following discussion is a general description of the wait() interface. + However, as of this writing, the implementation of wait() is incomplete (but usable). + wait() is based on waitpaid(). + See the description of waitpaid() for further information. +
                    +

                    + The wait() function will suspend execution of the calling thread until status information for one of its terminated child processes is available, or until delivery of a signal whose action is either to execute a signal-catching function or to terminate the process. + If more than one thread is suspended in wait() awaiting termination of the same process, exactly one thread will return the process status at the time of the target process termination. + If status information is available prior to the call towait(), return will be immediate. +

                    +

                    + The waitpid() function will behave identically to wait(), if its pid argument is (pid_t)-1 and the options argument is 0. + Otherwise, its behavior will be modified by the values of the pid and options arguments. +

                    +

                    + Input Parameters: +

                    +
                      +
                    • stat_loc. The location to return the exit status
                    • +
                    +

                    + Returned Value: + See the values returned by waitpaid(). +

                    +

                    + Assumptions/Limitations: +

                    + POSIX Compatibility: + Comparable to the POSIX interface of the same name, but the implementation is incomplete (as detailed in the description waitpaid()). +

                    + +

                    2.3.7 atexit

                    Function Prototype: @@ -2077,7 +2232,7 @@ on this thread of execution.

                  • atexit() functions are not inherited when a new task is created.
                  • -

                    2.3.6 on_exit

                    +

                    2.3.8 on_exit

                    Function Prototype: @@ -9023,9 +9178,9 @@ notify a task when a message is available on a queue.

                  • pipe
                  • poll
                  • poll.h
                  • +
                  • posix_spawn
                  • -
                  • posix_spawn
                  • posix_spawn_file_actions_addclose
                  • posix_spawn_file_actions_adddup2
                  • posix_spawn_file_actions_addopen
                  • @@ -9107,10 +9262,10 @@ notify a task when a message is available on a queue.
                  • recv
                  • recvfrom
                  • rename
                  • - -
                  • rmdir
                  • rewinddir
                  • + +
                  • ROM disk driver
                  • ROMFS
                  • sched_getparam
                  • @@ -9183,6 +9338,8 @@ notify a task when a message is available on a queue.
                  • vfprintf
                  • vprintf
                  • vsprintf
                  • +
                  • wait
                  • +
                  • waitid
                  • waitpid
                  • Watchdog Timer Interfaces
                  • wd_cancel
                  • From b6e867de3044fcd9c27387f3cc8484bc68f72219 Mon Sep 17 00:00:00 2001 From: patacongo Date: Tue, 15 Jan 2013 15:40:18 +0000 Subject: [PATCH 1099/1518] Implement vfork() for the MIPS32 architecture git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5520 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 22651de79e..c5f1ebc9c2 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -381,7 +381,7 @@

                    -

                  • Well documented in the NuttX User Guide.
                  • +
                  • Well documented in the NuttX User Guide.
                  • @@ -3833,7 +3833,7 @@ pascal-3.0 2011-05-15 Gregory Nutt <gnutt@nuttx.org> - User Guide + User Guide From bebf6564431fde433609c49dbd768757eb71e15b Mon Sep 17 00:00:00 2001 From: patacongo Date: Wed, 16 Jan 2013 17:05:00 +0000 Subject: [PATCH 1100/1518] Rename apps/include/apps.h to builtin.h. Move parts of apps/builtins/exec_builtin.c to binfmt/libbuiltin/libbuiltin_utils.c git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5524 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttShell.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index 95a75b22c5..273898476d 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -3261,7 +3261,7 @@ Builtin Apps:

                    Built-In Application Utility Functions. - The utility functions exported by the builtin application logic are prototyped in apps/include/apps.h. + The utility functions exported by the builtin application logic are prototyped in nuttx/include/nuttx/binfmt/builtin.h and apps/include/builtin.h. These utility functions include:

                    From b734ffb0d47534942a98194f4e33c6a5e78f3a83 Mon Sep 17 00:00:00 2001 From: patacongo Date: Wed, 16 Jan 2013 21:38:00 +0000 Subject: [PATCH 1101/1518] convert configs/sim/nsh to use kconfig-frontends git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5526 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttShell.html | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index 273898476d..950428e8af 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -2518,6 +2518,8 @@ nsh> Support external registered, "builtin" applications that can be executed from the NSH command line (see apps/README.txt for more information). + This required CONFIG_BUILTIN to enable NuttX support for + "builtin" applications. @@ -3227,8 +3229,20 @@ struct cmdmap_s

                    These applications are built-into NSH in the sense that they can be executed by simply typing the name of the application at the NSH prompt. - Built-in application support is enabled with the configuration option CONFIG_NSH_BUILTIN_APPS. - When this configuration option is set, you will also be able to see the built-in applications if you enter "nsh> help". + Built-in application support is enabled with these configuration option: +

                    +
                      +
                    • + CONFIG_BUILTIN: + Enable NuttX support for builtin applications. +
                    • +
                    • + CONFIG_NSH_BUILTIN_APPS: + Enable NSH support for builtin applications. +
                    • +
                    +

                    + When these configuration options are set, you will also be able to see the built-in applications if you enter "nsh> help". They will appear at the bottom of the list of NSH commands under:

                    From f31a1d739a3cdd72e628b7ab582ea23f4052f75a Mon Sep 17 00:00:00 2001 From: patacongo Date: Thu, 17 Jan 2013 00:30:12 +0000 Subject: [PATCH 1102/1518] Change the way thread priority is handled in binfmt/ to better match the way that priority is set up for the builtin tasks git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5527 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttXBinfmt.html | 26 +++++++++++++++++++++++--- Documentation/NuttXNxFlat.html | 2 +- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/Documentation/NuttXBinfmt.html b/Documentation/NuttXBinfmt.html index 9c9fd3a510..7528b188bc 100644 --- a/Documentation/NuttXBinfmt.html +++ b/Documentation/NuttXBinfmt.html @@ -8,7 +8,7 @@

                    NuttX Binary Loader

                    -

                    Last Updated: December 17, 2012

                    +

                    Last Updated: January 16, 2013

                    @@ -141,7 +141,7 @@ struct binary_s { /* Information provided to the loader to load and bind a module */ - FAR const char *filename; /* Full path to the binary to be loaded1 */ + FAR const char *filename; /* Full path to the binary to be loaded */ FAR const char **argv; /* Argument list */ FAR const struct symtab_s *exports; /* Table of exported symbols */ int nexports; /* The number of symbols in exports[] */ @@ -153,13 +153,33 @@ struct binary_s main_t entrypt; /* Entry point into a program module */ FAR void *mapped; /* Memory-mapped, address space */ FAR void *alloc[BINFMT_NALLOC]; /* Allocated address spaces */ + + /* Constructors/destructors */ + #ifdef CONFIG_BINFMT_CONSTRUCTORS FAR binfmt_ctor_t *ctors; /* Pointer to a list of constructors */ FAR binfmt_dtor_t *dtors; /* Pointer to a list of destructors */ uint16_t nctors; /* Number of constructors in the list */ uint16_t ndtors; /* Number of destructors in the list */ #endif + + /* Address environment. + * + * addrenv - This is the handle created by up_addrenv_create() that can be + * used to manage the tasks address space. + */ + +#ifdef CONFIG_ADDRENV + task_addrenv_t addrenv; /* Task address environment */ +#endif + size_t mapsize; /* Size of the mapped address region (needed for munmap) */ + + /* Start-up information that is provided by the loader, but may be modified + * by the caller between load_module() and exec_module() calls. + */ + + uint8_t priority; /* Task execution priority */ size_t stacksize; /* Size of the stack in bytes (unallocated) */ };
                  @@ -291,7 +311,7 @@ This is a NuttX internal function so it follows the convention that 0 (OK<

                  Function Prototype:

                     #include <:nuttx/binfmt/binfmt.h>
                    -int exec_module(FAR const struct binary_s *bin, int priority);
                    +int exec_module(FAR const struct binary_s *bin);
                     

                  Description:

                    diff --git a/Documentation/NuttXNxFlat.html b/Documentation/NuttXNxFlat.html index 3a2ed80460..ed04f7f773 100644 --- a/Documentation/NuttXNxFlat.html +++ b/Documentation/NuttXNxFlat.html @@ -668,7 +668,7 @@ cat ../syscall/syscall.csv ../libc/lib.csv | sort >tmp.csv

                  -

                  int exec_module(FAR const struct binary_s *bin, int priority) +

                  int exec_module(FAR const struct binary_s *bin)

                    Description: Execute a module that has been loaded into memory by load_module(). From 55c309f587df5d14715d931fb5209c0a65ae6e0d Mon Sep 17 00:00:00 2001 From: patacongo Date: Wed, 23 Jan 2013 22:23:46 +0000 Subject: [PATCH 1103/1518] Add logic to retain child task exit status if so configured git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5553 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 66 +++++++++++++- Documentation/NuttxUserGuide.html | 128 +++++++++++++++++++++++---- 2 files changed, 177 insertions(+), 17 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index fec7106b00..fd358f4231 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

                    NuttX RTOS Porting Guide

                    -

                    Last Updated: January 13, 2013

                    +

                    Last Updated: January 23, 2013

                    @@ -4481,11 +4481,73 @@ build instrumentation is selected. Set to zero to disable.
                  • - CONFIG_SCHED_HAVE_PARENT: Remember the ID of the parent thread when a new child thread is created. + CONFIG_SCHED_HAVE_PARENT: Remember the ID of the parent thread when a new child task is created. This support enables some additional features (such as SIGCHLD) and modifies the behavior of other interfaces. For example, it makes waitpid() more standards complete by restricting the waited-for tasks to the children of the caller. Default: disabled.
                  • +
                  • + CONFIG_SCHED_CHILD_STATUS: If this option is selected, then the exit status of the child task will be retained after the child task exits. + This option should be selected if you require knowledge of a child process' exit status. + Without this setting, wait(), waitpid() or waitid() may fail. + For example, if you do: +

                      +
                    1. + Start child task +
                    2. +
                    3. + Wait for exit status (using wait(), waitpid() or waitid()). +
                    4. +

                    +

                    + This can fail because the child task may run to completion before the wait begins. + There is a non-standard work-around in this case: + The above sequence will work if you disable pre-emption using sched_lock() prior to starting the child task, then re-enable pre-emption with sched_unlock() after the wait completes. + This works because the child task is not permitted to run until the wait is in place. +

                    +

                    + The standard solution would be to enable CONFIG_SCHED_CHILD_STATUS. + In this case the exit status of the child task is retained after the child exits and the wait will successful obtain the child task's exit status whether it is called before the child task exits or not. +

                    +

                    + Warning: + If you enable this feature, then your application must either (1) take responsibility for reaping the child status with wait(), waitpid() or waitid(), or (2) suppress retention of child status. + If you do not reap the child status, then you have a memory leak and your system will eventually fail. +

                    + Retention of child status can be suppressed on the parent using logic like: +

                    +
                      +struct sigaction sa;
                      +
                      +sa.sa_handler = SIG_IGN;
                      +sa.sa_flags = SA_NOCLDWAIT;
                      +int ret = sigaction(SIGCHLD, &sa, NULL);
                      +
                    +
                  • +
                  • + CONFIG_PREALLOC_CHILDSTATUS: To prevent runaway child status allocations and to improve + allocation performance, child task exit status structures are pre-allocated when the system boots. + This setting determines the number of child status structures that will be pre-allocated. + If this setting is not defined or if it is defined to be zero then a value of 2*MAX_TASKS is used. +

                    + Note that there cannot be more that CONFIG_MAX_TASKS tasks in total. + However, the number of child status structures may need to be significantly larger because this number includes the maximum number of tasks that are running PLUS the number of tasks that have exit'ed without having their exit status reaped (via wait(), waitpid() or waitid()). +

                    +

                    + Obviously, if tasks spawn children indefinitely and never have the exit status reaped, then you may have a memory leak! + If you enable the SCHED_CHILD_STATUS feature, then your application must take responsibility for either (1) reaping the child status with wait(), waitpid() or waitid() or it must (2) suppress retention of child status. Otherwise, your system will eventually fail. +

                    +

                    + Retention of child status can be suppressed on the parent using logic like: +

                    +
                      +struct sigaction sa;
                      +
                      +sa.sa_handler = SIG_IGN;
                      +sa.sa_flags = SA_NOCLDWAIT;
                      +int ret = sigaction(SIGCHLD, &sa, NULL);
                      +
                    +
                  • CONFIG_SYSTEM_TIME16: The range of system time is, by default, 32-bits. diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 3cfb63f11e..10e5eb7ba4 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -13,7 +13,7 @@

                    NuttX Operating System

                    User's Manual

                    by

                    Gregory Nutt

                    -

                    Last Updated: January 13, 2013

                    +

                    Last Updated: January 23, 2013

                    @@ -1767,20 +1767,114 @@ priority of the calling task is returned. -

                    Scheduler locking interfaces

                    +

                    + Task Control Interfaces. +

                    -

                    Task synchronization interfaces

                    + +

                    + Parent and Child Tasks. + The task synchronization interfaces historically depend upon parent and child relationships between tasks. + But default, NuttX does not use any parent/child knowledge. + However, there are three important configuration options that can change that. +

                      -
                    • 2.3.4 waitpid
                    • -
                    • 2.3.5 waitid
                    • -
                    • 2.3.6 wait
                    • -
                    • 2.3.7 atexit
                    • -
                    • 2.3.8 on_exit
                    • +
                    • +

                      + CONFIG_SCHED_HAVE_PARENT. + If this setting is defined, then it instructs NuttX to remember the task ID of the parent task when each new child task is created. + This support enables some additional features (such as SIGCHLD) and modifies the behavior of other interfaces. + For example, it makes waitpid() more standards complete by restricting the waited-for tasks to the children of the caller. +

                      +
                    • +
                    • +

                      + CONFIG_SCHED_CHILD_STATUS + If this option is selected, then the exit status of the child task will be retained after the child task exits. + This option should be selected if you require knowledge of a child process' exit status. + Without this setting, wait(), waitpid() or waitid() may fail. + For example, if you do: +

                      +
                        +
                      1. + Start child task +
                      2. +
                      3. + Wait for exit status (using wait(), waitpid() or waitid()). +
                      4. +
                      +

                      + This may fail because the child task may run to completion before the wait begins. + There is a non-standard work-around in this case: + The above sequence will work if you disable pre-emption using sched_lock() prior to starting the child task, then re-enable pre-emption with sched_unlock() after the wait completes. + This works because the child task is not permitted to run until the wait is in place. +

                      +

                      + The standard solution would be to enable CONFIG_SCHED_CHILD_STATUS. + In this case the exit status of the child task is retained after the child exits and the wait will successful obtain the child task's exit status whether it is called before the child task exits or not. +

                      +
                    • +
                    • +

                      + CONFIG_PREALLOC_CHILDSTATUS. + To prevent runaway child status allocations and to improve allocation performance, child task exit status structures are pre-allocated when the system boots. + This setting determines the number of child status structures that will be pre-allocated. + If this setting is not defined or if it is defined to be zero then a value of 2*MAX_TASKS is used. +

                      +

                      + Note that there cannot be more that CONFIG_MAX_TASKS tasks in total. + However, the number of child status structures may need to be significantly larger because this number includes the maximum number of tasks that are running PLUS the number of tasks that have exit'ed without having their exit status reaped (via wait(), waitpid() or waitid()). +

                      +

                      + Obviously, if tasks spawn children indefinitely and never have the exit status reaped, then you may have a memory leak! + (See Warning below) +

                      +
                    +

                    + Warning: + If you enable the CONFIG_SCHED_CHILD_STATUS feature, then your application must either (1) take responsibility for reaping the child status with wait(), waitpid() or waitid(), or (2) suppress retention of child status. + If you do not reap the child status, then you have a memory leak and your system will eventually fail. +

                    + Retention of child status can be suppressed on the parent using logic like: +

                    +
                      +struct sigaction sa;
                      +
                      +sa.sa_handler = SIG_IGN;
                      +sa.sa_flags = SA_NOCLDWAIT;
                      +int ret = sigaction(SIGCHLD, &sa, NULL);
                      +

                    2.3.1 sched_lock

                    @@ -4589,10 +4683,14 @@ sigaction(). interface of the same name. Differences from the POSIX implementation include:
                      -
                    • Special values of sa_handler in the struct sigaction act input -not handled (SIG_DFL, SIG_IGN). -
                    • All sa_flags in struct sigaction of act input are ignored -(all treated like SA_SIGINFO). +
                    • + There are no default actions so the special value SIG_DFL is treated like SIG_IGN. +
                    • +
                    • + All sa_flags in struct sigaction of act input are ignored (all treated like SA_SIGINFO). + The one exception is if CONFIG_SCHED_CHILDSTATUS is defined; + then SA_NOCLDWAIT is supported but only for SIGCHLD. +

                    2.8.7 sigprocmask

                    From dc14773361e2b496ebfe295caa9791c0d6386628 Mon Sep 17 00:00:00 2001 From: patacongo Date: Mon, 28 Jan 2013 18:45:09 +0000 Subject: [PATCH 1104/1518] Beginning of apps/system/usbmonitor (incomplete); more LM4F changes from JP git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5577 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/README.html | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/Documentation/README.html b/Documentation/README.html index 281b738b8d..44b6631888 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -278,13 +278,7 @@ | | `- README.txt | `- system/ | |- i2c/README.txt - | |- free/README.txt - | |- install/README.txt - | |- poweroff/README.txt - | |- ramtron/README.txt - | |- sdcard/README.txt - | |- sysinfo/README.txt - | `- README.txt + | `- install/README.txt `- NxWidgets |- Doxygen | `- README.txt From 1bd587bb37c10ae49952faa798ac4e341c6c123d Mon Sep 17 00:00:00 2001 From: patacongo Date: Mon, 28 Jan 2013 21:55:16 +0000 Subject: [PATCH 1105/1518] Add syslog.h; rename lib_rawprintf() to syslog() git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5578 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index fd358f4231..f2f7ada02b 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -4324,17 +4324,17 @@ build
                  • CONFIG_DEBUG: enables built-in debug options. This includes more extensive parameter checking, debug assertions, and other debug logic. - This option is also necessary (but not sufficient) to enable debug console output; - Debug console output must also be enabled on a subsystem-by-subsystem basis as described below. + This option is also necessary (but not sufficient) to enable debug syslog output; + Debug syslog output must also be enabled on a subsystem-by-subsystem basis as described below.
                  • - CONFIG_DEBUG_VERBOSE: If debug console output is enabled, the option enables more verbose debug output. + CONFIG_DEBUG_VERBOSE: If debug syslog output is enabled, the option enables more verbose debug output. Ignored if CONFIG_DEBUG is not defined. If only CONFIG_DEBUG then the only output will be errors, warnings, and critical information. - If CONFIG_DEBUG_VERBOSE is defined in addition, then general debug comments will also be included in the console output. + If CONFIG_DEBUG_VERBOSE is defined in addition, then general debug comments will also be included in the syslog output.
                  • - CONFIG_DEBUG_ENABLE: Support an interface to enable or disable debug output. + CONFIG_SYSLOG_ENABLE: Support an interface to enable or disable syslog output.
                  • CONFIG_DEBUG_SYMBOLS: build without optimization and with debug symbols (needed for use with a debugger). From 106105ac5c1deb510aadfb8845eaa92c4203c7a9 Mon Sep 17 00:00:00 2001 From: patacongo Date: Fri, 1 Feb 2013 22:37:52 +0000 Subject: [PATCH 1106/1518] Prep for 6.25 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5594 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1305 +++++++++++++++++++++++++------------- 1 file changed, 854 insertions(+), 451 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index c5f1ebc9c2..b4015bab73 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                    NuttX RTOS

                    -

                    Last Updated: January 4, 2013

                    +

                    Last Updated: February 2, 2013

                    @@ -456,6 +456,13 @@
                  • ROMFS filesystem support.
                  • + +
                    + +

                    +

                  • BINFS pseudo-filesystem support.
                  • +

                    +
                    @@ -468,6 +475,9 @@ Separately linked NXFLAT modules. NXFLAT is a binary format that can be XIP from a file system. +
                  • + "Built-In" applications.
                  • +
                • @@ -1054,311 +1064,594 @@ -

                  NuttX-6.24 Release Notes

                  +

                  nuttx-6.25 Release Notes

                  - The 91st release of NuttX, Version 6.24, was made on December 20, 2012, and is available for download from the + The 92nd release of NuttX, Version 6.25, was made on February 1, 2013, and is available for download from the SourceForge website. - Note that the release consists of two tarballs: nuttx-6.24.tar.gz and apps-6.24.tar.gz. + Note that the release consists of two tarballs: nuttx-6.25.tar.gz and apps-6.25.tar.gz. Both may be needed (see the top-level nuttx/README.txt file for build information) The change log associated with the release is available here. Unreleased changes after this release are available in SVN. These unreleased changes are also listed here.

                  - This release corresponds with SVN release number: r5447, + This release corresponds with SVN release number: r5594, Note that all SVN information has been stripped from the tarballs. If you need the SVN configuration, you should check out directly from SVN. - Revision r5447 should equivalent to release 6.24 of NuttX: + Revision r5594 should equivalent to release 6.25 of NuttX:

                    -svn checkout -r5447 svn://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
                    +svn checkout -r5594 svn://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
                     

                  Or (HTTP):

                    -svn checkout -r5447 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
                    +svn checkout -r5594 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
                     

                  Additional new features and extended functionality

                  -
                  • - RTOS: + OS Initialization

                    • - Implemented the POSIX pause() function (still has some compiance issues). + Removed support for CONFIG_BUILTIN_APP_START. + This is not really a useful feature and creates a violation of the OS layered architecture. +
                    +
                  • +
                  • +

                    + Task Creation +

                    +
                      +
                    • + Implement a simple vfork()). + In NuttX-6.25, this interface is available only for ARM7/9, ARMv7-M (Cortext-M3/4), and MIPS32 (PIC32MX) platforms.
                    • - Tasking logic is extended to support the notion of address environments. - An address environment is the key notion underlying "process" vs. tasks. - If tasks are created with address environments (by binfmt), the OS will propogate that environment to child threads and will destroy the address environment when all threads in the "process" exists. + exec() now sets the priority of the new task to the same priority as the parent task (instead of the arbirtrary value of 50).
                    • - If support for the PATH variable is enabled, the OS start up logic will create an initial environment containing the default PATH setting (CONFIG_PATH_INITIAL). - This initial PATH will then be inherited by all tasks. + New, partially complient implementations of execv() and execl(). + These are only partially compliant because they do not overlay any existing "process space" but rather create the new task and exit(). +
                    • +
                    • + Add a complete implementation of posix_spawn(). + This standard interface is a better match for an MMU-less architecture than are vfork()) plus execv() or execl(). +
                    • +
                    • + Add a task start hook that will be called before the task main executes. + This can be used, for example, to schedule C++ static constructors to run automatically in the context of the new task.
                  • - Binfmt: + Task Parentage

                    • - The NuttX binary loaders have been updated to support the PATH environment variable. - Now, if the PATH is properly defined, programs can be executed from mass storage using only the file name. - This feature is added to support more standard behavior (eventually, NSH will support execution of programs in file systems by just entering the file name, perhaps in 6.25?). + Repartitioned tasking data structures. + All shared resources are now collected together in a "task group". + A "task group" includes the resource for the original task that are shared with all of the pthreads created by the task.
                    • - The NXFLAT and ELF binary loaders have been extended to create address environments for any new tasks executed from the file system. - This feature requires that the architecture support a memory management unit (MMU) and the address environment interfaces declared in include/nuttx/arch.h (currently, this is only supported by the z180). + Added support for remember the parent "task group" when a new task is started. +
                    • +
                    • + Added optional support to record the membership of each thread in the "task group". +
                    • +
                    • + Implement support for retaining child task status in the "task group" after the child task exists. + This is behavior required by POSIX. + But in NuttX is only enabled with CONFIG_SCHED_HAVE_PARENT and CONFIG_SCHED_CHILD_STATUS. +
                    • +
                    • + Add internal logic to "reparent" a task. + This is useful, for example, where the child task is created through a trampoline task that redirects I/O. + Reparenting allows the caller of posix_spawn() to be reparented for the eventual child thread. +
                    • +
                    • + Added support for SIGCHLD. + Sent to all members of the parent "task group" when the finall member of the child task group exits. +
                    • +
                    • + If SIGCHLD and retention of child task exist status are enabled, then a more spec-compliant version of waitpid() is enabled. +
                    • +
                    • + New interfaces waitid() and wait() are also enabled when SIGCHLD is enabled.
                  • - Drivers: - LCD driver for the Univision UG-2864AMBAG01 OLED -

                  • -
                  • -

                    - STM32: - Support for STM32F100 high density chips contributed by Freddie Chopin. -

                  • -
                  • -

                    - STM32 Drivers: - Added optional RS-485 direction bit control (from Freddie Chopin). -

                  • -
                  • -

                    - STM32 Boards: + File System

                    • - Support for generic STM32F100RC board contributed by Freddie Chopin. + dup() and dup2() can new be used with opened files in a mounted file system. + This supports re-direction of output in NSH to files.
                    • - stm32f4discovery/nxlines: STM32F4Discovery support for the UG-2864AMBAG01 OLED. + The binfs file system was moved from apps/builtin to fs/binfs. + The binfs file system was extended to support execution of "builtin applications" using exec(), execv(), execl(), or posix_spawn().
                    • - stm32f4discovery/winbuild: A version of the NuttX OS test configured to build natively on Windows. -
                    • -
                    • - stm32f4discovery/elf: Now uses the PATH variable to find ELF executables. -
                    • -
                    • - configs/cloudctrl: Added for Darcy Gong's CloudController board + Added logic based on SIGCHLD to automatically unload and clean-up after running a task that was loaded into memory.
                  • - PIC32 Boards: - Update the Mirtoo configuration for Release 2 of the Mirtoo module. -

                  • -
                  • -

                    - Calypso: - Add Calypso keypad driver (from Denis Carilki). -

                  • -
                  • -

                    - ZiLOG: + Binary Formats

                    • - Add support for the z180 chip family and, specifically, for the P112 retro hardware (see http://p112.feedle.net/). + Much of the logic for "builtin applications" was moved from apps/builtin to nuttx/binfmt/libbuiltin. + Includes some extensions contributed by Mike Smith.
                    • - All ZiLOG configurations updated to use the current ZDS-II and/or SDCC toolchains. + A binary loader was added for builtin applications to support execution of "builtin applications" using exec(), execv(), execl(), or posix_spawn().
                  • - Graphics: + Drivers

                    • - Add a semaphore handshake so that operations on buffers from the NXMU client will be blocked until the NX server operates on the buffer data (from Petteri Aimonen). + Added logic to marshal and serialized "out-of-band" keyboard commands (such as cursor controls and key release events) intermixed with normal ASCII keypress data. + The encoding is partially integrated in the HID keyboard driver and the decoding is fully integrated into the apps/examples hidkbd/ and keypadtest/ (the latter contributed by Denis Carlikli).
                    • - nxtk_subwindowmove() and nxtk_getwindow(): Improvements to clipping logic from Petteri Aimonen. + Driver for the UG-2864HSWEG01 OLED contributed by Darcy Gong. +
                    • +
                    • + Add support for removable serial devices (like USB serial). + This support is enabled by CONFIG_SERIAL_REMOVABLE.
                  • - C Library: - lib/ sub-directory renamed libc/ (there is a new lib/ sub-directory that is used to hold all archives). -

                  • -
                  • -

                    - C++: - Exception stubs from Petteri Aimonen. -

                  • -
                  • -

                    - Applications: + ARMv7-M

                    • - Add NSH hexdump command to dump the contents of a file (or character device) to the console (contributed by Petteri Aimonen). -
                    • -
                    • - Extend the NSH ifconfig command plus various DHCPC improvements (from Darcy Gong). + Added an option to use the BASEPRI register to disable interrupts (instead of the PRIMASK register). + This eliminates some innocuous hardfaults that interfere with some debug tools. + You need to switch to the BASEPRI method only if you have such tool interference.
                  • - apps/examples: + STM32 Drivers

                    • - ostest: Replace large tables with algorithmic prime number generation. - This allows the roundrobin test to run on platforms with minimal SRAM (Freddie Chopin). + Bring STM32 F1 DMA capabilities up to par with the STM32 F2/F4 (contributed by Mike Smith).
                    • - keypadtest: A new keypad test example contributed by Denis Carikli. + Add support for USART single wire mode (Contributed by the PX4 team).
                    • - elf and nxflat: If CONFIG_BINFMT_EXEPATH is defined, these examples will now use a relative path to the program and expect the binfmt/ logic to find the absolute path to the program using the PATH variable. + Updates to support for SPI DMA on the STM32 F1/F2/F4. + From Petteri Aimonen.
                  • - Build system: + STM32 Boards +

                    +
                      +
                    • + New configuration to support the UG-2864HSWEG01 OLED on the STM32F4Discovery board. +
                    • +
                    • + Added a posix_spawn() test configuration for the STM32F4Discovery. +
                    • +
                    +
                  • +
                  • +

                    + LM3S/LM4F +

                    +
                      +
                    • + Files and directories repartitioned to support both LM3S and LM4F using the STM32 organization as a model. +
                    • +
                    • + Partial definitions for the LM4F contributed by Jose Pablo Carballo (this is still a work in progress). +
                    • +
                    +
                  • +
                  • +

                    + LM3S Boards +

                    +
                      +
                    • + Added scripts and documentation to use OpenOCD with the LM3S (from Jose Pablo Carballo). +
                    • +
                    +
                  • +
                  • +

                    + LPC176x/LPC178x +

                    +
                      +
                    • + Files and directories repartitioned to support both LPC175x/LPC176x and the LPC177x/LPC178x families using the STM32 organization as a model. + The LPC1788 port is a work in progress by Rommel Marcelo. +
                    • +
                    +
                  • +
                  • +

                    + LPC176x/LPC178x Boards +

                    +
                      +
                    • + Added a configuration to support the Wave Share Open1788 board. + This is still a work in progress by Rommel Marcelo. +
                    • +
                    +
                  • +
                  • +

                    + LPC2148 Boards +

                    +
                      +
                    • + Add basic support for the The0.net ZP213x/4xPA board (with the LPC2148 and the UG_2864AMBAG01 OLED). +
                    • +
                    • + Add an nxlines configuration for the ZP213x/4xPA (with the LPC2148 and the UG_2864AMBAG01). +
                    • +
                    +
                  • +
                  • +

                    + Simulator +

                    +
                      +
                    • + Add an nxlines configuration for the simulator. +
                    • +
                    +
                  • +
                  • +

                    + Networking +

                    +
                      +
                    • + Add logic to work around delayed ACKs by splitting packets (contributed by Yan T.). +
                    • +
                    • + Split net_poll() to create the internal interface psock_poll(). +
                    • +
                    +
                  • +
                  • +

                    + LCDs +

                    +
                      +
                    • + Added support for LCD1602 alphanumeric LCD (HD4468OU controller). +
                    • +
                    +
                  • +
                  • +

                    + Graphics +

                    +
                      +
                    • + Added 5x8 monospace font. + This tiny font is useful for graph labels and for small bitmapped display. + Contributed by Petteri Aimonen. +
                    • +
                    +
                  • +
                  • +

                    + Build System +

                    +
                      +
                    • + Add an options to better manage toolchain prefixes. +
                    • +
                    • + Redesigned how the context targer works in the apps/ directory. + The old design caused lots of problems when changing configurations because there is no easy way to get the system to rebuild the context. + This change should solve most the problems and eliminate questions like "Why don't I see my builtin application in NSH?" +
                    • +
                    +
                  • +
                  • +

                    + Kconfig Files

                    • - New top-level Makefiles: Makefile.unix and Makefile.win (along with numerous changes to other make-related files). - This adds basic support for building NuttX natively under from Windows console (rather than in a POSIX-like environment). - This build: (1) Uses all Windows style paths, (2) Uses primarily standard Windows batch commands with (3) a few additional commands from GNUWin32 (such as GNU make). + There are several new configurations that use the kconfig-frontends tools and several older configurations that have been converted to use these tools. + There is still a long way to go before the conversion is complete:

                      -

                      - This capability should still be considered a work in progress because: (1) It has not been verfied on all targets and tools, and (2) it still lacks some of the creature-comforts of the more mature environments (like a functional configure.sh script and make menuconfig support). -

                    • -
                    • - Example Windows native builds for STM32F4Discovery, eZ80, z16f, z8, Z80, and Z180. -
                    • -
                    • - Several configurations have been converted to work the kconfig-frontends mconf configuration tool: stm32f4discovery/nxlines, and all eZ80, z16f, z8, Z80, and Z180 configurations. -
                    • -
                    • - Architectures now include a common Toolchain.defs file that can be used to manage toolchains in a more configurable way (most of this contributed by Mike Smith). +
                        +
                      • + configs/sim/nxwm +
                      • +
                      • + configs/sim/nsh +
                      • +
                      • + configs/stm3220g-eval/nxwm +
                      • +
                      • + configs/stm32f4discovery/posix_spawn +
                      • +
                      • + configs/olimex-lpc1766stk/nsh +
                      • +
                      • + configs/olimex-lpc1766stk/hidkbd +
                      • +
                      • + configs/olimex-lpc1766stk/nettest +
                      • +
                      • + configs/open1788/ostest +
                      • +
                      • + configs/stm32f4discovery/nsh +
                      • +
                      • + configs/stm32f4discovery/usbnsh +
                      • +
                      • + configs/lm326965-ek (all configurations) +
                      • +
                      • + configs/mcu123-214x/nsh +
                      • +
                      • + configs/ubw32/ostest +
                      • +
                  • - Build tools: + Tools

                    • - Renamed tools/winlink.sh to tools/copydir.sh. + tools/kconfig.bat: Kludge to run kconfig-frontends from a DOS shell.
                    • - Several new tools/scripts to support the Windows native build: tools/mkdeps.bat, tools/mkdeps.c, tools/link.bat, tools/unlink.bat, and tools/ copydir.bat. + tools/configure.c: configure.c can be used to build a work-alike program as a replacement for configure.sh. + This work-alike program would be used in environments that do not support Bash scripting (such as the Windows native environment).
                    • - tools/incdir.sh and tools/incdir.bat now support an -s option to generate system header file paths. + tools/configure.bat: configure.bat is a small Windows batch file that can be used as a replacement for configure.sh in a Windows native environment. + configure.bat is actually just a thin layer that executes configure.exe if it is available. + If configure.exe is not available, then configure.bat will attempt to build it first (assumes the MinGW-GCC is available). +
                    • +
                    +
                  • +
                  • +

                    + Applications +

                    +
                      +
                    • + New and modified examples: +

                      +

                        +
                      • + apps/examples/wlan: Remove non-functional example. +
                      • +
                      • + apps/examples/ostest: Added a test of vfork()). + Extend signal handler test to catch death-of-child signals (SIGCHLD). + Add a test for waitpid(), waitid(), and wait(). +
                      • +
                      • + apps/exampes/posix_spawn: Added a test of posix_spawn(). +
                      • +
                      +

                    • - tools/b16.c: Fixed precision math conversion utility. + NSH: +

                      +

                        +
                      • + NSH now supports re-direction of I/O to files (but still not from). +
                      • +
                      • + The block driver source argument to the mount command is now optional for file systems that do not require a block driver. +
                      • +
                      +

                      +
                    • +
                    • + NSH can now execute a program from a file system using posix_spawn(). +
                    • +
                    • + Added support for a login script. + The init.d/rcS script will be executed once when NSH starts; + the .nshrc script will be executed for each session: + Once for a serial console, once for each USB connection, and once for each Telnet session. +
                    • +
                    • + Supports a new daemon that can be used to monitor USB trace outpout. +
                    • +
                    • + Removed non-functional wlan example.
                  -

                  Bugfixes (see the change log for details). - Some of these are very important (marked critical): + Some of these are very important:

                  • - RTOS: - Fix some backward conditional compilation in the work queue logic (Freddie Chopin). -

                  • -
                  • -

                    - File System: - Uninitialized variable caused assertions (from Lorenz Meier). -

                  • -
                  • -

                    - Drivers: - Partial fix for STM32 OTG FS device drivers and fix for short, unaligned writes in the flash translation layer (drivers/mtd/ftl.c), both from Petteri Aimonen. -

                  • -
                  • -

                    - STM32 Drivers: + Tasking

                    • - Qencoder driver and TIM3 driver fixes from Ryan Sundberg. -
                    • -
                    • - Fix timeout delay calculation in the STM32 OTG FS host driver. + Fixed a *critical* task exit bug. + Here is the failure scenario: + (1) sched_lock() is called increments the lockcount on the current TCB (i.e., the one at the head of the ready to run list), + (2) sched_mergepending() is called which may change the task at the head of the ready-to-run list, then + (3) sched_unlock() is called which decrements the lockcount on the wrong TCB. + The failure case that I saw was that pre-emption got disabled in the IDLE thread, locking up the whole system.
                  • - LPC17xx Drivers: - Resources not being properly released when I2C driver is un-initialized. -

                  • -
                  • -

                    - Graphics: + Signals

                    • - Fix logic when the mouse drags outside of the window; fix another "blocked message" handling case (both from Petteri Aimonen). -
                    • -
                    • - nxtk_filltrapwindow(): Correct an offset problem (also from Peterri Aimonen). -
                    • -
                    • - nxglib_splitline(): Correct the "fat flat line" bug. + sigtimedwait() would return a bad signal number if the signal was already pending when the function was called.
                  • - C Library: + Drivers

                    • - nrand() changes to prevent coefficients from becoming zero which would "lock up" the random number generate. -
                    • -
                    • - Add rounding functions to the math library (contributed by Petteri Aimonen). + Some SD cards will appear busy until switched to SPI mode for first time. + Having a pull-up resistor on MISO may avoid this problem, but this fix from Petteri Aimonen makes it work also without pull-up.
                  • - Build system: - Changes to MIN definitions in all limit.h header files to avoid integer overflows. - For example from (-128) to (-127 - 1) (from Petteri Aimonen). + STM32 Drivers +

                    +
                      +
                    • + STM32 FLASH driver counting error (from Freddie Chopin). +
                    • +
                    • + STM32 F4 maximum SPI frequency was wrong (corrected by Petteri Aimonen). +
                    • +
                  • - Applications: - Modbus fixes from Freddie Chopin. + STM32 Boards +

                    +
                      +
                    • + Due to cloning of untested code, the logic to control on-board LEDs did not work on any STM32 boards. +
                    • +
                    • + Serial devices number /dev/ttyS0-5 is there is a serial console, but /dev/ttyS1-6 if there is no serial console. +
                    • +
                    +
                  • +
                  • +

                    + Binary Formats +

                    +
                      +
                    • + C++ static constructors execute now using a start taskhook so that they execute in the context of the child task (instead of in the context of the parent task). +
                    • +
                    +
                  • +
                  • +

                    + File Systems +

                    +
                      +
                    • + Several FAT-related bugs fixed by Petteri Aimonen. +
                    • +
                    +
                  • +
                  • +

                    + Networking +

                    +
                      +
                    • + Fix poll/select issure reported by Qiang: poll_interrupt() must call net_lostconnection() when a loss of connection is reported. + Otherwise, the system will not remember that the connection has been lost and will hang waiting on a unconnected socket later. +
                    • +
                    • + Similar issues corrected for recvfrom() and send(). +
                    • +
                    • + Telnetd would hang in a loop if recv() ever returned a value <= 0. +
                    • +
                    +
                  • +
                  • +

                    + Libraries +

                    +
                      +
                    • + fread() could hang on certain error conditions. +
                    • +
                    • + Can't handle SYSLOG output to a character device from the IDLE task (because the IDLE task can't block). +
                    • +
                    +
                  • +
                  • +

                    + Build System +

                    +
                      +
                    • + Serial was driver was not being built if there is no console device. + Obviously, the serial driver may be needed even in this case. +
                    • +
                    +
                  • +
                  • +

                    + Additional Bugfixes +

                    +
                      +
                    • + sig_timedwait() and clock_time2ticks.c: Timing "rounding" logic +
                    • +
                    • + ARM9 Compilation issue with low vectors. +
                    • +
                    • + readline() return value +
                    • +
                    • + As well as other, less critical bugs as detailed in the ChangeLog: HID keyboard, LPC17xx bit definitions, strndup(), PL2303, SYSLOG error handling, AT25, apps/examples. +
                    • +
                  -

                  - As well as other, less critical bugs. See the ChangeLog for additional, detailed changes.

                  @@ -3432,311 +3725,421 @@ Other memory:
                    -nuttx-6.24 2012-12-20 Gregory Nutt <gnutt@nuttx.org>
                    +nuttx-6.25 2013-02-01 Gregory Nutt <gnutt@nuttx.org>
                     
                    -    * arch/arm/src/stm32:  Support for STM32F100 high density chips
                    -      added by Freddie Chopin.
                    -    * configs/stm32f100_generic:  Support for generic STM32F100RC board
                    -      contributed by Freddie Chopin.
                    -    * arch/arm/src/stm32_otgfsdev.c:  Partial fix from Petteri Aimonen.
                    -    * drivers/lcd/ug-2864ambag01.c and include/nuttx/lcd/ug_2864ambag01.h:
                    -      LCD driver for the Univision OLED of the same name (untested on
                    -      initial check-in).
                    -    * configs/stm32f4discovery/nxlines:  Configure to use mconf/Kconfig
                    -      tool.
                    -    * configs/stm32f4discovery/src/up_ug2864ambag01.c:  Board-specific
                    -      initialization for UG-2864AMBAG01 OLED connecte to STM32F4Disovery.
                    -    * libxx/libxx_stdthrow.cxx:  Exception stubs from Petteri Aimonen.
                    -    * configs/stm32f4discovery/src/up_ug2864ambag01.c: Driver has been
                    -      verified on the STM32F4Discovery platform.  Some tuning of the
                    -      configuration could improve the presentation.  Lower resolution displays
                    -      are also more subject to the "fat, flat line bug" that I need to fix
                    -      someday.  See http://www.nuttx.org/doku.php?id=wiki:graphics:nxgraphics
                    -      for a description of the fat, flat line bug.
                    -    * libc:  Renamed nuttx/lib to nuttx/libc to make space for a true lib/
                    -      directory that will be forthcoming.  Also rename libraries:  liblib.a -> libc.a,
                    -      libulib.a -> libuc.a, libklib.a -> libkc.a, liblibxx.a ->libcxx.a.
                    -      (I will probably, eventually rename libxx to libcxx for consistency)
                    -    * Makefile, lib/: A new, empty directory that will hold generated libraries.
                    -      This simplifies the library patch calculations and lets me get rid of some
                    -      bash logic.  The change is functional, but only partially complete;
                    -      additional logic is needed in the arch/*/src/Makefile's as well.  Right
                    -      now that logic generate multiple library paths, all pointing to the lib/
                    -      directory.
                    -    * arch/*/src/Makefile:  Now uses only the libraries in lib/
                    -      Replace bash fragments that test for board/Makefile.
                    -    * Makefile.win:  The beginnings of a Windows-native build.  This is just
                    -      the beginning and not yet ready for prime time use.
                    -    * configs/stm32f4discovery/winbuild:  This is a version of the standard
                    -      NuttX OS test, but configured to build natively on Windows.  Its only
                    -      real purpose is to very the native Windows build logic.
                    -    * tools/mkdeps.bat and tools/mkdeps.c:  mkdeps.bat is a failed attempt
                    -      to leverage mkdeps.sh to CMD.exe.  It fails because the are certain
                    -      critical CFLAG values that cannot be passed on the CMD.exe command line
                    -      (like '=').  mkdeps.c is a work in progress that will, hopefully,
                    -      replace both mkdeps.sh and mkdeps.bat.
                    -    * tools/Config.mk:  Centralize the definition of the script that will be
                    -      used to generated header file include paths for the compiler.  This
                    -      needs to be centralized in order to support the Windows native build.
                    -    * tools/incdir.bat:  A replacement for tools/incdir.sh for use with the
                    -      the Windows native build.
                    -    * Makefile.unix:  The existing top-level Makefile has been renamed
                    -      Makefile.unix.
                    -    * Makefile:  This is a new top-level Makefile that just includes
                    -      either Makefile.unix or Makefile.win
                    -    * configs/stm3240g-eval/src:  Qencoder fixes from Ryan Sundberg.
                    -    * arch/arm/src/stm32/stm32_qencoder.c: TIM3 bug fix from Ryan Sundberg.
                    -    * tools/mkromfsimg.sh: Correct typo in an error message (Ryan Sundberg)
                    -    * arch/*/src/Makefile:  Remove tftboot install and creation of System.map
                    -      for Windows native build.  The first is a necessary change, the second
                    -      just needs re-implemented.
                    -    * configs/mirtoo: Update Mirtoo pin definitions for Release 2.  Provided
                    -      by Konstantin Dimitrov.
                    -    * Fixed an uninitialized variable in the file system that can cause 
                    -      assertions if DEBUG on (contributed by Lorenz Meier).
                    -    * Config.mk:  Defined DELIM to be either / or \, depending upon
                    -      CONFIG_WINDOWS_NATIVE.  This will allow me to eliminate a lot of
                    -      conditional logic elsewhere.
                    -    * nuttx/graphics: One a mouse button is pressed, continue to report all
                    -      mouse button events to the first window that received the the initial
                    -      button down event, even if the mouse attempts to drag outside the
                    -      window. From Petteri Aimonen.
                    -    * nuttx/graphics/nxmu/nx_block.c:  One more fix to the NX block message
                    -      logic from Petteri Aimonen.
                    -    * include/nuttx/wqueue.h: Some basic definitions to support a user-
                    -      space work queue (someday in the future).
                    -    * graphics/nxmu:  Add semaphores so buffers messages that send buffers
                    -      will block until the buffer data has been acted upon.
                    -    * graphics/nxmw:  Extended the blocked messages to cover mouse movement
                    -      and redraw events.  These will also cause problems if sent to a window
                    -      while it is closing.
                    -    * arch/several:  Change UARTs are enabled for i.MX, LM3S, ez80, and M16C to
                    -      match how they are enabled for other architectures.
                    -    * configs/ez80f910200kitg:  Convert to use mconf configuration.
                    -    * sched/pause.c:  Implements the POSIX pause() function.
                    -    * ez80: Lots of changes to ez80 configurations and build logic as I
                    -      struggle to get a clean Windows build (still not working).
                    -    * configs/cloudctrl:   Darcy Gong's CloudController board.  This is a
                    -      small network relay development board. Based on the Shenzhou IV development
                    -      board design.  It is based on the STM32F107VC MCU.
                    -    * arch/arm/src/stm32_serial.c and stm32_lowputc.c:  Added optional RS-485
                    -      direction bit control. From Freddie Chopin.
                    -    * Lots of build files:  ARMv7-M and MIPS32 Make.defs now include a common
                    -      Toolchain.defs file that can be used to manage toolchains in a more
                    -      configurable way.  Contributed by Mike Smith
                    -    * configs/stm32f4discovery/winbuild and configs/cloudctrl:  Adapted to use
                    -      Mike's Toolchain.defs.
                    -    * tools/configure.sh:  Adapted to handle paths and setenv.bat files correctly
                    -      for native Windows builds.
                    -    * More of build files:  AVR and AVR32 Make.defs now include a common
                    -      Toolchain.defs file that can be used to manage toolchains in a more
                    -      configurable way.  Contributed by Mike Smith
                    -    * tools/incdir.sh and incdir.bat: Add -s option to generate system header
                    -      file paths.
                    -    * nuttx/arch/arm/src/arm/Toolchain.defs: Add support for more ARM toolchains
                    -      (from Mike Smith).
                    -    * arch/arm/src/stm32/stm32f40xxx_rcc.c:  Enabled FLASH prefetch (from Petteri
                    -      Aimonen).
                    -    * graphics/nxtk/nxtk_filltrapwindow.c:  Correct an offset problem (from
                    -      Peterri Aimonen).
                    -    * graphics/nxglib/nxglib_splitline.c:  Fix error in drawing of near horizontal
                    -      lines (from Peterri Aimonen).
                    -    * sched/task_exithook.c:  Missing right bracket with certain conditional
                    -      compilation (thanks James Goppert).
                    -    * arch/arm/srch/stm32/stm32_otgfshost.c:  Replace timeout handling; use
                    -      system tick instead of frame counter.  The frame counter gets reset to
                    -      zero at 0x3fff making it error prone.
                    -    * arch/arm/src/stm32/stm32f20xx_rcc.c and stm32f40xx_rcc.c: Added option
                    -      CONFIG_STM32_FLASH_PREFETCH.  FLASH prefetch will now only be enabled
                    -      if this option is selected.
                    -    * confgs/ez80f910200zco/ostest:  Now uses Kconfig/mconf configuration
                    -      tool. Updated to build in native Windows environment.  Other ez80f910200zco
                    -      build scripts also updated.
                    -    * configs/z8f64200100kit/ostest: Update to same level as ez80 configurations.
                    -    * nuttx/configs/z8f64200100kit/scripts/setenv.bat: Add support for native
                    -      Windows build.
                    -    * nuttx/arch/arm/src/lpc17xx/lpc17_i2c.c: Resources not being released when
                    -      I2C is uninitialized.
                    -    * cloudctrl/src/up_chipid.c and shenzhou/src/up_chipid.c:  Add functions to
                    -      get chip ID.  Contributed by Darcy Gong.  These should not be board-dependent,
                    -      but should be in arch/arm/src/stm32 where they can be used from any board.
                    -    * sched/work_thread.c: Fix backward conditional compilation.  This might
                    -      has caused a memory leak.  From Freddie Chopin.
                    -    * configs/<many>/Make.defs:  Fix typo -wstrict-prototypes should be
                    -      -Wstrict-prototypes (From Denis Carilki).
                    -    * arch/arm/src/calapyso/calypso_keypad.c:  Add Calypso keypad driver.  From
                    -      Denis Carilki.
                    -    * z8encore000zco/ostest and z8f64200100kit/ostest:  Converted to use Kconfig/
                    -      mconf configuration tool.
                    -    * arch/arm/src/armv7-m/up_exception.S: missing curly braces for push/pop
                    -      From Freddie Chopin.
                    -    * z8encore000zco/ostest and z8f64200100kit/ostest:  Can now be modified to
                    -      support the Windows native builds (see corresponding README.txt files).
                    -    * configs/z16f2800100zcog - All configurations updated to use the ZDS-II
                    -      5.0.1 toolchain.
                    -    * configs/z16f2800100zcog - All configurations updated to use Kconfig/mconf
                    -      configuration tools.
                    -    * configs/z16f2800100zcog/ostest - Now supports a native Windows build
                    -      (other ZNEO configs may also support the native build, but this has not
                    -      been verfiied).
                    -    * include/nuttx/input/keypad.h, arch/arm/src/calypso/calypso_keypad.c, and
                    -      configs/compal_e99/nsh_highram: First cut at a standard keypad interface
                    -      definition.  Contributed by Denis Carikli.
                    -    * libc/stdlib/lib_rand.c:  Always add one to result congruential generators
                    -      to avoid the value zero.  Suggested by Freddie Chopin.
                    -    * tools/b16.c:  Fixed precision math conversion utility.
                    -    * graphics/nxglib/nxglib_splitline.c:  Fix the "fat, flat line bug"
                    -    * arch/z80/src/*/Toolchain.defs:  Add dummy Toolchain.defs files for the
                    -      z80 family.
                    -    * configs/z80sim/ostest:  Converted to build with the Kconfig/mconf tool.
                    -      Current configuration failed to build for me (Ubuntu 12.10, SDCC 3.2.0
                    -      pre-built for Linux) due to a glibc memory corruptionerror in SDCC.
                    -    * configs/z80sim/ostest: Default is now the Windows native build.  See
                    -      configs/z80sim/README.txt for instructions to convert back to a Linux or
                    -      or Cygwin build.
                    -    * arch/z80/src/Makefile.sdccw:  Renamed makefiles with extensions zdiil,
                    -      zdiiw, sdccl, and sdccw for the ZDS-II vs SDCC compilers and for the
                    -      POSIX vs Windows native builds.
                    -    * nuttx/drivers/mtd/ftl.c:  Fix for the flash translation layer. Short
                    -      unaligned writes were buggy.  From Petteri Aimonen.
                    -    * nuttx/libc/math/lib_round*.c:  Add rounding functions to the math
                    -      library.  Contributed by Petteri Aimonen.
                    -    * include/cxx/cstdlib:  Add stroul().  From Petteri Aimonen.
                    -    * arch/*/include/limits.h:  Change signed minimum values from, for example,
                    -      (-128) to (-127 - 1) to avoid overflows under certain conditions.  From
                    -      Peterri Aimonen.
                    -    * graphics/nxtk/nxtk_subwindowmove.c: Previously it was very difficult to
                    -      do e.g. "scroll by dx, dy". When given the full window area, nxtk_subwindowmove
                    -      would clip the offset always to 0,0. It makes more sense for it to clip the
                    -      source area and not modify the offset.  From Petteri Aimonen.
                    -    * graphics/nxtk/nxtk_getwindow.c: Clipping would change the offset of returned
                    -      data, and caller has no way to know what the new offset would be. This messes
                    -      up font drawing when the text is partially out of window, e.g. when scrolling.
                    -      Also from Petteri Aimonen.
                    -    * include/stdbool.h: Can now be disabled for C++ files if CONFIG_C99_BOOL8 is
                    -      defined.  CONFIG_C99_BOOL8 indicates (1) that the sizeof(_Bool) is one in both
                    -      C and C++, and (2) the the C compiler is C99 and supports the _Bool intrinsic
                    -      type. Requested by Freddie Chopin.
                    -    * include/stdlib/lib_rand.c:  Various additional changes so that the integer
                    -      value zero can be returned.  Requested by Freddie Chopin.
                    -    * arch/z80/src/Makefile.sdcc*, z80/up_mem.h:  Redesign Z80 build so that it
                    -      no longer depends on Bash scripts.
                    -    * configs/z80sim/nsh and pashello:  Converted to (1) use the kconfig-frontends
                    -      configuration tool, and (2) to build natively under Windows.  The NSH
                    -      configuration is verified; the pashello configuration needs a more TLC.
                    -    * tools/copydir.sh:  Rename tools/winlink.sh to tools/copydir.sh
                    -    * tools/link.bat, unlink.bat, and copydir.bat:  Add Windows counterparts
                    -      to the link.sh, unlink.sh, and copydir.sh Bash scripts.
                    -    * configs/z80sim/pashello:  Now builds correctly.
                    -    * configs/xtrs/ostest, nsh, and pashello:  Converted to (1) use the kconfig-
                    -      frontends configuration tool, and (2) to build natively under Windows.
                    -    * drivers/serial/Kconfig and sched/Kconfig:  Two names for same configuration:
                    -      CONFIG_LOWLEVEL_CONSOLE is bogus and CONFIG_DEV_LOWCONSOLE is in the wrong
                    -      Kconfig file.  Moved to drivers/serial/Kconfig replacing CONFIG_LOWLEVEL_CONSOLE.
                    -    * arch/z80/include/z180:  Add header files for z180 chips.  Initial versions
                    -      are just clones of z80 header files.
                    -    * arch/z80/src/z180:  Add source files for z180 chips.  Initial versions
                    -      are just clones of z80 source files.
                    -    * include/nuttx/arch.h:  Add address environment control interfaces (for use
                    -      with CPUs the provide MCUs and support process-like address environments).
                    -    * arch/z80/src/z180/z180_mmu.*:  Add MMU support for z180 tasks.
                    -    * configs/p112:  Add very basic board support and an examples/ostest
                    -      configuration for the venerable P112 board.
                    -    * sched/os_bringup.c: If CONFIG_PATH_INITIAL is defined, then the initial
                    -      environment of the task started by os_bringup() will have the PATH
                    -      environment variable defined to be that string.
                    -    * binfmt/binfmt_exepath.c:  If CONFIG_BINFMT_EXEPATH is defined, then this
                    -      file will be built.  It contains logic to search for regular files at
                    -      the absolutes paths found in the current PATH environment variable
                    -      setting.  This is untested and not yet hooked into the binfmt exec()
                    -      logic on initial check-in
                    -    * binfmt/binfmt_loadmodule.c: load_module() will now traverse the PATH
                    -      variable to locate files from their relative path.
                    -    * include/nuttx/arch.h and arch/z80/src/z180/z180_mmu.c:  Restructure the
                    -      address environment interfaces so that they will better integrate with
                    -      binfmt/.
                    -    * binfmt/libelf/*, binfmt/libnxflat/* and other files:  Integrate the
                    -      address environment interfaces.  If CONFIG_ADDRENV=y, then binfmt/
                    -      will now create an address environment for new tasks (instead of
                    -      just malloc'ing the task memory).
                    -    * configs/stm32f4discovery/elf:  Enable support/test of the PATH
                    -      to find executables using a relative path.
                    -
                    -apps-6.24 2012-12-20 Gregory Nutt <gnutt@nuttx.org>
                    -
                    -    * apps/examples/ostest/roundrobin.c:  Replace large tables with
                    -      algorithmic prime number generation.  This allows the roundrobin
                    -      test to run on platforms with minimal SRAM (Freddie Chopin).
                    -    * apps/nshlib/nsh_dbgcmds.c:  Add hexdump command to dump the contents
                    -      of a file (or character device) to the console  Contributed by Petteri
                    +    * graphics/: Adds 5x8 monospace font. This tiny font is useful for graph
                    +      labels and for small bitmapped display.  Contributed by Petteri
                           Aimonen.
                    -    * apps/examples/modbus:  Fixes from Freddie Chopin
                    -    * apps/examples/modbus/Kconfig: Kconfig logic for FreeModBus contributed
                    -      by Freddie Chopin.
                    -    * Makefile, */Makefile:  Various fixes for Windows native build.  Now uses
                    -      make foreach loops instead of shell loops.
                    -    * apps/examples/elf/test/*/Makefile: OSX doesn't support install -D, use
                    -      mkdir -p then install without the -D.  From Mike Smith.
                    -    * apps/examples/relays/Makefile: Reduced stack requirement (Darcy Gong).
                    -    * apps/nshlib and apps/netutils/dhcpc:  Extend the NSH ifconfig command plus
                    -      various DHCPC improvements(Darcy Gong).
                    -    * apps/nshlib/nsh_apps.c: Fix compilation errors when CONFIG_NSH_DISABLEBG=y.
                    -      From Freddie Chopin.
                    -    * Rename CONFIG_PCODE and CONFIG_FICL as CONFIG_INTERPRETERS_PCODE and
                    -      CONFIG_INTERPRETERS_FICL for consistency with other configuration naming.
                    -    * apps/examples/keypadtest:  A keypad test example contributed by Denis
                    -      Carikli.
                    -    * apps/examples/elf and nxflat:  If CONFIG_BINFMT_EXEPATH is defined, these
                    -      tests will now use a relative path to the program and expect the binfmt/
                    -      logic to find the absolute path to the program using the PATH variable.
                    -
                    -NxWidgets-1.4 2012-12-20 Gregory Nutt <gnutt@nuttx.org>
                    -
                    -    * libnxwidgets/Makefile, NxWidgets/nxwm/Makefile, and
                    -      NxWidgets/UnitTests/nxwm/Makefile:  Makefile improvements from
                    -      submitted by Petteri Aimonen.  Other Makefiles in the UnitTests
                    -      directory probably also need these changes.
                    -    * libnxwidgets/src/ccallback.cxx: Fix misplaced #endif.  Provided
                    -      by Petteri Aimonen.
                    -    * libnxwidgets/src/cnxserver.cxx:  Reduce delay to allow NX server
                    -      to start.  One second was un-necessarily long.  Reduced to 50 MS.
                    -      Reduction suggested by Petteri Aimonen.
                    -    * tools/bitmap_converter.py:  This script converts from any image type
                    -      supported by Python imaging library to the RLE-encoded format used by
                    -      NxWidgets.
                    -    * NxWidgets/nxwm/src/capplicationwindow.cxx: If the "desktop" is empty,
                    -      users have no need to minimize any windows. If the buttons are small,
                    -      it's easy to hit minimize button accidentally when trying to close an
                    -      application.  Contributed by Petteri Aimonen.
                    -    * NxWidgets/nxwm/src/ctaskbar.cxx:  Add an option to eliminate the
                    -      background image.  Contributed by Petteri Aimonen.
                    -    * NxWidgets/nxwm/src/chexcalculator.cxx and NxWidgets/nxwm/src/cstartwindow.cxx:
                    -      The config settings CONFIG_NXWM_STARTWINDOW_ICON and CONFIG_NXWM_HEXCALCULATOR_ICON
                    -      allow changing the icons used for these applications. However, to declare symbols
                    -      for these icons user would need to modify NxWidgets header files.
                    -      This commit adds a simple forward declaration to the relevant files, based on the
                    -      configured icon. If the icon does not exist, linker will give an error about it.
                    -      Contributed by Petteri Aimonen.
                    -    * NxWidgets::CTaskBar: Highlight the current window in the task bar.
                    -      Contributed by Petteri Aimonen.
                    -    * NxWidgets/libnxwidgets/src/glyph_cycle.cxx:  Width of glyph_cycle was wrong;
                    -      Destructor needs to by public.  From Petteri Aimonen.
                    -    * NxWidgets::CNumericEdit.  This is basically a label with plus and minus buttons.
                    -      Contributed by Petteri, Aimonen.
                    -    * NxWM::CStartWindow:  Fix mq_receive error handling with signal is recieved.
                    +    * configs/stm3220g-eval/nxwm:  Converted to use the kconfig-frontends
                    +      configuration tool.
                    +    * configs/sim/nxwm:  Converted to use the kconfig-frontends configuration
                    +      tool.
                    +    * include/pthread.h:  In sys/prctl.h because it is needed by
                    +      pthread_[set|get]name_np()
                    +    * tools/kconfig.bat:  Kludge to run kconfig-frontends from a DOS shell.
                    +    * sched/sig_timedwait.c:  Should always move the time up to the next
                    +      largest number of system ticks.  The logic was rounding.  Noted by
                    +      Petteri Aimonen.
                    +    * arch/arm/src/up_head.S:  Fix backward conditional compilation.  NOTE
                    +      there is a issue of ARM9 systems with low vectors and large memories
                    +      that will have to be addressed in the future.
                    +    * libc/misc/lib_kbdencode.c and lib_kbddecode.c:  Add logic to marshal
                    +      and serialized "out-of-band" keyboard commands intermixed with normal
                    +      ASCII data (not yet hooked into anything).
                    +    * drivers/usbhost/usbhost_hidkbd.c:  If CONFIG_HIDKBD_ENCODED is
                    +      defined, this driver will now use libc/misc/lib_kbdencode.c to
                    +      encode special function keys.
                    +    * configs/olimex-lpc1766stk/hidkbd:  This configuration has been
                    +      converted to use the kconfig-frontends configuration tool.
                    +    * drivers/lcd/ug-2864hsweg01.c and include/nuttx/lcd/ug-2864hsweg01.h:
                    +      Driver for UG-2864HSWEG01 OLED contributed by Darcy Gong.
                    +    * configs/stm32f4discovery/src/up_ug2864hsweg01.c: Support for the
                    +      UG-2864HSWEG01 OLED for the STM32F4Discovery board.
                    +    * drivers/usbhost/usbhost_hidkbd.c:  Correct a logic error in how
                    +      tasks waiting for read data are awakened.
                    +    * libc/misc/lib_kbdencode.c and lib_kbddecode.c:  Now handles keypress
                    +      events too.  However, the USB HID keyboard driver has not yet been
                    +      updated to detect key release events.  That is kind of tricky in
                    +      the USB HID keyboard report data.
                    +    * configs/mcu123-214x/nsh:  Converted to use the kconfig-frontends
                    +      configuration tool.
                    +    * configs/zp214xpa:  Add basic support for the The0.net ZP213x/4xPA
                    +      board (with the LPC2148 and the UG_2864AMBAG01).
                    +    * configs/sim/nxlines:  Add an nxlines configuration for the
                    +      simulator.
                    +    * configs/zp214xpa/nxlines:  Add an nxlines configuration for the
                    +      ZP213x/4xPA (with the LPC2148 and the UG_2864AMBAG01).  Working
                    +      as of 2012-12-30.
                    +    * configs/olimex-lpc1766stk/wlan:  Remove non-functional
                    +      configuration.
                    +    * configs/stm32f4discovery/src and nuttx/drivers/lcd/ug-2864hsweg01.c:
                    +      Updates and correctinos for the UG-2864HSWEG01 from Darcy Gong.
                    +    * configs/lm326965-ek:  All configurations converted to use the
                    +      kconfig-frontends configuration tool.
                    +    * configs/Kconfig: NSH_MMCSDSPIPORTNO should depend on MMCSD_SPI,
                    +      not just SPI (from Jose Pablo Carballo).
                    +    * arch/arm/src/arm/Kconfig and armv7m/Kconfig:  Add an option for
                    +      buildroot toolchains:  They may be EABI or OABI.
                    +    * include/nuttx/progmem and arch/arm/src/stm32/stm32_flash.c:
                    +      Fix a counting bug plus change interface to use either relative
                    +      or absolute FLASH addressing (from Freddie Chopin).
                    +    * libc/misc/Make.defs:  Fix error in conditional for KBD CODEC.
                    +    * libc/Kconfig and configs/*/defconfig (several):  The default
                    +      setting should be CONFIG_LIB_KBDCODEC=n
                    +    * tools/configure.c:  configure.c can be used to build a work-alike
                    +      program as a replacement for configure.sh.  This work-alike
                    +      program would be used in environments that do not support Bash
                    +      scripting (such as the Windows native environment).
                    +    * tools/configure.bat: configure.bat is a small Windows batch
                    +      file that can be used as a replacement for configure.sh in a
                    +      Windows native environment.  configure.bat is actually just a
                    +      thin layer that executes configure.exe if it is available. If
                    +      configure.exe is not available, then configure.bat will attempt
                    +      to build it first.
                    +    * arch/arm/src/lpc17xx/lpc17_syscon.h:  Correct some typos in bit
                    +      definitions (from Rommel Marcelo).
                    +    * libc/string/lib_strndup.c: strndup() should use strnlen(), not
                    +      strlen(), to determine the size of the string.
                    +    * sched/os_bringup.c:  Remove support for CONFIG_BUILTIN_APP_START.
                    +      This is not really a useful feature and creates a violation of the
                    +      OS layered architecture.
                    +    * include/unistd.h, arch/arch/src/*:  Implement a simple vfork().
                    +      On initial checkin, this API is available only for ARM platforms.
                    +    * binfmt/binfmt_exec.c: exec() now sets the priority of the new task
                    +      to the same priority as the current task (instead of the arbirtrary
                    +      value of 50).
                    +    * libc/unisted/lib_execv.c and lib_execl.c:  New, somewhat flawed,
                    +      implementations of execv() and execl().
                    +    * tools/cfgdefine.c:  Strips quotes from CONFIG_EXECFUNCS_SYMTAB
                    +      value.
                    +    * arch/arm/include/lm3s/chip.h:  Move chip definitions into
                    +      public include area for compatibility with other architectures.
                    +    * arch/arm/src/lm3s/chip:  Move register definition header files
                    +      into a new chip/ sub-directory.
                    +    * arch/arm/src/lm3s/lm3s_internal.h:  Broke up into several
                    +      smaller header files.
                    +    * arch/arm/src/lm:  Rename the arch/arm/src/lm3s directory to
                    +      arch/arm/src/lm so that is can support other members of the
                    +      Stellaris family.
                    +    * libc/spawn:  Add file action interfaces needed by posix_spawn().
                    +    * sched/clock_time2ticks.c:  Another case where time was being
                    +      rounded down instead of up (from Mike Smith).
                    +    * libc/spawn:  Implementation of posix_spawn() is complete but
                    +      untested and undocumented.
                    +    * drivers/usbdev/pl2303.c:  Fix typols in the PL2303 driver
                    +      (from Max Holtzberg).
                    +    * configs/stm32f4discovery/posix_spawn:  Added a configuration
                    +      that can be used for testing posix_spawn().
                    +    * arch/arm/src/stm32: Bring F1 support for general DMA and serial
                    +      DMA in paricular up to parity with F2/F4 (from Mike Smith).
                    +    * libc/stdio/lib_libfread.c:  Correct some error handling when
                    +      lib_fread() was passed a bad stream.  Needed to move the
                    +      releasing of a semaphore inside of some conditional logic
                    +      (cosmetic).
                    +    * include/nuttx/sched.h, sched/task_setup.c, and sched/task_exithook.c:
                    +      Add support for remembering the parent task and sending
                    +      SIGCHLD to the parent when the task exists.
                    +    * sched/task_exithook.c:  Fixed a *critical* bug.  Here is
                    +      the scenario: (1) sched_lock() is called increments the lockcount
                    +      on the current TCB (i.e., the one at the head of the ready to run
                    +      list), (2) sched_mergepending is called which may change the task
                    +      at the head of the ready-to-run list, then (3) sched_unlock() is called
                    +      which decrements the lockcount on the wrong TCB.  The failure case
                    +      that I saw was that pre-emption got disabled in the IDLE thread,
                    +      locking up the whole system.
                    +    * sched/sched_waitpid.c:  Use SIGCHLD instead of a semaphore.  This
                    +      is a much more spec-compliant implementation.  However, there are
                    +      some issues with overruning signals because NuttX does not support
                    +      queueing of signals (POSIX does not require it).  I think it may
                    +      need to.
                    +    * sched/sched_waitid.c and sched_wait.c:  Add support for waitid()
                    +      and wait().  See issues with waitpid() above.
                    +    * include/nuttx/fs/fs.h and fs/fs_files.c:  Add a dup() method to
                    +      the struct mountpt_operations.  When dup'ing a file that resides
                    +      on a mounted volume, let the file system's dup() method do the
                    +      work.
                    +    * fs/romfs/fs_romfs.c: Implemented the dup() method for the ROMFS
                    +      file system.
                    +    * fs/fat/fs_fat32.c, fs/nxffs/nxffs_initialize, and
                    +      fs/nfs/nfs_vfsops.c:  Add hooks for dup() method (not yet
                    +      implemented).
                    +    * fs/romfs:  Remove the rf_open flag.  It looks good, but actually
                    +      does nothing.
                    +    * fs/fat:  Remove the ff_open flag.  Same story as for the ROMFS
                    +      rf_open flag.
                    +    * fs/fat/fs_fat32.c, fs/nxffs/nxffs_initialize, and
                    +      fs/nfs/nfs_vfsops.c:  Completed implementation of the dup() methods.
                    +      There is still no good test available.
                    +    * sched/sig_timedwait.c:  sigtimedwait() would return a bad signal
                    +      number if the signal was already pending when the function was
                    +      called.
                    +    * configs/ubw32/scripts:  All common linker scripts moved to this
                    +      scripts sub-directory
                    +    * configs/ubw32/ostest:  Configuration configured to use the
                    +      kconfig-frontends tools.
                    +    * arch/mips/src/mips32/up_vfork.c, up_vfork.h, and vfork.S:
                    +      Implement vfork() for MIPS32 (no floating point support)
                    +    * configs/ubw32/ostest: Enable the vfork() test.
                    +    * fs/binfs:  Move apps/builtin/binfs.c to fs/binfs/fs_binfs.c
                    +      CONFIG_APPS_BINDIR rename CONFIG_FS_BINFS
                    +    * include/nuttx/binfmt/builtin.h:  Some of the content of
                    +      apps/include/apps.h moved to include/nuttx/binfmt/builtin.h
                    +    * binfmt/libbuiltin/libbuiltin_utils.c:  Move builtin
                    +      utility functions from apps/builtin/exec_builtins.c to
                    +      binfmt/libbuiltin/libbuiltin_utils.c
                    +    * binfmt/builtin.c and binfmt/libbuiltin:  Add a binary "loader"
                    +      that can be used to execute builtin programs from the BINFS
                    +      file system.
                    +    * configs/sim/nsh: Convert to use kconfig-frontends configuration
                    +      tool.
                    +    * binfmt/binfmt_schedunload.c:  Add logic based on SIGCHLD to
                    +      automatically unload and clean-up after running a task that
                    +      was loaded into memory.
                    +    * binfmt/libbuiltin: Extensions from Mike Smith
                    +    * sched/task_reparent.c:  Add internal interface to change the
                    +      parent task.
                    +    * sched/task_posixspawn():  Move libc/spawn/lib_ps.c to
                    +      sched/task_posixspawn() now it requires internal, reparenting
                    +      interfaces
                    +    * include/nuttx/spawn():  Move libc/spawn.h to include/nuttx/spawn.h
                    +    * arch/arm/include/lpc17xx/chip.h, irq178x.h:  Integrate Marcelo
                    +      Rommel's LPC1788 definitions into the base LPC17xx.
                    +    * configs/olimex-lpc1766stk/nsh:  Convert configuration to use
                    +      the kconfig-frontends tools.
                    +    * sched/task_reparent.c:  Simplify reparenting interface.
                    +    * arch/arm/src/[many]: More LPC1788 definitions from Rommel
                    +      Marcelo incorporated.
                    +    * configs/open1788:  Board configuration for the Wave Share
                    +      Open1788 board.  Still fragmentary (contributed by Rommel
                    +      Marcelo, adapted to use kconfig-frontends.
                    +    * net/send():  Add logic to work around delayed ACKs by splitting
                    +      packets (contributed by Yan T.).
                    +    * net/recvfrom():  Fix a bug.  When the host closes a connection
                    +      (gracefully).  recv[from]() returned success and the closure
                    +      was never detected.  Hmmm.. I don't know why the network monitor
                    +      did not catch this event.  This is an important bug fix.
                    +    * net/recvfrom():  Fix a introduced with the last bugfix.  If
                    +      the peer does an orderly closure of the socket, report 0 not
                    +      -ENOTCONN
                    +    * configs/lm3s6965-ek/README.txt and tools/:  Add an OpenOCD
                    +      configuration for the LM3S (from Jose Pablo Carballo).
                    +    * nuttx/lcd/hd4478ou.h and configs/pcblogic-pic32mx/src/up_lcd1602:
                    +      Start of support of LCD1602 alphanumeric LCD.  I need a few
                    +      more parts before I can finish integrating this one.
                    +    * arch/arm/src/*/chip.h and arch/arm/include/*/chip.h:  Move all
                    +      priority ranges from the src to the include chip.h header file.
                    +    * arch/arm/include/armv7-m/irq.h:  Add inline functions to enable
                    +      and disable interrupts via the BASEPRI register.
                    +    * arch/arm/Kconfig:  Add new option CONFIG_ARM7VM_USEBASEI
                    +    * arch/arm/src/*/*_irq.c:  Set the priority of the SVCALL exception
                    +      to the highest possible value.
                    +    * arch/armv7-m/up_hardfault.c:  Fail if a hardfault occurs
                    +      while CONFIG_ARM7VM_USEBASEPRI=y.
                    +    * arch/arm/src/stm32/stm32_serial.c:  Add support for USART
                    +      single wire mode (Contributed by the PX4 team).
                    +    * sched/: Implement support for retaining child task status after
                    +      the child task exists.  This is behavior required by POSIX.
                    +      But in NuttX is only enabled with CONFIG_SCHED_HAVE_PARENT and
                    +      CONFIG_SCHED_CHILD_STATUS
                    +    * Add support for keyboard encode to the keypad test (from
                    +      Denis Carikli).
                    +    * configs/olimex-lpc1766stk/nettest:  Configuration converted to
                    +      use the kconfig-frontends tools.
                    +    * net/net_poll.c:  Split net_poll() to create psock_poll() too.
                    +    * net/net_poll.c:  Fix poll/select issure reported by Qiang:
                    +      poll_interrupt() must call net_lostconnection() when a
                    +      loss of connection is reported.  Otherwise, the system will
                    +      not know that the connection has been lost.
                    +    * sched/group_create.c, group_join.c, and group_leave.c:  Add
                    +      support for task groups.
                    +    * sched/group_signal.c and task_exithook.c:  Send signal to all
                    +      members for the parent task group.
                    +    * include/nuttx/sched.h and sched/env_*.c:  Move environment
                    +      variables into task group structure.
                    +    * sched/: Lots of file changed.  Don't keep the parent task's
                    +      task ID in the child task's TCB.  Instead, keep the parent
                    +      task group IN the child task's task group.
                    +    * fs/, sched/, include/nuttx/sched.h, and include/nutts/fs/fs.h:
                    +      Move file data from the TCB to the task group structure.
                    +    * libc/stdio/, sched/, include/nuttx/lib.h, and include/nutts/fs/fs.h:
                    +      Move stream data from the TCB to the task group structure.
                    +    * net/, sched/, and include/nuttx/net/net.h:  Move socket data
                    +      from the TCB to the task group structure.
                    +    * sched/task_starthook.c, sched/task_start.c, and include/nuttx/sched.h:
                    +      Add a task start hook that will be called before the task main
                    +      is started. This can be used to schedule C++ constructors to run
                    +      automatically in the context of the new task.
                    +    * binfmt/binfmt_execmodule: Execute constructors as a start hook.
                    +    * sched/os_start.c: Fix ordering of group initialization.
                    +    * configs/stm32f4discovery/usbnsh:  Add an NSH STM32F4Discovery
                    +      configuration that uses USB CDC/ACM for the NSH console.
                    +    * configs/stm32f4discovery/nsh: Converted to use the kconfig-frontends
                    +      tools.
                    +    * configs/*/src/up_userleds.c: Fix a error that was cloned into
                    +      all STM32 user LED code.  The wrong definitions were being used
                    +      to set LEDs on or off.
                    +    * arch/*/common/up_internal.h and arch/*/common/up_initialize.c:
                    +      Serial was driver was not being built if there is no console
                    +      device.  Obviously, the serial driver may be needed even in
                    +      this case.
                    +    * arch/arm/src/stm32/stm32_serial.c: If there is a serial console,
                    +      it would be ttyS0 and the others would be ttyS1-5.  If there
                    +      is not serial console, was labeling them ttyS1-6; now labels them
                    +      ttyS0-5.
                    +    * fs/fs_syslog.c: Can't handle SYSLOG output to character device from
                    +      the IDLE task (because it can't block). syslog_putc now returns EOF
                    +      on failure and sets errno.  Fixed some errors in error handling.
                    +    * libc/stdio/lib_syslogstream.c:  Checking of return value from
                    +      syslog_putc was bogus.  Switching to EOF for all errors solves
                    +      this.
                    +    * arch/arm/src/lm/chip/lm4f_memorymap.h: More LM4F changes from
                    +      Jose Pablo Carballo.
                    +    * drivers/serial/serial.c, include/nuttx/serial/serial.h,
                    +      drivers/usbdev/cdcacm.c, and drivers/pl2303.c: Add support for
                    +      removable serial devices (like USB serial).  This support is enabled
                    +      by CONFIG_SERIAL_REMOVABLE.
                    +    * arch/*/src/*/Toolchain.defs: Change assignment so that we can
                    +      override CROSSDEV with a make command line argument.
                    +    * include/assert.h:  Mark assertion functions as non-returning.
                    +    * arch/*/src/*/up_assert.h:  Mark _up_assert() as non-returning.
                    +    * drivers/mtd/at25.c: When the AT25 device was not available the
                    +      initialization did not fail like it should. From Petteri Aimonen.
                    +    * fs/fat/fs_configfat.c:  Fix some errors in FAT formatting logic
                    +      for large devices and for FAT32. From Petteri Aimonen.
                    +    * fs/fat/fs_fat32util.c:  Fix an initialization error found by
                    +      Petteri Aimonen.  freecount and next freecount initialization were
                    +      reversed.
                    +    * drivers/mmcsd/mmcsd_spi.c: Some SD cards will appear busy until
                    +      switched to SPI mode for first time.  Having a pull-up resistor on
                    +      MISO may avoid this problem, but this patch makes it work also
                    +      without pull-up.  From Petteri Aimonen.
                    +    * fs/fat/fs_fat32.c: Fix a compilation error when FAT_DMAMEMORY=y. 
                           From Petteri Aimonen.
                    -    * NxWidgets::CNxTimer:  Replace the original (apparently non-functional) signal-
                    -      based solution with a work queue-based solution.  This raises some isses about
                    -      using the internal work queues from user space.  I have decided to implemented
                    -      user-space work queues (someday) in order to accomplish that functionaliy.
                    -      Submitted by Petteri Aimonen.
                    -    * NxWidgets:CText and NxWidgets:CNumericEdite:  Fix some memory freeing bugs
                    +    * arch/arm/src/stm32/chip/stm32_spi.h: STM32F4 max SPI clock freq is
                    +      37.5 MHz.  Patch from Petteri Aimonen.
                    +    * arch/arm/src/stm32/stm32_spi.c: Fixes for SPI DMA work on the
                    +      STM32F4. Includes untested additions for the F1 implementation as
                    +      well.  From Petteri Aimonen.
                    +
                    +apps-6.25 2013-02-01 Gregory Nutt <gnutt@nuttx.org>
                    +
                    +    * Makefiles: Removed dependency of distclean on clean in most top-level
                    +      files.  It makes sense for 'leaf' Makefiles to have this dependency,
                    +      but it does not make sense for upper-level Makefiles.
                    +    * apps/namedapp/: Renamed to builtins in preparation for another change.
                    +    * .context:  Removed the .context kludge.  This caused lots of problems
                    +      when changing configurations because there is no easy way to get the
                    +      system to rebuild the context.  Now, the context will be rebuilt
                    +      whenever there is a change in either .config or the Makefile.
                    +    * apps/builtin/registry:  Updated new built-in registration logic to handle
                    +      cases where (1) old apps/.config is used, and (2) applications ared
                    +      removed, not just added.
                    +    * apps/examples/nettest/Makefile:  Fix an error that crept in during
                    +      some of the recent, massive build system changes.
                    +    * apps/builtin/Makefile:  Need to have auto-generated header files
                    +      in place early in the dependency generation phase to avoid warnings.
                    +      It is not important if they are only stubbed out header files at
                    +      this build phase.
                    +    * apps/examples/hidbkd: Now supports decoding of encoded special keys
                    +      if CONFIG_EXAMPLES_HIDKBD_ENCODED is defined.
                    +    * apps/examples/hidbkd:  Add support for decoding key release events
                    +      as well.  However, the USB HID keyboard drier has not yet been
                    +      updated to detect key release events.  That is kind of tricky in
                    +      the USB HID keyboard report data.
                    +    * apps/examples/wlan: Remove non-functional example.
                    +    * apps/examples/ostest/vfork.c:  Added a test of vfork().
                    +    * apps/exampes/posix_spawn: Added a test of posix_spawn().
                    +    * apps/examples/ostest:  Extend signal handler test to catch
                    +      death-of-child signals (SIGCHLD).
                    +    * apps/examples/ostest/waitpid.c:  Add a test for waitpid(), waitid(),
                    +      and wait().
                    +    * builtin/binfs.c:  Add hooks for dup() method (not implemented).
                    +    * builtin/exec_builtin.c, nshlib/nsh_parse.c, and nshlib/nsh_builtin.c:
                    +      NSH now supports re-direction of I/O to files (but still not from).
                    +    * builtin/binfs.c:  Greatly simplified (it is going to need to be
                    +      very lightweight).  Now supports open, close, and a new ioctl to recover
                    +      the builtin filename.  The latter will be needed to support a binfs
                    +      binfmt.
                    +    * builtin/binfs.c:  Move apps/builtin/binfs.c to fs/binfs/fs_binfs.c
                    +      CONFIG_APPS_BINDIR rename CONFIG_FS_BINFS
                    +    * apps/include/builtin.h:  Some of the content of
                    +      apps/include/apps.h moved to include/nuttx/binfmt/builtin.h.
                    +      apps/include/apps.h renamed builtin.h
                    +    * apps/builtin/exec_builtins.c:  Move builtin
                    +      utility functions from apps/builtin/exec_builtins.c to
                    +      binfmt/libbuiltin/libbuiltin_utils.c
                    +    * apps/nshlib/nsh_mountcmds.c:  The block driver/source
                    +      argument is now optional.  Many files systems do not need
                    +      a source and it is really stupid to have to enter a bogus
                    +      source parameter.
                    +    * apps/nshlib/nsh_fileapp.c:  Add the ability to execute a file
                    +      from a file system using posix_spawn().
                    +    * apps/builtin/: Extensions from Mike Smith.
                    +    * apps/examples/ftpd/Makefile: Name ftpd_start is not the name of
                    +      the entrypoint.  Should be ftpd_main (from Yan T.)
                    +    * apps/netutils/telnetd/telnetd_driver: Was stuck in a loop if
                    +      recv[from]() ever returned a value <= 0.
                    +    * apps/examples/nettest and poll:  Complete Kconfig files.
                    +    * apps/examples/ostest/waitpid.c:  Need to use WEXITSTATUS()
                    +      to decode the correct exit status.
                    +    * apps/system/usbmonitor:  A daemon that can be used to monitor USB
                    +      trace outpout.
                    +    * apps/nshlib/nsh_usbdev.c, nsh_consolemain.c, nsh_session.c, nsh_script.c:
                    +      Add support for a login script.  The init.d/rcS script will be executed
                    +      once when NSH starts; the .nshrc script will be executed for each session:
                    +      Once for serial, once for each USB connection, once for each Telnet
                    +      session.
                    +    * apps/system/readline: Correct readline() return value.  Was not
                    +      any returning special values when end-of-file or read errors
                    +      occur (it would return an empty string which is not very useful).
                    +
                    +NxWidgets-1.5 2013-02-01 Gregory Nutt <gnutt@nuttx.org>
                    +
                    +    * NxWidgets::CGraphicsPort::move():  Fix typo bug in bounding rectangle
                    +      calculation (from Petteri Aimonen).
                    +    * NxWM::CScrollingPanel::scrollChildren(): Avoid unnecessary redraws in
                    +      CScrollingPanel (contributed by Petteri Aimonen).
                    +    * NxWM::CCycleButton:  Remove the separator from CCycleButton. It draws in
                    +      wrong place, and doesnt look very good in the correct place either.
                           (from Petteri Aimonen).
                    -    * NxWidgets::CScrollingPanel:  Usability improvements.  It is borderless for now,
                    -      because there was no easy way to redraw only the required part of the border.
                    -      Contributed by Petteri Aimonen.
                    -    * NxWidgets::CNxWidgets and NxWM::CStartWindow: Small changes to make sub-
                    -      classing easier (from Petteri Aimonen).
                    +    * NxWidgets::CGraphicsPort: Many times we only want a constant background.
                    +      In that case the old code fills the background, reads it back, renders
                    +      the text and then writes it back. When used with LCD's (instead of
                    +      framebuffers) this causes unnecessary delay and screen flicker.
                    +      This commit adds a variant of drawText that takes background color,
                    +      so that the background and text can both be rendered at one go.
                    +      The old functions still function as before (Petteri Aimonen).
                    +    * NxWidgets::CLabel: The label was drawn as a single rectangular region,
                    +      then a text was added to the on top of this.  The result is that the
                    +      text would flicker when the CLabel was updated. With this change, the
                    +      two step update is replaced with a five step update:  The background
                    +      is updated as four rectangulear regions (leaving the previous text in
                    +      place), then the new text is updated.  This eliminates the flicker
                    +      (Petteri Aimonen).
                    +    * Kconfig: Many NxWidgets/NxWM settings do not have meaningful, generic
                    +      default values.  Colors, for example, depend on pixel depth.  Some
                    +      geometry settings depending on other geometry settings.  Font IDs are
                    +      not know-able by the configuration system.  etc.  In these cases, it
                    +      is best if the settings are just not undefined so that the system can
                    +      calculate a reasonable default.  however, if no default is provided
                    +      in the .config file, mconf will complain and generate errors.  So work
                    +      around this, I added several "enabling" settings to override the
                    +      default setting.  This is awkward and I preferred the configuration as
                    +      it was before, but this avoids the mconf errors and warnings.
                    +    * UnitTests:  Changed occurrences of lib_rawprintf() and lib_lowprintf()
                    +      to match recent changes to NuttX (will be in NuttX-6.25)
                    +    * CGraphicsPort::_drawText:  Renamed from CGraphicsPort::drawText in order
                    +      to eliminate some naming collisions when overloaded in some configurations
                    +      (i.e., when both bool and nx_pixel_t are uint8_t).  From Petteri Aimonen.
                    +    * CNxWidgets::drawContents: Change base drawContents from a do-nothing
                    +      function to a function that fills the widget with the background color.
                    +      This is useful when using CNxWidgets as a "panel" , i.e. a container
                    +      for other widgets. Subclasses will override drawContents and decide
                    +      themselves how to draw the background.
                    +    * CNxWidgets::CTabPanel:  A new widget contributed by Petteri Aimonen.
                    +      This widget provides a tab panel, which has a button bar at the top
                    +      and panels below it. Pressing a button will select the corresponding
                    +      panel.
                     
                     uClibc++-1.0 2011-11-05 <gnutt@nuttx.org>
                     
                    
                    From a0fcaac8cfd5ee4c5511fb63785e9e21850e1455 Mon Sep 17 00:00:00 2001
                    From: patacongo 
                    Date: Fri, 1 Feb 2013 22:51:34 +0000
                    Subject: [PATCH 1107/1518] Last minute 6.25 change
                    
                    git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5595 42af7a65-404d-4744-a932-0658087f49c3
                    ---
                     Documentation/NuttX.html | 8 ++++----
                     1 file changed, 4 insertions(+), 4 deletions(-)
                    
                    diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html
                    index b4015bab73..b04150e1b2 100644
                    --- a/Documentation/NuttX.html
                    +++ b/Documentation/NuttX.html
                    @@ -1075,17 +1075,17 @@
                       These unreleased changes are also listed here.
                     

                    - This release corresponds with SVN release number: r5594, + This release corresponds with SVN release number: r5595, Note that all SVN information has been stripped from the tarballs. If you need the SVN configuration, you should check out directly from SVN. - Revision r5594 should equivalent to release 6.25 of NuttX: + Revision r5595 should equivalent to release 6.25 of NuttX:

                      -svn checkout -r5594 svn://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
                      +svn checkout -r5595 svn://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
                       

                    Or (HTTP):

                      -svn checkout -r5594 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
                      +svn checkout -r5595 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
                       

                    From 532ba867c6225d1fef4879fbcd1f922f799bbf09 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 2 Feb 2013 19:31:30 +0000 Subject: [PATCH 1108/1518] New interface task_spawn(); exec_builtin() now uses task_spawn(); All argv types should be char * const * not const char ** git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5598 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxUserGuide.html | 228 ++++++++++++++++++++++++++++-- 1 file changed, 219 insertions(+), 9 deletions(-) diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 10e5eb7ba4..2704196d07 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -13,7 +13,7 @@

                    NuttX Operating System

                    User's Manual

                    by

                    Gregory Nutt

                    -

                    Last Updated: January 23, 2013

                    +

                    Last Updated: February 2, 2013

                    @@ -221,7 +221,6 @@ paragraphs.

                    Standard posix_spawn interfaces:

                    - +

                    + Non-standard task control interfaces inspired by posix_spawn: +

                    +

                    2.1.1 task_create

                    @@ -246,7 +253,7 @@ paragraphs. Function Prototype:
                       #include <sched.h>
                      -int task_create(char *name, int priority, int stack_size, main_t entry, const char *argv[]);
                      +int task_create(char *name, int priority, int stack_size, main_t entry, char * const argv[]);
                       

                    @@ -336,7 +343,7 @@ VxWorks provides the following similar interface:

                        #include <sched.h>
                        int task_init(_TCB *tcb, char *name, int priority, uint32_t *stack, uint32_t stack_size,
                    -                 maint_t entry, const char *argv[]);
                    +                 maint_t entry, char * const argv[]);
                     

                    @@ -831,7 +838,7 @@ int posix_spawnp(FAR pid_t *pid, FAR const char *file,

                  Description: - The posix_spawn() and posix_spawnp() functions will create a new, child task, constructed from a regular executable file.

                  + The posix_spawn() and posix_spawnp() functions will create a new, child task, constructed from a regular executable file.

                  Input Parameters: @@ -1403,6 +1410,206 @@ int posix_spawnattr_setsigmask(FAR posix_spawnattr_t *attr, FAR const sigset_t * On success, this function returns 0; on failure it will return an error number from <errno.h>

                  +

                  2.1.26 task_spawn

                  +

                  + Function Prototype: +

                  +
                    +#include <spawn.h>
                    +int task_spawn(FAR pid_t *pid, FAR const char *name, main_t entry,
                    +      FAR const posix_spawn_file_actions_t *file_actions,
                    +      FAR const posix_spawnattr_t *attr,
                    +      FAR char *const argv[], FAR char *const envp[]);
                    +
                  +

                  + Description: + The task_spawn() function will create a new, child task, where the entry point to the task is an address in memory. +

                  +

                  +
                    +
                  • +

                    + pid: + Upon successful completion, task_spawn() will return the task ID of the child task to the parent task, in the variable pointed to by a non-NULL pid argument. + If the pid argument is a null pointer, the process ID of the child is not returned to the caller. +

                    +
                  • +
                  • +

                    + name: + The name to assign to the child task. +

                    +
                  • +
                  • +

                    + entry: + The child task's entry point (an address in memory). +

                    +
                  • +
                  • +

                    + file_actions: + If file_actions is a null pointer, then file descriptors open in the calling process will remain open in the child process (unless CONFIG_FDCLONE_STDIO is defined). + If file_actions is not NULL, then the file descriptors open in the child process will be those open in the calling process as modified by the spawn file actions object pointed to by file_actions. +

                    +
                  • +
                  • +

                    + attr: + If the value of the attr parameter is NULL, the all default values for the POSIX spawn attributes will be used. + Otherwise, the attributes will be set according to the spawn flags. + The posix_spawnattr_t spawn attributes object type is defined in spawn.h. + It will contains these attributes, not all of which are supported by NuttX: +

                    +
                      +
                    • + POSIX_SPAWN_SETPGROUP: + Setting of the new task's process group is not supported. + NuttX does not support process groups. +
                    • +
                    • + POSIX_SPAWN_SETSCHEDPARAM: + Set new tasks priority to the sched_param value. +
                    • +
                    • + POSIX_SPAWN_SETSCHEDULER: + Set the new task's scheduler policy to the sched_policy value. +
                    • +
                    • + POSIX_SPAWN_RESETIDS + Resetting of the effective user ID of the child process is not supported. + NuttX does not support effective user IDs. +
                    • +
                    • + POSIX_SPAWN_SETSIGMASK: + Set the new task's signal mask. +
                    • +
                    • + POSIX_SPAWN_SETSIGDEF: + Resetting signal default actions is not supported. + NuttX does not support default signal actions. +
                    • +
                    +

                    + And the non-standard: +

                    +
                      +
                    • + TASK_SPAWN_SETSTACKSIZE: + Set the stack size for the new task. +
                    • +
                    +
                  • +
                  • +

                    + argv: + argv[] is the argument list for the new task. argv[] is an array of pointers to null-terminated strings. + The list is terminated with a null pointer. +

                    +
                  • +
                  • +

                    + envp: + The envp[] argument is not used by NuttX and may be NULL. +

                    +
                  • +
                  +

                  + Returned Value: + task_spawn() will return zero on success. + Otherwise, an error number will be returned as the function return value to indicate the error: +

                  +

                  + POSIX Compatibility: + This is a non-standard interface inspired by posix_spawn(). +

                  + +

                  2.1.26 task_spawnattr_getstacksize

                  +

                  + Function Prototype: +

                  +
                    +#include <spawn.h>
                    +int task_spawnattr_getstacksize(FAR const posix_spawnattr_t *attr, FAR size_t *stacksize);
                    +
                  +

                  + Description: + The task_spawnattr_getstacksize() function will obtain the value of the spawn-stacksize attribute from the attributes object referenced by attr. +

                  +

                  + Input Parameters: +

                  +
                    +
                  • + attr: + The address spawn attributes to be queried. +
                  • +
                  • + policy: + The location to return the spawn-stacksize value. +
                  • +
                  +

                  + Returned Value: + On success, this function returns 0; on failure it will return an error number from <errno.h> +

                  + +

                  2.1.26 task_spawnattr_setstacksize

                  +

                  + Function Prototype: +

                  +
                    +#include <spawn.h>
                    +int task_spawnattr_setstacksize(FAR posix_spawnattr_t *attr, size_t stacksize);
                    +
                  +

                  + Description: + The task_spawnattr_setstacksize() function will set the spawn-stacksize attribute in an initialized attributes object referenced by attr. +

                  +

                  + Input Parameters: +

                  +
                    +
                  • + attr: + The address spawn attributes to be used. +
                  • +
                  • + policy: + The new value of the spawn-stacksize attribute. +
                  • +
                  +

                  + Returned Value: + On success, this function returns 0; on failure it will return an error number from <errno.h> +

                  + +

                  2.1.12 posix_spawn_file_actions_init

                  +

                  + Function Prototype: +

                  +
                    +#include <spawn.h>
                    +int posix_spawn_file_actions_init(FAR posix_spawn_file_actions_t *file_actions);
                    +
                  +

                  + Description: + The posix_spawn_file_actions_init() function initializes the object referenced by file_actions to an empty set of file actions for subsequent use in a call to posix_spawn() or posix_spawnp(). +

                  +

                  + Input Parameters: +

                  +
                    +
                  • + file_actions: + The address of the posix_spawn_file_actions_t to be initialized. +
                  • +
                  +

                  + Returned Value: + On success, this function returns 0; on failure it will return an error number from <errno.h>. +

                  + - +
                  @@ -9277,9 +9484,9 @@ notify a task when a message is available on a queue.
                • poll
                • poll.h
                • posix_spawn
                • +
                • posix_spawn_file_actions_addclose
                • -
                • posix_spawn_file_actions_addclose
                • posix_spawn_file_actions_adddup2
                • posix_spawn_file_actions_addopen
                • posix_spawn_file_actions_destroy
                • @@ -9362,10 +9569,10 @@ notify a task when a message is available on a queue.
                • rename
                • rmdir
                • rewinddir
                • -
                • ROM disk driver
                • ROMFS
                • +
                • sched_getparam
                • sched_get_priority_max
                • sched_get_priority_min
                • @@ -9419,8 +9626,11 @@ notify a task when a message is available on a queue.
                • task_delete
                • task_init
                • task_restart
                • -
                • Task Control Interfaces
                • Task Scheduling Interfaces +
                • task_spawn
                • +
                • task_spawnattr_getstacksize
                • +
                • task_spawnattr_setstacksize
                • +
                • Task Switching Interfaces
                • telldir
                • timer_create
                • timer_delete
                • From db94a10f5639ef1ece1eb48e88cebe824152f9db Mon Sep 17 00:00:00 2001 From: patacongo Date: Mon, 4 Feb 2013 18:46:28 +0000 Subject: [PATCH 1109/1518] Rename _TCB to struct tcb_s git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5610 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttXDemandPaging.html | 14 +++++++------- Documentation/NuttxPortingGuide.html | 24 ++++++++++++------------ Documentation/NuttxUserGuide.html | 8 ++++---- 3 files changed, 23 insertions(+), 23 deletions(-) diff --git a/Documentation/NuttXDemandPaging.html b/Documentation/NuttXDemandPaging.html index 082edd21b7..baa2626c21 100644 --- a/Documentation/NuttXDemandPaging.html +++ b/Documentation/NuttXDemandPaging.html @@ -8,7 +8,7 @@

                  On-Demand Paging

                  -

                  Last Updated: August 12, 2010

                  +

                  Last Updated: February 4, 2010

                  @@ -306,7 +306,7 @@

                  - The page fill worker thread will maintain a static variable called _TCB *g_pftcb. + The page fill worker thread will maintain a static variable called struct tcb_s *g_pftcb. If no fill is in progress, g_pftcb will be NULL. Otherwise, it will point to the TCB of the task which is receiving the fill that is in progess.

                  @@ -619,7 +619,7 @@

                    - void up_block_task(FAR _TCB *tcb, tstate_t task_state); + void up_block_task(FAR struct tcb_s *tcb, tstate_t task_state);
                    The currently executing task at the head of the ready to run list must be stopped. @@ -628,7 +628,7 @@ page fill, and to
                    - void up_unblock_task(FAR _TCB *tcb); + void up_unblock_task(FAR struct tcb_s *tcb);
                    A task is currently in an inactive task list but has been prepped to execute. @@ -643,7 +643,7 @@
                      - int up_checkmapping(FAR _TCB *tcb); + int up_checkmapping(FAR struct tcb_s *tcb);
                      The function up_checkmapping() returns an indication if the page fill still needs to performed or not. @@ -651,7 +651,7 @@ This function will prevent the same page from be filled multiple times.
                      - int up_allocpage(FAR _TCB *tcb, FAR void *vpage); + int up_allocpage(FAR struct tcb_s *tcb, FAR void *vpage);
                      This architecture-specific function will set aside page in memory and map to its correct virtual address. @@ -661,7 +661,7 @@ NOTE: This function must always return a page allocation. If all available pages are in-use (the typical case), then this function will select a page in-use, un-map it, and make it available.
                      -
                      int up_fillpage(FAR _TCB *tcb, FAR const void *vpage, void (*pg_callback)(FAR _TCB *tcb, int result)); +
                      int up_fillpage(FAR struct tcb_s *tcb, FAR const void *vpage, void (*pg_callback)(FAR struct tcb_s *tcb, int result));
                      The actual filling of the page with data from the non-volatile, must be performed by a separate call to the architecture-specific function, up_fillpage(). This will start asynchronous page fill. diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index f2f7ada02b..9eb114fd21 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

                      NuttX RTOS Porting Guide

                      -

                      Last Updated: January 23, 2013

                      +

                      Last Updated: February 4, 2013

                      @@ -1590,7 +1590,7 @@ The system can be re-made subsequently by just typing make.

                      4.1.3 up_initial_state()

                      -

                      Prototype: void up_initial_state(FAR _TCB *tcb);

                      +

                      Prototype: void up_initial_state(FAR struct tcb_s *tcb);

                      Description. A new thread is being started and a new TCB has been created. @@ -1613,7 +1613,7 @@ The system can be re-made subsequently by just typing make.

                      4.1.4 up_create_stack()

                      -

                      Prototype: STATUS up_create_stack(FAR _TCB *tcb, size_t stack_size);

                      +

                      Prototype: STATUS up_create_stack(FAR struct tcb_s *tcb, size_t stack_size);

                      Description. Allocate a stack for a new thread and setup @@ -1648,7 +1648,7 @@ The system can be re-made subsequently by just typing make.

                      4.1.5 up_use_stack()

                      Prototype: - STATUS up_use_stack(FAR _TCB *tcb, FAR void *stack, size_t stack_size); + STATUS up_use_stack(FAR struct tcb_s *tcb, FAR void *stack, size_t stack_size);

                      Description. @@ -1682,7 +1682,7 @@ The system can be re-made subsequently by just typing make.

                    4.1.6 up_release_stack()

                    -

                    Prototype: void up_release_stack(FAR _TCB *dtcb);

                    +

                    Prototype: void up_release_stack(FAR struct tcb_s *dtcb);

                    Description. A task has been stopped. Free all stack @@ -1694,7 +1694,7 @@ The system can be re-made subsequently by just typing make.

                    4.1.7 up_unblock_task()

                    -

                    Prototype: void up_unblock_task(FAR _TCB *tcb);

                    +

                    Prototype: void up_unblock_task(FAR struct tcb_s *tcb);

                    Description. A task is currently in an inactive task list @@ -1717,7 +1717,7 @@ The system can be re-made subsequently by just typing make.

                  4.1.8 up_block_task()

                  -

                  Prototype: void up_block_task(FAR _TCB *tcb, tstate_t task_state);

                  +

                  Prototype: void up_block_task(FAR struct tcb_s *tcb, tstate_t task_state);

                  Description. The currently executing task at the head of @@ -1760,7 +1760,7 @@ The system can be re-made subsequently by just typing make.

                  4.1.10 up_reprioritize_rtr()

                  -

                  Prototype: void up_reprioritize_rtr(FAR _TCB *tcb, uint8_t priority);

                  +

                  Prototype: void up_reprioritize_rtr(FAR struct tcb_s *tcb, uint8_t priority);

                  Description. Called when the priority of a running or @@ -1821,7 +1821,7 @@ The system can be re-made subsequently by just typing make.

                  4.1.13 up_schedule_sigaction()

                  Prototype: - void up_schedule_sigaction(FAR _TCB *tcb, sig_deliver_t sigdeliver); + void up_schedule_sigaction(FAR struct tcb_s *tcb, sig_deliver_t sigdeliver);

                  Description. @@ -2297,7 +2297,7 @@ else

                  4.1.21.6 up_addrenv_assign()

                  Prototype:

                    - int up_addrenv_assign(task_addrenv_t addrenv, FAR _TCB *tcb); + int up_addrenv_assign(task_addrenv_t addrenv, FAR struct tcb_s *tcb);

                  Description:

                    @@ -2316,7 +2316,7 @@ else

                    4.1.21.7 up_addrenv_share()

                    Prototype:

                      - int up_addrenv_share(FAR const _TCB *ptcb, FAR _TCB *ctcb); + int up_addrenv_share(FAR const struct tcb_s *ptcb, FAR struct tcb_s *ctcb);

                    Description:

                      @@ -2336,7 +2336,7 @@ else

                      4.1.21.8 up_addrenv_release()

                      Prototype:

                        - int up_addrenv_release(FAR _TCB *tcb); + int up_addrenv_release(FAR struct tcb_s *tcb);

                      Description:

                        diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 2704196d07..3aeb307887 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -13,7 +13,7 @@

                        NuttX Operating System

                        User's Manual

                        by

                        Gregory Nutt

                        -

                        Last Updated: February 2, 2013

                        +

                        Last Updated: February 4, 2013

                        @@ -342,7 +342,7 @@ VxWorks provides the following similar interface: Function Prototype:
                            #include <sched.h>
                        -   int task_init(_TCB *tcb, char *name, int priority, uint32_t *stack, uint32_t stack_size,
                        +   int task_init(struct tcb_s *tcb, char *name, int priority, uint32_t *stack, uint32_t stack_size,
                                          maint_t entry, char * const argv[]);
                         
                        @@ -414,7 +414,7 @@ VxWorks provides the following similar interface: Function Prototype:
                             #include <sched.h>
                        -    int task_activate(_TCB *tcb);
                        +    int task_activate(struct tcb_s *tcb);
                         

                        @@ -9188,7 +9188,7 @@ From the standpoint of the application, these structures (and structure pointers) should be treated as simple handles to reference OS resources. These hidden structures include:

                          -
                        • _TCB +
                        • struct tcb_s
                        • mqd_t
                        • sem_t
                        • WDOG_ID From b22649755ff35b90faf7e3befc915273f589e807 Mon Sep 17 00:00:00 2001 From: patacongo Date: Wed, 6 Feb 2013 00:06:35 +0000 Subject: [PATCH 1110/1518] Misc clean-up and bugfixes related to multi-thread group signalling git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5614 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxUserGuide.html | 59 ++++++++++++++++++++++++------- 1 file changed, 47 insertions(+), 12 deletions(-) diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 3aeb307887..34e6fe442f 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -13,7 +13,7 @@

                          NuttX Operating System

                          User's Manual

                          by

                          Gregory Nutt

                          -

                          Last Updated: February 4, 2013

                          +

                          Last Updated: February 5, 2013

                          @@ -4629,26 +4629,61 @@ interface of the same name.

                          - NuttX provides signal interfaces for tasks. Signals are used to - alter the flow control of tasks by communicating asynchronous events - within or between task contexts. - Any task or interrupt handler can post (or send) a signal to a particular task. - The task being signaled will execute task-specified signal handler - function the next time that the task has priority. - The signal handler is a user-supplied function that is bound to - a specific signal and performs whatever actions are necessary - whenever the signal is received. + Tasks and Signals. + NuttX provides signal interfaces for tasks and pthreads. + Signals are used toalter the flow control of tasks by communicating asynchronous events within or between task contexts. + Any task or interrupt handler can post (or send) a signal to a particular task using its task ID. + The task being signaled will execute task-specified signal handler function the next time that the task has priority. + The signal handler is a user-supplied function that is bound to a specific signal and performs whatever actions are necessary whenever the signal is received.

                          There are no predefined actions for any signal. - The default action for all signals (i.e., when no signal handler has - been supplied by the user) is to ignore the signal. + The default action for all signals (i.e., when no signal handler has been supplied by the user) is to ignore the signal. In this sense, all NuttX are real time signals.

                          Tasks may also suspend themselves and wait until a signal is received.

                          + Tasks Groups. + NuttX supports both tasks and pthreads. + The primary difference between tasks and pthreads is the tasks are much more independent. + Tasks can create pthreads and those pthreads will share the resources of the task. + The main task and its children pthreads together are referred as a "task group." + A task group is used in NuttX to emulate a POSIX process. +

                          +

                          + See the NuttX Threading Wiki page and the Tasks vs. Threads FAQ for additional information on tasks and threads in NuttX. +

                          +

                          + Signalling Multi-threaded Task Groups. + The behavior of signals in the multi-thread task group is complex. + NuttX emulates a process model with task groups and follows the POSIX rules for signalling behavior. + Normally when you signal the task group you would signal using the task ID of the main task that created the group (in practice, a different task should not know the IDs of the internal threads created within the task group); that ID is remembered by the task group (even if the main task thread exits). +

                          +

                          + Here are some of the things that should happen when you signal a multi-threaded task group: +

                          +
                            +
                          • + If a task group receives a signal then one and only one indeterminate thread in the task group which is not blocking the signal will receive the signal. +
                          • +
                          • + If a task group receives a signal and more than one thread is waiting on that signal, then one and only one indeterminate thread out of that waiting group will receive the signal. +
                          • +
                          +

                          + You can mask out that signal using ''sigprocmask()'' (or ''pthread_sigmask()''). + That signal will then be effectively disabled and will never be received in those threads that have the signal masked. + On creation of a new thread, the new thread will inherit the signal mask of the parent thread that created it. + So you if block signal signals on one thread then create new threads, those signals will also be blocked in the new threads as well. +

                          +

                          + You can control which thread receives the signal by controlling the signal mask. + You should, for example, be able to create a separate thread whose sole purpose it is to catch a particular signal and respond to it. Simply block the thread in the main task; then the signal will be blocked in all of the pthreads in the group too. In the one "signal processing" pthread, enable the blocked signal. This thread will then be only thread that will receive the signal. +

                          +

                          + Signal Interfaces. The following signal handling interfaces are provided by NuttX:

                            From 0ed3a4b98bc465605a1e29f9feb51cef650fc0e7 Mon Sep 17 00:00:00 2001 From: patacongo Date: Wed, 6 Feb 2013 15:43:28 +0000 Subject: [PATCH 1111/1518] Changed needed to fix issues with task_restart() git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5615 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxUserGuide.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 34e6fe442f..3df2dfa9d2 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -4680,7 +4680,7 @@ interface of the same name.

                            You can control which thread receives the signal by controlling the signal mask. - You should, for example, be able to create a separate thread whose sole purpose it is to catch a particular signal and respond to it. Simply block the thread in the main task; then the signal will be blocked in all of the pthreads in the group too. In the one "signal processing" pthread, enable the blocked signal. This thread will then be only thread that will receive the signal. + You can, for example, create a single thread whose sole purpose it is to catch a particular signal and respond to it: Simply block the signal in the main task; then the signal will be blocked in all of the pthreads in the group too. In the one "signal processing" pthread, enable the blocked signal. This thread will then be only thread that will receive the signal.

                            Signal Interfaces. From 23c95a18f4e48e3e4d5b9665498e5b61a2275ad9 Mon Sep 17 00:00:00 2001 From: patacongo Date: Mon, 11 Feb 2013 21:44:00 +0000 Subject: [PATCH 1112/1518] Add a driver for the SST30VF NOR FLASH parts git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5640 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 40 +++++++++++++++++++++++++++++++--------- 1 file changed, 31 insertions(+), 9 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index b04150e1b2..eb09985338 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                            NuttX RTOS

                            -

                            Last Updated: February 2, 2013

                            +

                            Last Updated: February 11, 2013

                            @@ -1679,7 +1679,7 @@ svn checkout -r5595 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
                          • ARM920T (1)
                          • ARM926EJS (3)
                          • ARM Cortex-M3 (16)
                          • -
                          • ARM Cortex-M4 (5)
                          • +
                          • ARM Cortex-M4 (6)
                        • Atmel AVR
                            @@ -2143,7 +2143,7 @@ svn checkout -r5595 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

                            - STMicro STM32F100x. + STMicro STM32F100x (STM32 F1 "Value Line"Family). Chip support for these STM32 "Value Line" family was contributed by Mike Smith and users have reported that they have successful brought up NuttX on there proprietary boards using this logic. This logic was extended to support the high density STM32F100RC chips by Freddie Chopin However, there is no specific board support for this chip families in the NuttX source tree. @@ -2158,7 +2158,7 @@ svn checkout -r5595 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

                            - STMicro STM32F103x. + STMicro STM32F103x (STM32 F1 Family). Support for four MCUs and four board configurations are available. MCU support includes all of the high density and connectivity line families. Board supported is available specifically for: STM32F103ZET6, STM32F103RET6, STM32F103VCT, and STM32F103VET6. @@ -2235,7 +2235,7 @@ svn checkout -r5595 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

                            - STMicro STM32F107x. + STMicro STM32F107x (STM32 F1 "Connectivity Line" family). Chip support for the STM32 F1 "Connectivity Line" family has been present in NuttX for some time and users have reported that they have successful brought up NuttX on there proprietary boards using this logic.

                            @@ -2270,7 +2270,7 @@ svn checkout -r5595 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

                            - STMicro STM32F207IG. + STMicro STM32F207IG (STM32 F2 family). Support for the STMicro STM3220G-EVAL development board was contributed by Gary Teravskis and first released in NuttX-6.16.

                              @@ -2521,7 +2521,7 @@ svn checkout -r5595 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

                              - STMicro STM3240G-EVAL. + STMicro STM3240G-EVAL (STM32 F4 family). This port uses the STMicro STM3240G-EVAL board featuring the STM32F407IGH6 MCU. Refer to the STMicro web site for further information about this board.

                              @@ -2563,7 +2563,7 @@ svn checkout -r5595 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

                              - STMicro STM32F4-Discovery. + STMicro STM32F4-Discovery (STM32 F4 family). This port uses the STMicro STM32F4-Discovery board featuring the STM32F407VGT6 MCU. Refer to the STMicro web site for further information about this board.

                              @@ -2571,7 +2571,29 @@ svn checkout -r5595 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

                              STATUS: The basic port for the STM32F4-Discovery was contributed by Mike Smith and was first released in NuttX-6.14. - Drivers listed for the STM3240G-EVAL may be usable on this plaform as well. + All drivers listed for the STM3240G-EVAL are usable on this plaform as well. +

                              +
                            + + + +
                            +
                            + + +
                            + +

                            + STMicro STM32F3-Discovery (STM32 F3 family). + This port uses the STMicro STM32F3-Discovery board featuring the STM32F303VCT6 MCU (STM32 F3 family). + Refer to the STMicro web site for further information about this board. +

                            +
                              +

                              + STATUS: + The basic port for the STM32F3-Discover was first released in NuttX-6.26. + Many of the drivers previously released for the STM32 F1, Value Line, and F2 and F4 may be usable on this plaform as well. + New drivers will be required for ADC and I2C which are very different on this platform.

                            From 0b1f14293949f90cfd2578f35bc9fc920ac4d814 Mon Sep 17 00:00:00 2001 From: patacongo Date: Fri, 15 Feb 2013 14:37:37 +0000 Subject: [PATCH 1113/1518] STM32 F4 patches from Petteri Aimonen (mostly USB) git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5652 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxUserGuide.html | 188 ++++++++++++++++++++---------- 1 file changed, 125 insertions(+), 63 deletions(-) diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 3df2dfa9d2..a12e61335a 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -13,7 +13,7 @@

                            NuttX Operating System

                            User's Manual

                            by

                            Gregory Nutt

                            -

                            Last Updated: February 5, 2013

                            +

                            Last Updated: February 13, 2013

                            @@ -1999,8 +1999,22 @@ priority of the calling task is returned.
                          • 2.3.5 waitid
                          • 2.3.6 wait
                          +
                        • - atexit() and on_exit() may be use to register callback functions that are executed when a task exits. + Task Exit Hooks. + atexit() and on_exit() may be use to register callback functions that are executed when a task group terminates. + A task group is the functional analog of a process: + It is a group that consists of the main task thread and of all of the pthreads created by the main task thread or any of the other pthreads within the task broup. + Members of a task group share certain resources such as environment variables, file descriptors, FILE streams, sockets, pthread keys and open message queues. +

                          +
                          + NOTE: + Behavior of features related to task groups depend of NuttX configuration settings. + See the discussion of "Parent and Child Tasks," below. + See also the NuttX Threading Wiki page and the Tasks vs. Threads FAQ for additional information on tasks and threads in NuttX. +
                          +

                          + A task group terminates when the last thread within the group exits.

                          @@ -1993,6 +1994,36 @@ svn checkout -r5595 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
                        + + + + ARM Cortex-M0. + + + +
                        + +

                        + NuvoTon NUC120. + This is a port of NuttX to the Nuvoton NuTiny-SDK-NUC120 that features the NUC120LE3AN MCU. +

                        +
                          +

                          + STATUS. + As of this writing, this is very much a work in progress. + For a full-featured RTOS such as NuttX, providing support in a usable and meaningful way within the tiny memories of the NUC120 will be a challenge (128KB FLASH and 16KB of SRAM). + Initial support for the NUC120 is expected in NuttX-6.26. +

                          +
                        +

                        + Development Environments: + 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS + with Windows native toolchain, or 4) Native Windows. + A DIY toolchain for Linux or Cygwin is provided by the NuttX + buildroot package. +

                        + + @@ -2029,16 +2060,16 @@ svn checkout -r5595 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code There are working configurations the NuttX OS test, to run the NuttShell (NSH), the NuttX networking test, and the uIP web server.

                        -

                        - Development Environments: - 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS - with Windows native toolchain (CodeSourcery or devkitARM), or 4) Native Windows. A DIY toolchain for Linux - or Cygwin is provided by the NuttX - buildroot - package. -

                      - +

                      + Development Environments: + 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS + with Windows native toolchain (CodeSourcery or devkitARM), or 4) Native Windows. A DIY toolchain for Linux + or Cygwin is provided by the NuttX + buildroot + package. +

                      +
                      @@ -2068,10 +2099,10 @@ svn checkout -r5595 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code Otherwise, the NSH prompt will not come up because the Ethernet driver is waiting for the network to come up.

                      -

                      - Development Environments: See the Eagle-100 LM3S6918 above. -

                    +

                    + Development Environments: See the Eagle-100 LM3S6918 above. +

                    @@ -2216,16 +2247,16 @@ svn checkout -r5595 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code Customizations for the v3 version of the Wildfire board are selectable (but untested).
                  -

                  - Development Environments: - 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS - with Windows native toolchain (RIDE7, CodeSourcery or devkitARM), or 4) Native Windows. A DIY toolchain for Linux - or Cygwin is provided by the NuttX - buildroot - package. -

                - +

                + Development Environments: + 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS + with Windows native toolchain (RIDE7, CodeSourcery or devkitARM), or 4) Native Windows. A DIY toolchain or Linux + or Cygwin is provided by the NuttX + buildroot + package. +

                +
                @@ -2310,16 +2341,16 @@ svn checkout -r5595 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code USB device (and possible LCD support). These extensions may or may not happen soon as my plate is kind of full now.

                -

                - Development Environments: - 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS - with Windows native toolchain (CodeSourcery or devkitARM), or 4) Native Windows. A DIY toolchain for Linux - or Cygwin is provided by the NuttX - buildroot - package. -

              - +

              + Development Environments: + 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS + with Windows native toolchain (CodeSourcery or devkitARM), or 4) Native Windows. A DIY toolchain for inux + or Cygwin is provided by the NuttX + buildroot + package. +

              +
              @@ -2445,15 +2476,15 @@ svn checkout -r5595 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

            • -

              - Development Environments: - 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS - with Windows native toolchain (CodeSourcery devkitARM or Code Red), or 4) Native Windows. A DIY toolchain for Linux - or Cygwin is provided by the NuttX - buildroot - package. -

              - +
            +

            + Development Environments: + 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS + with Windows native toolchain (CodeSourcery devkitARM or Code Red), or 4) Native Windows. A DIY toolchain for Linux + or Cygwin is provided by the NuttX + buildroot package. +

            + From d748ef50ad943227deb5f35503eb1f69aabffd78 Mon Sep 17 00:00:00 2001 From: patacongo Date: Fri, 22 Feb 2013 23:05:34 +0000 Subject: [PATCH 1115/1518] Add NUC120 config FLASH definitions; documentation update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5664 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/README.html | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Documentation/README.html b/Documentation/README.html index 44b6631888..4582a3bb84 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -8,7 +8,7 @@

            NuttX README Files

            -

            Last Updated: December 11, 2012

            +

            Last Updated: February 22, 2013

            @@ -141,6 +141,8 @@ | | | `- README.txt | | |- nucleus2g/ | | | `- README.txt + | | |- nutiny-nuc120/ + | | | `- README.txt | | |- olimex-lpc1766stk/ | | | `- README.txt | | |- olimex-lpc2378/ @@ -150,6 +152,8 @@ | | | |- include/README.txt | | | |- src/README.txt | | | `- README.txt + | | |- open1788/ + | | | `- README.txt | | |- p112/ | | | `- README.txt | | |- pcblogic-pic32mx/ From e397b38ed33daaf2d410a6b42626b707c9ff4d36 Mon Sep 17 00:00:00 2001 From: patacongo Date: Tue, 26 Feb 2013 14:09:43 +0000 Subject: [PATCH 1116/1518] Add port to Zilogic Systems ZKIT-ARM-1769 board (more coming) git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5673 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 14 ++++++++++++++ Documentation/README.html | 24 ++++++++++++++++++------ 2 files changed, 32 insertions(+), 6 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 1efe66ec62..e086b1476a 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -2376,6 +2376,9 @@ svn checkout -r5595 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
          • The Embedded Artists base board with NXP LPCXpresso LPC1768.
          • +
          • + Zilogic's ZKIT-ARM-1769 board. +
          • The Micromint Lincoln60 board with an NXP LPC1769.
          • @@ -2466,6 +2469,17 @@ svn checkout -r5595 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code Verifed configurations include DHCPD, the NuttShell (NSH), NuttX graphis (NX), the NuttX OS test, THTTPD, and USB mass storage device.

            +
          • +

            Zilogic's ZKIT-ARM-1769 board

            +

            + Zilogic System's ARM development Kit, ZKIT-ARM-1769. + This board is based on the NXP LPC1769. + The initial release was included NuttX-6.26. + The Nuttx Buildroot toolchain is used by default. + This is still a port under development. + Verifed configurations include the "Hello, World!" example application and a THTTPD demonstration. +

            +
          • Micromint Lincoln60 board with an NXP LPC1769

            diff --git a/Documentation/README.html b/Documentation/README.html index 4582a3bb84..89ed095f00 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -61,6 +61,8 @@ | | | |- include/README.txt | | | |- src/README.txt | | | `- README.txt + | | |- cloudctrl/ + | | | `- README.txt | | |- compal_e88/ | | | `- README.txt | | |- compal_e99/ @@ -95,10 +97,10 @@ | | | |- RIDE/README.txt | | | |- src/README.txt | | | `- README.txt - | | |- lincoln60/ - | | | `- README.txt | | |- kwikstik-k40/ | | | `- README.txt + | | |- lincoln60/ + | | | `- README.txt | | |- lm3s6432-s2e/ | | | |- include/README.txt | | | |- src/README.txt @@ -111,10 +113,10 @@ | | | |- include/README.txt | | | |- src/README.txt | | | `- README.txt - | | |- lpcxpresso-lpc1768/ - | | | `- README.txt | | |- lpc4330-xplorer/ | | | `- README.txt + | | |- lpcxpresso-lpc1768/ + | | | `- README.txt | | |- m68332evb/ | | | |- include/README.txt | | | `- src/README.txt @@ -160,6 +162,8 @@ | | | `- README.txt | | |- pic32-starterkit/ | | | `- README.txt + | | |- pic32mx7mmb/ + | | | `- README.txt | | |- pjrc-8051/ | | | |- include/README.txt | | | |- src/README.txt @@ -174,12 +178,12 @@ | | | `- README.txt> | | |- sam3u-ek/ | | | `- README.txt + | | |- shenzhou/ + | | | `- README.txt | | |- sim/ | | | |- include/README.txt | | | |- src/README.txt | | | `- README.txt - | | |- shenzhou/ - | | | `- README.txt | | |- skp16c26/ | | | |- include/README.txt | | | |- src/README.txt @@ -195,6 +199,8 @@ | | | `- README.txt | | |- stm32f100rc_generic/ | | | `- README.txt + | | |- stm32f3discovery/ + | | | `- README.txt | | |- stm32f4discovery/ | | | `- README.txt | | |- sure-pic32mx/ @@ -203,6 +209,8 @@ | | | `- README.txt | | |- twr-k60n512/ | | | `- README.txt + | | |- ubw32/ + | | | `- README.txt | | |- us7032evb1/ | | | |- bin/README.txt | | | |- include/README.txt @@ -229,6 +237,10 @@ | | |- z8f64200100kit/ | | | |- ostest/README.txt | | | `- README.txt + | | |- zkit-arm-1769/ + | | | `- README.txt + | | |- zp214xpa/ + | | | `- README.txt | | `- README.txt | |- drivers/ | | |- lcd/ From 2cfd4114c22088170823335adb670fe2a6db9ddd Mon Sep 17 00:00:00 2001 From: patacongo Date: Wed, 27 Feb 2013 20:34:57 +0000 Subject: [PATCH 1117/1518] The NuTiny-SDK-NUC120 basic port is complete and functional git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5682 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index e086b1476a..bcfa88c4bb 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -2010,10 +2010,22 @@ svn checkout -r5595 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

              STATUS. - As of this writing, this is very much a work in progress. - For a full-featured RTOS such as NuttX, providing support in a usable and meaningful way within the tiny memories of the NUC120 will be a challenge (128KB FLASH and 16KB of SRAM). - Initial support for the NUC120 is expected in NuttX-6.26. + Initial support for the NUC120 was released in NuttX-6.26. + This initial support is very minimal: + There is an OS test configuration that verifies the correct port of NuttX to the part and + a NuttShell (NSH) configuration that might be the basis for an application development. + As of this writing, more device drivers are needed to make this a more complete port.

              +

              + For a full-featured RTOS such as NuttX, providing support in a usable and meaningful way within the tiny memories of the NUC120 demonstrates the scalability of NuttX (128KB FLASH and 16KB of SRAM). + When running the NSH configuration (a full up application), there is still more than 9KB or SRAM available: +

              +
                +NuttShell (NSH) NuttX-6.26
                +nsh> free
                +             total       used       free    largest
                +Mem:         13344       3944       9400       9400
                +nsh>
                     

              Development Environments: From 83d7625ba278553060f64e188af3951217e97f71 Mon Sep 17 00:00:00 2001 From: patacongo Date: Wed, 27 Feb 2013 22:24:49 +0000 Subject: [PATCH 1118/1518] Some NuTiny-SDK-NUC120 size reduction; All serial driver vtables should be static const git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5683 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index bcfa88c4bb..e7fa659812 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -2017,7 +2017,7 @@ svn checkout -r5595 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code As of this writing, more device drivers are needed to make this a more complete port.

              - For a full-featured RTOS such as NuttX, providing support in a usable and meaningful way within the tiny memories of the NUC120 demonstrates the scalability of NuttX (128KB FLASH and 16KB of SRAM). + For a full-featured RTOS such as NuttX, providing support in a usable and meaningful way within the tiny memories of the NUC120 demonstrates the scalability of NuttX (128KB FLASH and 16KB of SRAM in a 48-pin package). When running the NSH configuration (a full up application), there is still more than 9KB or SRAM available:

                
                From 2ba3c0cb14da51e606a14a08ccf01ced5bdbdff4 Mon Sep 17 00:00:00 2001
                From: patacongo 
                Date: Fri, 1 Mar 2013 19:10:02 +0000
                Subject: [PATCH 1119/1518] Add a configuration to begin development of an
                 LM4F120 LaunchPad port
                
                git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5692 42af7a65-404d-4744-a932-0658087f49c3
                ---
                 Documentation/NuttX.html | 25 +++++++++++++++++++++----
                 1 file changed, 21 insertions(+), 4 deletions(-)
                
                diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html
                index e7fa659812..435540f440 100644
                --- a/Documentation/NuttX.html
                +++ b/Documentation/NuttX.html
                @@ -2017,16 +2017,33 @@ svn checkout -r5595 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
                         As of this writing, more device drivers are needed to make this a more complete port.
                       

                - For a full-featured RTOS such as NuttX, providing support in a usable and meaningful way within the tiny memories of the NUC120 demonstrates the scalability of NuttX (128KB FLASH and 16KB of SRAM in a 48-pin package). - When running the NSH configuration (a full up application), there is still more than 9KB or SRAM available: + Memory Usage. + For a full-featured RTOS such as NuttX, providing support in a usable and meaningful way within the tiny memories of the NUC120 demonstrates the scalability of NuttX. The NUC120LE2AN comes in a 48-pin package and has 128KB FLASH and 16KB of SRAM. + When running the NSH configuration (itself a full up application), there is still more than 90KB of FLASH and 10KB or SRAM available for further application development). +

                +

                + Static memory usage can be shown with size command: +

                +
                  +$ size nuttx
                  +   text    data     bss     dec     hex filename
                  +  35037     106    1092   36235    8d8b nuttx
                  +
                +

                + NuttX, the NSH application, and GCC libraries use 34.2KB of FLASH leaving 93.8KB of FLASH (72%) free from additional application development. + Static SRAM usage is about 1.2KB (<4%) and leaves 13.8KB (86%) available for heap at runtime. + SRAM usage at run-time can be shown with the NSH free command:

                   NuttShell (NSH) NuttX-6.26
                   nsh> free
                                total       used       free    largest
                  -Mem:         13344       3944       9400       9400
                  +Mem:         14160       3944      10216       10216
                   nsh>
                  -    
                +
              +

              + You can see that 10.0KB (62%) is available for further application development. +

              Development Environments: 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS From 19e1c8809bd2ea36fc2549bc60cfd8addfacee6d Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 3 Mar 2013 21:31:28 +0000 Subject: [PATCH 1120/1518] Add System Control register definitions for the LM4F120 git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5700 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 435540f440..cd9cc489d8 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -373,7 +373,7 @@

              -

            • May be built either as an open, flat embedded RTOS or as a separately built, secure micro-kernel with a system call interface.
            • +
            • May be built either as an open, flat embedded RTOS or as a separately built, secure, monolithic kernel with a system call interface.
            • @@ -3231,7 +3231,7 @@ nsh>

              - Renesas M16C/26 Microncontroller. + Renesas M16C/26 Microcontroller. This port uses the Renesas SKP16C26 Starter kit and the GNU M32C toolchain. The development environment is either Linux or Cygwin under WinXP.

              @@ -3268,7 +3268,7 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1);

              - Zilog z16f Microncontroller. + Zilog z16f Microcontroller. This port use the Zilog z16f2800100zcog development kit and the Zilog ZDS-II Windows command line tools. The development environment is either Windows native or Cygwin under Windows. @@ -3291,7 +3291,7 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1);

              - Zilog eZ80Acclaim! Microncontroller. + Zilog eZ80Acclaim! Microcontroller. There are two eZ80Acclaim! ports:

                @@ -3324,7 +3324,7 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1);

                - Zilog Z8Encore! Microncontroller. + Zilog Z8Encore! Microcontroller. This port uses the either:

                  From 1663d7ed2c6b80d7f6f3c73c8e26a9a26078c608 Mon Sep 17 00:00:00 2001 From: patacongo Date: Mon, 4 Mar 2013 18:00:07 +0000 Subject: [PATCH 1121/1518] LPC1788 updates -- OS test configuration now works git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5704 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index cd9cc489d8..3d3782ab6a 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                  NuttX RTOS

                  -

                  Last Updated: February 18, 2013

                  +

                  Last Updated: March 4, 2013

                  @@ -1679,7 +1679,7 @@ svn checkout -r5595 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
                • ARM920T (1)
                • ARM926EJS (3)
                • ARM Cortex-M0 (1)
                • -
                • ARM Cortex-M3 (16)
                • +
                • ARM Cortex-M3 (17)
                • ARM Cortex-M4 (6)
              • Atmel AVR @@ -2529,6 +2529,27 @@ nsh>

                + +
                +
                + + +
                + +

                + NXP LPC1788. + The port of NuttX to the WaveShare Open1788 is a collaborative effort between Rommel Marcelo and myself + (with Rommel being the leading contributor and I claiming only a support role). + You can get more information at the Open1788 board from the WaveShare website. +

                +
                  + STATUS: + This is still a work in progess. + At present there is a working basic port with OS verification and Nuttshell (NSH) configurations. + This is stablilizing nicely now and the next steps will involve getting solid LCD support on the WaveShare board. +
                + + From f6a88f0d75d67f877f0047c9e7b258122277fb04 Mon Sep 17 00:00:00 2001 From: patacongo Date: Fri, 8 Mar 2013 22:01:50 +0000 Subject: [PATCH 1122/1518] up_addregion should use kmm_addregion; move garbage kmm*.c file to mm/. for now git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5721 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 9eb114fd21..0670ec11cb 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -4396,7 +4396,7 @@ build CONFIG_MM_REGIONS: If the architecture includes multiple regions of memory to allocate from, this specifies the number of memory regions that the memory manager must - handle and enables the API mm_addregion(start, end); + handle and enables the API mm_addregion(heap, start, end).
              • CONFIG_MM_SMALL: Each memory allocation has a small allocation From 7cf904108229ed6b3be09aedbdbb58bb475dbf02 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 9 Mar 2013 21:12:20 +0000 Subject: [PATCH 1123/1518] More changes for a kernel-mode allocator (more to be done) git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5724 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 0670ec11cb..3b268c0a56 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -1870,14 +1870,11 @@ The system can be re-made subsequently by just typing make.

                Prototype: void up_allocate_heap(FAR void **heap_start, size_t *heap_size);

                Description. - The heap may be statically allocated by - defining CONFIG_HEAP_BASE and CONFIG_HEAP_SIZE. If these - are not defined, then this function will be called to - dynamically set aside the heap region. + This function will be called to dynamically set aside the heap region.

                - This API is NOT required if CONFIG_HEAP_BASE - is defined. + For the kernel build (CONFIG_NUTTX_KERNEL=y) with both kernel- and user-space heaps (CONFIG_MM_KERNEL_HEAP=y), this function provides the size of the unprotected, user-space heap. + If a protected kernel-space heap is provided, the kernel heap must be allocated (and protected) by an analogous up_allocate_kheap().

                4.1.15 up_interrupt_context()

                @@ -6551,12 +6548,6 @@ int ret = sigaction(SIGCHLD, &sa, NULL);
              • CONFIG_PTHREAD_STACK_DEFAULT: Default pthread stack size
              • -
              • - CONFIG_HEAP_BASE: The beginning of the heap -
              • -
              • - CONFIG_HEAP_SIZE: The size of the heap -
              From 648ce59ee4cea41c84e756fcd1e618c7fa27ac88 Mon Sep 17 00:00:00 2001 From: patacongo Date: Fri, 15 Mar 2013 18:07:34 +0000 Subject: [PATCH 1124/1518] Prep for 6.26 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5745 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 1277 ++++++++++++++++---------------------- 1 file changed, 524 insertions(+), 753 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 3d3782ab6a..d7b797e83a 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

              NuttX RTOS

              -

              Last Updated: March 4, 2013

              +

              Last Updated: March 15, 2013

              @@ -1064,30 +1064,29 @@ -

              nuttx-6.25 Release Notes

              +

              NuttX-6.26 Release Notes

              - The 92nd release of NuttX, Version 6.25, was made on February 1, 2013, and is available for download from the + The 93rd release of NuttX, Version 6.26, was made on March 15, 2013, and is available for download from the SourceForge website. - Note that the release consists of two tarballs: nuttx-6.25.tar.gz and apps-6.25.tar.gz. + Note that the release consists of two tarballs: nuttx-6.26.tar.gz and apps-6.26.tar.gz. Both may be needed (see the top-level nuttx/README.txt file for build information) The change log associated with the release is available here. Unreleased changes after this release are available in SVN. These unreleased changes are also listed here.

              - This release corresponds with SVN release number: r5595, + This release corresponds with SVN release number: r5745, Note that all SVN information has been stripped from the tarballs. If you need the SVN configuration, you should check out directly from SVN. - Revision r5595 should equivalent to release 6.25 of NuttX: + Revision r5745 should equivalent to release 6.26 of NuttX:

                -svn checkout -r5595 svn://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
                +svn checkout -r5745 svn://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
                 

              Or (HTTP):

                -svn checkout -r5595 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
                +svn checkout -r5745 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
                 
              -

              Additional new features and extended functionality

              @@ -1098,103 +1097,68 @@ svn checkout -r5595 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

              • - Removed support for CONFIG_BUILTIN_APP_START. - This is not really a useful feature and creates a violation of the OS layered architecture. + Add an additional call-out to support board-specific driver initialization during the boot-up phase (available with CONFIG_BOARD_INITIALIZE=y).
            • - Task Creation + Tasking

              • - Implement a simple vfork()). - In NuttX-6.25, this interface is available only for ARM7/9, ARMv7-M (Cortext-M3/4), and MIPS32 (PIC32MX) platforms. + New interface task_spawn() that is like posix_spawn(), but uses entry point addresses like ask_create().
              • - exec() now sets the priority of the new task to the same priority as the parent task (instead of the arbirtrary value of 50). + Additional data restructuring as a continuation of the task group changes of NuttX 6.25. + These data structures were moved from the TCB structure into the task group: + pthread join data, atexit/on_exit callbacks, waitpiddata structures, message queues.
              • - New, partially complient implementations of execv() and execl(). - These are only partially compliant because they do not overlay any existing "process space" but rather create the new task and exit(). -
              • -
              • - Add a complete implementation of posix_spawn(). - This standard interface is a better match for an MMU-less architecture than are vfork()) plus execv() or execl(). -
              • -
              • - Add a task start hook that will be called before the task main executes. - This can be used, for example, to schedule C++ static constructors to run automatically in the context of the new task. + TCBs for tasks and pthreads are now separate structures. + This saves a little memory since tasks do not have to carry the overhead for threads and vice versa.
            • - Task Parentage + Kernel Build

              • - Repartitioned tasking data structures. - All shared resources are now collected together in a "task group". - A "task group" includes the resource for the original task that are shared with all of the pthreads created by the task. + Extensive changes were made to support the kernel build mode. + In this mode, NuttX is built as a monolithic kernel. + NuttX is built as a separate kernel mode "blob" and the applications are built as a separate user mode "blob". + The kernel runs in kernel mode and the applications run in user mode (with the MPU restricting user + mode accesses). + Access to the kernel from the user blob is only via system calls (SVCalls).
              • - Added support for remember the parent "task group" when a new task is started. + Extensive changes were made to the syscall, SVCall, and trapping logic. + Many internal interfaces were renamed.
              • - Added optional support to record the membership of each thread in the "task group". + The memory manager was extended to support both kernel- and user-mode allocations. + Logic within the kernel needs to use the correct kernel- or user-space allocator, depending upon the user of the allocated memory.
              • - Implement support for retaining child task status in the "task group" after the child task exists. - This is behavior required by POSIX. - But in NuttX is only enabled with CONFIG_SCHED_HAVE_PARENT and CONFIG_SCHED_CHILD_STATUS. + The user-space blob now contains a header built in at the beginning of the block that provides the same information that was previously provided by a kludgy, auto-generated header file (user_map.h).
              • - Add internal logic to "reparent" a task. - This is useful, for example, where the child task is created through a trampoline task that redirects I/O. - Reparenting allows the caller of posix_spawn() to be reparented for the eventual child thread. + Basic support implemented for the ARMv7-M family with fragments also implemetned for the ARMv6-M and MIPS32 families.
              • - Added support for SIGCHLD. - Sent to all members of the parent "task group" when the finall member of the child task group exits. -
              • -
              • - If SIGCHLD and retention of child task exist status are enabled, then a more spec-compliant version of waitpid() is enabled. -
              • -
              • - New interfaces waitid() and wait() are also enabled when SIGCHLD is enabled. + Kernel build supported added for the LPC17xx Open1788 and for the Atmel SAM3U-EK board. + All testing is being performed on the Open1788 board.
            • - File System + Signals

              • - dup() and dup2() can new be used with opened files in a mounted file system. - This supports re-direction of output in NSH to files. -
              • -
              • - The binfs file system was moved from apps/builtin to fs/binfs. - The binfs file system was extended to support execution of "builtin applications" using exec(), execv(), execl(), or posix_spawn(). -
              • -
              • - Added logic based on SIGCHLD to automatically unload and clean-up after running a task that was loaded into memory. -
              • -
              -
            • -
            • -

              - Binary Formats -

              -
                -
              • - Much of the logic for "builtin applications" was moved from apps/builtin to nuttx/binfmt/libbuiltin. - Includes some extensions contributed by Mike Smith. -
              • -
              • - A binary loader was added for builtin applications to support execution of "builtin applications" using exec(), execv(), execl(), or posix_spawn(). + Delivery of signals to threads within a task group is now compatible with the way that signals are delivered to threads within a process.
            • @@ -1204,44 +1168,95 @@ svn checkout -r5595 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

              • - Added logic to marshal and serialized "out-of-band" keyboard commands (such as cursor controls and key release events) intermixed with normal ASCII keypress data. - The encoding is partially integrated in the HID keyboard driver and the decoding is fully integrated into the apps/examples hidkbd/ and keypadtest/ (the latter contributed by Denis Carlikli). + Add a driver for the SST29VF NOR FLASH parts.
              • - Driver for the UG-2864HSWEG01 OLED contributed by Darcy Gong. + USB device trace/debug feature extended to decode device-specific trace events to make the trace output more readable (from Petteri Aimonen).
              • - Add support for removable serial devices (like USB serial). - This support is enabled by CONFIG_SERIAL_REMOVABLE. + USB MSC device driver can not support names of differing sizes in the USB descriptor and the SCSI fields (from Petteri Aimonen). +
              • +
              • + Locking added to MMC/SD SPI drivers so that MMC/SD can co-exist on the same bus as other SPI devices. + Frequency is reset each time that the MMC/SD SPI has the bus locked. (from Petteri Aimonen).
            • - ARMv7-M + ARMv6-M (Cortex-M0)

              • - Added an option to use the BASEPRI register to disable interrupts (instead of the PRIMASK register). - This eliminates some innocuous hardfaults that interfere with some debug tools. - You need to switch to the BASEPRI method only if you have such tool interference. + Added support for the ARM Cortex-M0 family.
            • - STM32 Drivers + nuvoTon NUC120

              • - Bring STM32 F1 DMA capabilities up to par with the STM32 F2/F4 (contributed by Mike Smith). + Added support for the nuvoTon NUC120 MCU (Cortex-M0). +
              • +
              +
            • +
            • +

              + nuvoTon NUC120 Boards +

              +
                +
              • + Added basic support for the nuvoTon NuTiny-SDK-NUC120 board (Cortex-M0). +
              • +
              +
            • +
            • +

              + LPC17xx +

              +
                +
              • + Added support for the LPC177x and LPC178x families. + Most of this is the work of Rommel Marcelo. +
              • +
              +
            • +
            • +

              + LPC17xx Boards +

              +
                +
              • + Added support for Zilogic System's ARM development Kit, ZKIT-ARM-1769. + From Rashid.
              • - Add support for USART single wire mode (Contributed by the PX4 team). + The port for the WaveShare Open1788 board is now functional. + Basic OS test and NuttShell (NSH) configurations are functional. + More driver development and testing is needed (from Rommel Marcelo).
              • +
              +
            • +
            • +

              + LPC17xx Drivers +

              +
              • - Updates to support for SPI DMA on the STM32 F1/F2/F4. - From Petteri Aimonen. + Added an SD card MSI driver for the LPC178x. + The driver is marginally functional but requires DMA capability to be reliable. +
              • +
              +
            • +
            • +

              + STM32 +

              +
                +
              • + Support extended to handle the STM32 F3 family (Cortex-M4 with F1-like peripherals).
            • @@ -1251,78 +1266,27 @@ svn checkout -r5595 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

              • - New configuration to support the UG-2864HSWEG01 OLED on the STM32F4Discovery board. -
              • -
              • - Added a posix_spawn() test configuration for the STM32F4Discovery. + Added support the STMicro STM32F3Discovery board (STM32 F3).
            • - LM3S/LM4F + Stellaris LM3S/LM4F

              • - Files and directories repartitioned to support both LM3S and LM4F using the STM32 organization as a model. -
              • -
              • - Partial definitions for the LM4F contributed by Jose Pablo Carballo (this is still a work in progress). + Basic support for the LM4F120 family is in place, but untested (mostly from Jose Pablo Carballo).
            • - LM3S Boards + Stellaris LM4F Boards

              • - Added scripts and documentation to use OpenOCD with the LM3S (from Jose Pablo Carballo). -
              • -
              -
            • -
            • -

              - LPC176x/LPC178x -

              -
                -
              • - Files and directories repartitioned to support both LPC175x/LPC176x and the LPC177x/LPC178x families using the STM32 organization as a model. - The LPC1788 port is a work in progress by Rommel Marcelo. -
              • -
              -
            • -
            • -

              - LPC176x/LPC178x Boards -

              -
                -
              • - Added a configuration to support the Wave Share Open1788 board. - This is still a work in progress by Rommel Marcelo. -
              • -
              -
            • -
            • -

              - LPC2148 Boards -

              -
                -
              • - Add basic support for the The0.net ZP213x/4xPA board (with the LPC2148 and the UG_2864AMBAG01 OLED). -
              • -
              • - Add an nxlines configuration for the ZP213x/4xPA (with the LPC2148 and the UG_2864AMBAG01). -
              • -
              -
            • -
            • -

              - Simulator -

              -
                -
              • - Add an nxlines configuration for the simulator. + Add support for the LM4F120 LaunchPad (untested).
            • @@ -1332,32 +1296,23 @@ svn checkout -r5595 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

              • - Add logic to work around delayed ACKs by splitting packets (contributed by Yan T.). -
              • -
              • - Split net_poll() to create the internal interface psock_poll(). + select() should now allocate a little less memory.
            • - LCDs + Memory Management

              • - Added support for LCD1602 alphanumeric LCD (HD4468OU controller). + Extended to support multiple heaps. + This is used as part of the kernel build in order to support separater user- and kernel-mode heaps.
              • -
              -
            • -
            • -

              - Graphics -

              -
              • - Added 5x8 monospace font. - This tiny font is useful for graph labels and for small bitmapped display. - Contributed by Petteri Aimonen. + The stand-alone memory manger test had to be removed. + It was too entangled and made extension of the memory manager nearly impossible. + This is a loss.
            • @@ -1367,85 +1322,22 @@ svn checkout -r5595 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

              • - Add an options to better manage toolchain prefixes. -
              • -
              • - Redesigned how the context targer works in the apps/ directory. - The old design caused lots of problems when changing configurations because there is no easy way to get the system to rebuild the context. - This change should solve most the problems and eliminate questions like "Why don't I see my builtin application in NSH?" + Several configurations converted to use the kconfig-frontends configuration tool. + There are still many more that need to be converted.
            • - Kconfig Files + C Library

              • -

                - There are several new configurations that use the kconfig-frontends tools and several older configurations that have been converted to use these tools. - There is still a long way to go before the conversion is complete: -

                -
                  -
                • - configs/sim/nxwm -
                • -
                • - configs/sim/nsh -
                • -
                • - configs/stm3220g-eval/nxwm -
                • -
                • - configs/stm32f4discovery/posix_spawn -
                • -
                • - configs/olimex-lpc1766stk/nsh -
                • -
                • - configs/olimex-lpc1766stk/hidkbd -
                • -
                • - configs/olimex-lpc1766stk/nettest -
                • -
                • - configs/open1788/ostest -
                • -
                • - configs/stm32f4discovery/nsh -
                • -
                • - configs/stm32f4discovery/usbnsh -
                • -
                • - configs/lm326965-ek (all configurations) -
                • -
                • - configs/mcu123-214x/nsh -
                • -
                • - configs/ubw32/ostest -
                • -
                -
              • -
              -
            • -
            • -

              - Tools -

              -
                -
              • - tools/kconfig.bat: Kludge to run kconfig-frontends from a DOS shell. + Move the workqueue logic into the C library. + There is now a special user-space version of the work queue (which will only be used with a NuttX kernel build).
              • - tools/configure.c: configure.c can be used to build a work-alike program as a replacement for configure.sh. - This work-alike program would be used in environments that do not support Bash scripting (such as the Windows native environment). -
              • -
              • - tools/configure.bat: configure.bat is a small Windows batch file that can be used as a replacement for configure.sh in a Windows native environment. - configure.bat is actually just a thin layer that executes configure.exe if it is available. - If configure.exe is not available, then configure.bat will attempt to build it first (assumes the MinGW-GCC is available). + Implementation of itoa() contributed by Ryan Sundberg.
            • @@ -1455,50 +1347,58 @@ svn checkout -r5595 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

              • - New and modified examples: -

                -

                  -
                • - apps/examples/wlan: Remove non-functional example. -
                • -
                • - apps/examples/ostest: Added a test of vfork()). - Extend signal handler test to catch death-of-child signals (SIGCHLD). - Add a test for waitpid(), waitid(), and wait(). -
                • -
                • - apps/exampes/posix_spawn: Added a test of posix_spawn(). -
                • -
                -

                + The NSH builtin task logic now uses task_spawn() to start builtin applications.

              • - NSH: -

                -

                  -
                • - NSH now supports re-direction of I/O to files (but still not from). -
                • -
                • - The block driver source argument to the mount command is now optional for file systems that do not require a block driver. -
                • -
                -

                + The OS test now includes a test cased to verify task_restart().
              • +
              + +
            +

            + Efforts In Progress. + The following are features that are partially implemented but present in this release. + Most are expected to be fully available in NuttX 6.27. +

            +
              +
            • +

              + LM4F120 LaunchPad port +

              +
              • - NSH can now execute a program from a file system using posix_spawn(). + Code is in place, but nothing has been tested.
              • +
              +
            • +
            • +

              + WaveShare Open1788 port +

              +
              • - Added support for a login script. - The init.d/rcS script will be executed once when NSH starts; - the .nshrc script will be executed for each session: - Once for a serial console, once for each USB connection, and once for each Telnet session. + This port as actually complete and functional. + However, there is still ongoing development and testing of drivers.
              • +
              +
            • +
            • +

              + Kernel Build +

              +
              • - Supports a new daemon that can be used to monitor USB trace outpout. + Much progress has been made, but there kernel build is not yet fully functional due to several user resources that are not yet properly disentangled from the kernel blob.
              • +
              +
            • +
            • +

              + kconfig-frontends +

              +
              • - Removed non-functional wlan example. + Conversion of old configurations to use the kconfig-frontends tool is an ongoing effort that will continue for some time.
            • @@ -1514,22 +1414,22 @@ svn checkout -r5595 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

              • - Fixed a *critical* task exit bug. - Here is the failure scenario: - (1) sched_lock() is called increments the lockcount on the current TCB (i.e., the one at the head of the ready to run list), - (2) sched_mergepending() is called which may change the task at the head of the ready-to-run list, then - (3) sched_unlock() is called which decrements the lockcount on the wrong TCB. - The failure case that I saw was that pre-emption got disabled in the IDLE thread, locking up the whole system. + The wrong PID was being signalled with SIGCHILD. + It should be the PID of the task that create the task group, not the ID of the last thread to leave the task group. +
              • +
              • + Added logic so that some internal resources and states are recovered when tasks are deleted or restarted. + Handle cases where there are outstanding timed events pending when tasks are deleted or restarted.
            • - Signals + ARMv7-M

              • - sigtimedwait() would return a bad signal number if the signal was already pending when the function was called. + Several fixes to the MPU control logic.
            • @@ -1539,8 +1439,10 @@ svn checkout -r5595 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

              • - Some SD cards will appear busy until switched to SPI mode for first time. - Having a pull-up resistor on MISO may avoid this problem, but this fix from Petteri Aimonen makes it work also without pull-up. + Removable serial drivers race conditions fixed. +
              • +
              • + MAX11802 timing bug (from Petteri Aimonen).
              @@ -1550,43 +1452,25 @@ svn checkout -r5595 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

              • - STM32 FLASH driver counting error (from Freddie Chopin). + Handle cases were SPI DMA logic fails if sem_wait() is awakened by a signal. + Need to clear error flags to prevent corruption of subsequent transfers. + Also, bit count should not be changed while the SPI peripheral is enabled (from Petteri Aimonen).
              • - STM32 F4 maximum SPI frequency was wrong (corrected by Petteri Aimonen). + Fixes to the OTG FS device driver from Petteri Aimonen. +
              • +
              • + Fix typos in DMA register header file (from Yan T.)
            • - STM32 Boards + Graphics

              • - Due to cloning of untested code, the logic to control on-board LEDs did not work on any STM32 boards. -
              • -
              • - Serial devices number /dev/ttyS0-5 is there is a serial console, but /dev/ttyS1-6 if there is no serial console. -
              • -
              -
            • -
            • -

              - Binary Formats -

              -
                -
              • - C++ static constructors execute now using a start taskhook so that they execute in the context of the child task (instead of in the context of the parent task). -
              • -
              -
            • -
            • -

              - File Systems -

              -
                -
              • - Several FAT-related bugs fixed by Petteri Aimonen. + Correction to the hyphen in the SANS 17x22 font (from Petteri Aimonen).
            • @@ -1596,27 +1480,19 @@ svn checkout -r5595 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

              • - Fix poll/select issure reported by Qiang: poll_interrupt() must call net_lostconnection() when a loss of connection is reported. - Otherwise, the system will not remember that the connection has been lost and will hang waiting on a unconnected socket later. -
              • -
              • - Similar issues corrected for recvfrom() and send(). -
              • -
              • - Telnetd would hang in a loop if recv() ever returned a value <= 0. + Corrected errors in the socket poll/select logic. Additional + state logic was needed to detect if the socket is still connected + before starting the poll wait. (bug reported by Qiang Yu).
            • - Libraries + Memory Management

              • - fread() could hang on certain error conditions. -
              • -
              • - Can't handle SYSLOG output to a character device from the IDLE task (because the IDLE task can't block). + mallinfo() should hold the memory manager semaphore (from Petteri Aimonen.
            • @@ -1626,27 +1502,24 @@ svn checkout -r5595 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

              • - Serial was driver was not being built if there is no console device. - Obviously, the serial driver may be needed even in this case. + Resolved several build errors reported by Mike Smith.
            • - Additional Bugfixes + Applications

              • - sig_timedwait() and clock_time2ticks.c: Timing "rounding" logic + Fixed an NSH memory leak: + Needed to detach after creating each pthread.
              • - ARM9 Compilation issue with low vectors. -
              • -
              • - readline() return value -
              • -
              • - As well as other, less critical bugs as detailed in the ChangeLog: HID keyboard, LPC17xx bit definitions, strndup(), PL2303, SYSLOG error handling, AT25, apps/examples. + readline() now returns EOF on any failure (instead of a negated errno value). + This is because the underlying read is based on logic similar to getc. + The value zero (meaning end-of-file) was being confused with a NUL. + So if a NUL was received, the NSH session would terminate because it thought it was the end of file.
            • @@ -1680,7 +1553,7 @@ svn checkout -r5595 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
            • ARM926EJS (3)
            • ARM Cortex-M0 (1)
            • ARM Cortex-M3 (17)
            • -
            • ARM Cortex-M4 (6)
            • +
            • ARM Cortex-M4 (7)
          • Atmel AVR
              @@ -2546,7 +2419,7 @@ nsh> STATUS: This is still a work in progess. At present there is a working basic port with OS verification and Nuttshell (NSH) configurations. - This is stablilizing nicely now and the next steps will involve getting solid LCD support on the WaveShare board. + This is stablilizing nicely now and the next steps will involve getting solid driver support for the SD slot and the LCD on the WaveShare board.
            @@ -2750,6 +2623,27 @@ nsh>

            + +
            + +

            + TI Stellaris LM4F120. + This port uses the TI Stellaris LM4F120 LaunchPad. + Jose Pablo Carballo is doing this port. +

            +
              +

              + STATUS: + As of this writing, the basic port is code complete but still untested. + The fully verified LM4F120 LaunchPad port is expected in NuttX-6.27. +

              +
            + + + +
            +
            +
            @@ -3842,421 +3736,318 @@ Other memory:
              -nuttx-6.25 2013-02-01 Gregory Nutt <gnutt@nuttx.org>
              +nuttx-6.26 2013-05-15 Gregory Nutt <gnutt@nuttx.org>
               
              -    * graphics/: Adds 5x8 monospace font. This tiny font is useful for graph
              -      labels and for small bitmapped display.  Contributed by Petteri
              +    * drivers/serial/serial.c:  Correct some race conditions when checking
              +      for disconnection of a removable serial device.
              +    * sched/task_posixspawn.c, task_spawn.c, task_spawnparms.c and
              +      spawn_internal.h:  Create new interface task_spawn() that is
              +      like posix_spawn(), but uses entry point addresses like
              +      task_create().
              +    * Corrected all argv[] arguments. Should be char * const *, not
              +      const char **.
              +    * sched/pthread* and include/nuttx/sched: Move pthread join data
              +      and pthread key calculation data into the "task group" structure.
              +    * sched/atexit.c, on_exit.c, task_exithook.c and include/nuttx/sched.h:
              +      Move atexit and on_exit data structures to task group.  These
              +      callbacks are only issued now when the final member of the task
              +      group exits.
              +    * sched/waitpid.c, task_exithook.c and include/nuttx/sched.h:
              +      Move waitpid data data structures to task group.  Callers of
              +      of waitpid() are now only awakened whent he final thread of the
              +      task group exits.
              +    * sched/mq_descreate.c, mq_open.c, mq_remove.c, group_leave.c, and
              +      include/nuttx/sched.h:  Move list of opened message queues to
              +      the task group structures.  Now all message queues opened by
              +      members of the group are closed when the last member of the group
              +      exits.
              +    * includes/nuttx/sched.h and Lots of files:  Change name of _TCB to
              +      struct tcb_s so that (1) it is consitent with other NuttX naming and
              +      so that (2) the naming can handle some upcoming changes.
              +    * includes/nuttx/sched.h and sched/:  There are three TCB structures:
              +      struct tcb_s is a generic common version, struct task_tcb_s is a
              +      version for tasks and kernel threads and pthread_tcb_s is a version
              +      for pthreads.  By dividing the TCB structure into these variants,
              +      pthreads do not have to be burdened by task-specific data structures
              +      (and vice versa).
              +    * sched/task_exithook.c adn group_create.c:  Fix an error, the
              +      task within the task group may exit early leaving a pthread to
              +      exit the task group last.  In this case, we need to remember the
              +      the PID of the main task in the task group and use that PID for
              +      signalling SIGCHILD to the parent task group.
              +    * included/nuttx/sched.h and sched/sig*.c:  Numerous changes to the
              +      signal deliver logic so that the delivery of signals to threads
              +      within a task group will be compliant with delivery of signals
              +      to threads within a POSIX process.
              +    * sched/mq_recover.c and task_exithook.c:  Add logic to handle the
              +      case where a task is deleted (or pthread canceled) while it is
              +      waiting on a message queue.  task_delete() and pthread_cancel()
              +      are dangerous interfaces.  This is only one feeble recover measure
              +      of *many* that would be needed to do this safely.
              +    * sched/group_killchildren.c, task_recover.c, group_foreachchild.c,
              +      sched/restart.c, sched/task_delete.c, and others:  Beef up logic
              +      to better support task deletion and pthread cancellation.  Needed
              +      to pass need OS test case for task_restart().
              +    * sched/include/sched.h and all timed functions in sched/:  Move
              +      timer from local variables to TCB.  This is needed so that if a
              +      task is canceled or restarted while it is waiting for a timed
              +      event, we can gracefully recover.  We can't let the timer expire
              +      after the task has been deleted.
              +    * arch/arm/include/stm32 and arch/arm/src/stm32:  Add support for
              +      the STM32 F3 family (still missing some things).
              +    * configs/stm32f3discovery:  This will (eventually) be support for
              +      the STM32F3Discovery board.
              +    * STM32 F3 and STM32F3Discovery port is complete a ready for test.
              +    * arch/arm/src/lpc17xx: Add support for the Cortex-M4 FPU and
              +      Mikes "common vector" logic.  The LPC1788 is going to need
              +      these things.
              +    * arch/arm/src/stm32/stm32_spi.c:  Fix SPI DMA logic that does
              +      not work if sem_wait() is interrupt by a signal.  From Petteri
                     Aimonen.
              -    * configs/stm3220g-eval/nxwm:  Converted to use the kconfig-frontends
              -      configuration tool.
              -    * configs/sim/nxwm:  Converted to use the kconfig-frontends configuration
              -      tool.
              -    * include/pthread.h:  In sys/prctl.h because it is needed by
              -      pthread_[set|get]name_np()
              -    * tools/kconfig.bat:  Kludge to run kconfig-frontends from a DOS shell.
              -    * sched/sig_timedwait.c:  Should always move the time up to the next
              -      largest number of system ticks.  The logic was rounding.  Noted by
              -      Petteri Aimonen.
              -    * arch/arm/src/up_head.S:  Fix backward conditional compilation.  NOTE
              -      there is a issue of ARM9 systems with low vectors and large memories
              -      that will have to be addressed in the future.
              -    * libc/misc/lib_kbdencode.c and lib_kbddecode.c:  Add logic to marshal
              -      and serialized "out-of-band" keyboard commands intermixed with normal
              -      ASCII data (not yet hooked into anything).
              -    * drivers/usbhost/usbhost_hidkbd.c:  If CONFIG_HIDKBD_ENCODED is
              -      defined, this driver will now use libc/misc/lib_kbdencode.c to
              -      encode special function keys.
              -    * configs/olimex-lpc1766stk/hidkbd:  This configuration has been
              -      converted to use the kconfig-frontends configuration tool.
              -    * drivers/lcd/ug-2864hsweg01.c and include/nuttx/lcd/ug-2864hsweg01.h:
              -      Driver for UG-2864HSWEG01 OLED contributed by Darcy Gong.
              -    * configs/stm32f4discovery/src/up_ug2864hsweg01.c: Support for the
              -      UG-2864HSWEG01 OLED for the STM32F4Discovery board.
              -    * drivers/usbhost/usbhost_hidkbd.c:  Correct a logic error in how
              -      tasks waiting for read data are awakened.
              -    * libc/misc/lib_kbdencode.c and lib_kbddecode.c:  Now handles keypress
              -      events too.  However, the USB HID keyboard driver has not yet been
              -      updated to detect key release events.  That is kind of tricky in
              -      the USB HID keyboard report data.
              -    * configs/mcu123-214x/nsh:  Converted to use the kconfig-frontends
              -      configuration tool.
              -    * configs/zp214xpa:  Add basic support for the The0.net ZP213x/4xPA
              -      board (with the LPC2148 and the UG_2864AMBAG01).
              -    * configs/sim/nxlines:  Add an nxlines configuration for the
              -      simulator.
              -    * configs/zp214xpa/nxlines:  Add an nxlines configuration for the
              -      ZP213x/4xPA (with the LPC2148 and the UG_2864AMBAG01).  Working
              -      as of 2012-12-30.
              -    * configs/olimex-lpc1766stk/wlan:  Remove non-functional
              -      configuration.
              -    * configs/stm32f4discovery/src and nuttx/drivers/lcd/ug-2864hsweg01.c:
              -      Updates and correctinos for the UG-2864HSWEG01 from Darcy Gong.
              -    * configs/lm326965-ek:  All configurations converted to use the
              -      kconfig-frontends configuration tool.
              -    * configs/Kconfig: NSH_MMCSDSPIPORTNO should depend on MMCSD_SPI,
              -      not just SPI (from Jose Pablo Carballo).
              -    * arch/arm/src/arm/Kconfig and armv7m/Kconfig:  Add an option for
              -      buildroot toolchains:  They may be EABI or OABI.
              -    * include/nuttx/progmem and arch/arm/src/stm32/stm32_flash.c:
              -      Fix a counting bug plus change interface to use either relative
              -      or absolute FLASH addressing (from Freddie Chopin).
              -    * libc/misc/Make.defs:  Fix error in conditional for KBD CODEC.
              -    * libc/Kconfig and configs/*/defconfig (several):  The default
              -      setting should be CONFIG_LIB_KBDCODEC=n
              -    * tools/configure.c:  configure.c can be used to build a work-alike
              -      program as a replacement for configure.sh.  This work-alike
              -      program would be used in environments that do not support Bash
              -      scripting (such as the Windows native environment).
              -    * tools/configure.bat: configure.bat is a small Windows batch
              -      file that can be used as a replacement for configure.sh in a
              -      Windows native environment.  configure.bat is actually just a
              -      thin layer that executes configure.exe if it is available. If
              -      configure.exe is not available, then configure.bat will attempt
              -      to build it first.
              -    * arch/arm/src/lpc17xx/lpc17_syscon.h:  Correct some typos in bit
              -      definitions (from Rommel Marcelo).
              -    * libc/string/lib_strndup.c: strndup() should use strnlen(), not
              -      strlen(), to determine the size of the string.
              -    * sched/os_bringup.c:  Remove support for CONFIG_BUILTIN_APP_START.
              -      This is not really a useful feature and creates a violation of the
              -      OS layered architecture.
              -    * include/unistd.h, arch/arch/src/*:  Implement a simple vfork().
              -      On initial checkin, this API is available only for ARM platforms.
              -    * binfmt/binfmt_exec.c: exec() now sets the priority of the new task
              -      to the same priority as the current task (instead of the arbirtrary
              -      value of 50).
              -    * libc/unisted/lib_execv.c and lib_execl.c:  New, somewhat flawed,
              -      implementations of execv() and execl().
              -    * tools/cfgdefine.c:  Strips quotes from CONFIG_EXECFUNCS_SYMTAB
              -      value.
              -    * arch/arm/include/lm3s/chip.h:  Move chip definitions into
              -      public include area for compatibility with other architectures.
              -    * arch/arm/src/lm3s/chip:  Move register definition header files
              -      into a new chip/ sub-directory.
              -    * arch/arm/src/lm3s/lm3s_internal.h:  Broke up into several
              -      smaller header files.
              -    * arch/arm/src/lm:  Rename the arch/arm/src/lm3s directory to
              -      arch/arm/src/lm so that is can support other members of the
              -      Stellaris family.
              -    * libc/spawn:  Add file action interfaces needed by posix_spawn().
              -    * sched/clock_time2ticks.c:  Another case where time was being
              -      rounded down instead of up (from Mike Smith).
              -    * libc/spawn:  Implementation of posix_spawn() is complete but
              -      untested and undocumented.
              -    * drivers/usbdev/pl2303.c:  Fix typols in the PL2303 driver
              -      (from Max Holtzberg).
              -    * configs/stm32f4discovery/posix_spawn:  Added a configuration
              -      that can be used for testing posix_spawn().
              -    * arch/arm/src/stm32: Bring F1 support for general DMA and serial
              -      DMA in paricular up to parity with F2/F4 (from Mike Smith).
              -    * libc/stdio/lib_libfread.c:  Correct some error handling when
              -      lib_fread() was passed a bad stream.  Needed to move the
              -      releasing of a semaphore inside of some conditional logic
              -      (cosmetic).
              -    * include/nuttx/sched.h, sched/task_setup.c, and sched/task_exithook.c:
              -      Add support for remembering the parent task and sending
              -      SIGCHLD to the parent when the task exists.
              -    * sched/task_exithook.c:  Fixed a *critical* bug.  Here is
              -      the scenario: (1) sched_lock() is called increments the lockcount
              -      on the current TCB (i.e., the one at the head of the ready to run
              -      list), (2) sched_mergepending is called which may change the task
              -      at the head of the ready-to-run list, then (3) sched_unlock() is called
              -      which decrements the lockcount on the wrong TCB.  The failure case
              -      that I saw was that pre-emption got disabled in the IDLE thread,
              -      locking up the whole system.
              -    * sched/sched_waitpid.c:  Use SIGCHLD instead of a semaphore.  This
              -      is a much more spec-compliant implementation.  However, there are
              -      some issues with overruning signals because NuttX does not support
              -      queueing of signals (POSIX does not require it).  I think it may
              -      need to.
              -    * sched/sched_waitid.c and sched_wait.c:  Add support for waitid()
              -      and wait().  See issues with waitpid() above.
              -    * include/nuttx/fs/fs.h and fs/fs_files.c:  Add a dup() method to
              -      the struct mountpt_operations.  When dup'ing a file that resides
              -      on a mounted volume, let the file system's dup() method do the
              -      work.
              -    * fs/romfs/fs_romfs.c: Implemented the dup() method for the ROMFS
              -      file system.
              -    * fs/fat/fs_fat32.c, fs/nxffs/nxffs_initialize, and
              -      fs/nfs/nfs_vfsops.c:  Add hooks for dup() method (not yet
              -      implemented).
              -    * fs/romfs:  Remove the rf_open flag.  It looks good, but actually
              -      does nothing.
              -    * fs/fat:  Remove the ff_open flag.  Same story as for the ROMFS
              -      rf_open flag.
              -    * fs/fat/fs_fat32.c, fs/nxffs/nxffs_initialize, and
              -      fs/nfs/nfs_vfsops.c:  Completed implementation of the dup() methods.
              -      There is still no good test available.
              -    * sched/sig_timedwait.c:  sigtimedwait() would return a bad signal
              -      number if the signal was already pending when the function was
              -      called.
              -    * configs/ubw32/scripts:  All common linker scripts moved to this
              -      scripts sub-directory
              -    * configs/ubw32/ostest:  Configuration configured to use the
              -      kconfig-frontends tools.
              -    * arch/mips/src/mips32/up_vfork.c, up_vfork.h, and vfork.S:
              -      Implement vfork() for MIPS32 (no floating point support)
              -    * configs/ubw32/ostest: Enable the vfork() test.
              -    * fs/binfs:  Move apps/builtin/binfs.c to fs/binfs/fs_binfs.c
              -      CONFIG_APPS_BINDIR rename CONFIG_FS_BINFS
              -    * include/nuttx/binfmt/builtin.h:  Some of the content of
              -      apps/include/apps.h moved to include/nuttx/binfmt/builtin.h
              -    * binfmt/libbuiltin/libbuiltin_utils.c:  Move builtin
              -      utility functions from apps/builtin/exec_builtins.c to
              -      binfmt/libbuiltin/libbuiltin_utils.c
              -    * binfmt/builtin.c and binfmt/libbuiltin:  Add a binary "loader"
              -      that can be used to execute builtin programs from the BINFS
              -      file system.
              -    * configs/sim/nsh: Convert to use kconfig-frontends configuration
              -      tool.
              -    * binfmt/binfmt_schedunload.c:  Add logic based on SIGCHLD to
              -      automatically unload and clean-up after running a task that
              -      was loaded into memory.
              -    * binfmt/libbuiltin: Extensions from Mike Smith
              -    * sched/task_reparent.c:  Add internal interface to change the
              -      parent task.
              -    * sched/task_posixspawn():  Move libc/spawn/lib_ps.c to
              -      sched/task_posixspawn() now it requires internal, reparenting
              -      interfaces
              -    * include/nuttx/spawn():  Move libc/spawn.h to include/nuttx/spawn.h
              -    * arch/arm/include/lpc17xx/chip.h, irq178x.h:  Integrate Marcelo
              -      Rommel's LPC1788 definitions into the base LPC17xx.
              -    * configs/olimex-lpc1766stk/nsh:  Convert configuration to use
              -      the kconfig-frontends tools.
              -    * sched/task_reparent.c:  Simplify reparenting interface.
              -    * arch/arm/src/[many]: More LPC1788 definitions from Rommel
              -      Marcelo incorporated.
              -    * configs/open1788:  Board configuration for the Wave Share
              -      Open1788 board.  Still fragmentary (contributed by Rommel
              -      Marcelo, adapted to use kconfig-frontends.
              -    * net/send():  Add logic to work around delayed ACKs by splitting
              -      packets (contributed by Yan T.).
              -    * net/recvfrom():  Fix a bug.  When the host closes a connection
              -      (gracefully).  recv[from]() returned success and the closure
              -      was never detected.  Hmmm.. I don't know why the network monitor
              -      did not catch this event.  This is an important bug fix.
              -    * net/recvfrom():  Fix a introduced with the last bugfix.  If
              -      the peer does an orderly closure of the socket, report 0 not
              -      -ENOTCONN
              -    * configs/lm3s6965-ek/README.txt and tools/:  Add an OpenOCD
              -      configuration for the LM3S (from Jose Pablo Carballo).
              -    * nuttx/lcd/hd4478ou.h and configs/pcblogic-pic32mx/src/up_lcd1602:
              -      Start of support of LCD1602 alphanumeric LCD.  I need a few
              -      more parts before I can finish integrating this one.
              -    * arch/arm/src/*/chip.h and arch/arm/include/*/chip.h:  Move all
              -      priority ranges from the src to the include chip.h header file.
              -    * arch/arm/include/armv7-m/irq.h:  Add inline functions to enable
              -      and disable interrupts via the BASEPRI register.
              -    * arch/arm/Kconfig:  Add new option CONFIG_ARM7VM_USEBASEI
              -    * arch/arm/src/*/*_irq.c:  Set the priority of the SVCALL exception
              -      to the highest possible value.
              -    * arch/armv7-m/up_hardfault.c:  Fail if a hardfault occurs
              -      while CONFIG_ARM7VM_USEBASEPRI=y.
              -    * arch/arm/src/stm32/stm32_serial.c:  Add support for USART
              -      single wire mode (Contributed by the PX4 team).
              -    * sched/: Implement support for retaining child task status after
              -      the child task exists.  This is behavior required by POSIX.
              -      But in NuttX is only enabled with CONFIG_SCHED_HAVE_PARENT and
              -      CONFIG_SCHED_CHILD_STATUS
              -    * Add support for keyboard encode to the keypad test (from
              -      Denis Carikli).
              -    * configs/olimex-lpc1766stk/nettest:  Configuration converted to
              -      use the kconfig-frontends tools.
              -    * net/net_poll.c:  Split net_poll() to create psock_poll() too.
              -    * net/net_poll.c:  Fix poll/select issure reported by Qiang:
              -      poll_interrupt() must call net_lostconnection() when a
              -      loss of connection is reported.  Otherwise, the system will
              -      not know that the connection has been lost.
              -    * sched/group_create.c, group_join.c, and group_leave.c:  Add
              -      support for task groups.
              -    * sched/group_signal.c and task_exithook.c:  Send signal to all
              -      members for the parent task group.
              -    * include/nuttx/sched.h and sched/env_*.c:  Move environment
              -      variables into task group structure.
              -    * sched/: Lots of file changed.  Don't keep the parent task's
              -      task ID in the child task's TCB.  Instead, keep the parent
              -      task group IN the child task's task group.
              -    * fs/, sched/, include/nuttx/sched.h, and include/nutts/fs/fs.h:
              -      Move file data from the TCB to the task group structure.
              -    * libc/stdio/, sched/, include/nuttx/lib.h, and include/nutts/fs/fs.h:
              -      Move stream data from the TCB to the task group structure.
              -    * net/, sched/, and include/nuttx/net/net.h:  Move socket data
              -      from the TCB to the task group structure.
              -    * sched/task_starthook.c, sched/task_start.c, and include/nuttx/sched.h:
              -      Add a task start hook that will be called before the task main
              -      is started. This can be used to schedule C++ constructors to run
              -      automatically in the context of the new task.
              -    * binfmt/binfmt_execmodule: Execute constructors as a start hook.
              -    * sched/os_start.c: Fix ordering of group initialization.
              -    * configs/stm32f4discovery/usbnsh:  Add an NSH STM32F4Discovery
              -      configuration that uses USB CDC/ACM for the NSH console.
              -    * configs/stm32f4discovery/nsh: Converted to use the kconfig-frontends
              -      tools.
              -    * configs/*/src/up_userleds.c: Fix a error that was cloned into
              -      all STM32 user LED code.  The wrong definitions were being used
              -      to set LEDs on or off.
              -    * arch/*/common/up_internal.h and arch/*/common/up_initialize.c:
              -      Serial was driver was not being built if there is no console
              -      device.  Obviously, the serial driver may be needed even in
              -      this case.
              -    * arch/arm/src/stm32/stm32_serial.c: If there is a serial console,
              -      it would be ttyS0 and the others would be ttyS1-5.  If there
              -      is not serial console, was labeling them ttyS1-6; now labels them
              -      ttyS0-5.
              -    * fs/fs_syslog.c: Can't handle SYSLOG output to character device from
              -      the IDLE task (because it can't block). syslog_putc now returns EOF
              -      on failure and sets errno.  Fixed some errors in error handling.
              -    * libc/stdio/lib_syslogstream.c:  Checking of return value from
              -      syslog_putc was bogus.  Switching to EOF for all errors solves
              -      this.
              -    * arch/arm/src/lm/chip/lm4f_memorymap.h: More LM4F changes from
              -      Jose Pablo Carballo.
              -    * drivers/serial/serial.c, include/nuttx/serial/serial.h,
              -      drivers/usbdev/cdcacm.c, and drivers/pl2303.c: Add support for
              -      removable serial devices (like USB serial).  This support is enabled
              -      by CONFIG_SERIAL_REMOVABLE.
              -    * arch/*/src/*/Toolchain.defs: Change assignment so that we can
              -      override CROSSDEV with a make command line argument.
              -    * include/assert.h:  Mark assertion functions as non-returning.
              -    * arch/*/src/*/up_assert.h:  Mark _up_assert() as non-returning.
              -    * drivers/mtd/at25.c: When the AT25 device was not available the
              -      initialization did not fail like it should. From Petteri Aimonen.
              -    * fs/fat/fs_configfat.c:  Fix some errors in FAT formatting logic
              -      for large devices and for FAT32. From Petteri Aimonen.
              -    * fs/fat/fs_fat32util.c:  Fix an initialization error found by
              -      Petteri Aimonen.  freecount and next freecount initialization were
              -      reversed.
              -    * drivers/mmcsd/mmcsd_spi.c: Some SD cards will appear busy until
              -      switched to SPI mode for first time.  Having a pull-up resistor on
              -      MISO may avoid this problem, but this patch makes it work also
              -      without pull-up.  From Petteri Aimonen.
              -    * fs/fat/fs_fat32.c: Fix a compilation error when FAT_DMAMEMORY=y. 
              +    * drivers/input/max11802.c: MAX11802: Fix a timing bug that
              +      corrupted coordinates.  From Petteri Aimonen.
              +    * drivers/mmcsd/mmcsd_spi.c:  Use SPI locking so that MMC/SD can
              +      exist on the same bus as other SPI devices.  From Petteri
              +      Aimonen.
              +    * graphics/nxfonts/nxfonts_sans17x22.h: Small mod to hyphen in
              +      sans17x22 font.  The hyphen did not have any space on its sides.
              +      This caused it to run together with other characters so that for
              +      example "+-" would look weird. From Petteri Aimonen.
              +    * mm/mm_mallinfo.c:  Take MM semaphore in mm_mallinfo. From Petteri
              +      Aimonen.
              +    * configs/stm32f3discovery/nsh/defconfig:  Disable SPI.  It is not
              +      used.
              +    * drivers/mtd/sst39vf:  Add a driver for the SST29VF NOR FLASH parts.
              +    * sched/os_start.c:  Add an additional call-out to support board-
              +      specific driver initialization during the start phase:  If
              +      CONFIG_BOARD_INITIALIZE is defined, then an additioinal
              +      initialization function called board_initialize() will be called
              +      just after up_initialize() is called and just before the initial
              +      application is started.
              +    * arch/arm/src/stm32/stm32_otgfsdev.c, drivers/usbdev/usbdev_trprintf.c,
              +      and include/nuttx/usb/usbdev_trace.h:  Add logic to support decoding
              +      of device-specific trace events to make the trace ouput more readable.
                     From Petteri Aimonen.
              -    * arch/arm/src/stm32/chip/stm32_spi.h: STM32F4 max SPI clock freq is
              -      37.5 MHz.  Patch from Petteri Aimonen.
              -    * arch/arm/src/stm32/stm32_spi.c: Fixes for SPI DMA work on the
              -      STM32F4. Includes untested additions for the F1 implementation as
              -      well.  From Petteri Aimonen.
              +    * arch/arm/src/stm32/stm32_otgfsdev.c:  Need to manually set CNAK in
              +      the case where we are waiting for a SETUP command with DATA.  Otherwise,
              +      the core may NAK further transactions.  From Petteri Aimonen.
              +    * arch/arm/src/stm32/stm32_otgfsdev.c: Add logic to prevent premature
              +      to IDLE state.  This change (plus the previous) was necessary to get
              +      the CDC/ACM driver working the certain STM32 F4 hardware (but not others).
              +      These changes appear to prevent certain race conditions that may or may
              +      not cause USB problems.  From Petteri Aimonen.
              +    * arch/arm/include/armv6-m and arch/arm/src/armv6-m: First cut at support
              +      for the Cortex-M0
              +    * configs/nutiny-nuc120, arch/arm/include/nu1xx, and arch/arm/src/nuc1xx:
              +      Support for Nuvoton NuTiny NUC120.
              +    * 2013-02-22:  the Cortex-M0, NuvoTron NUC1xx, and NuTiny-SDK-NUC120 port
              +      is code complete and ready for testing.
              +    * configs/ekk-lm3s9b96/ostest and nsh:  All EKK-LM3S9B96 configurations
              +      converted to use the mconf configuration tool.
              +    * configs/zkit-arm-1769:  Add support for Zilogic System's ARM development
              +      Kit, ZKIT-ARM-1769.  From Rashid.
              +    * configs/zkit-arm-1769/hello:  Add a "Hello, World!" configuration for
              +      the KBIT-ARM-1769 board.  From Rashid.
              +    * configs/zkit-arm-1769/thttpd:  Add a THTTPD configuration for the
              +      KBIT-ARM-1769 board.  From Rashid.
              +    * 2013-02-27: All configurations for the Cortex-M0 NuTINY-SDK-NUC120
              +      appear to be functional and stable.
              +    * configs/zkit-arm-1769/nsh:  Add an NSH configuration for the
              +      KBIT-ARM-1769 board.  From Rashid.
              +    * arch/arm/src/stm32/stm32_otgfsdev.c:  Fixes from Petterri Aimonen
              +      related to corner cases that can cause infinite interrupts.
              +    * drivers/usbdev/usbmsc_scsi.c:  Change to allow the full name in the
              +      USB descriptor but a truncated, 8-byte name in the SCSI field.
              +      From Petteri Aimonen.
              +    * arch/arm/src/stm32/stm32_spi.c: Need to clear error flags to prevent
              +      corruption of subsequent transfers.  Also, bit count should not be
              +      changed while the SPI peripheral is enabled.  From Petteri Aimonen.
              +    * drivers/mmcsd/mmcsd_spi.c:  When bus is shared, the speed has to be
              +      set every time.  Also SD cards require a few dummy clocks to react
              +      into CS release.  From Petteri Aimonen.
              +    * configs/lm4f120-launchpad: In initial configuration for testing
              +      the LM4F120 LaunchPad port.  This is to support testing only and
              +      is not yet a functional board port (as of 2013-03-01).
              +    * arch/arm/include/lm/lm4f_irq.h and arch/arm/src/lm/chip/lm4f_vector.h:
              +      Add interrupt vector/IRQ number definitions for the LM4F120.
              +    * arch/arm/src/stm32f20xxx_dma.c and stm32f40xxx_dma.c:  Fix a typo
              +      in assigned base register addresses for each DMA channel.  From
              +      Yan T.
              +    * Several build fixes from Mike Smith were incorporated.  These were
              +      mostly compilation errors introduced into the system because of the
              +      large number of recent changes with broad scope (2013-03-04).
              +    * configs/zkit-arm-17969/src/up_can.c:  Add CAN support to the
              +      Zilogics Technologies ZKIT-ARM-1769 board (From Rashid Fatah, (2013-03-04)).
              +    * arch/arm/src/lpc17/lpc17*_clockconfig.c:  The WaveShare Open1788
              +      board now boots and passes the OS test.  This is the work of
              +      Rommel Marcelo (2013-03-04).
              +    * arch/arm/src/lm/lm_gpio.c, lm_gpio.h, and chip/lm4f_pinconfig.h
              +      Extend GPIO logic to handle LM4F.  Add LM4F pin configuration header
              +      file (2013-03-04).
              +    * configs/open1788:  Enable LED support in all configurations.
              +      (2013-03-04)
              +    * configs/open1788/nsh:  NSH configuration verified function.  By Rommel
              +      Marcelo (2013-03-05).
              +    * configs/open1788/src/lpc17_nsh.c:  Use the SD card interface, not SPI
              +      to interface with SD cards (2013-03-05.
              +    * arch/arm/src/lpc17xx/lpc17_sdcard.c and header files:  Clone the STM32
              +      SD card interface to the LPC1788.  It appears to be the same IP.
              +      (2013-03-05)
              +    * libc/wqueue:  Work queue logic moved from sched/ to libc/wqueue.  It
              +      is not really core OS functionality and this move helps prepare for
              +      user-space work queues. (2013-03-05)
              +    * libc/wqueue:  Implemented user-space work queues.  These will not
              +      get tested until the next time I attempt a NuttX kernel build.
              +      (2013-03-05).
              +    * arch/arm: Correct some bad syscall dispatching logic.  This change
              +      cannot be fully tested until there is a fielded NuttX kernel build.
              +      (2013-03-06).
              +    * net/net_poll.c:  Correct logic that checks if the socket is
              +      disconnected when the poll is setup.  That is bad logic:  Listen
              +      sockets, for example, are not connected.  In that case, the purpose of
              +      the poll is to wait for connection events.  As a result of this,
              +      poll/select would return immediately with POLLHUP with it was used to
              +      detect connection events.  This fix for now was to check instead if
              +      the socket is closed (meaning that it was connected at one time but
              +      was closed by the remote peer).  That excludes the listen socket which
              +      was never connected.  This does introduce a new problem, however.  If
              +      the socket was not closed, but lost the connection through an abnormal
              +      event, then poll/select will hang.  That needs to be revisited.
              +      (2013-03-07)
              +    * fs/fs_select.c:  Was not checking if the timeout parameter was NULL
              +      but would, instead, setup a bogus timeout based on whatever it found at
              +      address zero.  Also, improved some of the memory allocation logic so
              +      that it will not use so much memory. (2013-03-07)
              +    * net/net_poll.c:  Handle the missing case.  Now tests for not connected
              +      AND not listening.  I think that now covers all of the cases including
              +      the missing case noted above. (2013-03-07)
              +    * mm/:  Move all memory manager globals into a structure.  A reference
              +      to this structure is now passed internally between mm APIs. This
              +      change will (eventually) support multiple heaps and heap allocators.
              +      (2013-03-08).
              +    * mm/ and include/nuttx/mm.h:  Implement support for multiple heaps.
              +      (2013-03-08).
              +    * arch/*/src: xyz_addregion() needs to call kmm_addregion, not mm_addregion.
              +      (2013-03-08).
              +    * sched/kmm*.c:  Move this garbage kmm*.c file to mm/. until I decide what
              +      to do with them (which is probably to just delete them). (2013-03-08).
              +    * mm/mm_test.c and Makefile.test:  Deleted the memory test.  This was
              +      a good test and helped me a lot when I wrote the memory manager, but
              +      now it is in the way and paralyzing other efforts.  So the memory unit
              +      test was deleted. (2013-03-08)
              +    * sched/sched_free.c:  Rename sched_free() to sched_ufree(); Add
              +      sched_kfree() to handler deferred kernel heap allocations. (2013-03-10)
              +    * arch/:  User user-accessible heap to allocate all stacks. (2013-03-10)
              +    * arch/arm/src/sam3u:  The AT91SAM3U will now support a kernel heap if
              +      so configured. (2013-03-10)
              +    * configs/sam3u-ek/knsh:  This configuration was converted to use the
              +      kconfigs-frontends build tool. (2013-03-10)
              +    * configs/*/include/user_map.h and include/nuttx/userspace.h:  Remove
              +      the very kludgy user_map.h file and replace it with a header that
              +      is expected at the beginning of the user-space blob. (2013-03-10)
              +    * configs/sam3u-ek/kernel/up_userspace.c:  This is the header for
              +      the SAM3U-EK's user space.  (2013-03-10)
              +    * sched/os_bringup.c:  In the kernel build, os_bringup() now uses the
              +      user-space header to automatically start the user-space work queue,
              +      if so configured. (2013-03-10)
              +    * arch/arm/src/lpc17xx/lpc17_mpuinit.c and lpc17_userpace.c:  Add
              +      support for the MPU and kernel build for the LPC17xx family.
              +      (2013-03-11)
              +    * configs/open1788/kernel and knsh:  Add kernel build support and
              +      a kernel NSH configuration for the WaveShare Open1788 board.
              +      (2013-03-11)
              +    * configs/sam3u_ek/kernel, knsh, and scripts:  Move some files around
              +      for better supportability. (2013-03-11)
              +    * configs/open1788/kernel, knsh, and scripts:  Add a kernel mode build
              +      configuration for the WaveShare Open1788 board. (2013-03-11)
              +    * arch/arm/src/armv7-m/up_mpu.c:  Several fixes to MPU logic.
              +      (2013-03-12).
              +    * arch/arm, configs/sam3u-ek, configs/open1788:  Fix memory map for
              +      kernel mode build; Some regions were overlapping. (2013-03-13).
              +    * arch/:  Rename g_heapbase to g_idle_topstack.  This is the same value
              +      however:  The top of the IDLE stack is the same as the base of the
              +      heap in the flat build.  But not in the kernel build:  The base of
              +      the heap is elsewhere so the naming was wrong. (2013-03-13).
              +    * libc/stdlib/lib_itoa.c:  Implementation of itoa() contributed by
              +      Ryan Sundberg. (2013-03-14).
               
              -apps-6.25 2013-02-01 Gregory Nutt <gnutt@nuttx.org>
              +apps-6.26 2013-03-15 Gregory Nutt <gnutt@nuttx.org>
               
              -    * Makefiles: Removed dependency of distclean on clean in most top-level
              -      files.  It makes sense for 'leaf' Makefiles to have this dependency,
              -      but it does not make sense for upper-level Makefiles.
              -    * apps/namedapp/: Renamed to builtins in preparation for another change.
              -    * .context:  Removed the .context kludge.  This caused lots of problems
              -      when changing configurations because there is no easy way to get the
              -      system to rebuild the context.  Now, the context will be rebuilt
              -      whenever there is a change in either .config or the Makefile.
              -    * apps/builtin/registry:  Updated new built-in registration logic to handle
              -      cases where (1) old apps/.config is used, and (2) applications ared
              -      removed, not just added.
              -    * apps/examples/nettest/Makefile:  Fix an error that crept in during
              -      some of the recent, massive build system changes.
              -    * apps/builtin/Makefile:  Need to have auto-generated header files
              -      in place early in the dependency generation phase to avoid warnings.
              -      It is not important if they are only stubbed out header files at
              -      this build phase.
              -    * apps/examples/hidbkd: Now supports decoding of encoded special keys
              -      if CONFIG_EXAMPLES_HIDKBD_ENCODED is defined.
              -    * apps/examples/hidbkd:  Add support for decoding key release events
              -      as well.  However, the USB HID keyboard drier has not yet been
              -      updated to detect key release events.  That is kind of tricky in
              -      the USB HID keyboard report data.
              -    * apps/examples/wlan: Remove non-functional example.
              -    * apps/examples/ostest/vfork.c:  Added a test of vfork().
              -    * apps/exampes/posix_spawn: Added a test of posix_spawn().
              -    * apps/examples/ostest:  Extend signal handler test to catch
              -      death-of-child signals (SIGCHLD).
              -    * apps/examples/ostest/waitpid.c:  Add a test for waitpid(), waitid(),
              -      and wait().
              -    * builtin/binfs.c:  Add hooks for dup() method (not implemented).
              -    * builtin/exec_builtin.c, nshlib/nsh_parse.c, and nshlib/nsh_builtin.c:
              -      NSH now supports re-direction of I/O to files (but still not from).
              -    * builtin/binfs.c:  Greatly simplified (it is going to need to be
              -      very lightweight).  Now supports open, close, and a new ioctl to recover
              -      the builtin filename.  The latter will be needed to support a binfs
              -      binfmt.
              -    * builtin/binfs.c:  Move apps/builtin/binfs.c to fs/binfs/fs_binfs.c
              -      CONFIG_APPS_BINDIR rename CONFIG_FS_BINFS
              -    * apps/include/builtin.h:  Some of the content of
              -      apps/include/apps.h moved to include/nuttx/binfmt/builtin.h.
              -      apps/include/apps.h renamed builtin.h
              -    * apps/builtin/exec_builtins.c:  Move builtin
              -      utility functions from apps/builtin/exec_builtins.c to
              -      binfmt/libbuiltin/libbuiltin_utils.c
              -    * apps/nshlib/nsh_mountcmds.c:  The block driver/source
              -      argument is now optional.  Many files systems do not need
              -      a source and it is really stupid to have to enter a bogus
              -      source parameter.
              -    * apps/nshlib/nsh_fileapp.c:  Add the ability to execute a file
              -      from a file system using posix_spawn().
              -    * apps/builtin/: Extensions from Mike Smith.
              -    * apps/examples/ftpd/Makefile: Name ftpd_start is not the name of
              -      the entrypoint.  Should be ftpd_main (from Yan T.)
              -    * apps/netutils/telnetd/telnetd_driver: Was stuck in a loop if
              -      recv[from]() ever returned a value <= 0.
              -    * apps/examples/nettest and poll:  Complete Kconfig files.
              -    * apps/examples/ostest/waitpid.c:  Need to use WEXITSTATUS()
              -      to decode the correct exit status.
              -    * apps/system/usbmonitor:  A daemon that can be used to monitor USB
              -      trace outpout.
              -    * apps/nshlib/nsh_usbdev.c, nsh_consolemain.c, nsh_session.c, nsh_script.c:
              -      Add support for a login script.  The init.d/rcS script will be executed
              -      once when NSH starts; the .nshrc script will be executed for each session:
              -      Once for serial, once for each USB connection, once for each Telnet
              -      session.
              -    * apps/system/readline: Correct readline() return value.  Was not
              -      any returning special values when end-of-file or read errors
              -      occur (it would return an empty string which is not very useful).
              +    * apps/builtin/exec_builtin.c:  Now uses task_spawn() to start
              +      builtin applications.
              +    * Type of argv has changed from const char ** to char * const *
              +    * apps/nshlib/nsh_parse.c:  Fix memory lead: Need to detach after
              +      creating a pthread.
              +    * apps/examples and nshlib:  Change name of _TCB to struct tcb_s to
              +      match NuttX name change.
              +    * apps/examples/ostest/restart.c:  Add a test case to verify
              +      task_restart().
              +    * apps/system/readline.c:  readline() now returns EOF on any failure
              +      (instead of a negated errno value).  This is because the underlying
              +      read is based on logic similar to getc.  The value zero was being
              +      confused with a NUL.  So if a NUL was received, the NSH session
              +      would terminate because it thought it was the end of file.
               
              -NxWidgets-1.5 2013-02-01 Gregory Nutt <gnutt@nuttx.org>
              +NxWidgets-1.6 2013-03-15 Gregory Nutt <gnutt@nuttx.org>
               
              -    * NxWidgets::CGraphicsPort::move():  Fix typo bug in bounding rectangle
              -      calculation (from Petteri Aimonen).
              -    * NxWM::CScrollingPanel::scrollChildren(): Avoid unnecessary redraws in
              -      CScrollingPanel (contributed by Petteri Aimonen).
              -    * NxWM::CCycleButton:  Remove the separator from CCycleButton. It draws in
              -      wrong place, and doesnt look very good in the correct place either.
              -      (from Petteri Aimonen).
              -    * NxWidgets::CGraphicsPort: Many times we only want a constant background.
              -      In that case the old code fills the background, reads it back, renders
              -      the text and then writes it back. When used with LCD's (instead of
              -      framebuffers) this causes unnecessary delay and screen flicker.
              -      This commit adds a variant of drawText that takes background color,
              -      so that the background and text can both be rendered at one go.
              -      The old functions still function as before (Petteri Aimonen).
              -    * NxWidgets::CLabel: The label was drawn as a single rectangular region,
              -      then a text was added to the on top of this.  The result is that the
              -      text would flicker when the CLabel was updated. With this change, the
              -      two step update is replaced with a five step update:  The background
              -      is updated as four rectangulear regions (leaving the previous text in
              -      place), then the new text is updated.  This eliminates the flicker
              -      (Petteri Aimonen).
              -    * Kconfig: Many NxWidgets/NxWM settings do not have meaningful, generic
              -      default values.  Colors, for example, depend on pixel depth.  Some
              -      geometry settings depending on other geometry settings.  Font IDs are
              -      not know-able by the configuration system.  etc.  In these cases, it
              -      is best if the settings are just not undefined so that the system can
              -      calculate a reasonable default.  however, if no default is provided
              -      in the .config file, mconf will complain and generate errors.  So work
              -      around this, I added several "enabling" settings to override the
              -      default setting.  This is awkward and I preferred the configuration as
              -      it was before, but this avoids the mconf errors and warnings.
              -    * UnitTests:  Changed occurrences of lib_rawprintf() and lib_lowprintf()
              -      to match recent changes to NuttX (will be in NuttX-6.25)
              -    * CGraphicsPort::_drawText:  Renamed from CGraphicsPort::drawText in order
              -      to eliminate some naming collisions when overloaded in some configurations
              -      (i.e., when both bool and nx_pixel_t are uint8_t).  From Petteri Aimonen.
              -    * CNxWidgets::drawContents: Change base drawContents from a do-nothing
              -      function to a function that fills the widget with the background color.
              -      This is useful when using CNxWidgets as a "panel" , i.e. a container
              -      for other widgets. Subclasses will override drawContents and decide
              -      themselves how to draw the background.
              -    * CNxWidgets::CTabPanel:  A new widget contributed by Petteri Aimonen.
              -      This widget provides a tab panel, which has a button bar at the top
              -      and panels below it. Pressing a button will select the corresponding
              -      panel.
              +    * Type of argv[] has changed from const char ** to char * const *
              +    * NXWidgets::CNxWidget:  Add an inline function to get the current style.
              +    * NxWM::CTaskBar: Make a some methods of CTaskbar virtual to allow
              +      customizations.  From Petteri Aimonen.
              +    * NXWidgets::CCycleButton: Make CCycleButton change state in onPreRelease().
              +      This way the new value is already available when a listener gets the
              +      action event.  From Petteri Aimonen.
              +    * NxWidgets/tools/bitmap_converter.py: Fix bitmap_converter.py so that
              +      it works with indexed input images.
              +    * NxWidgets::CLabel: Fix backward conditional compilation in the
              +      "flicker free" logic.
              +    * NxWidgets::CNxTimer:  Previously repeated timers were re-enabled after
              +      the timer action event. Consequently, if the action event handler tried
              +      to stop the timer, the request would be ignored.  Changes the order
              +      so that the timer is re-enabled before the callback.  There is still
              +      no risk of re-entrancy, because everything executes on the USRWORK work
              +      queue.  From Petteri Aimonen.
              +    * NxWidgets::CMultiLineTestBox: Fix text placement error.  From Petteri
              +      Aimonen.
              +    * NxWidgets::CWidgetControl:  Added another semaphore, boundssem, which
              +      is set as soon as the screen bounds are known.  This corrects two
              +      problems:
              +      1) Due to the way nxgl_rectsize computes the size, it will never
              +         be 0,0 like CWidgetControl expects. Therefore the size is considered
              +         valid even though it has not been set yet.
              +      2) After the check is fixed to test for > 1, NxWM window creation will
              +         hang. This is due to the fact that it uses the screen bounds for
              +         determining window size. This was being blocked on geosem, which
              +         is only posted after the size has been set.
              +      From Petteri Aimonen.
              +    * NxWidgets::CImage:  Two enhancements:
              +      1) Allow changing the bitmap even after the control has been created.
              +      2) Allow giving 'null' to have the control draw no image at all.
              +      From Petteri Aimonen.
              +    * NxWM::CTaskBar:  Allow windows with null icon. This makes sense for e.g.
              +      full screen windows.  From Petteri Aimonen.
              +    * NxWM::CApplicationWindow:  Add config options to override NxWM
              +      stop/minimize icons.  From Petteri Aimonen.
              +    * NwWM::CStartWindow, NxWM::CWindowMessenger: Get rid of the start window
              +      thread. Instead, handle all events through the USRWORK work queue.
              +      For me, this was necessary because I would open some files in button
              +      handlers and close them in NxTimer handlers. If these belonged to
              +      different tasks, the close operation would fail.  Further benefits:
              +      + Gets rid of one task and message queue.
              +      + Reduces the amount of code required
              +      + Decouples CStartWindow from everything else - now it is just a window
              +        with application icons, not an integral part of the event logic.
              +      + All events come from the same thread, which reduces the possibility of
              +        multithreading errors in user code.
              +      + The user code can also send events to USRWORK, so that everything gets
              +        serialized nicely without having to use so many mutexes.
              +      Drawbacks:
              +      - Currently the work state structure is malloc()ed, causing one allocation
              +        and free per each input event. Could add a memory pool for these later, but
              +        the speed difference doesn't seem noticeable.
              +      - The work queue will add ~50 ms latency to input events. This is however
              +        configurable, and the delay is anyway short enough that it is unnoticeable.
              +      From Petteri Aimonen.
               
               uClibc++-1.0 2011-11-05 <gnutt@nuttx.org>
               
              @@ -4264,31 +4055,11 @@ uClibc++-1.0 2011-11-05 <gnutt@nuttx.org>
                     C++ library for NuttX.  This package was contributed ay Qiang Yu and
                     David for the RGMP team.
               
              -buildroot-1.11 2011-11-05 <gnutt@nuttx.org>
              +buildroot-1.12 2011-13-15 <gnutt@nuttx.org>
               
              -    * configs/avr-defconfig-4.3.3 - Added --enable-long-long as a GCC
              -      option.
              -    * configs/avr-defconfig-4.5.2 - New configuration.
              -    * Config.in and almost all configurations in configs/ - Changed the
              -      default nuttx path to $(TOPDIR)/../../nuttx
              -    * Misc files.  Patch provided by Gerd v. Egidy that solves the following
              -      problems
              -      - binutils 2.21 is not available on the gnu servers anymore, they replaced
              -        it with 2.21.1
              -      - there is some assembler error when compiling gcc for arm, gcc bugzilla
              -        43999
              -      - you can't build nuttx for cortex m3/m4 because of a missing instruction
              -        in the assembler, binutils bugzilla 12296
              -    * Add support for binutils 2.22 and GCC 4.6.3.
              -    * Change name of all tools from xxx-elf to xxx-nuttx-elf
              -    * Added an ARM EABI GCC 4.6.3 configuration (tool name is arm-nuttx-eabi-).
              -    * ldnxflat: Add support for the R_ARM_REL32 relocation.  This relocation
              -      type was not generated by GCC/LD prior to gcc-4.6.3
              -    * R_ARM_REL32 logic is conditionally disabled because it has not been
              -      tested.
              -    * ldnxflat: Correct a memory allocation error that could cause written
              -      past the end of allocated memory.  Partial restoration of R_ARM_REL32
              -      logic.  There are lots of issues that I still do not understand here.
              +    * Fix typo toolchain/gdb/Config.in that prevented GDB 7.4 from building
              +      (from Ken Bannister).
              +    * Add support for a Cortex-M0 toolchain based on GCC 4.6.3.
               
               pascal-3.0 2011-05-15 Gregory Nutt <gnutt@nuttx.org>
               
              
              From d81b2e88282e3819965f2d67a956a3df7ec0bfcf Mon Sep 17 00:00:00 2001
              From: patacongo 
              Date: Wed, 20 Mar 2013 18:22:21 +0000
              Subject: [PATCH 1125/1518] Change prototypes of up_create_stack and
               up_release_stack to include a task type parameter
              
              git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5765 42af7a65-404d-4744-a932-0658087f49c3
              ---
               Documentation/NuttxPortingGuide.html | 81 ++++++++++++++++++++++------
               1 file changed, 64 insertions(+), 17 deletions(-)
              
              diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html
              index 3b268c0a56..709c5a3a6d 100644
              --- a/Documentation/NuttxPortingGuide.html
              +++ b/Documentation/NuttxPortingGuide.html
              @@ -12,7 +12,7 @@
                     

              NuttX RTOS Porting Guide

              -

              Last Updated: February 4, 2013

              +

              Last Updated: March 20, 2013

              @@ -1613,11 +1613,10 @@ The system can be re-made subsequently by just typing make.

              4.1.4 up_create_stack()

              -

              Prototype: STATUS up_create_stack(FAR struct tcb_s *tcb, size_t stack_size);

              +

              Prototype: STATUS up_create_stack(FAR struct tcb_s *tcb, size_t stack_size, uint8_t ttype);

              Description. - Allocate a stack for a new thread and setup - up stack-related information in the TCB. + Allocate a stack for a new thread and setup up stack-related information in the TCB.

              The following TCB fields must be initialized: @@ -1631,18 +1630,37 @@ The system can be re-made subsequently by just typing make. initial value of the stack pointer.

            - This API is NOT required if CONFIG_CUSTOM_STACK - is defined. + This API is NOT required if CONFIG_CUSTOM_STACK is defined.

            Input Parameters:

            • - tcb: The TCB of new task. +

              + tcb: The TCB of new task. +

            • - stack_size: The requested stack size. At least this much - must be allocated. +

              + stack_size: The requested stack size. At least this much must be allocated. +

              +
            • +
            • +

              + ttype: The thread type. + This may be one of following (defined in include/nuttx/sched.h): +

              +
                +
              • TCB_FLAG_TTYPE_TASK: Normal user task
              • +
              • TCB_FLAG_TTYPE_PTHREAD: User pthread
              • +
              • TCB_FLAG_TTYPE_KERNEL: Kernel thread
              • +
              +

              + This thread type is normally available in the flags field of the TCB, however, there are certain contexts where the TCB may not be fully initialized when up_create_stack is called. +

              +

              + If CONFIG_NUTTX_KERNEL is defined, then this thread type may affect how the stack is allocated. For example, kernel thread stacks should be allocated from protected kernel memory. Stacks for user tasks and threads must come from memory that is accessible to user code. +

            @@ -1652,8 +1670,8 @@ The system can be re-made subsequently by just typing make.

            Description. - Setup up stack-related information in the TCB - using pre-allocated stack memory. + Setup up stack-related information in the TCB using pre-allocated stack memory. + This function is called only from task_init() when a task or kernel thread is started (never for pthreads).

            The following TCB fields must be initialized: @@ -1667,8 +1685,7 @@ The system can be re-made subsequently by just typing make. initial value of the stack pointer.

          - This API is NOT required if CONFIG_CUSTOM_STACK - is defined. + This API is NOT required if CONFIG_CUSTOM_STACK is defined.

          Input Parameters:

          @@ -1680,18 +1697,48 @@ The system can be re-made subsequently by just typing make. stack_size: The allocated stack size.
        +

        + NOTE: Unlike up_stack_create() and up_stack_release, this function does not require the task type (ttype) parameter. + The TCB flags will always be set to provide the task type to up_use_stack() if the information needs that information. +

        4.1.6 up_release_stack()

        Prototype: void up_release_stack(FAR struct tcb_s *dtcb);

        Description. - A task has been stopped. Free all stack - related resources retained int the defunct TCB. + A task has been stopped. + Free all stack related resources retained int the defunct TCB.

        - This API is NOT required if CONFIG_CUSTOM_STACK - is defined. + This API is NOT required if CONFIG_CUSTOM_STACK is defined.

        +

        Input Parameters:

        +
          +
        • +

          + dtcb: + The TCB containing information about the stack to be released. +

        • +
        • +

          + ttype: The thread type. + This may be one of following (defined in include/nuttx/sched.h): +

          +
            +
          • TCB_FLAG_TTYPE_TASK: Normal user task
          • +
          • TCB_FLAG_TTYPE_PTHREAD: User pthread
          • +
          • TCB_FLAG_TTYPE_KERNEL: Kernel thread
          • +
          +

          + This thread type is normally available in the flags field of the TCB, however, there are certain error recovery contexts where the TCB may not be fully initialized when up_release_stack is called. +

          +

          + If CONFIG_NUTTX_KERNEL is defined, then this thread type may affect how the stack is freed. + For example, kernel thread stacks may have been allocated from protected kernel memory. + Stacks for user tasks and threads must have come from memory that is accessible to user +

          +
        • +

        4.1.7 up_unblock_task()

        Prototype: void up_unblock_task(FAR struct tcb_s *tcb);

        From 6602e6c180244b48dfb159ffad64fb1dbcbbfdfa Mon Sep 17 00:00:00 2001 From: patacongo Date: Thu, 21 Mar 2013 17:35:08 +0000 Subject: [PATCH 1126/1518] Add a up_stack_frame() interface to allocate a frame of data on a task's stack. git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5768 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 155 ++++++++++++++++++--------- 1 file changed, 104 insertions(+), 51 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 709c5a3a6d..2fa0b2a71f 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -78,22 +78,23 @@ 4.1.3 up_initial_state()
        4.1.4 up_create_stack()
        4.1.5 up_use_stack()
        - 4.1.6 up_release_stack()
        - 4.1.7 up_unblock_task()
        - 4.1.8 up_block_task()
        - 4.1.9 up_release_pending()
        - 4.1.10 up_reprioritize_rtr()
        - 4.1.11 _exit()
        - 4.1.12 up_assert()
        - 4.1.13 up_schedule_sigaction()
        - 4.1.14 up_allocate_heap()
        - 4.1.15 up_interrupt_context()
        - 4.1.16 up_disable_irq()
        - 4.1.17 up_enable_irq()
        - 4.1.18 up_prioritize_irq()
        - 4.1.19 up_putc()
        - 4.1.20 System Time and Clock
        - 4.1.21 Address Environments + 4.1.6 up_stack_frame()
        + 4.1.7 up_release_stack()
        + 4.1.8 up_unblock_task()
        + 4.1.9 up_block_task()
        + 4.1.10 up_release_pending()
        + 4.1.11 up_reprioritize_rtr()
        + 4.1.12 _exit()
        + 4.1.13 up_assert()
        + 4.1.14 up_schedule_sigaction()
        + 4.1.15 up_allocate_heap()
        + 4.1.16 up_interrupt_context()
        + 4.1.17 up_disable_irq()
        + 4.1.18 up_enable_irq()
        + 4.1.19 up_prioritize_irq()
        + 4.1.20 up_putc()
        + 4.1.21 System Time and Clock
        + 4.1.22 Address Environments
      4.2 APIs Exported by NuttX to Architecture-Specific Logic
        @@ -1702,7 +1703,58 @@ The system can be re-made subsequently by just typing make. The TCB flags will always be set to provide the task type to up_use_stack() if the information needs that information.

        -

        4.1.6 up_release_stack()

        + +

        4.1.6 up_stack_frame()

        +

        Prototype: FAR void *up_stack_frame(FAR struct tcb_s *tcb, size_t frame_size);

        + +

        + Description. + Allocate a stack frame in the TCB's stack to hold thread-specific data. + This function may be called anytime after up_create_stack() or up_use_stack() have been called but before the task has been started. +

        +

        + Thread data may be kept in the stack (instead of in the TCB) if it is accessed by the user code directory. + This includes such things as argv[]. + The stack memory is guaranteed to be in the same protection domain as the thread. +

        +

        + The following TCB fields will be re-initialized: +

        +
          +
        • + adj_stack_size: Stack size after removal of the stack frame from the stack. +
        • +
        • + adj_stack_ptr: Adjusted initial stack pointer after the frame has been removed from the stack. + This will still be the initial value of the stack pointer when the task is started. +
        • +
        +

        + This API is NOT required if CONFIG_NUTTX_KERNEL is undefined or if CONFIG_CUSTOM_STACK is defined. +

        +

        Input Parameters:

        +
          +
        • +

          + tcb: + The TCB of new task. +

          +
        • +
        • +

          + frame_size: + The size of the stack frame to allocate. +

          +
        • +
        +

        + Returned Value: + A pointer to bottom of the allocated stack frame. + NULL will be returned on any failures. + The alignment of the returned value is the same as the alignment of the stack itself +

        + +

        4.1.7 up_release_stack()

        Prototype: void up_release_stack(FAR struct tcb_s *dtcb);

        Description. @@ -1718,6 +1770,7 @@ The system can be re-made subsequently by just typing make.

        dtcb: The TCB containing information about the stack to be released. +

      • @@ -1740,7 +1793,7 @@ The system can be re-made subsequently by just typing make.

      -

      4.1.7 up_unblock_task()

      +

      4.1.8 up_unblock_task()

      Prototype: void up_unblock_task(FAR struct tcb_s *tcb);

      Description. @@ -1763,7 +1816,7 @@ The system can be re-made subsequently by just typing make.

    -

    4.1.8 up_block_task()

    +

    4.1.9 up_block_task()

    Prototype: void up_block_task(FAR struct tcb_s *tcb, tstate_t task_state);

    Description. @@ -1789,7 +1842,7 @@ The system can be re-made subsequently by just typing make. -

    4.1.9 up_release_pending()

    +

    4.1.10 up_release_pending()

    Prototype: void up_release_pending(void);

    Description. @@ -1806,7 +1859,7 @@ The system can be re-made subsequently by just typing make. function is called.

    -

    4.1.10 up_reprioritize_rtr()

    +

    4.1.11 up_reprioritize_rtr()

    Prototype: void up_reprioritize_rtr(FAR struct tcb_s *tcb, uint8_t priority);

    Description. @@ -1841,7 +1894,7 @@ The system can be re-made subsequently by just typing make. -

    4.1.11 _exit()

    +

    4.1.12 _exit()

    Prototype: void _exit(int status) noreturn_function;

    Description. @@ -1855,7 +1908,7 @@ The system can be re-made subsequently by just typing make. before performing scheduling operations.

    -

    4.1.12 up_assert()

    +

    4.1.13 up_assert()

    Prototype:
    void up_assert(FAR const uint8_t *filename, int linenum);
    void up_assert_code(FAR const uint8_t *filename, int linenum, int error_code);
    @@ -1866,7 +1919,7 @@ The system can be re-made subsequently by just typing make. way.

    -

    4.1.13 up_schedule_sigaction()

    +

    4.1.14 up_schedule_sigaction()

    Prototype: void up_schedule_sigaction(FAR struct tcb_s *tcb, sig_deliver_t sigdeliver);

    @@ -1913,7 +1966,7 @@ The system can be re-made subsequently by just typing make. is defined.

    -

    4.1.14 up_allocate_heap()

    +

    4.1.15 up_allocate_heap()

    Prototype: void up_allocate_heap(FAR void **heap_start, size_t *heap_size);

    Description. @@ -1924,14 +1977,14 @@ The system can be re-made subsequently by just typing make. If a protected kernel-space heap is provided, the kernel heap must be allocated (and protected) by an analogous up_allocate_kheap().

    -

    4.1.15 up_interrupt_context()

    +

    4.1.16 up_interrupt_context()

    Prototype: bool up_interrupt_context(void)

    Description. Return true if we are currently executing in the interrupt handler context.

    -

    4.1.16 up_disable_irq()

    +

    4.1.17 up_disable_irq()

    Prototype:

       #ifndef CONFIG_ARCH_NOINTC
      @@ -1958,7 +2011,7 @@ The system can be re-made subsequently by just typing make.
         avoided in common implementations where possible.
       

      -

      4.1.17 up_enable_irq()

      +

      4.1.18 up_enable_irq()

      Prototype:

         #ifndef CONFIG_ARCH_NOINTC
        @@ -1979,7 +2032,7 @@ The system can be re-made subsequently by just typing make.
           avoided in common implementations where possible.
         

        -

        4.1.18 up_prioritize_irq()

        +

        4.1.19 up_prioritize_irq()

        Prototype:

           #ifdef CONFIG_ARCH_IRQPRIO
          @@ -1996,7 +2049,7 @@ The system can be re-made subsequently by just typing make.
             avoided in common implementations where possible.
           

          -

          4.1.19 up_putc()

          +

          4.1.20 up_putc()

          Prototype: int up_putc(int ch);

          Description. @@ -2004,9 +2057,9 @@ The system can be re-made subsequently by just typing make. Output one character on the console

          -

          4.1.20 System Time and Clock

          +

          4.1.21 System Time and Clock

          -

          4.1.20.1 Basic System Timer

          +

          4.1.21.1 Basic System Timer

          System Timer In most implementations, system time is provided by a timer interrupt. @@ -2089,7 +2142,7 @@ else In this way, the timer interval is controlled from interrupt-to-interrupt to produce an average frequency of exactly 100Hz.

          -

          4.1.20.1 Hardware

          +

          4.1.21.2 Hardware

          To enable hardware module use the following configuration options:

          @@ -2144,7 +2197,7 @@ else

        -

        4.1.20.2 System Tick and Time

        +

        4.1.21.3 System Tick and Time

        The system tick is represented by::

        @@ -2167,7 +2220,7 @@ else To retrieve that variable use:

        -

        4.1.21 Address Environments

        +

        4.1.22 Address Environments

        CPUs that support memory management units (MMUs) may provide address environments within which tasks and their child threads execute. @@ -2191,27 +2244,27 @@ else

        @@ -2224,12 +2277,12 @@ else

        @@ -2237,7 +2290,7 @@ else -

        4.1.21.1 up_addrenv_create()

        +

        4.1.22.1 up_addrenv_create()

        Prototype:

          int up_addrenv_create(size_t envsize, FAR task_addrenv_t *addrenv); @@ -2257,7 +2310,7 @@ else Zero (OK) on success; a negated errno value on failure.
        -

        4.1.21.2 up_addrenv_vaddr()

        +

        4.1.22.2 up_addrenv_vaddr()

        Prototype:

          int up_addrenv_vaddr(FAR task_addrenv_t addrenv, FAR void **vaddr); @@ -2277,7 +2330,7 @@ else Zero (OK) on success; a negated errno value on failure.
        -

        4.1.21.3 up_addrenv_select()

        +

        4.1.22.3 up_addrenv_select()

        Prototype:

          int up_addrenv_select(task_addrenv_t addrenv, hw_addrenv_t *oldenv); @@ -2301,7 +2354,7 @@ else Zero (OK) on success; a negated errno value on failure.
        -

        4.1.21.4 up_addrenv_restore()

        +

        4.1.22.4 up_addrenv_restore()

        Prototype:

          int up_addrenv_restore(hw_addrenv_t oldenv); @@ -2320,7 +2373,7 @@ else Zero (OK) on success; a negated errno value on failure.
        -

        4.1.21.5 up_addrenv_destroy()

        +

        4.1.22.5 up_addrenv_destroy()

        Prototype:

          int up_addrenv_destroy(task_addrenv_t addrenv); @@ -2338,7 +2391,7 @@ else Zero (OK) on success; a negated errno value on failure.
        -

        4.1.21.6 up_addrenv_assign()

        +

        4.1.22.6 up_addrenv_assign()

        Prototype:

          int up_addrenv_assign(task_addrenv_t addrenv, FAR struct tcb_s *tcb); @@ -2357,7 +2410,7 @@ else Zero (OK) on success; a negated errno value on failure.
        -

        4.1.21.7 up_addrenv_share()

        +

        4.1.22.7 up_addrenv_share()

        Prototype:

          int up_addrenv_share(FAR const struct tcb_s *ptcb, FAR struct tcb_s *ctcb); @@ -2377,7 +2430,7 @@ else Zero (OK) on success; a negated errno value on failure.
        -

        4.1.21.8 up_addrenv_release()

        +

        4.1.22.8 up_addrenv_release()

        Prototype:

          int up_addrenv_release(FAR struct tcb_s *tcb); From 831c8482cf71bc78969a00101eb46f6aa6d110aa Mon Sep 17 00:00:00 2001 From: patacongo Date: Thu, 21 Mar 2013 20:02:14 +0000 Subject: [PATCH 1127/1518] Copy siginfo_t to step before calling a user-space signal handler git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5769 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttxPortingGuide.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 2fa0b2a71f..a7082a0ec5 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -1713,7 +1713,7 @@ The system can be re-made subsequently by just typing make. This function may be called anytime after up_create_stack() or up_use_stack() have been called but before the task has been started.

          - Thread data may be kept in the stack (instead of in the TCB) if it is accessed by the user code directory. + Thread data may be kept in the stack (instead of in the TCB) if it is accessed by the user code directly. This includes such things as argv[]. The stack memory is guaranteed to be in the same protection domain as the thread.

          From b4c6554c8befc990aeee896c0216a85f73f8d160 Mon Sep 17 00:00:00 2001 From: patacongo Date: Mon, 1 Apr 2013 14:10:54 +0000 Subject: [PATCH 1128/1518] Add support for CAN1 and CAN2 to zkit-arm-1769. From M. Kannan git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5808 42af7a65-404d-4744-a932-0658087f49c3 --- Documentation/NuttX.html | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index d7b797e83a..6ba0c95a00 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

          NuttX RTOS

          -

          Last Updated: March 15, 2013

          +

          Last Updated: April 1, 2013

          @@ -2418,8 +2418,10 @@ nsh>
            STATUS: This is still a work in progess. - At present there is a working basic port with OS verification and Nuttshell (NSH) configurations. - This is stablilizing nicely now and the next steps will involve getting solid driver support for the SD slot and the LCD on the WaveShare board. + At present there is a working basic port with OS verification, Nuttshell (NSH) configurations, and a graphics test configuration. + The NSH configuration includes verfied support for (DMA-based) SD card interface. + SDRAM is working. + The LCD driver is not functional as of this writing, but is actively underwork and is expected to be available in the NuttX-6.27 release.
          @@ -2548,6 +2550,25 @@ nsh>

          + +
          + +

          + STMicro STM32 F427/437. + General architectural support was provided for the F427/437 family in NuttX 4.27. + Specific support includes the STM32F427I, STM32F427Z, and STM32F427V chips. + This is architecture-only support, meaning that support for the boards with these chips is available, but not support for any publically available boards is included.. + This support was contributed by Mike Smith. +

          +

          + The F427/f37 port adds (1) additional SPI ports, (2) additional UART ports, (3) analog and digital noise filters on the I2C ports, (4) up to 2MB of flash, (5) an additional lower-power mode for the internal voltage regulator, (6) a new prescaling option for timer clock, (7) a larger FSMSC write FIFO, and (8) additional crypto modes (F437 only). +

          + + + +
          +
          +
          From 95b533374779e4fa1775a0e05ed00622aab80dce Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 4 Apr 2013 14:27:29 -0600 Subject: [PATCH 1129/1518] Clone svn:ignore directory atributed to .gitignore files --- Documentation/.gitignore | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 Documentation/.gitignore diff --git a/Documentation/.gitignore b/Documentation/.gitignore new file mode 100644 index 0000000000..3dc920dfae --- /dev/null +++ b/Documentation/.gitignore @@ -0,0 +1,3 @@ +TODO.txt +ChangeLog.txt + From 09a9a3cedced6c150668c946a44c9dac82f79184 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 11 Apr 2013 06:53:26 -0600 Subject: [PATCH 1130/1518] Updated to documentation and README files --- Documentation/NuttX.html | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 6ba0c95a00..35bf7f41e0 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

          NuttX RTOS

          -

          Last Updated: April 1, 2013

          +

          Last Updated: April 10, 2013

          @@ -2417,11 +2417,11 @@ nsh>

            STATUS: - This is still a work in progess. At present there is a working basic port with OS verification, Nuttshell (NSH) configurations, and a graphics test configuration. The NSH configuration includes verfied support for (DMA-based) SD card interface. SDRAM is working. - The LCD driver is not functional as of this writing, but is actively underwork and is expected to be available in the NuttX-6.27 release. + The frame-buffer LCD driver is functional and the touchscreen interface is actively underwork. + Both should be available in the NuttX-6.27 release.
          @@ -2650,13 +2650,13 @@ nsh>

          TI Stellaris LM4F120. This port uses the TI Stellaris LM4F120 LaunchPad. - Jose Pablo Carballo is doing this port. + Jose Pablo Carballo and I are doing this port.

            STATUS: - As of this writing, the basic port is code complete but still untested. - The fully verified LM4F120 LaunchPad port is expected in NuttX-6.27. + As of this writing, the basic port is code complete and fully verified configurations exit for the basic NuttX OS test and for the NuttShell NSH). + The first fully functional LM4F120 LaunchPad port was released in NuttX-6.27.

          From 00f99b6df1dbc6c89deb7c9d17cf1fbc8e0a8bd8 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 17 Apr 2013 13:33:40 -0600 Subject: [PATCH 1131/1518] Update HTML files and clean up some Freedom KL25Z files --- Documentation/NuttX.html | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 35bf7f41e0..3dfeaa2875 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

          NuttX RTOS

          -

          Last Updated: April 10, 2013

          +

          Last Updated: April 17, 2013

          @@ -1551,7 +1551,7 @@ svn checkout -r5745 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
        • ARM7TDMI (5)
        • ARM920T (1)
        • ARM926EJS (3)
        • -
        • ARM Cortex-M0 (1)
        • +
        • ARM Cortex-M0/M0+ (2)
        • ARM Cortex-M3 (17)
        • ARM Cortex-M4 (7)
        @@ -1926,6 +1926,30 @@ nsh>

        + +
        +
        + + +
        + +

        + FreeScale Freedom KL25Z. + This is a port of NuttX to the Nuvoton NuTiny-SDK-NUC120 that features the NUC120LE3AN MCU. + See the Freescale website for further information about this board. +

        +
          +

          + STATUS. + This is a work in progress by Alan Carvalho de Assis. + This initial support is very minimal: + There is an OS test configuration that verifies the correct port of NuttX to the part and + a NuttShell (NSH) configuration that might be the basis for an application development. + As of this writing, more testing and more device driver development are needed to make this a more complete port. +

          +
        + + From f6678fc062109f6913bed9dd8f61a48a532614a5 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 19 Apr 2013 18:35:06 -0600 Subject: [PATCH 1132/1518] Fix comments, references to the old SVN, and links to the old SVN. Replace with equivalent GIT info --- Documentation/NXGraphicsSubsystem.html | 2 +- Documentation/NuttX.html | 42 +-- Documentation/NuttXBinfmt.html | 4 +- Documentation/NuttXGettingStarted.html | 4 +- Documentation/NuttXLinks.html | 2 +- Documentation/NuttXNxFlat.html | 14 +- Documentation/NuttxPortingGuide.html | 12 +- Documentation/README.html | 346 ++++++++++++------------- 8 files changed, 213 insertions(+), 213 deletions(-) diff --git a/Documentation/NXGraphicsSubsystem.html b/Documentation/NXGraphicsSubsystem.html index 8367036de6..0eba9441f9 100644 --- a/Documentation/NXGraphicsSubsystem.html +++ b/Documentation/NXGraphicsSubsystem.html @@ -3697,7 +3697,7 @@ sudo ln -s libXext.so.6.4.0 libXext.so
      • Refer to the readme file in sim configuration - README.txt file for additional information. + README.txt file for additional information.

      diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 3dfeaa2875..1d7c0c2ec2 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -80,7 +80,7 @@ Release History
      What has changed in the last release of NuttX? - What unreleased changes are pending in SVN? + What unreleased changes are pending in GIT? @@ -1071,13 +1071,13 @@ Note that the release consists of two tarballs: nuttx-6.26.tar.gz and apps-6.26.tar.gz. Both may be needed (see the top-level nuttx/README.txt file for build information) The change log associated with the release is available here. - Unreleased changes after this release are available in SVN. + Unreleased changes after this release are available in GIT. These unreleased changes are also listed here.

      - This release corresponds with SVN release number: r5745, - Note that all SVN information has been stripped from the tarballs. - If you need the SVN configuration, you should check out directly from SVN. + This release corresponds with GIT release number: r5745, + Note that all GIT information has been stripped from the tarballs. + If you need the GIT configuration, you should check out directly from GIT. Revision r5745 should equivalent to release 6.26 of NuttX:

        @@ -3347,8 +3347,8 @@ parallel and diskette IO, and realtime clock, in a 3.5-inch drive form factor..
               This port uses the SDCC toolchain
               under Linux or Cygwin (verified using version 2.6.0).
               This port has been verified using only a Z80 instruction simulator.
        -      That simulator can be found in the NuttX SVN
        -      here.
        +      That simulator can be found in the NuttX GIT
        +      here.
             

        + +
        + 1 + This configuration variable document is auto-generated using the kconfig2html tool + That tool analyzes the NuttX Kconfig files and generates the HTML document. + As a consequence, this file may not be present at any given time but can be regenerated following the instructions in tools directory README file. +
        @@ -4225,6 +4236,7 @@ pascal-3.0 2011-05-15 Gregory Nutt <gnutt@nuttx.org>
        +
        • ARM, ARM7 ARM7TDMI, ARM9, ARM920T, ARM926EJS Cortex-M3 are trademarks of Advanced RISC Machines, Limited.
        • Cygwin is a trademark of Red Hat, Incorporated.
        • @@ -4244,4 +4256,3 @@ pascal-3.0 2011-05-15 Gregory Nutt <gnutt@nuttx.org> - diff --git a/Documentation/NuttXDocumentation.html b/Documentation/NuttXDocumentation.html index b502adc687..e344945759 100644 --- a/Documentation/NuttXDocumentation.html +++ b/Documentation/NuttXDocumentation.html @@ -31,6 +31,7 @@
        • Getting Started
        • User Guide
        • Porting Guide
        • +
        • Configuration Variables
        • NuttShell (NSH)
        • Binary Loader
        • NXFLAT
        • @@ -42,6 +43,7 @@
        • README Files
        • Change Log
        • To-Do List
        • + diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 2a7865a951..642cb1a3c2 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -4225,6 +4225,14 @@ void (*notify)(FAR struct pm_callback_s *cb, enum pm_state_e pmstate); The following variables are recognized by the build (you may also include architecture-specific settings).

          +

          + Note. + This appendix is deprecated. + Documentation of NuttX configuration is now provided in a separate, auto-generated Configuration Variable Document. + That configuration variable document is generated using the kconfig2html tool + That tool analyzes the NuttX Kconfig files and generates the HTML document. + As a consequence, this file may not be present at any given time but can be regenerated following the instructions in tools directory README file. +

          Architecture selection

          diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index a12e61335a..5d8f48767e 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -13,7 +13,7 @@

          NuttX Operating System

          User's Manual

          by

          Gregory Nutt

          -

          Last Updated: February 13, 2013

          +

          Last Updated: Aprill 22, 2013

          @@ -8632,7 +8632,7 @@ FAR void *mmap(FAR void *start, size_t length, int prot, int flags, int fd, off_

          NuttX includes a simple interface layer based on uIP (see http://www.sics.se). NuttX supports subset of a standard socket interface to uIP. These network feature can be enabled by settings in the architecture -configuration file. +configuration file. Those socket APIs are discussed in the following paragraphs.

          • From 4930b570ede7058af836e95c1d7f9fdc4311960d Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 23 Apr 2013 08:47:21 -0600 Subject: [PATCH 1135/1518] LPC17xx ADC: Configure all ADC pins in the set, not just one. From MKannan --- Documentation/.gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/.gitignore b/Documentation/.gitignore index b74e41a61d..86d4e4ab8b 100644 --- a/Documentation/.gitignore +++ b/Documentation/.gitignore @@ -1,3 +1,3 @@ TODO.txt ChangeLog.txt -NuttXConfigVariables.html +NuttXConfigVariables.* From 0b30af1dc102cf0f836be8e67ab0e15bb53a4bff Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 23 Apr 2013 19:05:59 -0600 Subject: [PATCH 1136/1518] Updated .gitignore files --- Documentation/.gitignore | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Documentation/.gitignore b/Documentation/.gitignore index 86d4e4ab8b..a2966262c5 100644 --- a/Documentation/.gitignore +++ b/Documentation/.gitignore @@ -1,3 +1,3 @@ -TODO.txt -ChangeLog.txt -NuttXConfigVariables.* +/TODO.txt +/ChangeLog.txt +/NuttXConfigVariables.* From b219b3704813cb69532c745bf4ab7ad99f82f683 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 25 Apr 2013 15:19:59 -0600 Subject: [PATCH 1137/1518] Remove up_assert_code --- Documentation/NuttxPortingGuide.html | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 642cb1a3c2..bb457ffd31 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -1910,13 +1910,11 @@ The system can be re-made subsequently by just typing make.

            4.1.13 up_assert()

            Prototype:
            - void up_assert(FAR const uint8_t *filename, int linenum);
            - void up_assert_code(FAR const uint8_t *filename, int linenum, int error_code);
            + void up_assert(FAR const uint8_t *filename, int linenum);

            Description. - Assertions may be handled in an architecture-specific - way. + Assertions may be handled in an architecture-specific way.

            4.1.14 up_schedule_sigaction()

            From 3b213e34688f420a051a0617d3b7cefde2710ddb Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 28 Apr 2013 10:56:29 -0600 Subject: [PATCH 1138/1518] Prep for NuttX-6.27 release --- Documentation/NuttX.html | 1016 +++++++++++++++++++------------------- 1 file changed, 514 insertions(+), 502 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 2889f46c4c..f758564eab 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

            NuttX RTOS

            -

            Last Updated: April 22, 2013

            +

            Last Updated: April 28, 2013

            @@ -1064,29 +1064,16 @@ -

            NuttX-6.26 Release Notes

            +

            NuttX-6.27 Release Notes

            - The 93rd release of NuttX, Version 6.26, was made on March 15, 2013, and is available for download from the + The 94th release of NuttX, Version 6.27, was made on April 28, 2013, and is available for download from the SourceForge website. - Note that the release consists of two tarballs: nuttx-6.26.tar.gz and apps-6.26.tar.gz. + Note that the release consists of two tarballs: nuttx-6.27.tar.gz and apps-6.27.tar.gz. Both may be needed (see the top-level nuttx/README.txt file for build information) The change log associated with the release is available here. Unreleased changes after this release are available in GIT. These unreleased changes are also listed here.

            -

            - This release corresponds with GIT release number: r5745, - Note that all GIT information has been stripped from the tarballs. - If you need the GIT configuration, you should check out directly from GIT. - Revision r5745 should equivalent to release 6.26 of NuttX: -

            -
              -svn checkout -r5745 svn://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
              -
            -

            Or (HTTP):

            -
              -svn checkout -r5745 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
              -

            Additional new features and extended functionality

            @@ -1097,7 +1084,10 @@ svn checkout -r5745 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

            • - Add an additional call-out to support board-specific driver initialization during the boot-up phase (available with CONFIG_BOARD_INITIALIZE=y). + Add missing registration of /dev/zero. + Registration of /dev/null should depend upon conditional compilation. + From Ken Pettit. +
          • @@ -1106,16 +1096,12 @@ svn checkout -r5745 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

            • - New interface task_spawn() that is like posix_spawn(), but uses entry point addresses like ask_create(). + Added a new interface to set aside memory on the task's stack. + This is used (at least in the kernel build) to hold task arguments.
            • - Additional data restructuring as a continuation of the task group changes of NuttX 6.25. - These data structures were moved from the TCB structure into the task group: - pthread join data, atexit/on_exit callbacks, waitpiddata structures, message queues. -
            • -
            • - TCBs for tasks and pthreads are now separate structures. - This saves a little memory since tasks do not have to carry the overhead for threads and vice versa. + Remove up_assert_code(). + One assertion routine is enough.
          • @@ -1128,37 +1114,14 @@ svn checkout -r5745 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code Extensive changes were made to support the kernel build mode. In this mode, NuttX is built as a monolithic kernel. NuttX is built as a separate kernel mode "blob" and the applications are built as a separate user mode "blob". - The kernel runs in kernel mode and the applications run in user mode (with the MPU restricting user - mode accesses). - Access to the kernel from the user blob is only via system calls (SVCalls). + The kernel runs in supervisor mode and the applications run in user mode (with the MPU restricting user mode accesses). + Access to the kernel from the user blob is only via system calls (SVCalls in this case).
          • - Extensive changes were made to the syscall, SVCall, and trapping logic. - Many internal interfaces were renamed. + Kernel build configurations for the Open1788 board and for the STM32F4Discovery now execute correctly.
          • - The memory manager was extended to support both kernel- and user-mode allocations. - Logic within the kernel needs to use the correct kernel- or user-space allocator, depending upon the user of the allocated memory. -
          • -
          • - The user-space blob now contains a header built in at the beginning of the block that provides the same information that was previously provided by a kludgy, auto-generated header file (user_map.h). -
          • -
          • - Basic support implemented for the ARMv7-M family with fragments also implemetned for the ARMv6-M and MIPS32 families. -
          • -
          • - Kernel build supported added for the LPC17xx Open1788 and for the Atmel SAM3U-EK board. - All testing is being performed on the Open1788 board. -
          • -
          - -
        • -

          - Signals -

          -
            -
          • - Delivery of signals to threads within a task group is now compatible with the way that signals are delivered to threads within a process. + Changes were made to task and thread start-up routines, signal handling, data structures, ARMv7-M SVCalls, stack management interfaces,
        • @@ -1168,47 +1131,38 @@ svn checkout -r5745 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

          • - Add a driver for the SST29VF NOR FLASH parts. + Driver for the ST7567 LCD Display Module from Univision Technology Inc. + Contributed by Manikandan.S
          • - USB device trace/debug feature extended to decode device-specific trace events to make the trace output more readable (from Petteri Aimonen). + SPI initialize functions renamed so that multiple SPI blocks can be initialized.
          • - USB MSC device driver can not support names of differing sizes in the USB descriptor and the SCSI fields (from Petteri Aimonen). + Extended to support the RAMTRON FM25V01 device. + Contributed by Lorenz Meier
          • - Locking added to MMC/SD SPI drivers so that MMC/SD can co-exist on the same bus as other SPI devices. - Frequency is reset each time that the MMC/SD SPI has the bus locked. (from Petteri Aimonen). + Serial drivers: TIOCSERGSTRUCT ioctls now conditioned on CONFIG_SERIAL_TIOCSERGSTRUCT
        • - ARMv6-M (Cortex-M0) + ARMv7-M (Cortex-M3/4)

          • - Added support for the ARM Cortex-M0 family. + Added support for modifiable interrupt vectors in RAM
        • - nuvoTon NUC120 + nuvoTon NUC1xx

          • - Added support for the nuvoTon NUC120 MCU (Cortex-M0). -
          • -
          -
        • -
        • -

          - nuvoTon NUC120 Boards -

          -
            -
          • - Added basic support for the nuvoTon NuTiny-SDK-NUC120 board (Cortex-M0). + Added kernel build support
        • @@ -1217,9 +1171,9 @@ svn checkout -r5745 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code LPC17xx

            -
          • - Added support for the LPC177x and LPC178x families. - Most of this is the work of Rommel Marcelo. +
          • + Now holds off sleep mode in the IDLE loop is DMA is in progress + (because sleep mode will disable CPU SRAM).
          @@ -1229,13 +1183,26 @@ svn checkout -r5745 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

          • - Added support for Zilogic System's ARM development Kit, ZKIT-ARM-1769. - From Rashid. + ZKIT-ARM-1769: Now supports the ST7567 LCD display module. + Added an nxhello configuration for testing (Manikandan.S).
          • - The port for the WaveShare Open1788 board is now functional. - Basic OS test and NuttShell (NSH) configurations are functional. - More driver development and testing is needed (from Rommel Marcelo). + ZKIT-ARM-1769: Add support for both CAN1 and CAN2. + Contributed by M.Kannan +
          • +
          • + Open1788: Basic support for the WaveShare Open1788 board is complete with working OS test, NSH, and graphics configurations. +
          • +
          • + Open1788: Integrated the LPC178x LCD driver with the WaveShare display. + Touchscreen support is included, howerver, there appears to be an issue with the Open1788 touchscreen interrupt signal. +
          • +
          • + Open1788: Now supports SDRAM (used to provide the LCD framebuffer). +
          • +
          • + Open 1788: Reversed sense of the IDLE LCD. It is now off when the LPC17 is sleeping and on when awake. + That is much a better visual indication of the dynamic CPU load
          @@ -1245,8 +1212,32 @@ svn checkout -r5745 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

          • - Added an SD card MSI driver for the LPC178x. - The driver is marginally functional but requires DMA capability to be reliable. + Added an LCD framebuffer driver for the LPC177x/8x family. +
          • +
          • + Implemented LPC17xx GPDMA support. +
          • +
          • + Integrated the LPC17xx GPDMA support into the SD card driver. +
          • +
          • + SSP driver adapted to work with the LPC178x family. +
          • +
          • + Separate LPC176x and LPC178x GPIO logic; this logic is too different to maintain in one file with conditional compilation. +
          • +
          • + Re-design of the GPIO logic for the LPC178x family by Rommel Marcelo. +
          • +
          + +
        • +

          + LPC43xx +

          +
            +
          • + Added kernel build support
        • @@ -1256,7 +1247,11 @@ svn checkout -r5745 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

          • - Support extended to handle the STM32 F3 family (Cortex-M4 with F1-like peripherals). + Added support for kernel mode build. +
          • +
          • + Added architecure support for the STM32 F427/F437 chips. + Contributed by Mike Smith
          @@ -1266,7 +1261,7 @@ svn checkout -r5745 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

          • - Added support the STMicro STM32F3Discovery board (STM32 F3). + Added a configuration to support a kernel mode build of the OS test on the STM32F4Discovery
          @@ -1276,7 +1271,10 @@ svn checkout -r5745 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

          • - Basic support for the LM4F120 family is in place, but untested (mostly from Jose Pablo Carballo). + Added kernel build support +
          • +
          • + Added support for the 7 UARTs on the LM4F120
          @@ -1286,33 +1284,12 @@ svn checkout -r5745 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

          • - Add support for the LM4F120 LaunchPad (untested). -
          • -
          - -
        • -

          - Networking -

          -
            -
          • - select() should now allocate a little less memory. -
          • -
          -
        • -
        • -

          - Memory Management -

          -
            -
          • - Extended to support multiple heaps. - This is used as part of the kernel build in order to support separater user- and kernel-mode heaps. + Added scripts and instructions to simplify use of OpenOCD with ICDI (JP Carballo)
          • - The stand-alone memory manger test had to be removed. - It was too entangled and made extension of the memory manager nearly impossible. - This is a loss. + The basic for the Stellaris LM4F120 Launchpad is complete. + This includes support for OS test and NSH configurations. + Additional driver development is needed.
        • @@ -1322,22 +1299,7 @@ svn checkout -r5745 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

          • - Several configurations converted to use the kconfig-frontends configuration tool. - There are still many more that need to be converted. -
          • -
          - -
        • -

          - C Library -

          -
            -
          • - Move the workqueue logic into the C library. - There is now a special user-space version of the work queue (which will only be used with a NuttX kernel build). -
          • -
          • - Implementation of itoa() contributed by Ryan Sundberg. + Directories where the same sources files are used to build different objects in the first and second pass kernel builds need to keep those objects in separate directories so that they are not constantly rebuilt.
        • @@ -1347,14 +1309,23 @@ svn checkout -r5745 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

          • - The NSH builtin task logic now uses task_spawn() to start builtin applications. + apps/system/ramtest: + Added a simple memory test that can be built as an NSH command.
          • +
          + +
        • +

          + Tools +

          +
          • - The OS test now includes a test cased to verify task_restart(). + kconfig2html is a new tool which will replace the hand-generated documentation of the NuttX configruation variables with auto-generated documentation.
        +

        Efforts In Progress. The following are features that are partially implemented but present in this release. @@ -1363,32 +1334,13 @@ svn checkout -r5745 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

        • - LM4F120 LaunchPad port + Freescale Freedom KL25Z

          • - Code is in place, but nothing has been tested. -
          • -
          -
        • -
        • -

          - WaveShare Open1788 port -

          -
            -
          • - This port as actually complete and functional. - However, there is still ongoing development and testing of drivers. -
          • -
          -
        • -
        • -

          - Kernel Build -

          -
            -
          • - Much progress has been made, but there kernel build is not yet fully functional due to several user resources that are not yet properly disentangled from the kernel blob. + A port to the Freescale Freedom KL25Z is complete but not yet stable enough. + The KL25Z is a low-cost Cortex-M0+ part with 128KB of FLASH and 16KB of SRAM. + This is is the effort of Alan Carvalho de Assis.
        • @@ -1399,6 +1351,7 @@ svn checkout -r5745 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
          • Conversion of old configurations to use the kconfig-frontends tool is an ongoing effort that will continue for some time. + At this time, only 32% of the configurations have been converted to use the kconfig-frontends tools.
          @@ -1414,22 +1367,42 @@ svn checkout -r5745 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

          • - The wrong PID was being signalled with SIGCHILD. - It should be the PID of the task that create the task group, not the ID of the last thread to leave the task group. -
          • -
          • - Added logic so that some internal resources and states are recovered when tasks are deleted or restarted. - Handle cases where there are outstanding timed events pending when tasks are deleted or restarted. + Fixed a critical bug: + When there is pending C buffered output and the system is very busy, the a pthread may be blocked at a critical point when trying to exit. + Blocking at this critical point would cause crashes. + All entire task/thread exit logic paths were reviewed and failsafe mechanisms were put in place to assure that exitting tasks never block after task teardown has been started.
        • - ARMv7-M + ARMv6-M (Cortex-M0/M0+)

          • - Several fixes to the MPU control logic. + Fixed parameter passing for all system call inline functions with > 3 parameters +
          • +
          • + Fixed a major problem: + The Cortex-M0 has no BASEPRI register but thelogic of NuttX-6.26 was using it to manage interrupts. + Switched to using the PRIMASK instead. + This means that hardfaults will (again) occur when SVC instructions are executed +
          • +
          +
        • +
        • +

          + ARMv7-M (Cortex-M3/4) +

          +
            +
          • + Corrected Correct MPU sub-region settings for unaligned regions. +
          • +
          • + In exception handling with CONFIG_NUTTX_KERNEL<.code>, need to explicitly set and clear the privilege bit in the CONTROL register. +
          • +
          • + Fixed parameter passing for all system call inline functions with > 3 parameters
        • @@ -1439,38 +1412,55 @@ svn checkout -r5745 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

          • - Removable serial drivers race conditions fixed. + Support for O_NONBLOCK was not supported in the "upper half" serial driver.
          • - MAX11802 timing bug (from Petteri Aimonen). + PL2303 compilation errors
        • - STM32 Drivers + Stellaris LM3S/4F

          • - Handle cases were SPI DMA logic fails if sem_wait() is awakened by a signal. - Need to clear error flags to prevent corruption of subsequent transfers. - Also, bit count should not be changed while the SPI peripheral is enabled (from Petteri Aimonen). -
          • -
          • - Fixes to the OTG FS device driver from Petteri Aimonen. -
          • -
          • - Fix typos in DMA register header file (from Yan T.) + Corrected typos in alternate function definitions.
        • - Graphics + LPC17xx Drivers

          • - Correction to the hyphen in the SANS 17x22 font (from Petteri Aimonen). + Added a work-around for an ADC errata. + From Chris Taglia +
          • +
          • + Only one ADC pin was configured. + Need to configure all that are in the ADC0 set. + From MKannan +
          • +
          +
        • +
        • +

          + File Systems +

          +
            +
          • + The FAT logic was not making a distinction between directory non-existence and file non-existence so when it you try to create a file in a non-existent directory; it would create a file with the name of the missing directory. + Reported by Andrew Tridgell +
          • +
          • + Several fixes to the FAT file system from Ronen Vainish. + These fixes mostly involve the logic to extend directory clusters for the case of long file names but also include a few important general fixes (such as for storing 32 bit FAT values) +
          • +
          • + mkfatfs was writing the boot code to the wrong location. + From Petteri Aimonen
        • @@ -1480,19 +1470,24 @@ svn checkout -r5745 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

          • - Corrected errors in the socket poll/select logic. Additional - state logic was needed to detect if the socket is still connected - before starting the poll wait. (bug reported by Qiang Yu). + Fixed a compilation error when socket options are are disabled. + Reported by Daniel O'Connor
        • - Memory Management + C Library

          • - mallinfo() should hold the memory manager semaphore (from Petteri Aimonen. + Corrected an error in sscanf(). + If %n occurs in the format statement after the input data stream has been fully parsed, the %n format specifier will not be handled. + Reported by Lorenz Meier +
          • +
          • + strchr(str, '\0') should return a pointer to the end of the string, not NULL. + From Petteri Aimonen
        • @@ -1502,7 +1497,7 @@ svn checkout -r5745 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

          • - Resolved several build errors reported by Mike Smith. + Fix naming of NuttX target if EXEEXT is defined.
          @@ -1512,14 +1507,12 @@ svn checkout -r5745 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

          • - Fixed an NSH memory leak: - Needed to detach after creating each pthread. + OS test: Fix timing error in non-cancelable thread test.
          • - readline() now returns EOF on any failure (instead of a negated errno value). - This is because the underlying read is based on logic similar to getc. - The value zero (meaning end-of-file) was being confused with a NUL. - So if a NUL was received, the NSH session would terminate because it thought it was the end of file. + NSH: Correct the test of the skip input parameter. + Was limiting the range to <= count. + From Ken Petit.
          @@ -1935,17 +1928,16 @@ nsh>

          FreeScale Freedom KL25Z. - This is a port of NuttX to the Nuvoton NuTiny-SDK-NUC120 that features the NUC120LE3AN MCU. + This is a port of NuttX to the Freedom KL25Z board that features the MKL25Z128 Cortex-M0+ MCU, 128KB of FLASH and 16KB of SRAM. See the Freescale website for further information about this board.

            STATUS. This is a work in progress by Alan Carvalho de Assis. - This initial support is very minimal: - There is an OS test configuration that verifies the correct port of NuttX to the part and - a NuttShell (NSH) configuration that might be the basis for an application development. - As of this writing, more testing and more device driver development are needed to make this a more complete port. + This initial support is in place but is minimal and not yet completely stable: + There is a working OS test configuration that verifies the correct port of NuttX to the part and a working NuttShell (NSH) configuration that might be the basis for an application development. + As NuttX-6.27, more testing, completion of some GPIO logic, and more device driver development are needed to make this a more complete port.

          @@ -2441,11 +2433,12 @@ nsh>

            STATUS: - At present there is a working basic port with OS verification, Nuttshell (NSH) configurations, and a graphics test configuration. - The NSH configuration includes verfied support for (DMA-based) SD card interface. - SDRAM is working. - The frame-buffer LCD driver is functional and the touchscreen interface is actively underwork. - Both should be available in the NuttX-6.27 release. + Initial Open1788 support appeared in NuttX-6.26 with the first verified configurations in NuttX-6.27. + In NuttX-6.27 there is a working basic port with OS verification, Nuttshell (NSH) configurations, and a graphics test configuration. + SDRAM and GPDMA are working. + The NSH configuration includes verfied support for a DMA-based SD card interface. + The frame-buffer LCD driver is functional and uses the SDRAM for frame-buffer memory. + A touchscreen interface has been developed but there appears to be a hardware issue with the WaveShare implementation of the XPT2046 touchscreen controller.
          @@ -3781,318 +3774,337 @@ Other memory:
            -nuttx-6.26 2013-05-15 Gregory Nutt <gnutt@nuttx.org>
            +6.27 2013-04-28 Gregory Nutt <gnutt@nuttx.org>
             
            -    * drivers/serial/serial.c:  Correct some race conditions when checking
            -      for disconnection of a removable serial device.
            -    * sched/task_posixspawn.c, task_spawn.c, task_spawnparms.c and
            -      spawn_internal.h:  Create new interface task_spawn() that is
            -      like posix_spawn(), but uses entry point addresses like
            -      task_create().
            -    * Corrected all argv[] arguments. Should be char * const *, not
            -      const char **.
            -    * sched/pthread* and include/nuttx/sched: Move pthread join data
            -      and pthread key calculation data into the "task group" structure.
            -    * sched/atexit.c, on_exit.c, task_exithook.c and include/nuttx/sched.h:
            -      Move atexit and on_exit data structures to task group.  These
            -      callbacks are only issued now when the final member of the task
            -      group exits.
            -    * sched/waitpid.c, task_exithook.c and include/nuttx/sched.h:
            -      Move waitpid data data structures to task group.  Callers of
            -      of waitpid() are now only awakened whent he final thread of the
            -      task group exits.
            -    * sched/mq_descreate.c, mq_open.c, mq_remove.c, group_leave.c, and
            -      include/nuttx/sched.h:  Move list of opened message queues to
            -      the task group structures.  Now all message queues opened by
            -      members of the group are closed when the last member of the group
            -      exits.
            -    * includes/nuttx/sched.h and Lots of files:  Change name of _TCB to
            -      struct tcb_s so that (1) it is consitent with other NuttX naming and
            -      so that (2) the naming can handle some upcoming changes.
            -    * includes/nuttx/sched.h and sched/:  There are three TCB structures:
            -      struct tcb_s is a generic common version, struct task_tcb_s is a
            -      version for tasks and kernel threads and pthread_tcb_s is a version
            -      for pthreads.  By dividing the TCB structure into these variants,
            -      pthreads do not have to be burdened by task-specific data structures
            -      (and vice versa).
            -    * sched/task_exithook.c adn group_create.c:  Fix an error, the
            -      task within the task group may exit early leaving a pthread to
            -      exit the task group last.  In this case, we need to remember the
            -      the PID of the main task in the task group and use that PID for
            -      signalling SIGCHILD to the parent task group.
            -    * included/nuttx/sched.h and sched/sig*.c:  Numerous changes to the
            -      signal deliver logic so that the delivery of signals to threads
            -      within a task group will be compliant with delivery of signals
            -      to threads within a POSIX process.
            -    * sched/mq_recover.c and task_exithook.c:  Add logic to handle the
            -      case where a task is deleted (or pthread canceled) while it is
            -      waiting on a message queue.  task_delete() and pthread_cancel()
            -      are dangerous interfaces.  This is only one feeble recover measure
            -      of *many* that would be needed to do this safely.
            -    * sched/group_killchildren.c, task_recover.c, group_foreachchild.c,
            -      sched/restart.c, sched/task_delete.c, and others:  Beef up logic
            -      to better support task deletion and pthread cancellation.  Needed
            -      to pass need OS test case for task_restart().
            -    * sched/include/sched.h and all timed functions in sched/:  Move
            -      timer from local variables to TCB.  This is needed so that if a
            -      task is canceled or restarted while it is waiting for a timed
            -      event, we can gracefully recover.  We can't let the timer expire
            -      after the task has been deleted.
            -    * arch/arm/include/stm32 and arch/arm/src/stm32:  Add support for
            -      the STM32 F3 family (still missing some things).
            -    * configs/stm32f3discovery:  This will (eventually) be support for
            -      the STM32F3Discovery board.
            -    * STM32 F3 and STM32F3Discovery port is complete a ready for test.
            -    * arch/arm/src/lpc17xx: Add support for the Cortex-M4 FPU and
            -      Mikes "common vector" logic.  The LPC1788 is going to need
            -      these things.
            -    * arch/arm/src/stm32/stm32_spi.c:  Fix SPI DMA logic that does
            -      not work if sem_wait() is interrupt by a signal.  From Petteri
            -      Aimonen.
            -    * drivers/input/max11802.c: MAX11802: Fix a timing bug that
            -      corrupted coordinates.  From Petteri Aimonen.
            -    * drivers/mmcsd/mmcsd_spi.c:  Use SPI locking so that MMC/SD can
            -      exist on the same bus as other SPI devices.  From Petteri
            -      Aimonen.
            -    * graphics/nxfonts/nxfonts_sans17x22.h: Small mod to hyphen in
            -      sans17x22 font.  The hyphen did not have any space on its sides.
            -      This caused it to run together with other characters so that for
            -      example "+-" would look weird. From Petteri Aimonen.
            -    * mm/mm_mallinfo.c:  Take MM semaphore in mm_mallinfo. From Petteri
            -      Aimonen.
            -    * configs/stm32f3discovery/nsh/defconfig:  Disable SPI.  It is not
            -      used.
            -    * drivers/mtd/sst39vf:  Add a driver for the SST29VF NOR FLASH parts.
            -    * sched/os_start.c:  Add an additional call-out to support board-
            -      specific driver initialization during the start phase:  If
            -      CONFIG_BOARD_INITIALIZE is defined, then an additioinal
            -      initialization function called board_initialize() will be called
            -      just after up_initialize() is called and just before the initial
            -      application is started.
            -    * arch/arm/src/stm32/stm32_otgfsdev.c, drivers/usbdev/usbdev_trprintf.c,
            -      and include/nuttx/usb/usbdev_trace.h:  Add logic to support decoding
            -      of device-specific trace events to make the trace ouput more readable.
            -      From Petteri Aimonen.
            -    * arch/arm/src/stm32/stm32_otgfsdev.c:  Need to manually set CNAK in
            -      the case where we are waiting for a SETUP command with DATA.  Otherwise,
            -      the core may NAK further transactions.  From Petteri Aimonen.
            -    * arch/arm/src/stm32/stm32_otgfsdev.c: Add logic to prevent premature
            -      to IDLE state.  This change (plus the previous) was necessary to get
            -      the CDC/ACM driver working the certain STM32 F4 hardware (but not others).
            -      These changes appear to prevent certain race conditions that may or may
            -      not cause USB problems.  From Petteri Aimonen.
            -    * arch/arm/include/armv6-m and arch/arm/src/armv6-m: First cut at support
            -      for the Cortex-M0
            -    * configs/nutiny-nuc120, arch/arm/include/nu1xx, and arch/arm/src/nuc1xx:
            -      Support for Nuvoton NuTiny NUC120.
            -    * 2013-02-22:  the Cortex-M0, NuvoTron NUC1xx, and NuTiny-SDK-NUC120 port
            -      is code complete and ready for testing.
            -    * configs/ekk-lm3s9b96/ostest and nsh:  All EKK-LM3S9B96 configurations
            -      converted to use the mconf configuration tool.
            -    * configs/zkit-arm-1769:  Add support for Zilogic System's ARM development
            -      Kit, ZKIT-ARM-1769.  From Rashid.
            -    * configs/zkit-arm-1769/hello:  Add a "Hello, World!" configuration for
            -      the KBIT-ARM-1769 board.  From Rashid.
            -    * configs/zkit-arm-1769/thttpd:  Add a THTTPD configuration for the
            -      KBIT-ARM-1769 board.  From Rashid.
            -    * 2013-02-27: All configurations for the Cortex-M0 NuTINY-SDK-NUC120
            -      appear to be functional and stable.
            -    * configs/zkit-arm-1769/nsh:  Add an NSH configuration for the
            -      KBIT-ARM-1769 board.  From Rashid.
            -    * arch/arm/src/stm32/stm32_otgfsdev.c:  Fixes from Petterri Aimonen
            -      related to corner cases that can cause infinite interrupts.
            -    * drivers/usbdev/usbmsc_scsi.c:  Change to allow the full name in the
            -      USB descriptor but a truncated, 8-byte name in the SCSI field.
            -      From Petteri Aimonen.
            -    * arch/arm/src/stm32/stm32_spi.c: Need to clear error flags to prevent
            -      corruption of subsequent transfers.  Also, bit count should not be
            -      changed while the SPI peripheral is enabled.  From Petteri Aimonen.
            -    * drivers/mmcsd/mmcsd_spi.c:  When bus is shared, the speed has to be
            -      set every time.  Also SD cards require a few dummy clocks to react
            -      into CS release.  From Petteri Aimonen.
            -    * configs/lm4f120-launchpad: In initial configuration for testing
            -      the LM4F120 LaunchPad port.  This is to support testing only and
            -      is not yet a functional board port (as of 2013-03-01).
            -    * arch/arm/include/lm/lm4f_irq.h and arch/arm/src/lm/chip/lm4f_vector.h:
            -      Add interrupt vector/IRQ number definitions for the LM4F120.
            -    * arch/arm/src/stm32f20xxx_dma.c and stm32f40xxx_dma.c:  Fix a typo
            -      in assigned base register addresses for each DMA channel.  From
            -      Yan T.
            -    * Several build fixes from Mike Smith were incorporated.  These were
            -      mostly compilation errors introduced into the system because of the
            -      large number of recent changes with broad scope (2013-03-04).
            -    * configs/zkit-arm-17969/src/up_can.c:  Add CAN support to the
            -      Zilogics Technologies ZKIT-ARM-1769 board (From Rashid Fatah, (2013-03-04)).
            -    * arch/arm/src/lpc17/lpc17*_clockconfig.c:  The WaveShare Open1788
            -      board now boots and passes the OS test.  This is the work of
            -      Rommel Marcelo (2013-03-04).
            -    * arch/arm/src/lm/lm_gpio.c, lm_gpio.h, and chip/lm4f_pinconfig.h
            -      Extend GPIO logic to handle LM4F.  Add LM4F pin configuration header
            -      file (2013-03-04).
            -    * configs/open1788:  Enable LED support in all configurations.
            -      (2013-03-04)
            -    * configs/open1788/nsh:  NSH configuration verified function.  By Rommel
            -      Marcelo (2013-03-05).
            -    * configs/open1788/src/lpc17_nsh.c:  Use the SD card interface, not SPI
            -      to interface with SD cards (2013-03-05.
            -    * arch/arm/src/lpc17xx/lpc17_sdcard.c and header files:  Clone the STM32
            -      SD card interface to the LPC1788.  It appears to be the same IP.
            -      (2013-03-05)
            -    * libc/wqueue:  Work queue logic moved from sched/ to libc/wqueue.  It
            -      is not really core OS functionality and this move helps prepare for
            -      user-space work queues. (2013-03-05)
            -    * libc/wqueue:  Implemented user-space work queues.  These will not
            -      get tested until the next time I attempt a NuttX kernel build.
            -      (2013-03-05).
            -    * arch/arm: Correct some bad syscall dispatching logic.  This change
            -      cannot be fully tested until there is a fielded NuttX kernel build.
            -      (2013-03-06).
            -    * net/net_poll.c:  Correct logic that checks if the socket is
            -      disconnected when the poll is setup.  That is bad logic:  Listen
            -      sockets, for example, are not connected.  In that case, the purpose of
            -      the poll is to wait for connection events.  As a result of this,
            -      poll/select would return immediately with POLLHUP with it was used to
            -      detect connection events.  This fix for now was to check instead if
            -      the socket is closed (meaning that it was connected at one time but
            -      was closed by the remote peer).  That excludes the listen socket which
            -      was never connected.  This does introduce a new problem, however.  If
            -      the socket was not closed, but lost the connection through an abnormal
            -      event, then poll/select will hang.  That needs to be revisited.
            -      (2013-03-07)
            -    * fs/fs_select.c:  Was not checking if the timeout parameter was NULL
            -      but would, instead, setup a bogus timeout based on whatever it found at
            -      address zero.  Also, improved some of the memory allocation logic so
            -      that it will not use so much memory. (2013-03-07)
            -    * net/net_poll.c:  Handle the missing case.  Now tests for not connected
            -      AND not listening.  I think that now covers all of the cases including
            -      the missing case noted above. (2013-03-07)
            -    * mm/:  Move all memory manager globals into a structure.  A reference
            -      to this structure is now passed internally between mm APIs. This
            -      change will (eventually) support multiple heaps and heap allocators.
            -      (2013-03-08).
            -    * mm/ and include/nuttx/mm.h:  Implement support for multiple heaps.
            -      (2013-03-08).
            -    * arch/*/src: xyz_addregion() needs to call kmm_addregion, not mm_addregion.
            -      (2013-03-08).
            -    * sched/kmm*.c:  Move this garbage kmm*.c file to mm/. until I decide what
            -      to do with them (which is probably to just delete them). (2013-03-08).
            -    * mm/mm_test.c and Makefile.test:  Deleted the memory test.  This was
            -      a good test and helped me a lot when I wrote the memory manager, but
            -      now it is in the way and paralyzing other efforts.  So the memory unit
            -      test was deleted. (2013-03-08)
            -    * sched/sched_free.c:  Rename sched_free() to sched_ufree(); Add
            -      sched_kfree() to handler deferred kernel heap allocations. (2013-03-10)
            -    * arch/:  User user-accessible heap to allocate all stacks. (2013-03-10)
            -    * arch/arm/src/sam3u:  The AT91SAM3U will now support a kernel heap if
            -      so configured. (2013-03-10)
            -    * configs/sam3u-ek/knsh:  This configuration was converted to use the
            -      kconfigs-frontends build tool. (2013-03-10)
            -    * configs/*/include/user_map.h and include/nuttx/userspace.h:  Remove
            -      the very kludgy user_map.h file and replace it with a header that
            -      is expected at the beginning of the user-space blob. (2013-03-10)
            -    * configs/sam3u-ek/kernel/up_userspace.c:  This is the header for
            -      the SAM3U-EK's user space.  (2013-03-10)
            -    * sched/os_bringup.c:  In the kernel build, os_bringup() now uses the
            -      user-space header to automatically start the user-space work queue,
            -      if so configured. (2013-03-10)
            -    * arch/arm/src/lpc17xx/lpc17_mpuinit.c and lpc17_userpace.c:  Add
            -      support for the MPU and kernel build for the LPC17xx family.
            -      (2013-03-11)
            -    * configs/open1788/kernel and knsh:  Add kernel build support and
            -      a kernel NSH configuration for the WaveShare Open1788 board.
            -      (2013-03-11)
            -    * configs/sam3u_ek/kernel, knsh, and scripts:  Move some files around
            -      for better supportability. (2013-03-11)
            -    * configs/open1788/kernel, knsh, and scripts:  Add a kernel mode build
            -      configuration for the WaveShare Open1788 board. (2013-03-11)
            -    * arch/arm/src/armv7-m/up_mpu.c:  Several fixes to MPU logic.
            -      (2013-03-12).
            -    * arch/arm, configs/sam3u-ek, configs/open1788:  Fix memory map for
            -      kernel mode build; Some regions were overlapping. (2013-03-13).
            -    * arch/:  Rename g_heapbase to g_idle_topstack.  This is the same value
            -      however:  The top of the IDLE stack is the same as the base of the
            -      heap in the flat build.  But not in the kernel build:  The base of
            -      the heap is elsewhere so the naming was wrong. (2013-03-13).
            -    * libc/stdlib/lib_itoa.c:  Implementation of itoa() contributed by
            -      Ryan Sundberg. (2013-03-14).
            +    * arch/arm/src/armv7-m/up_mpu.c:  Correct MPU sub-region settings for
            +      unaligned regions (2013-03-15).
            +    * arch/arm/src/armv6-m/up_svcall.c:  Bring up to equivalent to the
            +      ARMv7-M version (2013-03-15).
            +    * configs/lm4f120-launchpad/tools:  Add scripts and instructions to
            +      simplify use of OpenOCD with ICDI (from JP Carballo, 2013-03-15).
            +    * tools/mkconfig.c:  Logic that attempts to suppress buffered I/O
            +      within the kernel is wrong.  sizeof(struct file_struct) must be
            +      the same in both kernel- and user-spaces (2013-03-16).
            +    * arch/arm/src/common/up_pthread_start.c, libc/pthread/pthread_startup.c,
            +      and related files:  Implement switch to user-space and user-space
            +      pthread start-up function (2013-03-16).
            +    * arch/arm/src/common/up_signal_handler.c, libc/pthread/pthread_startup.c,
            +      and related files:  Implement switch to user-space and user-space
            +      pthread start-up function (2013-03-16).
            +    * arch/arm/src/common/up_signal_handler.c, libc/signal/signal_handler.c,
            +      arch/arm/src/armv[6|7]-m/up_svcall.c, arch/arm/include/armv[6|7]-m/svcall.h,
            +      include/nuttx/userspace.h, and sched/sig_deliver.c:  Implement switch
            +      to user-space from kernel signal delivery trampoline before calling user-
            +      space signal handler.  Return from user-space signal handler using a
            +      system call (2013-03-16).
            +    * arch/arm/src/armv[6|7]-m/up_schedulesigaction.c: Need make sure we are
            +      in kernel mode before switching to kernel-mode signal handler
            +      trampoline (2013-03-16).
            +    * arch/arm/include/armv[6|7]-m/irq.h, and arch/arm/src/armv[6|7]-m/up_svcall.c:
            +      Add support for nested system calls.  In the current design, this can
            +      happen only under one condition:  When the kernel system call logic calls
            +      back into user space in order to allocate user space memory.  So it is
            +      expected that the maximum nesting level will be only 2 (2013-03-17).
            +    * libc/stdio/lib_sccanf.c:  Correct an error in sscanf.  If %n occurs in
            +      the format statement after the input data stream has been fully
            +      parsed, the %n format specifier will not be handled.  Reported by
            +      Lorenz Meier (and also earlier by Kate) (2013-03-17).
            +    * drivers/serial/serial.c:  Support for O_NONBLOCK was not supported
            +      in the "upper half" serial driver.  This is normally not an issue
            +      because UART TX is almost always available, but it does become an
            +      if the UART uses hardware flow control or if the a "lower half" is
            +      something like the USB CDC/ACM driver that may need to block for
            +      significant amounts of time (2013-03-18).
            +    * arch/arm/src/armv7-h/ram_vectors.h, up_ramvec_*.c, arch/arm/src/*/*_irq.c,
            +      and Make.defs:  Add support for modifiable interrupt vectors in RAM
            +      (2013-03-18).
            +    * arch/arm/src/armv7-m/up_exception.S, sam3u/sam3u_vectors.S, and
            +      lpc17xx/lpc17_vectors.S: In exception handling with CONFIG_NUTTX_KERNEL,
            +      need to explicitly set and clear the privilege bit in the CONTROL
            +      register on return.  I assumed this would be handled automatically
            +      by the EXC_RETURN.  Silly me (2013-03-18).
            +    * arch/arm/src/lpc17_adc.c:  Add a work-around for an ADC errata.  From
            +      Chris Taglia (2013-3-19).
            +    * arch/arm/src/armv7-m/up_hardfault.c:  If the PRIMASK is used to disable
            +      interrupts, then additional logic is required in the hard fault handler
            +      (2013-3-19).
            +    * libc/ and mm/: Directories where the same sources files are used to
            +      build different objects in the first and second pass kernel builds need
            +      to keep those objects in separate directories so that they are not
            +      constantly rebuilt (2013-3-19).
            +    * fs/fat:  Create an error in FAT file creation.  The FAT logic was
            +      not making a distinction between directory non-existence and file
            +      non-existence so when it you try to create a file in a non-existent
            +      directory, it would create a file with the name of the missing
            +      directory.  Reported by Andrew Tridgell (2013-03-30).
            +    * Numerous files:  Changed the protoypes of up_create_stack() and
            +      up_release_stack() so that is includes a task type.  Normally you
            +      can get this type from the TCB parameter, but there are certain
            +      conditions when the task type is not valid in the TCB when these
            +      functions are called.  Only the prototypes were changed on this
            +      big, initial checkin.  The next step will be to add logic to
            +      allocate stacks for kernel threads from protected kernel memory
            +      and all other task types from unprotected user memory (2013-03-20).
            +    * arch/*/src/common/up_createstack.c, up_use_stack.c, and
            +      up_release_stack.c:  If creating or releasing the stack for a kernel
            +      thread, use the kernel allocator so that the kernel thread stacks
            +      are protected from user application meddling (2013-03-20).
            +    * arch/arm/src/armv[6|7]-m/up_scall.c:  Fix parameter passing for
            +      all system call inline functions with > 3 parameters (2013-03-20)
            +    * arch/*/src/common/up_stackframe.c and include/nuttx/arch.h:  Add
            +      and new interface to set aside memory on the stack.  This will be
            +      used at least in the kernel build to hold task arguments (2013-03-21).
            +    * sched/sig_deliver.c:  When dispatching signals to user threads,
            +      copy the siginfo_t from the sigq to the stack.  The signal queue
            +      is allocated from kernel memory; however, the current stack is
            +      the user's stack and the user code will be able to access the
            +      signinfo_t data from the stack copy (2013-03-21).
            +    * arch/arm/src/stm32:  Added support for the kernel mode build
            +      (cloned from the lpc17xx).  (2013-03-21).
            +    * configs/stme32f4discovery/kernel and scripts:  Add support for
            +      the kernel mode build on the STM32F4Discovery  (2013-03-21).
            +    * drivers/st7567.c/h and include/nuttx/lcd/st7567.h:  Driver for
            +      the ST7567 LCD Display Module from Univision Technology Inc.
            +      contributed by Manikandan.S (2013-03-22).
            +    * configs/zkit-arm-1769:  Now supports the ST7567 LCD display
            +      module.  Added an nxhello configuration for testing (Manikandan.S,
            +      2013-03-22).
            +    * configs/stm32f4discovery/kostest:  Add a kernel mode version
            +      of the OS test for the STM32F4Discovery board (2013-03-22).
            +    * nuttx/include/nuttx,  nuttx/configs/sam3u-ek, nuttx/configs/open1788,
            +      nuttx/configs/stm32f4discovery, and nuttx/arch/arm:  Complete
            +      re-archtecting of how signals are dispatched to user-space code
            +      in the kernel build.  The original implementation was C-based
            +      and simpler.  However, the C code intermixed with SVC calls was
            +      not properly preserving registers.  The more complex, assembly
            +      language version does not suffer from these issues.  I believe
            +      the the kernel build can now be called "feature complete"
            +      (2013-03-23).
            +    * binfmt/binfmt_execmodule.c:  Here is a place where I forget
            +      to update the call to sched_releasetcb() to pass the thread
            +      type as the second parameter (2013-03-23).
            +    * arch/arm/src/lm, kinetis, lpc32, and nuc1xx:  Add kernel build
            +      support to all ARMv7-M and ARMv6-M chips.  There are no
            +      configurations in place to to verify these additions!
            +      (2013-03-24).
            +    * arch/arm/src/lm/lm_gpio.h:  Correct typos in alternate function
            +      definitions (2013-03-24).
            +    * arch/arm/src/lm/lm_lowputc.c and lm_serial.c:  Add support for
            +      the 7 UARTs on the LM4F120 (2013-03-24).
            +    * configs/lm4f120-launchpad/ostest/defconfig:  Fix the configured
            +      RAM size.  This appears to be the last show-stopper bug:  The
            +      LaunchPad now runs NuttX!  (2013-03-24).
            +    * configs/lm4f120-launchpad/nsh:  Add an NSH configuration for the
            +      LaunchPad (2013-03-24).
            +    * configs/kwikstik-k40:  Converted configurations to use the
            +      konfig-frontends tool (2013-03-25).
            +    * configs/twr-k60n512:  Converted configurations to use the
            +      konfig-frontends tool (2013-03-25).
            +    * arch/arm/src/lpc17xx/lpc17_lcd.c:  Add an LCD framebuffer driver
            +      for the LPC177x/8x family (2103-3-26).
            +    * arch/arm/src/lpc17xx/lpc17_emc.c and
            +      configs/open1788/src/lpc17_sdraminitialize.c:  Began testing the
            +      Open1788 SDRAM.  The SDRAM is basically functional, but there are
            +      failures with the SDRAM is stressed by the memory test at
            +      apps/example/ramtest (SDRAM support and the RAM test can be configured
            +      into the base configs/open1788/nsh configuration as described in
            +      configs/open1788/READMT.txt (2103-3-27).
            +    * configs/open1788/nxlines:  Add a configuration to test both the
            +      Open1788 LCD and SDRAM which is used as a framebuffer (2013-3-27).
            +    * arch/arm/src/lpc17xx/lpc17_gdma.c and lpc17_sdcard.c:  Began
            +      implementation of the LPC17 DMA and integration into the SDCARD
            +      driver (2013-3-29).
            +    * arch/arm/src/lpc17xx/lpc17_gdma.c: LPC17 DMA is code complete and
            +      under test.  Does not yet work (2013-3-30).
            +    * fs/fat/fs_fat32dirent.c and fs_fat32util.c:  Several fixes to the
            +      FAT file system from Ronen Vainish.  These fixes mostly involve the
            +      logic to extend directory clusters for the case of long file names
            +      but also include a few important general fixes (such as for storing
            +      32 bit FAT values) (2013-03-31).
            +    * arch/arm/src/lpc17xx/lpc17_gdma.c and lpc17_sdcard.c:  SD card DMA
            +      is now functional.  Thre may be some issues with DMA from CPU SRAM
            +      which is apparently disabled in sleep mode; up_idle() always enters
            +      sleep mode (2013-03-31).
            +    * arch/arm/src/stm32:  Add architecure support for the STM32 F427/F437
            +      chips. Contributed by Mike Smith (2013-4-01).
            +    * configs/zkit-arm-1769/src/up_can.c:  Add support for both CAN1
            +      and CAN2.  Contributed by M.Kannan (2013-4-01).
            +    * arch/arm/src/lpc17xx/lpc17_spi.c and lpc17_ssp.c and
            +      configs/olimex-lpc1766stk, nucleus2g, zkit-arm-1769, and
            +      lpcxpresso-lpc1768:  The initialization function for both the LPC17xx
            +      SPI and SSP blocks was called up_spinitialize() which is the common API
            +      definition of include/nuttx/spi.h.  But this raises a problem when the
            +      MCU has multiple blocks for differ SPI implementations as does the
            +      LPC17xx (and also as does other architectures like STM32 that have
            +      USARTs that can serve as SPI interfaces as well).  These were renamed
            +      to lpc17_spiinitialize() and lpc17_sspinitialize() in this case.
            +      Problem reported by M. Kannan (2013-4-01).
            +    * arch/arm/src/lpc17xx/lpc17_gpdma.c and lpc17_idle.c:  In sleep mode,
            +      DMA can only be performed from peripheral SRAM.  CPU SRAM is shutdown
            +      in sleep mode.  In order to simplify DMA memory allocation, the LPC17xx
            +      IDLE will now hold off going to sleep mode if there is a DMA in progress
            +     (2013-4-01).
            +    * configs/open1788/src/lpc17_autoleds.c:  Reversed sense of the IDLE LCD.
            +      It is now off when the LPC17 is sleeping and on when awake.  That is
            +      much more useful because it provides a good visual indication of the
            +      dynamic CPU load (2013-4-01).
            +    * configs/open1788/src/lpc17_touchscreen.c and lpc17_ssp.c:  Add
            +      support for the touschscreen on the WaveShare LCD (2013-4-01).
            +    * configs/several:  There were already some functions called
            +      lpc17_sspinitialize().  So they had to be renamed (2013-4-01).
            +    * arch/arm/src/lpc17xx/lpc17_ssp.c:  Adapted to work the the LPC178x
            +      family (2013-4-01).
            +    * arch/arm/src/lpc17xx/lpc17_gpio.c/.h:  Separate LPC176x and LPC178x
            +      logic into separate files.  The logic is diverging to much to
            +      try to retain common code (2013-4-03).
            +    * net/net_clone.c:  Fix compilation error when socket options are
            +      are disabled. Reported by Daniel O'Connor (2013-4-05).
            +    * configs/zkit-arm-1769/src/up_leds.c:  Fix a typo introduced into
            +      the button interrupt logic (2013-4-05).
            +    * arch/arm/src/lpc17xx/lpc178x_gpio.c:  Re-design of the GPIO
            +      logic for the LPC178x family by Rommel Marcelo (2013-4-05).
            +    * arch/arm/src/lpc17_gpiodbg.c:  Updated so that it correctly
            +      reports LPC177x/8x GPIO registers when GPIO debug is enabled
            +      (2013-4-05).
            +    * arch/arm/src/Makefile:  The variable NUTTX already includes
            +      the extension $(EXEEXT).  So remove the second extension
            +      $(NUTTX)$(EXEEXT) in two places (2013-4-7).
            +    * arch/arm/src/lpc17xx/lpc17_gpioint.c:  Disable interrrupts in
            +      lpc17_setintedge().  This logic must be atomic because it can be
            +      re-entered before it completes enabled interrupts, sometimes
            +      leaving the interrupts in a strange state (2013-4-7).
            +    * arch/arm/src/lpc17_lcd.c:  Rommel Marcelo got the LPC1788
            +      framebuffer-based LCD working.  Very nice! (2013-4-08).
            +    * arch/arm/src/lm/lm_clockconfig.c and configs/lm4f120-launchpad:
            +      Fix handling of the RCC SYSDIV2 field whent the PLL output is
            +      400MHz.  Don't forget to set the USERCC2 bit in the register or
            +      all is for naught (2013-4-09).
            +    * configs/zkit-arm-1769/src/up_lcd.c, up_ssp.c, and up_spi.c:
            +      Use SSP0 to LCD and SPI to SD-Card on the Zkit-arm-1769 board.
            +      From Manikandan. S (2013-4-10)
            +    * configs/olimex-lpc1766stk/usbserial:  Converted to use the
            +      kconfig-config frontends tools (2013-4-12).
            +    * drivers/usbdev/pl2303.c: Fix some compilation errors that
            +      crept in when fixes to the CDC/ACM driver where blindly
            +      incorporated in the PL2303 driver (2013-4-12).
            +    * configs/stm3210e-eval/usbserial:  Converted to use the
            +      kconfig-config frontends tools (2013-4-12).
            +    * configs/nucleus2g/usbserial:  Converted to use the
            +      kconfig-config frontends tools (2013-4-12).
            +    * arch/arm/src/kl and arch/arm/include/kl:  Add support for the
            +      Kinetis L family of Cortex-M0+ MCUs.  Contributed by Alan
            +      Carvalho de Assis.  NOTE:  This is still very much a work in
            +      progress as of this initial commit (2013-04-16).
            +    * configs/freedom-kl25z:  Support for the Freedom KL25Z board
            +      contributed by Alan Carvalho de Assis.  NOTE:  This is still
            +      very much a work inprogress as of this initial commit
            +      (2013-04-16).
            +    * arm/arm/src/armv6-m and arch/arm/include/armv6-m:  Ooops.  Fix
            +      a major screw-up:  The Cortex-M0 has no BASEPRI register but
            +      the current logic was using it to manage interrupts.  Switch
            +      to using the PRIMASK.  This means that hardfaults will (again)
            +      occur when SVC instructions are executed (2013-4-16).
            +    * configs/stm3240g-eval/ostest:  Converted to use the kconfig-frontends
            +      tools (2013-4-17).
            +    * sched/task_exithook.c:  Don't flush the streams until the
            +      final thread of the group exits.  Flushing may cause the
            +      thread to get suspended at a bad time and other threads in the
            +      group may run while the exiting thread is in an unhealthy state.
            +      This can cause crashes under certain circumstance.  This is a
            +      critical bugfix (2013-4-18).
            +    * drivers/mtd/ramtron.c:  Extended to support the FM25V01 device.
            +      Contributed by Lorenz Meier (2013-4-18).
            +    * sched/task_deletecurrent.c and task_exit.c, arch/*/up_exit.c:
            +      Renamed task_deletecurrent() and task_exit() since it really
            +      handles the architecture independent part of _exit().  _exit()
            +      is used internally, but if it is called from the user, it should
            +      unregister any atexit() or on_exit() functions (2013-4-18).
            +    * tools/kconfig2html.c: This is the beginning of a tool to
            +      replace the hand-generated documentation of the NuttX configruation
            +      variables with auto-generated documentation.  The initial checkin
            +      is an incomplete, poorly structured prototype that I hope to
            +      evolve into a useful tool (2014-4-20).
            +    * libc/string/lib_strchr.c:  strchr(str, '\0') should return a
            +      pointer to the end of the string, not NULL.  From Petteri
            +      Aimonen (2014-4-22).
            +    * fs/fat/fs_writefat.c: mkfatfs was writing the boot code to the
            +      wrong location.  From Petteri Aimonen (2014-4-22).
            +    * Documentation:  The NuttX documentation now expects to find an
            +      auto-generated version of the configuration variable documentation
            +      at Documentation/NuttXConfigVariables.html (2014-4-22).
            +    * arch/arm/src/lpc17xx/lpc17_adc.c:  Only one ADC pin was configured.
            +      Need to configure all that are in the ADC0 set.  From MKannan
            +      (2014-4-23).
            +    * configs/zkit-arm-1769/src:  ADC and SPI/USB MSC updates from
            +      MKannan (2014-4-23).
            +    * arm/src/armv7-m/ram_vectors.h and arm/src/armv7-m/up_ramvec_initialize.c:
            +      Fixes to RAM vector logic from Paul Y. Zhang (2014-4-23)
            +    * tools/kconfig2html.c:  Improve behavior of Expand/Collapse
            +      Table of Contents; Handle errors in parsing of strings and in
            +      some uninitialized variables.  Add an option to use jQuery.
            +    * tools/mkconfigvar.sh: Fix make target (2014-4-23).
            +    * sched/exit.c, pthread_exit.c, task_exit.c, task_delete,c and
            +      task_exithook.c:  For pthread_exit(), move some logic to an early
            +      point in the exit sequence where the task may need to block.  Add
            +      conditional logic in the lower end of the eixt logic kicked off by
            +      _exit() to prohibit blocking after the task has been torn down and is
            +      no longer cabable of blocking (2014-4-23).
            +    * arch/arm/src/common/up_initialize.c: Add missing registration
            +      of /dev/zero.  Registration of /dev/null should depend upon
            +      conditional compilation.  From Ken Pettit (2014-4-24).
            +    * arch/*/src/common/up_initialize.c:  Same change required to other
            +      architectures (2014-4-24).
            +    * arch/arm/src/kl/kl_clockconfig.c and configs/freedom-kl25z/include/board.h:
            +      Modify out PLL configuration so that it uses the values in
            +      board.h;  Fix PLL settings in board.h so that the correct core
            +      and bus clock frequencies are generated. (2014-4-24).
            +    * arm/src/kl/chip/kl_memorymap.h, kl_sim.h, andkl_uart.h:  Correct some
            +      register definitions (2014-4-25).
            +    * arch/arm/src/kl/Kconfig, kl_lowputc.c, kl_serial.c, and kl_config.h:
            +      No UART3-5 (2014-4-25).
            +    * arch/arm/src/kl/kl_serial.c:  Various fixes to various files in the
            +      KL architecture directory as need to get the interrupt-driven
            +      serial driver to work.  The Freedom KL25Z NSH configuration now
            +      works (2014-4-25).
            +    * include/nuttx/assert.h, arch/*/src/*/up_assert.c, and other file:
            +      Remove up_assert_code().  While asserting with an encoded value
            +      could be a good feature, the codes have not be well utilized nor
            +      documented.  Give that situation it is better to remove the API
            +      and reduce the footprint a little (2014-4-25).
            +    * drivers/serial/Kconfig and arch/*/src/*/*_serial.c:  Add
            +      compilation so that the useless TIOCSERGSTRUCT ioctl logic
            +      is not build unless CONFIG_DEBUG and CONFIG_SERIAL_TIOCSERGSTRUCT
            +      are defined.
            +    * sched/task_delete.c and task_terminate.c:  Most task_terminate()
            +      out of task_delete.c into its own C file.  This should prevent
            +      dragging task_delete() into the link when it is never called.
             
            -apps-6.26 2013-03-15 Gregory Nutt <gnutt@nuttx.org>
            +apps-6.27 2013-04-28 Gregory Nutt <gnutt@nuttx.org>
             
            -    * apps/builtin/exec_builtin.c:  Now uses task_spawn() to start
            -      builtin applications.
            -    * Type of argv has changed from const char ** to char * const *
            -    * apps/nshlib/nsh_parse.c:  Fix memory lead: Need to detach after
            -      creating a pthread.
            -    * apps/examples and nshlib:  Change name of _TCB to struct tcb_s to
            -      match NuttX name change.
            -    * apps/examples/ostest/restart.c:  Add a test case to verify
            -      task_restart().
            -    * apps/system/readline.c:  readline() now returns EOF on any failure
            -      (instead of a negated errno value).  This is because the underlying
            -      read is based on logic similar to getc.  The value zero was being
            -      confused with a NUL.  So if a NUL was received, the NSH session
            -      would terminate because it thought it was the end of file.
            +    * apps/system/ramtest:  Add a simple memory test (2013-03-26).
            +    * apps/examples/ostest:  In the non-cancelable thread test, we need
            +      to give the thread an opportunity to run and to set the non-
            +      cancelable state.
            +    * apps/nshlib/nsh_ddcmd.c: Correct the test of the skip input
            +      parameter.  Was limiting the range to <= count.  From Ken
            +      Petit (2014-4-24).
             
            -NxWidgets-1.6 2013-03-15 Gregory Nutt <gnutt@nuttx.org>
            +NxWidgets-1.7 2013-04-28 Gregory Nutt <gnutt@nuttx.org>
             
            -    * Type of argv[] has changed from const char ** to char * const *
            -    * NXWidgets::CNxWidget:  Add an inline function to get the current style.
            -    * NxWM::CTaskBar: Make a some methods of CTaskbar virtual to allow
            -      customizations.  From Petteri Aimonen.
            -    * NXWidgets::CCycleButton: Make CCycleButton change state in onPreRelease().
            -      This way the new value is already available when a listener gets the
            -      action event.  From Petteri Aimonen.
            -    * NxWidgets/tools/bitmap_converter.py: Fix bitmap_converter.py so that
            -      it works with indexed input images.
            -    * NxWidgets::CLabel: Fix backward conditional compilation in the
            -      "flicker free" logic.
            -    * NxWidgets::CNxTimer:  Previously repeated timers were re-enabled after
            -      the timer action event. Consequently, if the action event handler tried
            -      to stop the timer, the request would be ignored.  Changes the order
            -      so that the timer is re-enabled before the callback.  There is still
            -      no risk of re-entrancy, because everything executes on the USRWORK work
            -      queue.  From Petteri Aimonen.
            -    * NxWidgets::CMultiLineTestBox: Fix text placement error.  From Petteri
            -      Aimonen.
            -    * NxWidgets::CWidgetControl:  Added another semaphore, boundssem, which
            -      is set as soon as the screen bounds are known.  This corrects two
            -      problems:
            -      1) Due to the way nxgl_rectsize computes the size, it will never
            -         be 0,0 like CWidgetControl expects. Therefore the size is considered
            -         valid even though it has not been set yet.
            -      2) After the check is fixed to test for > 1, NxWM window creation will
            -         hang. This is due to the fact that it uses the screen bounds for
            -         determining window size. This was being blocked on geosem, which
            -         is only posted after the size has been set.
            -      From Petteri Aimonen.
            -    * NxWidgets::CImage:  Two enhancements:
            -      1) Allow changing the bitmap even after the control has been created.
            -      2) Allow giving 'null' to have the control draw no image at all.
            -      From Petteri Aimonen.
            -    * NxWM::CTaskBar:  Allow windows with null icon. This makes sense for e.g.
            -      full screen windows.  From Petteri Aimonen.
            -    * NxWM::CApplicationWindow:  Add config options to override NxWM
            -      stop/minimize icons.  From Petteri Aimonen.
            -    * NwWM::CStartWindow, NxWM::CWindowMessenger: Get rid of the start window
            -      thread. Instead, handle all events through the USRWORK work queue.
            -      For me, this was necessary because I would open some files in button
            -      handlers and close them in NxTimer handlers. If these belonged to
            -      different tasks, the close operation would fail.  Further benefits:
            -      + Gets rid of one task and message queue.
            -      + Reduces the amount of code required
            -      + Decouples CStartWindow from everything else - now it is just a window
            -        with application icons, not an integral part of the event logic.
            -      + All events come from the same thread, which reduces the possibility of
            -        multithreading errors in user code.
            -      + The user code can also send events to USRWORK, so that everything gets
            -        serialized nicely without having to use so many mutexes.
            -      Drawbacks:
            -      - Currently the work state structure is malloc()ed, causing one allocation
            -        and free per each input event. Could add a memory pool for these later, but
            -        the speed difference doesn't seem noticeable.
            -      - The work queue will add ~50 ms latency to input events. This is however
            -        configurable, and the delay is anyway short enough that it is unnoticeable.
            -      From Petteri Aimonen.
            +    * NxWidgets bitmap_converter.py: Fix bug when image width > 255.  From
            +      Petteri Aimonen (2013-4-22).
            +    * NxWM::CScrollbarPanel:  Fix spelling error in class name: CScollbarPanel
            +      should be CScrollbarPanel.  From Petteri Aimonen (2013-4-22).
            +    * NxWidgets:: CGlyphButton: Generate action event, like CButton does.
            +      From Petteri Aimonen (2013-4-22).
            +    * NxWidgets:: CGlyphButton:  Prevent drawing outside of the bitmap size.
            +      From Petteri Aimonen (2013-4-22).
            +    * NxWM::CTaskBar:  Add option CONFIG_NXWM_TASKBAR_NO_BORDER to suppress
            +      drawing of the border on the taskbar.  From Petteri Aimonen (2013-4-22).
            +    * NxWidgets::CNxTimer:  Add function to check if CNxTimer is running.
            +      From Petteri Aimonen (2013-4-22).
            +    * NxWidgets::CNxWidgets:  Allow overriding of the checkCollision() method.
            +      From Petteri Aimonen (2013-4-22).
             
             uClibc++-1.0 2011-11-05 <gnutt@nuttx.org>
             
            
            From 86f276cb7c13b4e952a6efb26b84346e9255c9c0 Mon Sep 17 00:00:00 2001
            From: Gregory Nutt 
            Date: Tue, 30 Apr 2013 18:31:47 -0600
            Subject: [PATCH 1139/1518] Add support for the MikroElektronika Mikromedia for
             STM32F4 development board.  From Ken Petit
            
            ---
             Documentation/NuttShell.html | 7 +++++--
             1 file changed, 5 insertions(+), 2 deletions(-)
            
            diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html
            index 950428e8af..a814813c5e 100644
            --- a/Documentation/NuttShell.html
            +++ b/Documentation/NuttShell.html
            @@ -8,7 +8,7 @@
               
                 
                   

            NuttShell (NSH)

            -

            Last Updated: November 27, 2012

            +

            Last Updated: April 30, 2013

            @@ -1001,7 +1001,7 @@ nsh> dd if=/dev/ram0 of=/dev/null

            Command Syntax:

              -df
              +df [-h]
               

            Synopsis. @@ -1019,6 +1019,9 @@ nsh> df 512 985 2 983 /tmp nsh>

          +

          + If CONFIG_NSH_CMDOPT_DF_H is defined in the NuttX configuration, the the df will also support an option -h which may be used to show the the volume information in human readable format. +

          From bee032fc84c93d57d046ece4bcef87ad665a51f7 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 1 May 2013 10:59:57 -0600 Subject: [PATCH 1140/1518] Add an optional byte-oriented write method to the MTD interface --- Documentation/NuttxPortingGuide.html | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index bb457ffd31..845f4e5d52 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -3192,12 +3192,21 @@ extern void up_ledoff(int led);

          Some devices may support byte oriented reads (optional). - Most MTD devices are inherently block oriented so byte-oriented writing is not supported. + Most MTD devices are inherently block oriented so byte-oriented accesses are not supported. It is recommended that low-level drivers not support read() if it requires buffering.

            ssize_t (*read)(FAR struct mtd_dev_s *dev, off_t offset, size_t nbytes, FAR uint8_t *buffer);

          +

          + Some devices may also support byte oriented writes (optional). + Most MTD devices are inherently block oriented so byte-oriented accesses are not supported. + It is recommended that low-level drivers not support read() if it requires buffering. + This interface is only available if CONFIG_MTD_BYTE_WRITE is defined. +

          +
            +

            ssize_t (*write)(FAR struct mtd_dev_s *dev, off_t offset, size_t nbytes, FAR const uint8_t *buffer);

            +

          Support other, less frequently used commands:

          From a9b8bd2e8b40a7e0f363649789fb0335c13f9878 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 3 May 2013 12:52:33 -0600 Subject: [PATCH 1141/1518] Rearchitecting of some MTD, partition, SMART interfaces, and FLASH drivers to: Better use the byte write capbility when available and to use smaller erase sectors for the erase sector size when available). --- Documentation/NuttX.html | 45 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index f758564eab..322667449d 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -2552,6 +2552,19 @@ nsh>

          STMicro STM32F4-Discovery (STM32 F4 family). This port uses the STMicro STM32F4-Discovery board featuring the STM32F407VGT6 MCU. + The STM32F407VGT6 is a 168MHz Cortex-M4 operation with 1Mbit Flash memory and 128kbytes. + The board features: +

          +
            +
          • On-board ST-LINK/V2 for programming and debugging,
          • +
          • LIS302DL, ST MEMS motion sensor, 3-axis digital output accelerometer,
          • +
          • MP45DT02, ST MEMS audio sensor, omni-directional digital microphone,
          • +
          • CS43L22, audio DAC with integrated class D speaker driver,
          • +
          • Eight LEDs and two push-buttons,
          • +
          • USB OTG FS with micro-AB connector, and
          • +
          • Easy access to most MCU pins.
          • +
          +

          Refer to the STMicro web site for further information about this board.

            @@ -2567,6 +2580,38 @@ nsh>
          + + + + + + + +



          +

          + MikroElektronika Mikromedia for STM32F4. + This is another board supported by NuttX that uses the same STM32F407VGT6 MCU as does the STM32F4-Discovery board. + This board, however, has very different on-board peripherals than does the STM32F4-Discovery: +

          +
            +
          • TFT display with touch panel,
          • +
          • VS1053 stereo audio codec with headphone jack,
          • +
          • SD card slot,
          • +
          • Serial FLASH memory,
          • +
          • USB OTG FS with micro-AB connector, and
          • +
          • Battery connect and batter charger circuit.
          • +
          +

          + See the Mikroelektronika website for more information about this board. +

          +
            +

            + STATUS: + The basic port for the Mikromedia STM32 M4 was contributed by Ken Petit and was first released in NuttX-6.128. + All drivers for the STM32 F4 family may be used with this board as well. +

            +
          +



          From b69db0df37e83db8e930c26d9ce79cc50fd06dc9 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 3 May 2013 17:17:14 -0600 Subject: [PATCH 1142/1518] Fixed to M25P driver from Ken Pettit plus some documentation updates --- Documentation/NuttX.html | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 322667449d..eb990aee9c 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

          NuttX RTOS

          -

          Last Updated: April 28, 2013

          +

          Last Updated: May 3, 2013

          @@ -449,6 +449,15 @@

          + +
          + +

          +

        • + SMART. FLASH file system from Ken Pettit. +
        • +

          +
          From a4cf8b74b11a3ce7d8aa443b0a74a15a6d796411 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 5 May 2013 09:10:47 -0600 Subject: [PATCH 1143/1518] Make Pirelli-DLP10 a true board configuration; Calypso no compiles without errors --- Documentation/README.html | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Documentation/README.html b/Documentation/README.html index 5a4cd61329..7ce7ad8d46 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -92,6 +92,8 @@ | | | `- README.txt | | |- fire-stm32v2/ | | | `- README.txt + | | |- freedom-kl25z/ + | | | `- README.txt | | |- hymini-stm32v/ | | | |- include/README.txt | | | |- RIDE/README.txt @@ -128,6 +130,8 @@ | | | `- README.txt | | |- micropendous3/ | | | `- README.txt + | | |- mikroe-stm32f4/ + | | | `- README.txt | | |- mirtoo/ | | | `- README.txt | | |- mx1ads/ @@ -164,6 +168,8 @@ | | | `- README.txt | | |- pic32mx7mmb/ | | | `- README.txt + | | |- pirelli_dpl10/ + | | | `- README.txt | | |- pjrc-8051/ | | | |- include/README.txt | | | |- src/README.txt From 7c5c34237c55384e26aab99f01d1c81e4bf6d707 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 7 May 2013 08:55:28 -0600 Subject: [PATCH 1144/1518] Documentation updates --- Documentation/NuttX.html | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index eb990aee9c..f46048d238 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

          NuttX RTOS

          -

          Last Updated: May 3, 2013

          +

          Last Updated: May 6, 2013

          @@ -985,7 +985,7 @@ How can that be a tiny OS? Actually, the large number of files is one of the tricks to keep NuttX small and as scalable as possible. - Most files contain only a single function. + Most files contain only a single function. Sometimes just one tiny function with only a few lines of code. Why?

          @@ -1821,14 +1821,14 @@
          NXP LPC3131. - The port for the NXP LPC3131 on the Embedded Artists EA3131 + The port for the NXP LPC3131 on the Embedded Artists EA3131 development board was first released in NuttX-5.1 with a GNU arm-nuttx-elf or arm-eabi toolchain* under Linux or Cygwin (but was not functional until NuttX-5.2).

            STATUS: - The basic EA3131 port is complete and verified in NuttX-5.2 + The basic EA3131 port is complete and verified in NuttX-5.2 This basic port includes basic boot-up, serial console, and timer interrupts. This port was extended in NuttX 5.3 with a USB high speed driver contributed by David Hewson. David also contributed I2C and SPI drivers plus several important LPC313x USB bug fixes @@ -1943,10 +1943,10 @@ nsh>

              STATUS. - This is a work in progress by Alan Carvalho de Assis. - This initial support is in place but is minimal and not yet completely stable: + This is the work of Alan Carvalho de Assis. + Verified, initial, minimal support for the Freedom KL25Z is in place in NuttX 6.27 and 6.28: There is a working OS test configuration that verifies the correct port of NuttX to the part and a working NuttShell (NSH) configuration that might be the basis for an application development. - As NuttX-6.27, more testing, completion of some GPIO logic, and more device driver development are needed to make this a more complete port. + As of NuttX-6.28 more device driver development would be needed to make this a complete port, particularly to support USB OTG.

            @@ -2013,7 +2013,7 @@ nsh>

              STATUS: - This port was released in NuttX 5.5. + This port was released in NuttX 5.5. Features are the same as with the Eagle-100 LM3S6918 described above. The apps/examples/ostest configuration has been successfully verified and an NSH configuration with Telnet support is available. @@ -2048,7 +2048,7 @@ nsh>

                STATUS: - This port was released in NuttX 5.10. + This port was released in NuttX 5.10. Features are the same as with the Eagle-100 LM3S6918 described above.

              @@ -2088,7 +2088,7 @@ nsh>

                STATUS: - This port was will be released in NuttX 6.14. + This port was will be released in NuttX 6.14.

              @@ -2213,7 +2213,7 @@ nsh> STATUS: In progress. The following have been verified: - (1) Basic Cortex-M3 port, + (1) Basic Cortex-M3 port, (2) Ethernet, (3) On-board LEDs
            @@ -2860,7 +2860,7 @@ nsh>

            Development Environments: - 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS with Windows native toolchain, or 4) Native Windows. + 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS with Windows native toolchain, or 4) Native Windows. All testing, however, has been performed using the NuttX DIY toolchain for Linux or Cygwin is provided by the NuttX buildroot package. As a result, that toolchain is recommended. @@ -3239,7 +3239,7 @@ nsh>

            Renesas M16C/26 Microcontroller. - This port uses the Renesas SKP16C26 Starter kit and the GNU M32C toolchain. + This port uses the Renesas SKP16C26 Starter kit and the GNU M32C toolchain. The development environment is either Linux or Cygwin under WinXP.

              @@ -3463,7 +3463,7 @@ avr, m68k, m68hc11, m68hc12, m9s12, blackfin, m32c, h8, and SuperH ports.NuttX GIT.

              @@ -3479,7 +3479,7 @@ avr, m68k, m68hc11, m68hc12, m9s12, blackfin, m32c, h8, and SuperH ports.

              - Also very usable is the Linux environment using the + Also very usable is the Linux environment using the SDCC compiler. The SDCC compiler provides support for the 8051/2, z80, hc08, and other microcontrollers. The SDCC-based logic is less well exercised and you will likely find some compilation @@ -4176,7 +4176,7 @@ pascal-3.0 2011-05-15 Gregory Nutt <gnutt@nuttx.org> * nuttx/: The Pascal add-on module now installs and builds under the apps/interpreters directory. This means that the pascal-2.1 module is - incompatible with will all releases of NuttX prior to nuttx-6.0 where the + incompatible with will all releases of NuttX prior to nuttx-6.0 where the apps/ module was introduced.

      From a5251ec2efc9f4c2faeafcb271d5bc23c2f60a36 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 21 May 2013 11:25:30 -0600 Subject: [PATCH 1145/1518] Fix STM32L15X vector definitions; Fix STM32L-Discovery LED controls. The NSH configuration is now fully functional on the STM32L-Discovery board. --- Documentation/NuttX.html | 69 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 66 insertions(+), 3 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index f46048d238..457302400b 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

      NuttX RTOS

      -

      Last Updated: May 6, 2013

      +

      Last Updated: May 21, 2013

      @@ -1554,7 +1554,7 @@
    • ARM920T (1)
    • ARM926EJS (3)
    • ARM Cortex-M0/M0+ (2)
    • -
    • ARM Cortex-M3 (17)
    • +
    • ARM Cortex-M3 (18)
    • ARM Cortex-M4 (7)
  • Atmel AVR @@ -1906,7 +1906,7 @@ $ size nuttx

    NuttX, the NSH application, and GCC libraries use 34.2KB of FLASH leaving 93.8KB of FLASH (72%) free from additional application development. - Static SRAM usage is about 1.2KB (<4%) and leaves 13.8KB (86%) available for heap at runtime. + Static SRAM usage is about 1.2KB (<4%) and leaves 14.8KB (86%) available for heap at runtime. SRAM usage at run-time can be shown with the NSH free command:

      @@ -2093,6 +2093,69 @@ nsh>
            
    + +
    +
    + + +
    + +

    + STMicro STM32L152 (STM32L "EnergyLite" Line). + This is a port of NuttX to the STMicro STM32L-Discovery development board. + The STM32L-Discovery board is based on the STM32L152RBT6 MCU (128KB FLASH and 16KB of SRAM). +

    +
      +

      + The STM32L-Discovery and 32L152CDISCOVERY kits are functionally equivalent. + The difference is the internal Flash memory size (STM32L152RBT6 with 128 Kbytes or STM32L152RCT6 with 256 Kbytes). + Both boards feature: +

      +
        +
      • An ST-LINK/V2 embedded debug tool interface,
      • +
      • LCD (24 segments, 4 commons),
      • +
      • LEDs,
      • +
      • Pushbuttons,
      • +
      • A linear touch sensor, and
      • +
      • Four touchkeys.
      • +
      +

      + STATUS. + Initial support for the STM32L-Discovery was released in NuttX-6.28. + This initial support is very minimal: + There is a configuration using the NuttShell (NSH) that might be the basis for an application development. + As of this writing, more device drivers are needed to make this a more complete port. +

      +

      + Memory Usage. + For a full-featured RTOS such as NuttX, providing support in a usable and meaningful way within the tiny memories of the STM32L152RBT6 demonstrates the scalability of NuttX. The STM32L152RBT6 comes in a 64-pin package and has 128KB FLASH and 16KB of SRAM. +

      +

      + Static memory usage can be shown with size command: +

      +
        +$ size nuttx
        +   text    data     bss     dec     hex filename
        +  39664     132    1124   40920    9fd8 nuttx
        +
      +

      + NuttX, the NSH application, and GCC libraries use 38.7KB of FLASH leaving 89.3B of FLASH (70%) free from additional application development. + Static SRAM usage is about 1.2KB (<4%) and leaves 14.8KB (86%) available for heap at runtime. +

      + SRAM usage at run-time can be shown with the NSH free command: +
        +NuttShell (NSH) NuttX-6.27
        +nsh> free
        +             total       used       free    largest
        +Mem:         14096       3928      10168      10168
        +nsh>
        +
      +

      + You can see that 9.9KB (62%) of SRAM heap is staill available for further application development while NSH is running. +

      + + +

      From 56128f37111772fee76c56f8bfbb116ecc0d70d5 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 21 May 2013 12:39:48 -0600 Subject: [PATCH 1146/1518] Add STM32L15X segment LCD register definitions; Updated documentatin and README files --- Documentation/NuttX.html | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 457302400b..ab9f93a4d3 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -2124,7 +2124,7 @@ nsh> Initial support for the STM32L-Discovery was released in NuttX-6.28. This initial support is very minimal: There is a configuration using the NuttShell (NSH) that might be the basis for an application development. - As of this writing, more device drivers are needed to make this a more complete port. + As of this writing, a few more things are needed to make this a more complete port: 1) Verfication of more device drivers, and 2) logic that actually uses the low-power consumption modes of the EnergyLite part.

      Memory Usage. @@ -4371,6 +4371,7 @@ pascal-3.0 2011-05-15 Gregory Nutt <gnutt@nuttx.org>

    • Cygwin is a trademark of Red Hat, Incorporated.
    • Linux is a registered trademark of Linus Torvalds.
    • Eagle-100 is a trademark of Micromint USA, LLC. +
    • EnergyLite is a trademark of STMicroelectronics.
    • LPC2148 is a trademark of NXP Semiconductors.
    • TI is a tradename of Texas Instruments Incorporated.
    • UNIX is a registered trademark of The Open Group.
    • @@ -4378,8 +4379,8 @@ pascal-3.0 2011-05-15 Gregory Nutt <gnutt@nuttx.org>
    • ZDS, ZNEO, Z16F, Z80, and Zilog are a registered trademark of Zilog, Inc.

    - NOTE: NuttX is not licensed to use the POSIX trademark. NuttX uses the POSIX - standard as a development guideline only. + NOTE: NuttX is not licensed to use the POSIX trademark. + NuttX uses the POSIX standard as a development guideline only.

    From def179aed5b8b753fe2b40ce4decefb0fd036402 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 22 May 2013 11:06:20 -0600 Subject: [PATCH 1147/1518] Documentation update --- Documentation/NuttX.html | 426 ++++++++++++++++++++++++--------------- 1 file changed, 267 insertions(+), 159 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index ab9f93a4d3..c2157a9457 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

    NuttX RTOS

    -

    Last Updated: May 21, 2013

    +

    Last Updated: May 22, 2013

    @@ -1538,16 +1538,16 @@ -

    - The short story (Number of ports follow in parentheses). +

    Supported Platforms by CPU core. + The number of ports to this CPU follow in parentheses. The state of the various ports vary from board-to-board. Follow the links for the details:

    - - + - + +
    -
  • Linux user mode simulation (1)
  • +
    +
  • Linux/Cygwin user mode simulation (1)
  • ARM
  • -
  • Freescale M68HCS12 (2)
  • +
    +
  • Freescale + +
  • Intel
  • -
  • MicroChip PIC32MX (MIPS) (4)
  • +
  • MicroChip + +
  • +
  • Renesas/Hitachi:
  • -
  • ZiLOG
  • - +
    + +

    Supported Platforms by Manufacturer/MCU Family. + CPU core type follows in parentheses. + The state of the various ports vary from MCU to MCU. + Follow the links for the details: +

    +
    +
      +
    + + + + +
    +
  • Atmel + +
  • +
  • Freescale + +
  • +
  • Host PC based simulations + +
  • +
  • Intel + +
  • +
  • MicroChip + +
  • +
    +
  • nuvoTon + +
  • +
  • NXP + +
  • +
  • Renesas/Hitachi: + +
  • +
  • STMicroelectronics + +
  • +
    +
  • Texas Instruments (some formerly Luminary) + +
  • +
  • ZiLOG + +
  • +
    + +
    @@ -1628,7 +1750,8 @@

    - TI TMS320C5471 (also called C5471 or TMS320DA180 or DA180). + TI TMS320C5471 + (also called C5471 or TMS320DA180 or DA180). NuttX operates on the ARM7 of this dual core processor. This port uses the Spectrum Digital evaluation board with a GNU arm-nuttx-elf toolchain* under Linux or Cygwin. @@ -1649,7 +1772,7 @@

    - TI Calypso. + TI Calypso. This port supports the TI "Calypso" MCU used in various cell phones (and, in particular, by the Osmocom-bb project). Like the c5471, NuttX operates on the ARM7 of this dual core processor. @@ -1672,7 +1795,7 @@

    - NXP LPC214x. + NXP LPC214x. Support is provided for the NXP LPC214x family of processors. In particular, support is provided for (1) the mcu123.com lpc214x evaluation board (LPC2148) and (1) the The0.net ZPA213X/4XPA development board (with the The0.net UG-2864AMBAG01 OLED) @@ -1706,7 +1829,7 @@

    - NXP LPC2378. + NXP LPC2378. Support is provided for the NXP LPC2378 MCU. In particular, support is provided for the Olimex-LPC2378 development board. This port was contributed by Rommel Marcelo is was first released in NuttX-5.3. @@ -1734,7 +1857,7 @@

    - STMicro STR71x. + STMicro STR71x. Support is provided for the STMicro STR71x family of processors. In particular, support is provided for the Olimex STR-P711 evaluation board. This port also used the GNU arm-nuttx-elf toolchain* under Linux or Cygwin. @@ -1773,7 +1896,7 @@

    - Freescale MC9328MX1 or i.MX1. + Freescale MC9328MX1 or i.MX1. This port uses the Freescale MX1ADS development board with a GNU arm-nuttx-elf toolchain* under either Linux or Cygwin.

    @@ -1796,7 +1919,8 @@

    - TI TMS320DM320 (also called DM320). + TI TMS320DM320 + (also called DM320). NuttX operates on the ARM9 of this dual core processor. This port uses the Neuros OSD @@ -1820,8 +1944,8 @@
    - NXP LPC3131. - The port for the NXP LPC3131 on the Embedded Artists EA3131 + NXP LPC3131. + The port for the NXP LPC3131 on the Embedded Artists EA3131 development board was first released in NuttX-5.1 with a GNU arm-nuttx-elf or arm-eabi toolchain* under Linux or Cygwin (but was not functional until NuttX-5.2).

    @@ -1851,8 +1975,8 @@
    - NXP LPC315x. - Support for the NXP LPC315x family has been incorporated into the code base as of NuttX-6.4. + NXP LPC315x. + Support for the NXP LPC315x family has been incorporated into the code base as of NuttX-6.4. Support has added for the Embedded Artists EA3152 board in NuttX-6.11.

      @@ -1879,8 +2003,8 @@

      - NuvoTon NUC120. - This is a port of NuttX to the Nuvoton NuTiny-SDK-NUC120 that features the NUC120LE3AN MCU. + nuvoTon NUC120. + This is a port of NuttX to the nuvoTon NuTiny-SDK-NUC120 that features the NUC120LE3AN MCU.

        @@ -1936,7 +2060,7 @@ nsh>

        - FreeScale Freedom KL25Z. + FreeScale Freedom KL25Z. This is a port of NuttX to the Freedom KL25Z board that features the MKL25Z128 Cortex-M0+ MCU, 128KB of FLASH and 16KB of SRAM. See the Freescale website for further information about this board.

        @@ -1961,7 +2085,7 @@ nsh>

        - TI Stellaris LM3S6432. + TI/Stellaris LM3S6432. This is a port of NuttX to the Stellaris RDK-S2E Reference Design Kit and the MDL-S2E Ethernet to Serial module (contributed by Mike Smith).

        @@ -1975,7 +2099,30 @@ nsh>

        - Luminary/TI Stellaris LM3S6918. + TI/Stellaris LM3S6432S2E. + This port uses Serial-to-Ethernet Reference Design Kit (RDK-S2E) and has similar support as for the other Stellaris family members. + Configurations are available for the OS test and for the NuttShell (NSH) + (see the NSH User Guide). + The NSH configuration including networking support with a Telnet NSH console. + This port was contributed by Mike Smith. +

        +
          +

          + STATUS: + This port was will be released in NuttX 6.14. +

          +
        + + + +
        +
        + + +
        + +

        + TI/Stellaris LM3S6918. This port uses the Micromint Eagle-100 development board with a GNU arm-nuttx-elf toolchain* under either Linux or Cygwin.

        @@ -2006,7 +2153,7 @@ nsh>

        - Luminary/TI Stellaris LM3S6965. + TI/Stellaris LM3S6965. This port uses the Stellaris LM3S6965 Ethernet Evalution Kit with a GNU arm-nuttx-elf toolchain* under either Linux or Cygwin.

        @@ -2040,7 +2187,7 @@ nsh>

        - Luminary/TI Stellaris LM3S8962. + TI/Stellaris LM3S8962. This port uses the Stellaris EKC-LM3S8962 Ethernet+CAN Evalution Kit with a GNU arm-nuttx-elf toolchain* under either Linux or Cygwin. Contributed by Larry Arnold. @@ -2062,10 +2209,10 @@ nsh>

        - Luminary/TI Stellaris LM3S9B96. + TI/Stellaris LM3S9B96. Header file support was contributed by Tiago Maluta for this part. - Jose Pablo Rojas V. is currently using those header file changes to port NuttX to the TI/Stellaris EKK-LM3S9B96. - With any luck, that port should be working and available in the NuttX-6.20 release. + Jose Pablo Rojas V. is used those header file changes to port NuttX to the TI/Stellaris EKK-LM3S9B96. + That port was available in the NuttX-6.20 release.

        @@ -2077,31 +2224,7 @@ nsh>

        - TI Stellaris LM3S6432S2E. - This port uses Serial-to-Ethernet Reference Design Kit (RDK-S2E) - and has similar support as for the other Stellaris family members. - Configurations are available for the OS test and for the NuttShell (NSH) - (see the NSH User Guide). - The NSH configuration including networking support with a Telnet NSH console. - This port was contributed by Mike Smith. -

        -
          -

          - STATUS: - This port was will be released in NuttX 6.14. -

          -
        - - - -
        -
        - - -
        - -

        - STMicro STM32L152 (STM32L "EnergyLite" Line). + STMicro STM32L152 (STM32L "EnergyLite" Line). This is a port of NuttX to the STMicro STM32L-Discovery development board. The STM32L-Discovery board is based on the STM32L152RBT6 MCU (128KB FLASH and 16KB of SRAM).

        @@ -2164,7 +2287,7 @@ nsh>

        - STMicro STM32F100x (STM32 F1 "Value Line"Family). + STMicro STM32F100x (STM32 F1 "Value Line"Family). Chip support for these STM32 "Value Line" family was contributed by Mike Smith and users have reported that they have successful brought up NuttX on there proprietary boards using this logic. This logic was extended to support the high density STM32F100RC chips by Freddie Chopin However, there is no specific board support for this chip families in the NuttX source tree. @@ -2179,7 +2302,7 @@ nsh>

        - STMicro STM32F103x (STM32 F1 Family). + STMicro STM32F103x (STM32 F1 Family). Support for four MCUs and four board configurations are available. MCU support includes all of the high density and connectivity line families. Board supported is available specifically for: STM32F103ZET6, STM32F103RET6, STM32F103VCT, and STM32F103VET6. @@ -2256,7 +2379,7 @@ nsh>

        - STMicro STM32F107x (STM32 F1 "Connectivity Line" family). + STMicro STM32F107x (STM32 F1 "Connectivity Line" family). Chip support for the STM32 F1 "Connectivity Line" family has been present in NuttX for some time and users have reported that they have successful brought up NuttX on there proprietary boards using this logic.

        @@ -2291,7 +2414,7 @@ nsh>

        - STMicro STM32F207IG (STM32 F2 family). + STMicro STM32F207IG (STM32 F2 family). Support for the STMicro STM3220G-EVAL development board was contributed by Gary Teravskis and first released in NuttX-6.16.

          @@ -2309,7 +2432,7 @@ nsh>

          - Atmel AT91SAM3U. + Atmel AT91SAM3U. This port uses the Atmel SAM3U-EK development board that features the AT91SAM3U4E MCU. This port uses a GNU arm-nuttx-elf or arm-eabi toolchain* under either Linux or Cygwin (with native Windows GNU tools or Cygwin-based GNU tools). @@ -2350,7 +2473,7 @@ nsh>

          - NXP LPC1766, LPC1768, and LPC1769. + NXP LPC1766, LPC1768, and LPC1769. Drivers are available for CAN, DAC, Ethernet, GPIO, GPIO interrupts, I2C, UARTs, SPI, SSP, USB host, and USB device. Verified LPC17xx onfigurations are available for three boards.

            @@ -2498,7 +2621,7 @@ nsh>

            - NXP LPC1788. + NXP LPC1788. The port of NuttX to the WaveShare Open1788 is a collaborative effort between Rommel Marcelo and myself (with Rommel being the leading contributor and I claiming only a support role). You can get more information at the Open1788 board from the WaveShare website. @@ -2524,7 +2647,7 @@ nsh>

            - FreeScale Kinetis K40. + FreeScale Kinetis K40. This port uses the Freescale Kinetis KwikStik K40. Refer to the Freescale web site for further information about this board. The Kwikstik is used with the FreeScale Tower System (mostly just to provide a simple UART connection) @@ -2551,7 +2674,7 @@ nsh>

            - FreeScale Kinetis K60. + FreeScale Kinetis K60. This port uses the Freescale Kinetis TWR-K60N512 tower system. Refer to the Freescale web site for further information about this board. The TWR-K60N51 includes with the FreeScale Tower System which provides (among other things) a DBP UART connection. @@ -2580,7 +2703,33 @@ nsh>

            - STMicro STM3240G-EVAL (STM32 F4 family). + STMicro STM32F3-Discovery (STM32 F3 family). + This port uses the STMicro STM32F3-Discovery board featuring the STM32F303VCT6 MCU (STM32 F3 family). + Refer to the STMicro web site for further information about this board. +

            +
              +

              + STATUS: + The basic port for the STM32F3-Discover was first released in NuttX-6.26. + Many of the drivers previously released for the STM32 F1, Value Line, and F2 and F4 may be usable on this plaform as well. + New drivers will be required for ADC and I2C which are very different on this platform. +

              +
            + + + +
            +
            + + +
            + +

            + STMicro STM32407x (STM32 F4 family). +

            +

              +

              + STMicro STM3240G-EVAL. This port uses the STMicro STM3240G-EVAL board featuring the STM32F407IGH6 MCU. Refer to the STMicro web site for further information about this board.

              @@ -2611,18 +2760,10 @@ nsh>
            • NuttX-6.21 A USB OTG host controller driver was added in NuttX 6.21.
            • -

              - - - -
              -
              - - -
              - +
            +

            - STMicro STM32F4-Discovery (STM32 F4 family). + STMicro STM32F4-Discovery. This port uses the STMicro STM32F4-Discovery board featuring the STM32F407VGT6 MCU. The STM32F407VGT6 is a 168MHz Cortex-M4 operation with 1Mbit Flash memory and 128kbytes. The board features: @@ -2646,15 +2787,6 @@ nsh> All drivers listed for the STM3240G-EVAL are usable on this plaform as well.

          - - - -
          -
          - - -
          -

          MikroElektronika Mikromedia for STM32F4. This is another board supported by NuttX that uses the same STM32F407VGT6 MCU as does the STM32F4-Discovery board. @@ -2688,7 +2820,7 @@ nsh>

          - STMicro STM32 F427/437. + STMicro STM32 F427/437. General architectural support was provided for the F427/437 family in NuttX 4.27. Specific support includes the STM32F427I, STM32F427Z, and STM32F427V chips. This is architecture-only support, meaning that support for the boards with these chips is available, but not support for any publically available boards is included.. @@ -2707,29 +2839,7 @@ nsh>

          - STMicro STM32F3-Discovery (STM32 F3 family). - This port uses the STMicro STM32F3-Discovery board featuring the STM32F303VCT6 MCU (STM32 F3 family). - Refer to the STMicro web site for further information about this board. -

          -
            -

            - STATUS: - The basic port for the STM32F3-Discover was first released in NuttX-6.26. - Many of the drivers previously released for the STM32 F1, Value Line, and F2 and F4 may be usable on this plaform as well. - New drivers will be required for ADC and I2C which are very different on this platform. -

            -
          - - - -
          -
          - - -
          - -

          - NXG Technologies LPC4330-Xplorer. + NXG Technologies LPC4330-Xplorer. This NuttX port is for the LPC4330-Xplorer board from NGX Technologies featuring the NXP LPC4330FET100 MCU. See the NXG website for further information about this board.

          @@ -2782,7 +2892,7 @@ nsh>

          - TI Stellaris LM4F120. + TI Stellaris LM4F120. This port uses the TI Stellaris LM4F120 LaunchPad. Jose Pablo Carballo and I are doing this port.

          @@ -2822,7 +2932,7 @@ nsh>

          - SoC Robotics ATMega128. + SoC Robotics ATMega128. This port of NuttX to the Amber Web Server from SoC Robotics is partially completed. The Amber Web Server is based on an Atmel ATMega128. @@ -2843,6 +2953,10 @@ nsh>
          +

          + AVR AT90USB64x and AT90USB6128x. +

          +

            Micropendous 3 AT90USB64x and AT90USB6128x. This port of NuttX to the Opendous Micropendous 3 board. The Micropendous3 is @@ -2858,15 +2972,6 @@ nsh> creation of a simple task, and serial console output.

          - - - -
          -
          - - -
          -

          PJRC Teensy++ 2.0 AT90USB1286. This is a port of NuttX to the PJRC Teensy++ 2.0 board. @@ -2888,7 +2993,6 @@ nsh> fully debugged as of the NuttX-6.5 release.

        -
        @@ -2918,6 +3022,10 @@ nsh> + +
        +
        +
        @@ -2945,7 +3053,7 @@ nsh>

        - AV32DEV1. + AV32DEV1. This port uses the www.mcuzone.com AVRDEV1 board based on the Atmel AT32UC3B0256 MCU. This port requires a special GNU avr32 toolchain available from atmel.com website. This is a windows native toolchain and so can be used only under Cygwin on Windows. @@ -3017,7 +3125,7 @@ nsh> - Intel 8052 Microcontroller. + Intel 80C52 Microcontroller. @@ -3101,7 +3209,8 @@ nsh>
        -

        PIC32MX250F128D. +

        + PIC32MX250F128D. A port is in progress from the DTX1-4000L "Mirtoo" module from Dimitech. This module uses MicroChip PIC32MX250F128D and the Dimitech DTX1-4000L EV-kit1 V2. See the Dimitech website for further information. @@ -3129,7 +3238,34 @@ nsh>
        -

        PIC32MX460F512L. There one two board ports using this chip:

        +

        + PIC32MX4xx Family. +

        +
          +

          + PIC32MX440F512H. + This port uses the "Advanced USB Storage Demo Board," Model DB-DP11215, from Sure Electronics. + This board features the MicroChip PIC32MX440F512H. + See the Sure website for further information about the DB-DP11215 board. + (I believe that that the DB-DP11215 may be obsoleted now but replaced with the very similar, DB-DP11212. + The DB-DP11212 board differs, I believe, only in its serial port configuration.) +

          +
            +

            + STATUS: + This NuttX port is code complete and has considerable test testing. + The port for this board was completed in NuttX 6.11, but still required a few bug fixes before it will be ready for prime time. + The fully verified port first appeared in NuttX 6.13. + Available configurations include the OS test and the NuttShell (NSH - see the NSH User Guide). + An untested USB device-side driver is available in the source tree. + A more complete port would include support of the USB OTG port and of the LCD display on this board. + Those drivers are not yet available as of this writing. +

            +
          +

          + PIC32MX460F512L. + There one two board ports using this chip: +

          • PIC32MX Board from PCB Logic Design Co. This port is for the PIC32MX board from PCB Logic Design Co. and used the PIC32MX460F512L. @@ -3152,35 +3288,7 @@ nsh> Available configurations include the OS test and the NuttShell (NSH - see the NSH User Guide). USB has not yet been fully tested but on first pass appears to be functional.

            -
          - - - -
          -
          - - -
          - -

          - PIC32MX440F512H. - This port uses the "Advanced USB Storage Demo Board," Model DB-DP11215, from Sure Electronics. - This board features the MicroChip PIC32MX440F512H. - See the Sure website for further information about the DB-DP11215 board. - (I believe that that the DB-DP11215 may be obsoleted now but replaced with the very similar, DB-DP11212. - The DB-DP11212 board differs, I believe, only in its serial port configuration.) -

          -
            -

            - STATUS: - This NuttX port is code complete and has considerable test testing. - The port for this board was completed in NuttX 6.11, but still required a few bug fixes before it will be ready for prime time. - The fully verified port first appeared in NuttX 6.13. - Available configurations include the OS test and the NuttShell (NSH - see the NSH User Guide). - An untested USB device-side driver is available in the source tree. - A more complete port would include support of the USB OTG port and of the LCD display on this board. - Those drivers are not yet available as of this writing. -

            +
        @@ -3192,8 +3300,8 @@ nsh>

        - PIC32MX795F512L. - There one two board ports using this chip: + PIC32MX795F512L. + There one two board ports using this chip:

        • Microchip PIC32 Ethernet Starter Kit. From 17fb3b3dbed3762d3d6f5338e9782ebb10d224c3 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 24 May 2013 12:00:15 -0600 Subject: [PATCH 1148/1518] Additional bug fixes and minor extensions to the STM32L-Disovery segment LCD support and to the apps/examples/slcd segment LCD test. --- Documentation/NuttX.html | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index c2157a9457..523d5b6da3 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

          NuttX RTOS

          -

          Last Updated: May 22, 2013

          +

          Last Updated: May 24, 2013

          @@ -2245,9 +2245,9 @@ nsh>

          STATUS. Initial support for the STM32L-Discovery was released in NuttX-6.28. - This initial support is very minimal: - There is a configuration using the NuttShell (NSH) that might be the basis for an application development. - As of this writing, a few more things are needed to make this a more complete port: 1) Verfication of more device drivers, and 2) logic that actually uses the low-power consumption modes of the EnergyLite part. + This initial support includes a configuration using the NuttShell (NSH) that might be the basis for an application development. + A driver for the on-board segment LCD is included as well as an option to drive the segment LCD from an NSH "built-in" command. + As of this writing, a few more things are needed to make this a more complete port: 1) Verfication of more device drivers (timers, quadrature encoders, PWM, etc.), and 2) logic that actually uses the low-power consumption modes of the EnergyLite part.

          Memory Usage. From ad957c97df754cac25b80100f25bb7ee7dc5dc2d Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 24 May 2013 14:05:20 -0600 Subject: [PATCH 1149/1518] Minor documentation update --- Documentation/NuttX.html | 25 ++++++++++++++++++++++++- Documentation/README.html | 2 ++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 523d5b6da3..0a79e91db2 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -551,6 +551,22 @@

          + +
          + +

          +

        • Graphics: frambuffer drivers, graphic- and segment-LCD drivers.
        • +

          + + + +
          + +

          +

        • Audio subsystem: CODECs, audio input and output drivers.
        • +

          + +
          @@ -810,7 +826,14 @@

          -

        • LCD drivers for both parallel and SPI LCDs and OLEDs.
        • +
        • Graphic LCD drivers for both parallel and SPI LCDs and OLEDs.
        • +

          + + +
          + +

          +

        • Segment LCD drivers.
        • diff --git a/Documentation/README.html b/Documentation/README.html index 7ce7ad8d46..1b2e27b81d 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -209,6 +209,8 @@ | | | `- README.txt | | |- stm32f4discovery/ | | | `- README.txt + | | |- stm32fldiscovery/ + | | | `- README.txt | | |- sure-pic32mx/ | | | `- README.txt | | |- teensy/ From a64e057c626fa8048d425ab4289c9643f63b0129 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 25 May 2013 11:53:49 -0600 Subject: [PATCH 1150/1518] Converted configs/pcblogic-pic32mx configurations to use kconfig-frontends. Re-organization of files in configs/pcblogic-pic32mx/src --- Documentation/NuttX.html | 6 +++++- Documentation/README.html | 4 ++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 0a79e91db2..23aa62d37e 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1739,7 +1739,11 @@ -

          The details, caveats and fine print follow:

          +

          + Details. + The details, caveats and fine print follow. + For even more information see the README files that can be found here. +

          diff --git a/Documentation/README.html b/Documentation/README.html index 1b2e27b81d..8605447a47 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -209,8 +209,8 @@ | | | `- README.txt | | |- stm32f4discovery/ | | | `- README.txt - | | |- stm32fldiscovery/ - | | | `- README.txt + | | |- stm32ldiscovery/ + | | | `- README.txt | | |- sure-pic32mx/ | | | `- README.txt | | |- teensy/ From 32a47fa8547aea2219b05dae2535d25f4145a6c6 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 30 May 2013 14:45:31 -0600 Subject: [PATCH 1151/1518] Upate .gitignore files. Add .dSYM. Make sure / is present where needed. Add some missing .gitignore files --- Documentation/NuttX.html | 28 ++++++++++++++++++++++++++-- Documentation/README.html | 2 ++ 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 23aa62d37e..c8922cf36a 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

          NuttX RTOS

          -

          Last Updated: May 24, 2013

          +

          Last Updated: May 29, 2013

          @@ -1577,7 +1577,7 @@
        • ARM920T (1)
        • ARM926EJS (3)
        • ARM Cortex-M0/M0+ (2)
        • -
        • ARM Cortex-M3 (18)
        • +
        • ARM Cortex-M3 (19)
        • ARM Cortex-M4 (7)
      • Atmel AVR @@ -1698,6 +1698,7 @@
      • STMicro STR71x (ARM7TDMI)
      • STMicro STM32L152 (STM32 L "EnergyLite" Line, ARM Cortex-M3)
      • STMicro STM32F100x (STM32 F1 "Value Line"Family, ARM Cortex-M3)
      • +
      • STMicro STM32F103C4/C8 (STM32 F1 "Low- and Medium-Density Line" Family, ARM Cortex-M3)
      • STMicro STM32F103x (STM32 F1 Family, ARM Cortex-M3)
      • STMicro STM32F107x (STM32 F1 "Connectivity Line" family, ARM Cortex-M3)
      • STMicro STM32F207x (STM32 F2 family, ARM Cortex-M3)
      • @@ -2320,6 +2321,29 @@ nsh> However, there is no specific board support for this chip families in the NuttX source tree. There is, however, generic support for STM32F100RC boards.

        + +
      • STMicro STM32F103C48 (STM32 F1 "Low- and Medium-Density Line"Family, ARM Cortex-M3)
      • + +
        +
        + + +
        + +

        + STMicro STM32F103C4/8 (STM32 F1 Low- and Medium-Density Family). + This port is for "STM32 Tiny" development board. + This board is available from several vendors on the net, and may be sold under different names. + It is based on a STM32 F103C8T6 MCU, and is bundled with a nRF24L01 wireless communication module. +

        +
          +

          + STATUS: + The basic STM32F103C8 port was released in NuttX version 6.28. + This work was contributed by Laurent Latil. +

          +
        +
        diff --git a/Documentation/README.html b/Documentation/README.html index 8605447a47..e82dd2210a 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -203,6 +203,8 @@ | | | `- README.txt | | |- stm3240g-eval/ | | | `- README.txt + | | |- stm32_tiny/ + | | | `- README.txt | | |- stm32f100rc_generic/ | | | `- README.txt | | |- stm32f3discovery/ From b4e59b30aef298f75c974ff7153c7e3a101edaee Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 3 Jun 2013 15:11:56 -0600 Subject: [PATCH 1152/1518] Add a skeleton configuration that will eventually support the SAM4L Xplained Pro board --- Documentation/README.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/README.html b/Documentation/README.html index e82dd2210a..7161abf070 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -184,6 +184,8 @@ | | | `- README.txt> | | |- sam3u-ek/ | | | `- README.txt + | | |- sam4l-xplained/ + | | | `- README.txt | | |- shenzhou/ | | | `- README.txt | | |- sim/ From 23be751f2ddf80ff7cd65588b95823b323bbfbda Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 5 Jun 2013 08:54:37 -0600 Subject: [PATCH 1153/1518] SAM4L GPIO port addressing fixes; SAM4L Xplained LED support; minor documentation updates --- Documentation/NuttxUserGuide.html | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 5d8f48767e..36428215d2 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -13,7 +13,7 @@

        NuttX Operating System

        User's Manual

        by

        Gregory Nutt

        -

        Last Updated: Aprill 22, 2013

        +

        Last Updated: June 4, 2013

        @@ -8124,15 +8124,16 @@ int getopt(int argc, FAR char *const argv[], FAR const char *optstring);
           #include <stdio.h>
           
          +void   clearerr(register FILE *stream);
           int    fclose(FILE *stream);
           int    fflush(FILE *stream);
          -FILE  *fdopen(int fd, const char *type);
          -int    feof(FILE *stream);                               /* Prototyped but not implemented */
          -int    ferror(FILE *stream);                             /* Prototyped but not implemented */
          +int    feof(FILE *stream);
          +int    ferror(FILE *stream);
           int    fileno(FAR FILE *stream);
           int    fgetc(FILE *stream);
           int    fgetpos(FILE *stream, fpos_t *pos);
           char  *fgets(char *s, int n, FILE *stream);
          +FILE  *fdopen(int fd, const char *type);
           FILE  *fopen(const char *path, const char *type);
           int    fprintf(FILE *stream, const char *format, ...);
           int    fputc(int c, FILE *stream);
          @@ -8143,19 +8144,30 @@ int    fsetpos(FILE *stream, fpos_t *pos);
           long   ftell(FILE *stream);
           size_t fwrite(const void *ptr, size_t size, size_t n_items, FILE *stream);
           char  *gets(char *s);
          +int    ungetc(int c, FAR FILE *stream);
           
           int    printf(const char *format, ...);
           int    puts(const char *s);
           int    rename(const char *source, const char *target);
          -int    snprintf(FAR char *buf, size_t size, const char *format, ...);
           int    sprintf(char *dest, const char *format, ...);
          +int    asprintf (FAR char **ptr, FAR const char *fmt, ...);
          +int    snprintf(FAR char *buf, size_t size, const char *format, ...);
           int    sscanf(const char *buf, const char *fmt, ...);
          -int    ungetc(int c, FILE *stream);
          +void   perror(FAR const char *s);
          +int    avsprintf(FAR char **ptr, const char *fmt, va_list ap);
          +
           int    vprintf(const char *s, va_list ap);
           int    vfprintf(FILE *stream, const char *s, va_list ap);
          +int    vsprintf(char *buf, const char *s, va_list ap);
          +int    avsprintf(FAR char **ptr, const char *fmt, va_list ap);
           int    vsnprintf(FAR char *buf, size_t size, const char *format, va_list ap);
           int    vsscanf(char *buf, const char *s, va_list ap);
          -int    vsprintf(char *buf, const char *s, va_list ap);
          +
          +FAR FILE *fdopen(int fd, FAR const char *type);
          +int    dprintf(int fd, FAR const char *fmt, ...);
          +int    vdprintf(int fd, FAR const char *fmt, va_list ap);
          +
          +int    statfs(FAR const char *path, FAR struct statfs *buf);
           
           #include <sys/stat.h>
           
          
          From 8d3a5368152dcc821659b462117094deab8f7e5e Mon Sep 17 00:00:00 2001
          From: Gregory Nutt 
          Date: Sun, 9 Jun 2013 13:00:38 -0600
          Subject: [PATCH 1154/1518] SAM4L:  Extend interrupt support for the larger
           number of NVIC interrupts of the SAM4L
          
          ---
           Documentation/NuttX.html | 57 +++++++++++++++++++++++++++++++++++++---
           1 file changed, 54 insertions(+), 3 deletions(-)
          
          diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html
          index c8922cf36a..cfa518a64b 100644
          --- a/Documentation/NuttX.html
          +++ b/Documentation/NuttX.html
          @@ -8,7 +8,7 @@
             
               
                 

          NuttX RTOS

          -

          Last Updated: May 29, 2013

          +

          Last Updated: June 9, 2013

          @@ -1578,7 +1578,7 @@
        • ARM926EJS (3)
        • ARM Cortex-M0/M0+ (2)
        • ARM Cortex-M3 (19)
        • -
        • ARM Cortex-M4 (7)
        • +
        • ARM Cortex-M4 (8)
      • Atmel AVR
      • Freescale @@ -2950,7 +2951,7 @@ nsh>

          STATUS: - As of this writing, the basic port is code complete and fully verified configurations exit for the basic NuttX OS test and for the NuttShell NSH). + As of this writing, the basic port is code complete and fully verified configurations exist for the basic NuttX OS test and for the NuttShell NSH). The first fully functional LM4F120 LaunchPad port was released in NuttX-6.27.

        @@ -2960,6 +2961,56 @@ nsh>

        + +
        + +

        + Atmel AT91SAM4L. + This port uses the Atmel SAM4L Xplained Pro development board. + This board features the ATSAM4LC4C MCU with 256KB of FLASH and 32KB of internal SRAM. +

        +
          +

          + STATUS: + As of this writing, the basic port is code complete and fully verified configurations exist for the basic NuttX OS test and for the NuttShell NSH). + The first fully functional LM4F120 LaunchPad port was released in NuttX-6.28. +

          +

          + Memory Usage. + The ATSAM4LC4C comes in a 61004-pin package and has 256KB FLASH and 32KB of SRAM. + Below is the current memory usage for the NSH configuration (June 9, 2013). + This is not a minimal implementation, but a full-featured NSH configuration. +

          +

          + Static memory usage can be shown with size command: +

          +
            +$ size nuttx
            +   text    data     bss     dec     hex filename
            +  43572     122    2380   46074    b3fa nuttx
            +
          +

          + NuttX, the NSH application, and GCC libraries use 42.6KB of FLASH leaving 213.4B of FLASH (83.4%) free from additional application development. + Static SRAM usage is about 2.3KB (<7%) and leaves 29.7KB (92.7%) available for heap at runtime. +

          + SRAM usage at run-time can be shown with the NSH free command. + This runtime memory usage includes the static memory usage plus all dynamic memory allocation for things like stacks and I/O buffers: +
            +NuttShell (NSH) NuttX-6.28
            +nsh> free
            +             total       used       free    largest
            +Mem:         29232       5920      23312      23312
            +
          +

          + You can see that 22.8KB (71.1%) of the SRAM heap is staill available for further application development while NSH is running. +

          +
        + + + +
        +
        +
        From c2ef9f059324a01921ce63bea25bc7b0d1ca71a4 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 10 Jun 2013 11:57:37 -0600 Subject: [PATCH 1155/1518] Beginning updates of SAM3U header files o include support for the SAM4S: WDT, SUPC, EEFC, MATRIX, and PMC --- Documentation/NuttX.html | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index cfa518a64b..d08327d256 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -2977,7 +2977,7 @@ nsh>

        Memory Usage. - The ATSAM4LC4C comes in a 61004-pin package and has 256KB FLASH and 32KB of SRAM. + The ATSAM4LC4C comes in a 100-pin package and has 256KB FLASH and 32KB of SRAM. Below is the current memory usage for the NSH configuration (June 9, 2013). This is not a minimal implementation, but a full-featured NSH configuration.

        @@ -3468,10 +3468,6 @@ Mem: 29232 5920 23312 23312 - -
        -
        - From 7d642f7c1d222be28208fefb8b34a7e16ac5b954 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 10 Jun 2013 18:20:30 -0600 Subject: [PATCH 1156/1518] Add a directory to hold configurations for the SAM4S Xplained board --- Documentation/README.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/README.html b/Documentation/README.html index 7161abf070..5879339c92 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -8,7 +8,7 @@

        NuttX README Files

        -

        Last Updated: February 22, 2013

        +

        Last Updated: June 10, 2013

        @@ -186,6 +186,8 @@ | | | `- README.txt | | |- sam4l-xplained/ | | | `- README.txt + | | |- sam4s-xplained/ + | | | `- README.txt | | |- shenzhou/ | | | `- README.txt | | |- sim/ From ebcd80a92cb0b4542944087018323cd5d6d92592 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 11 Jun 2013 15:42:30 -0600 Subject: [PATCH 1157/1518] SAM4S: Add macros to manage peripheral clocks --- Documentation/NuttxPortingGuide.html | 169 ++++++++++++++++++++------- 1 file changed, 124 insertions(+), 45 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 845f4e5d52..236215fffb 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

        NuttX RTOS Porting Guide

        -

        Last Updated: March 20, 2013

        +

        Last Updated: June 11, 2013

        @@ -46,7 +46,8 @@ 2.4.2.1 Board Specific Logic
        2.4.2.2 Board Specific Configuration Sub-Directories
      - 2.4.3 Supported Boards + 2.4.3 Supported Boards
      + 2.4.4 Adding a New Board Configuration
    2.5 nuttx/drivers/
    2.6 nuttx/fs/
    @@ -795,13 +796,13 @@
  • configs/ea3131: - Embedded Artists EA3131 Development bard. This board is based on the + Embedded Artists EA3131 Development bard. This board is based on the an NXP LPC3131 MCU. This OS is built with the arm-nuttx-elf toolchain. STATUS: This port is complete and mature.
  • configs/eagle100: - Micromint Eagle-100 Development board. This board is based on the + Micromint Eagle-100 Development board. This board is based on the an ARM Cortex-M3 MCU, the Luminary LM3S6918. This OS is built with the arm-nuttx-elf toolchain. STATUS: This port is complete and mature.
  • @@ -819,7 +820,7 @@
  • configs/lm3s6965-ek: - Stellaris LM3S6965 Evaluation Kit. This board is based on the + Stellaris LM3S6965 Evaluation Kit. This board is based on the an ARM Cortex-M3 MCU, the Luminary/TI LM3S6965. This OS is built with the arm-nuttx-elf toolchain. STATUS: This port is complete and mature.
  • @@ -926,7 +927,7 @@
  • configs/rgmp: - RGMP stands for RTOS and GPOS on Multi-Processor. RGMP is a project for + RGMP stands for RTOS and GPOS on Multi-Processor. RGMP is a project for running GPOS and RTOS simultaneously on multi-processor platforms. You can port your favorite RTOS to RGMP together with an unmodified Linux to form a hybrid operating system. This makes your application able to use both RTOS @@ -978,7 +979,7 @@
  • configs/xtrs: TRS80 Model 3. This port uses a vintage computer based on the Z80. - An emulator for this computer is available to run TRS80 programs on a + An emulator for this computer is available to run TRS80 programs on a Linux platform (http://www.tim-mann.org/xtrs.html).
  • @@ -1021,6 +1022,84 @@ is available to build these toolchains under Linux or Cygwin.

    +

    2.4.4 Adding a New Board Configuration

    +

    + Okay, so you have created a new board configuration directory. + Now, how do you hook this board into the configuration system so that you can select with make menuconfig? +

    +

    + You will need modify the file configs/Kconfig. + Let's look at the STM32F4-Discovery configuration in the Kconfig file and see how we would add a new board directory to the configuration. + For this configuration let's say that you new board resides in the directory configs/myboard; + It uses an MCU selected with CONFIG_ARCH_CHIP_MYMCU; and you want the board to be selected with CONFIG_ARCH_BOARD_MYBOARD. + Then here is how you can clone the STM32F4-Discovery configuration in configs/Kconfig to support your new board configuration. +

    +

    + In configs/Kconfig for the stm32f4-discovery, you will see a configuration definition like this: +

    +

      +config ARCH_BOARD_STM32F4_DISCOVERY
      +    bool "STMicro STM32F4-Discovery board"
      +    depends on ARCH_CHIP_STM32F407VG
      +    select ARCH_HAVE_LEDS
      +    select ARCH_HAVE_BUTTONS
      +    select ARCH_HAVE_IRQBUTTONS
      +    ---help---
      +        STMicro STM32F4-Discovery board based on the STMicro STM32F407VGT6 MCU.
      +
    +

    + The above selects the STM32F4-Discovery board. + The select lines say that the board has both LEDs and buttons and that the board can generate interrupts from the button presses. + You can just copy the above configuration definition to a new location (notice that they the configurations are in alphabetical order). + Then you should edit the configuration to support your board. + The final configuration definition might look something like: +

    +
      +config ARCH_BOARD_MYBOARD
      +    bool "My very own board configuration"
      +    depends on ARCH_CHIP_MYMCU
      +    select ARCH_HAVE_LEDS
      +    select ARCH_HAVE_BUTTONS
      +    select ARCH_HAVE_IRQBUTTONS
      +    ---help---
      +        This options selects the board configuration for my very own board
      +        based on the MYMCU processor.
      +
    +

    + Later in the configs/Kconfig file, you will see a long, long string configuration with lots of defaults like this: +

    +
      +config ARCH_BOARD
      +    string
      +    default "amber"               if ARCH_BOARD_AMBER
      +    default "avr32dev1"           if ARCH_BOARD_AVR32DEV1
      +    default "c5471evm"            if ARCH_BOARD_C5471EVM
      +...
      +    default "stm32f4discovery"    if ARCH_BOARD_STM32F4_DISCOVERY
      +...
      +
    +

    + This logic will assign string value to a configuration variable called CONFIG_ARCH_BOARD that will name the directory where the board-specific files reside. + In our case, these files reside in configs/myboard and we add the following to the long list of defaults (again in alphabetical order): +

    +
      +    default "myboar"              if ARCH_BOARD_MYBOARD
      +
    +

    + Now the build system knows where to find your board configuration! +

    +

    + And finally, add something like this near the bottom of configs/myboard: +

    +
      +if ARCH_BOARD_MYBOARD
      +source "configs/myboard/Kconfig"
      +endif
      +
    +

    + This includes additional, board-specific configuration variabled defintion in configs/myboard/Kconfig. +

    +

    2.5 nuttx/drivers

    @@ -1078,7 +1157,7 @@ drivers/ | |-- Kconfig | |-- Make.defs | `-- (Common USB host driver source files) -|-- wirelss/ +|-- wireless/ | |-- Kconfig | |-- Make.defs | `-- (Common wireless driver source files) @@ -1666,7 +1745,7 @@ The system can be re-made subsequently by just typing make.

    4.1.5 up_use_stack()

    -

    Prototype: +

    Prototype: STATUS up_use_stack(FAR struct tcb_s *tcb, FAR void *stack, size_t stack_size);

    @@ -1864,7 +1943,7 @@ The system can be re-made subsequently by just typing make.

    Description. Called when the priority of a running or - ready-to-run task changes and the reprioritization will + ready-to-run task changes and the reprioritization will cause a context switch. Two cases:

      @@ -2146,7 +2225,7 @@ else

        CONFIG_RTC -
        Enables general support for a hardware RTC. +
        Enables general support for a hardware RTC. Specific architectures may require other specific settings.
        CONFIG_RTC_DATETIME
        There are two general types of RTC: (1) A simple battery backed counter that keeps the time when power @@ -2164,7 +2243,7 @@ else
        If CONFIG_RTC_HIRES is defined, then the frequency of the high resolution RTC must be provided. If CONFIG_RTC_HIRES is not defined, CONFIG_RTC_FREQUENCY is assumed to be one.
        CONFIG_RTC_ALARM -
        Enable if the RTC hardware supports setting of an alarm. +
        Enable if the RTC hardware supports setting of an alarm. A callback function will be executed when the alarm goes off

      @@ -2175,13 +2254,13 @@ else Initialize the hardware RTC per the selected configuration. This function is called once during the OS initialization sequence -

    1. up_rtc_time(). +
    2. up_rtc_time(). Get the current time in seconds. This is similar to the standard time() function. This interface is only required if the low-resolution RTC/counter hardware implementation selected. It is only used by the RTOS during intialization to set up the system time when CONFIG_RTC is set but neither CONFIG_RTC_HIRES nor CONFIG_RTC_DATETIME are set.
    3. -
    4. up_rtc_gettime(). +
    5. up_rtc_gettime(). Get the current time from the high resolution RTC clock/counter. This interface is only supported by the hight-resolution RTC/counter hardware implementation. It is used to replace the system timer (g_system_tick). @@ -2250,11 +2329,11 @@ else Returns the virtual base address of the address environment.
    6. - 4.1.22.3 up_addrenv_select(): + 4.1.22.3 up_addrenv_select(): Instantiate an address environment.
    7. - 4.1.22.4 up_addrenv_restore(): + 4.1.22.4 up_addrenv_restore(): Restore an address environment.
    8. @@ -2315,7 +2394,7 @@ else

      Description:

        - Return the virtual address associated with the newly create address environment. + Return the virtual address associated with the newly create address environment. This function is used by the binary loaders in order get an address that can be used to initialize the new task.

      Input Parameters:

      @@ -2531,9 +2610,9 @@ else

      4.3.2 LED Definitions

      - The implementation of LED support is very specific to a board architecture. - Some boards have several LEDS, others have only one or two. - Some have none. + The implementation of LED support is very specific to a board architecture. + Some boards have several LEDS, others have only one or two. + Some have none. Others LED matrices and show alphanumeric data, etc. The NuttX logic does not refer to specific LEDS, rather, it refers to an event to be shown on the LEDS in whatever manner is appropriate for the board; @@ -2705,7 +2784,7 @@ extern void up_ledoff(int led); These different device driver types are discussed in the following paragraphs. Note: device driver support requires that the in-memory, pseudo file system - is enabled by setting the CONFIG_NFILE_DESCRIPTORS in the NuttX configuration file to a + is enabled by setting the CONFIG_NFILE_DESCRIPTORS in the NuttX configuration file to a non-zero value.

      @@ -3451,7 +3530,7 @@ extern void up_ledoff(int led);

      As part of its operation during the binding operation, the USB host class driver will register an instances of a standard NuttX driver under the /dev directory. To repeat the above example, the USB host mass storage class driver (drivers/usbhost/usbhost_storage.c) will register a standard, NuttX block driver interface (like /dev/sda) - that can be used to mount a file system just as with any other other block driver instance. + that can be used to mount a file system just as with any other other block driver instance.

      Examples: @@ -3487,7 +3566,7 @@ extern void up_ledoff(int led);

      Examples: - arch/arm/src/dm320/dm320_usbdev.c, arch/arm/src/lpc17xx/lpc17_usbdev.c, + arch/arm/src/dm320/dm320_usbdev.c, arch/arm/src/lpc17xx/lpc17_usbdev.c, arch/arm/src/lpc214x/lpc214x_usbdev.c, arch/arm/src/lpc313x/lpc313x_usbdev.c, and arch/arm/src/stm32/stm32_usbdev.c.

      @@ -3914,11 +3993,11 @@ int kbd_decode(FAR struct lib_instream_s *stream, FAR struct kbd_getstate_s *sta stream: An instance of lib_instream_s to perform the actual low-level get operation.
    9. - pch: The location to save the returned value. + pch: The location to save the returned value. This may be either a normal, character code or a special command (i.e., a value from enum kbd_getstate_s.
    10. - state: A user provided buffer to support parsing. + state: A user provided buffer to support parsing. This structure should be cleared the first time that kbd_decode() is called.
    11. @@ -3989,12 +4068,12 @@ int kbd_decode(FAR struct lib_instream_s *stream, FAR struct kbd_getstate_s *sta
      • - Reports of relevant driver or other system activity. + Reports of relevant driver or other system activity.

      • - Registration and callback mechanism to interface with individual device drivers. + Registration and callback mechanism to interface with individual device drivers.

      • @@ -4192,7 +4271,7 @@ int (*prepare)(FAR struct pm_callback_s *cb, enum pm_state_e pmstate); Zero (OK) means the event was successfully processed and that the driver is prepared for the PM state change. Non-zero means that the driver is not prepared to perform the tasks needed achieve this power setting and will cause the state change to be aborted. NOTE: The prepare() method will also be called when reverting from lower back to higher power consumption modes (say because another driver refused a lower power state change). - Drivers are not permitted to return non-zero values when reverting back to higher power + Drivers are not permitted to return non-zero values when reverting back to higher power consumption modes!

        @@ -4391,7 +4470,7 @@ build If the 2 pass build option is selected, then these options configure the make system build a extra link object. This link object is assumed to be an incremental (relative) link object, but could be a static library (archive) (some modification to this Makefile would be required if CONFIG_PASS1_TARGET generates an archive). - Pass 1 1ncremental (relative) link objects should be put into the processor-specific source directory + Pass 1 1ncremental (relative) link objects should be put into the processor-specific source directory where other link objects will be created - ff the pass1 obect is an archive, it could go anywhere.

          @@ -4423,7 +4502,7 @@ build
        • CONFIG_PASS1_OBJECT: May be used to include an extra, pass1 object into the final link. - This would probably be the object generated from the CONFIG_PASS1_TARGET. + This would probably be the object generated from the CONFIG_PASS1_TARGET. It may be available at link time in the arch/<architecture>/src directory.
        @@ -4584,7 +4663,7 @@ build be disabled by setting this value to zero.
      • - CONFIG_SCHED_INSTRUMENTATION: enables instrumentation in + CONFIG_SCHED_INSTRUMENTATION: enables instrumentation in scheduler to monitor system performance
      • @@ -5024,7 +5103,7 @@ int ret = sigaction(SIGCHLD, &sa, NULL); In some architectures, it may be necessary to take some memory from the end of RAM for page tables or other system usage. The configuration settings and linker directives must be cognizant of that: - CONFIG_PAGING_NDATA should be defined to prevent the data region from extending all the way to the end of memory. + CONFIG_PAGING_NDATA should be defined to prevent the data region from extending all the way to the end of memory.
      • CONFIG_PAGING_DEFPRIO: @@ -5058,7 +5137,7 @@ int ret = sigaction(SIGCHLD, &sa, NULL); Default: No timeouts monitored.
      • - Some architecture-specific settings. + Some architecture-specific settings. Defaults are architecture specific. If you don't know what you are doing, it is best to leave these undefined and try the system defaults:

        @@ -5198,7 +5277,7 @@ int ret = sigaction(SIGCHLD, &sa, NULL);
        • CONFIG_MEMCPY_VIK: Select this option to use the optimized memcpy() function by Daniel Vik. - Select this option for improved performance at the expense of increased size. + Select this option for improved performance at the expense of increased size. See licensing information in the top-level COPYING file. Default: n.
        @@ -5440,7 +5519,7 @@ int ret = sigaction(SIGCHLD, &sa, NULL); CONFIG_FS_NXFFS: Enable NuttX FLASH file system (NXFF) support.
      • - CONFIG_NXFFS_ERASEDSTATE: The erased state of FLASH. + CONFIG_NXFFS_ERASEDSTATE: The erased state of FLASH. This must have one of the values of 0xff or 0x00. Default: 0xff.
      • @@ -5491,7 +5570,7 @@ int ret = sigaction(SIGCHLD, &sa, NULL);
        • CONFIG_RTC: - Enables general support for a hardware RTC. + Enables general support for a hardware RTC. Specific architectures may require other specific settings.
        • @@ -5517,7 +5596,7 @@ int ret = sigaction(SIGCHLD, &sa, NULL);
        • CONFIG_RTC_ALARM: - Enable if the RTC hardware supports setting of an alarm. + Enable if the RTC hardware supports setting of an alarm. A callback function will be executed when the alarm goes off
        @@ -5740,7 +5819,7 @@ int ret = sigaction(SIGCHLD, &sa, NULL);
      • CONFIG_STMPE811_NPOLLWAITERS: - Maximum number of threads that can be waiting on poll() (ignored if + Maximum number of threads that can be waiting on poll() (ignored if CONFIG_DISABLE_POLL is set).
      • @@ -6033,7 +6112,7 @@ int ret = sigaction(SIGCHLD, &sa, NULL); text MIME types.
      • - CONFIG_THTTPD_IOBUFFERSIZE: + CONFIG_THTTPD_IOBUFFERSIZE:
      • CONFIG_THTTPD_INDEX_NAMES: A list of index filenames to check. The @@ -6087,7 +6166,7 @@ int ret = sigaction(SIGCHLD, &sa, NULL); You can also leave both options undefined, and thttpd will not do anything special about tildes. Enabling both options is an error. Typical values, if they're defined, are "users" for - CONFIG_THTTPD_TILDE_MAP1 and "public_html" forCONFIG_THTTPD_TILDE_MAP2. + CONFIG_THTTPD_TILDE_MAP1 and "public_html" forCONFIG_THTTPD_TILDE_MAP2.
      • CONFIG_THTTPD_GENERATE_INDICES: @@ -6157,7 +6236,7 @@ int ret = sigaction(SIGCHLD, &sa, NULL);
      -

      USB Serial Device Class Driver (Prolific PL2303 Emulation)

      +

      USB Serial Device Class Driver (Prolific PL2303 Emulation)

      • CONFIG_PL2303: Enable compilation of the USB serial driver @@ -6197,14 +6276,14 @@ int ret = sigaction(SIGCHLD, &sa, NULL);
      • CONFIG_CDCACM_IFNOBASE: - If the CDC driver is part of a composite device, then this may need to + If the CDC driver is part of a composite device, then this may need to be defined to offset the CDC/ACM interface numbers so that they are unique and contiguous. When used with the Mass Storage driver, the correct value for this offset is zero.
      • CONFIG_CDCACM_STRBASE: - If the CDC driver is part of a composite device, then this may need to + If the CDC driver is part of a composite device, then this may need to be defined to offset the CDC/ACM string numbers so that they are unique and contiguous. When used with the Mass Storage driver, the correct value for this offset is four (this value actuallly only needs @@ -6275,7 +6354,7 @@ int ret = sigaction(SIGCHLD, &sa, NULL);
      • CONFIG_USBMSC_IFNOBASE: - If the CDC driver is part of a composite device, then this may need to + If the CDC driver is part of a composite device, then this may need to be defined to offset the mass storage interface number so that it is unique and contiguous. When used with the CDC/ACM driver, the correct value for this offset is two (because of the two CDC/ACM @@ -6283,7 +6362,7 @@ int ret = sigaction(SIGCHLD, &sa, NULL);
      • CONFIG_USBMSC_STRBASE: - If the CDC driver is part of a composite device, then this may need to + If the CDC driver is part of a composite device, then this may need to be defined to offset the mass storage string numbers so that they are unique and contiguous. When used with the CDC/ACM driver, the correct value for this offset is four (or perhaps 5 or 6, depending From 5a8a1894597baa1e6ec442d75e2a488859ce901f Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 12 Jun 2013 10:56:42 -0600 Subject: [PATCH 1158/1518] SAM4S: Add NSH configuration. Calibrated delay loops. Port now seems fully functional --- Documentation/NuttX.html | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index d08327d256..25c340d487 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

        NuttX RTOS

        -

        Last Updated: June 9, 2013

        +

        Last Updated: June 12, 2013

        @@ -1578,7 +1578,7 @@
      • ARM926EJS (3)
      • ARM Cortex-M0/M0+ (2)
      • ARM Cortex-M3 (19)
      • -
      • ARM Cortex-M4 (8)
      • +
      • ARM Cortex-M4 (9)
    12. Atmel AVR
    13. Freescale @@ -2967,13 +2968,13 @@ nsh>

      Atmel AT91SAM4L. This port uses the Atmel SAM4L Xplained Pro development board. - This board features the ATSAM4LC4C MCU with 256KB of FLASH and 32KB of internal SRAM. + This board features the ATSAM4LC4C MCU running at 48MHz with 256KB of FLASH and 32KB of internal SRAM.

        STATUS: As of this writing, the basic port is code complete and fully verified configurations exist for the basic NuttX OS test and for the NuttShell NSH). - The first fully functional LM4F120 LaunchPad port was released in NuttX-6.28. + The first fully functional SAM4L Xplained Pro port was released in NuttX-6.28.

        Memory Usage. @@ -3011,6 +3012,27 @@ Mem: 29232 5920 23312 23312


        + +
        + +

        + Atmel AT91SAM4S. + This port uses the Atmel SAM4S Xplained development board. + This board features the ATSAM4S16C MCU running at 120MHz with 1MB of FLASH and 128KB of internal SRAM. +

        +
          +

          + STATUS: + As of this writing, the basic port is code complete and fully verified configurations exist for the basic NuttX OS test and for the NuttShell NSH). + The first fully functional SAM4S Xplained port was released in NuttX-6.28. +

          +
        + + + +
        +
        +
        From 60be5600f3adbf129eaebfa05341add6b8c9b871 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 14 Jun 2013 14:30:00 -0600 Subject: [PATCH 1159/1518] Prep for 6.28 release --- Documentation/NuttX.html | 1308 +++++++++++++++++++++----------------- 1 file changed, 720 insertions(+), 588 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 25c340d487..89589b7d7b 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

        NuttX RTOS

        -

        Last Updated: June 12, 2013

        +

        Last Updated: June 14, 2013

        @@ -528,7 +528,7 @@

      • - Network, USB (host), USB (device), serial, CAN, ADC, DAC, PWM, Quadrature Encoder, and watchdog timer driver architectures. + Network, USB (host), USB (device), serial, CAN, ADC, DAC, PWM, Quadrature Encoder, Wireless, and watchdog timer driver architectures.
      • @@ -1096,11 +1096,11 @@ -

        NuttX-6.27 Release Notes

        +

        NuttX-6.28 Release Notes

        - The 94th release of NuttX, Version 6.27, was made on April 28, 2013, and is available for download from the + The 95th release of NuttX, Version 6.28, was made on June 14, 2013, and is available for download from the SourceForge website. - Note that the release consists of two tarballs: nuttx-6.27.tar.gz and apps-6.27.tar.gz. + Note that the release consists of two tarballs: nuttx-6.28.tar.gz and apps-6.28.tar.gz. Both may be needed (see the top-level nuttx/README.txt file for build information) The change log associated with the release is available here. Unreleased changes after this release are available in GIT. @@ -1112,164 +1112,65 @@

        • - OS Initialization + File Systems

          • - Add missing registration of /dev/zero. - Registration of /dev/null should depend upon conditional compilation. - From Ken Pettit. + SMART FLASH file system (contributed by Add Ken Pettit).
        • - Tasking + MTD (FLASH) Drivers

          • - Added a new interface to set aside memory on the task's stack. - This is used (at least in the kernel build) to hold task arguments. + Add support of MTD partitions via a new MTD driver that manages a + set of MTD devices, each managing a subset of the FLASH region + managed by the parent MTD driver.
          • - Remove up_assert_code(). - One assertion routine is enough. + Extended the MTD interface to provide an (optional) method to + perform byte oriented writes if supported by the FLASH part. +
          • +
          • + M25Px driver re-architected to use the byte write capability (when + possible) and to use 4KB sectors for the erase block size when the + part supports it (from Ken Pettit).
        • - Kernel Build + LCD Drivers

          • - Extensive changes were made to support the kernel build mode. - In this mode, NuttX is built as a monolithic kernel. - NuttX is built as a separate kernel mode "blob" and the applications are built as a separate user mode "blob". - The kernel runs in supervisor mode and the applications run in user mode (with the MPU restricting user mode accesses). - Access to the kernel from the user blob is only via system calls (SVCalls in this case). -
          • -
          • - Kernel build configurations for the Open1788 board and for the STM32F4Discovery now execute correctly. -
          • -
          • - Changes were made to task and thread start-up routines, signal handling, data structures, ARMv7-M SVCalls, stack management interfaces, + New interface definitions to support audio devices (from Ken Pettit) + and alphanumeric, segment LCDs.
        • - Drivers + Wireless Drivers

          • - Driver for the ST7567 LCD Display Module from Univision Technology Inc. - Contributed by Manikandan.S -
          • -
          • - SPI initialize functions renamed so that multiple SPI blocks can be initialized. -
          • -
          • - Extended to support the RAMTRON FM25V01 device. - Contributed by Lorenz Meier -
          • -
          • - Serial drivers: TIOCSERGSTRUCT ioctls now conditioned on CONFIG_SERIAL_TIOCSERGSTRUCT + Added new driver for the wireless nRF24L01+ transceiver (from + Laurent Latil).
        • - ARMv7-M (Cortex-M3/4) + Calypso

          • - Added support for modifiable interrupt vectors in RAM -
          • -
          -
        • -
        • -

          - nuvoTon NUC1xx -

          -
            -
          • - Added kernel build support -
          • -
          -
        • -
        • -

          - LPC17xx -

          -
            - - Now holds off sleep mode in the IDLE loop is DMA is in progress - (because sleep mode will disable CPU SRAM). - -
          -
        • -
        • -

          - LPC17xx Boards -

          -
            -
          • - ZKIT-ARM-1769: Now supports the ST7567 LCD display module. - Added an nxhello configuration for testing (Manikandan.S). -
          • -
          • - ZKIT-ARM-1769: Add support for both CAN1 and CAN2. - Contributed by M.Kannan -
          • -
          • - Open1788: Basic support for the WaveShare Open1788 board is complete with working OS test, NSH, and graphics configurations. -
          • -
          • - Open1788: Integrated the LPC178x LCD driver with the WaveShare display. - Touchscreen support is included, howerver, there appears to be an issue with the Open1788 touchscreen interrupt signal. -
          • -
          • - Open1788: Now supports SDRAM (used to provide the LCD framebuffer). -
          • -
          • - Open 1788: Reversed sense of the IDLE LCD. It is now off when the LPC17 is sleeping and on when awake. - That is much a better visual indication of the dynamic CPU load -
          • -
          -
        • -
        • -

          - LPC17xx Drivers -

          -
            -
          • - Added an LCD framebuffer driver for the LPC177x/8x family. -
          • -
          • - Implemented LPC17xx GPDMA support. -
          • -
          • - Integrated the LPC17xx GPDMA support into the SD card driver. -
          • -
          • - SSP driver adapted to work with the LPC178x family. -
          • -
          • - Separate LPC176x and LPC178x GPIO logic; this logic is too different to maintain in one file with conditional compilation. -
          • -
          • - Re-design of the GPIO logic for the LPC178x family by Rommel Marcelo. -
          • -
          -
        • -
        • -

          - LPC43xx -

          -
            -
          • - Added kernel build support + Added support for the Pirelli DP-L10 phone (from Craig Comstock via + Alan Alan Carvalho de Assis)
        • @@ -1279,11 +1180,34 @@

          • - Added support for kernel mode build. + Added an option to conditionally disable the "wfi" sleep mode. This + is needed with certain JTAG debuggers to to prevent the debug + session from begin disconnected (from Ken Pettit).
          • - Added architecure support for the STM32 F427/F437 chips. - Contributed by Mike Smith + Added support for the STM32L (STM32L15X/STM32L16x) family. +
          • +
          • + Added STM32F103C4 and F103C8 chip support (from Laurent Latil). +
          • +
          • + Added a new interface function, stm32_dmacapable() that can be used + to determine if DMA is possible from the specified memory address + (from Petteri Aimonen) +
          • +
          + +
        • +

          + STM32 Drivers +

          +
            +
          • + If CONFIG_STM32_DMACAPABLE is defined, the STM32 SPI driver now uses + stm32_dmacapable() to determine if it is possible to perform DMA + from the specified address. This change is important for the STM32 + F4 which may have SPI data buffers allocated on the stack in CCM + memory which cannot support the DMA (from Petteri Aimonen).
        • @@ -1293,7 +1217,27 @@

          • - Added a configuration to support a kernel mode build of the OS test on the STM32F4Discovery + Support added for the MikroElektronika Mikromedia for STM32F4 + development board (from Ken Pettit) with the MIO283QT2 LCD and + touchscreen. Several graphics configurations are included. +
          • +
          • + The HY-mini STM32v board now uses the common SSD1289 driver + and supported the card detect interrupt. Several new + configurations also added and some removed (from Laurent Latil). +
          • +
          • + Support added for the R65105-based LCD that comes with some + HY-Mini STM32v boards (from Christian Faure). +
          • +
          • + Added basic support for the STM32L-Discovery board. Drivers + for the on-board segment LCD are included. +
          • +
          • + Added support for the STM32 Tiny development board based on the + STM32 F103C8T6 MCU. This includes support for the nRF24L01+ + wireless on the board (from Laurent Latil).
          @@ -1303,10 +1247,8 @@

          • - Added kernel build support -
          • -
          • - Added support for the 7 UARTs on the LM4F120 + Support added for a TI/Stellaris internal FLASH MTD driver (from Max + Holtzberg).
          @@ -1316,12 +1258,54 @@

          • - Added scripts and instructions to simplify use of OpenOCD with ICDI (JP Carballo) + The LM3S6965-EK now has configurations for the UDP discovery tool and + for the TCP echo server (both from Max Holtzberg) +
          • +
          + +
        • +

          + Atmel ATSAM3/4 +

          +
            +
          • + Reorganized, renamed, and updated directory structure to better + support additional members of the SAM3/4 family.
          • - The basic for the Stellaris LM4F120 Launchpad is complete. - This includes support for OS test and NSH configurations. - Additional driver development is needed. + Added support for both the ATSAM4S and ATSAM4L families. The + ATSAM4S is similar to the ATSAM3U, but the ATSAM4L is quite a + different beast, really much more akin to the AVR32s SoCs but + with a Cortex-M4. +
          • +
          +
        • +
        • +

          + Atmel ATSAM3/4 Boards +

          +
            +
          • + Added support for the Atmel SAM4L Xplained Pro development board. + This board features the ATSAM4LC4C MCU (Cortex-M4 with 256KB FLASH + + 32KB SRAM). +
          • +
          • + Added support for the Atmel SAM4S Xplained developement board. This + board features the ATSAM4S16C MCU (Cortex-M4 with 1MB FLASH + 128KB + SRAM). +
          • +
          +
        • +
        • +

          + PIC32MX Boards +

          +
            +
          • + Added support for the 1602 segment LCD on-board the Sure PIC32MX + board. This board will now also support a USB NuttX console and + the USB monitor test program.
        • @@ -1331,7 +1315,40 @@

          • - Directories where the same sources files are used to build different objects in the first and second pass kernel builds need to keep those objects in separate directories so that they are not constantly rebuilt. + Clean-up of almost all .gitignore files: Made scope of ignore to be + only the current directory; Ignore .dSYM files in directories where + .exe's may be built. Also, in Makefiles, clean .dSYM files in + directories where an .exe may be built. +
          • +
          • + Standardize and consolidated all build-as-an-NSH-application + configuration settings. Now only CONFIG_NSH_BUILTIN_APPS is + sufficient to build an application, test, or or example as an NSH + builtin application. +
          • +
          • + Added support for a generic ARM, ARMv6-M and ARMv7-M Windows EABI + toolchains. +
          • +
          + +
        • +

          + Libraries +

          +
            +
          • + Added encoder/decoder logic to marshal and serialize special segment + LCD (SLCD) commands intermixed with normal ASCII data. This is the + similar to the encoding/decoding logic that is used to marshal + special commands from a keyboard. +
          • +
          • + Add dprintf() and vdprintf() (the latter from Andrew Tridgell). +
          • +
          • + Add an application that may be built as an NSH builtin command that + will erase FLASH using a flash_eraseall NSH command (from Ken Pettit).
        • @@ -1341,49 +1358,75 @@

          • - apps/system/ramtest: - Added a simple memory test that can be built as an NSH command. + Added an MTD partition test/examples. Currently used with (1) the a + simulation configuration to test MTD partitions on a RAM emulation + of FLASH and (2) with the Mikroe STM32F4 configuration.
          • -
          - -
        • -

          - Tools -

          -
          • - kconfig2html is a new tool which will replace the hand-generated documentation of the NuttX configruation variables with auto-generated documentation. + Added a test/example to verify alphanumeric, segment LCDs. +
          • +
          • + Added a simple single threaded, poll based TCP echo server based + on W. Richard Stevens UNIX Network Programming Book (from Max + Holtzberg). +
          • +
          • + Added several tests of the SMART block driver and file system (from + Ken Pettit). +
          • +
          • + Added a runtime configuration for the UDP discover utility (from + Max Holtzberg). +
          • +
          • + Added an example application to demo the nRF24L01 driver (from + Laurent Latil). +
          • +
          • + New and modified NSH commands: +
              +
            • + Added a -h option to the df command to show the volume information in human readable form (from Ken Petit). +
            • +
            • + Add a new mksmartfs command (from Ken Petit). +
            • +
          -

        Efforts In Progress. The following are features that are partially implemented but present in this release. - Most are expected to be fully available in NuttX 6.27. + Most are expected to be fully available in NuttX 6.29.

        • - Freescale Freedom KL25Z + Audio System

          • - A port to the Freescale Freedom KL25Z is complete but not yet stable enough. - The KL25Z is a low-cost Cortex-M0+ part with 128KB of FLASH and 16KB of SRAM. - This is is the effort of Alan Carvalho de Assis. + A complete audio subsystem include CODECs, higher level management, + interface definitions, and audio drivers was contributed by Ken + Pettit. This work has not been completely verified as of this + release and so is categorized as a work-in-progress. At present, + progress is blocked due to issues interfacing with the VS1053 + audio DAC on the Mikroe STM32F4 board.
        • - kconfig-frontends + kconfig-fronted Configuration

          • - Conversion of old configurations to use the kconfig-frontends tool is an ongoing effort that will continue for some time. - At this time, only 32% of the configurations have been converted to use the kconfig-frontends tools. + Conversion of old configurations to use the kconfig-frontends + tool is an ongoing effort that will continue for some time. + At this time, only 43% of the configurations have been converted + to use the kconfig-frontends tools.
        • @@ -1399,100 +1442,18 @@

          • - Fixed a critical bug: - When there is pending C buffered output and the system is very busy, the a pthread may be blocked at a critical point when trying to exit. - Blocking at this critical point would cause crashes. - All entire task/thread exit logic paths were reviewed and failsafe mechanisms were put in place to assure that exitting tasks never block after task teardown has been started. + Modify assertion in the priority inheritance logic that is reported + to cause false alarm assertions.
        • - ARMv6-M (Cortex-M0/M0+) + Kernel Build

          • - Fixed parameter passing for all system call inline functions with > 3 parameters -
          • -
          • - Fixed a major problem: - The Cortex-M0 has no BASEPRI register but thelogic of NuttX-6.26 was using it to manage interrupts. - Switched to using the PRIMASK instead. - This means that hardfaults will (again) occur when SVC instructions are executed -
          • -
          -
        • -
        • -

          - ARMv7-M (Cortex-M3/4) -

          -
            -
          • - Corrected Correct MPU sub-region settings for unaligned regions. -
          • -
          • - In exception handling with CONFIG_NUTTX_KERNEL<.code>, need to explicitly set and clear the privilege bit in the CONTROL register. -
          • -
          • - Fixed parameter passing for all system call inline functions with > 3 parameters -
          • -
          -
        • -
        • -

          - Drivers -

          -
            -
          • - Support for O_NONBLOCK was not supported in the "upper half" serial driver. -
          • -
          • - PL2303 compilation errors -
          • -
          -
        • -
        • -

          - Stellaris LM3S/4F -

          -
            -
          • - Corrected typos in alternate function definitions. -
          • -
          -
        • -
        • -

          - LPC17xx Drivers -

          -
            -
          • - Added a work-around for an ADC errata. - From Chris Taglia -
          • -
          • - Only one ADC pin was configured. - Need to configure all that are in the ADC0 set. - From MKannan -
          • -
          -
        • -
        • -

          - File Systems -

          -
            -
          • - The FAT logic was not making a distinction between directory non-existence and file non-existence so when it you try to create a file in a non-existent directory; it would create a file with the name of the missing directory. - Reported by Andrew Tridgell -
          • -
          • - Several fixes to the FAT file system from Ronen Vainish. - These fixes mostly involve the logic to extend directory clusters for the case of long file names but also include a few important general fixes (such as for storing 32 bit FAT values) -
          • -
          • - mkfatfs was writing the boot code to the wrong location. - From Petteri Aimonen + Typo in syscall proxying logic corrected by Ken Pettit.
        • @@ -1502,34 +1463,115 @@

          • - Fixed a compilation error when socket options are are disabled. - Reported by Daniel O'Connor + Poll setup/teardown logic should ignore invalid (i.e., negative) + file descriptors (from Max Holtzberg). +
          • +
          • + When readahead data is available, the network poll() logic should + set POLLIN (or POLLRDNORM), not POLLOUT (from Max Holtzberg).
        • - C Library + LCD Drivers

          • - Corrected an error in sscanf(). - If %n occurs in the format statement after the input data stream has been fully parsed, the %n format specifier will not be handled. - Reported by Lorenz Meier -
          • -
          • - strchr(str, '\0') should return a pointer to the end of the string, not NULL. - From Petteri Aimonen + Correct power controls in the MIO283QT2 LCD driver.
        • - Build System + USB Device Controller Drivers

          • - Fix naming of NuttX target if EXEEXT is defined. + Change the default IN request buffer size from 64 to 96. This will + avoid requests of exactly MAXPACKET size and, hence, avoid so many + NULL packets. Also, fix the OUT request buffers size to exactly the + max packet size. It really cannot be any other size. +
          • +
          +
        • +
        • +

          + STM32 Drivers +

          +
            +
          • + Correct some bad STM32 F1 DMA definitions that crept into the system + a few months ago a broke STM32 F1 DMA (from Laurent Latil) +
          • +
          • + Fixed an error in NULL packet handling in the STM32 F1 USB device + controller driver: If the NULL-packet needed flag ever got set, + then it was not being cleared and infinite NULL packets resulted. + This only affects the CDC/ACM class and was the cause of the + failures using the USB CDC/ACM device as a NuttX console. With this + change the USB works well as an alternative NuttX console device for + the STM32 F1 family. +
          • +
          • + Correct some bad condition compilation in the RCC logic (CONFIG_ + missing from setting names). This affects some STM32 FLASH pre- + fetch settings (from Lorenz Meier). +
          • +
          • + Change for hardware flow control support for STM32. The change also + fixes incorrect operation of USART2 and UART5 in current master + (from Lorenz Meier and Mike Smith). +
          • +
          • + Fixed a backward conditional in USB OTG FS host controller driver + that prevented detection of disconnection events (from Scott). +
          • +
          +
        • +
        • +

          + LPC17xx Drivers +

          +
            +
          • + I2C interrupt control. Also correction for a single byte read + timeout error (from M. Kannan). +
          • +
          +
        • +
        • +

          + Freescale Kinetis +

          +
            +
          • + Freedom KL25Z pin multiplexing and LED control corrections (from + Alan Carvalho de Assis) +
          • +
          +
        • +
        • +

          + PIC32MX +

          +
            +
          • + Fix NULL packet handling in the PIC32 USB device driver. Without + this fix the CDC/ACM driver cannot be used reliably with the PIC32 + USB. With this change the USB works well as an alternative NuttX + console device. +
          • +
          +
        • +
        • +

          + Graphics +

          +
            +
          • + Default priorities for NxWidget and NxWM threads should be 100, + not 50, to be consistent with other default priorities.
        • @@ -1539,12 +1581,18 @@

          • - OS test: Fix timing error in non-cancelable thread test. + Remove the CONFIG_EXAMPLES_NXTEXT_NOGETRUN option from the NXTEXT + example. The test logic was bad for the case where this options is + not selected. Also, completed the empty Kconfig file.
          • - NSH: Correct the test of the skip input parameter. - Was limiting the range to <= count. - From Ken Petit. + C++ name mangling was occurring when this example is built as an NSH + built-in application causing the entry to be undefined when called + from C code. +
          • +
          • + Add some missing NSH library configuration values (from Lorenz + Meier).
          @@ -1806,6 +1854,7 @@ This port supports the TI "Calypso" MCU used in various cell phones (and, in particular, by the Osmocom-bb project). Like the c5471, NuttX operates on the ARM7 of this dual core processor. + Board support is available for the Motorola C155 and W220 phones and for the Pirelli DP-L10 phone.

            @@ -2336,7 +2385,7 @@ nsh> STMicro STM32F103C4/8 (STM32 F1 Low- and Medium-Density Family). This port is for "STM32 Tiny" development board. This board is available from several vendors on the net, and may be sold under different names. - It is based on a STM32 F103C8T6 MCU, and is bundled with a nRF24L01 wireless communication module. + It is based on a STM32 F103C8T6 MCU, and is bundled with a nRF24L01 wireless communication module.

              @@ -2488,7 +2537,7 @@ nsh> Atmel AT91SAM3U. This port uses the Atmel SAM3U-EK development board that features the AT91SAM3U4E MCU. - This port uses a GNU arm-nuttx-elf or arm-eabi toolchain* under either Linux or Cygwin (with native Windows GNU tools or Cygwin-based GNU tools). + This port uses a GNU arm-nuttx-elf or arm-nuttx-eabi toolchain* under either Linux or Cygwin (with native Windows GNU tools or Cygwin-based GNU tools).

                @@ -2507,6 +2556,13 @@ nsh> USB device (and possible LCD support). These extensions may or may not happen soon as my plate is kind of full now.

                +
                + NuttX-6.28 Update. + I just recently got a new SAM3U-EK board after bricking mine a year or so ago. + In the NuttX-6.28 release, there are some problems with the SAM3U-EK LCD and touchscreen. + I do not know if this is a consequence of board differences, changes in NuttX-6.28 for the SAM4S and SAM4L which affect the same code, or just "bit-rot" from disuse. + I hope to have these issues resolved for NuttX-6.29. +

              Development Environments: @@ -4119,337 +4175,413 @@ Other memory:

                -6.27 2013-04-28 Gregory Nutt <gnutt@nuttx.org>
                +6.28 2013-06-14 Gregory Nutt <gnutt@nuttx.org>
                 
                -    * arch/arm/src/armv7-m/up_mpu.c:  Correct MPU sub-region settings for
                -      unaligned regions (2013-03-15).
                -    * arch/arm/src/armv6-m/up_svcall.c:  Bring up to equivalent to the
                -      ARMv7-M version (2013-03-15).
                -    * configs/lm4f120-launchpad/tools:  Add scripts and instructions to
                -      simplify use of OpenOCD with ICDI (from JP Carballo, 2013-03-15).
                -    * tools/mkconfig.c:  Logic that attempts to suppress buffered I/O
                -      within the kernel is wrong.  sizeof(struct file_struct) must be
                -      the same in both kernel- and user-spaces (2013-03-16).
                -    * arch/arm/src/common/up_pthread_start.c, libc/pthread/pthread_startup.c,
                -      and related files:  Implement switch to user-space and user-space
                -      pthread start-up function (2013-03-16).
                -    * arch/arm/src/common/up_signal_handler.c, libc/pthread/pthread_startup.c,
                -      and related files:  Implement switch to user-space and user-space
                -      pthread start-up function (2013-03-16).
                -    * arch/arm/src/common/up_signal_handler.c, libc/signal/signal_handler.c,
                -      arch/arm/src/armv[6|7]-m/up_svcall.c, arch/arm/include/armv[6|7]-m/svcall.h,
                -      include/nuttx/userspace.h, and sched/sig_deliver.c:  Implement switch
                -      to user-space from kernel signal delivery trampoline before calling user-
                -      space signal handler.  Return from user-space signal handler using a
                -      system call (2013-03-16).
                -    * arch/arm/src/armv[6|7]-m/up_schedulesigaction.c: Need make sure we are
                -      in kernel mode before switching to kernel-mode signal handler
                -      trampoline (2013-03-16).
                -    * arch/arm/include/armv[6|7]-m/irq.h, and arch/arm/src/armv[6|7]-m/up_svcall.c:
                -      Add support for nested system calls.  In the current design, this can
                -      happen only under one condition:  When the kernel system call logic calls
                -      back into user space in order to allocate user space memory.  So it is
                -      expected that the maximum nesting level will be only 2 (2013-03-17).
                -    * libc/stdio/lib_sccanf.c:  Correct an error in sscanf.  If %n occurs in
                -      the format statement after the input data stream has been fully
                -      parsed, the %n format specifier will not be handled.  Reported by
                -      Lorenz Meier (and also earlier by Kate) (2013-03-17).
                -    * drivers/serial/serial.c:  Support for O_NONBLOCK was not supported
                -      in the "upper half" serial driver.  This is normally not an issue
                -      because UART TX is almost always available, but it does become an
                -      if the UART uses hardware flow control or if the a "lower half" is
                -      something like the USB CDC/ACM driver that may need to block for
                -      significant amounts of time (2013-03-18).
                -    * arch/arm/src/armv7-h/ram_vectors.h, up_ramvec_*.c, arch/arm/src/*/*_irq.c,
                -      and Make.defs:  Add support for modifiable interrupt vectors in RAM
                -      (2013-03-18).
                -    * arch/arm/src/armv7-m/up_exception.S, sam3u/sam3u_vectors.S, and
                -      lpc17xx/lpc17_vectors.S: In exception handling with CONFIG_NUTTX_KERNEL,
                -      need to explicitly set and clear the privilege bit in the CONTROL
                -      register on return.  I assumed this would be handled automatically
                -      by the EXC_RETURN.  Silly me (2013-03-18).
                -    * arch/arm/src/lpc17_adc.c:  Add a work-around for an ADC errata.  From
                -      Chris Taglia (2013-3-19).
                -    * arch/arm/src/armv7-m/up_hardfault.c:  If the PRIMASK is used to disable
                -      interrupts, then additional logic is required in the hard fault handler
                -      (2013-3-19).
                -    * libc/ and mm/: Directories where the same sources files are used to
                -      build different objects in the first and second pass kernel builds need
                -      to keep those objects in separate directories so that they are not
                -      constantly rebuilt (2013-3-19).
                -    * fs/fat:  Create an error in FAT file creation.  The FAT logic was
                -      not making a distinction between directory non-existence and file
                -      non-existence so when it you try to create a file in a non-existent
                -      directory, it would create a file with the name of the missing
                -      directory.  Reported by Andrew Tridgell (2013-03-30).
                -    * Numerous files:  Changed the protoypes of up_create_stack() and
                -      up_release_stack() so that is includes a task type.  Normally you
                -      can get this type from the TCB parameter, but there are certain
                -      conditions when the task type is not valid in the TCB when these
                -      functions are called.  Only the prototypes were changed on this
                -      big, initial checkin.  The next step will be to add logic to
                -      allocate stacks for kernel threads from protected kernel memory
                -      and all other task types from unprotected user memory (2013-03-20).
                -    * arch/*/src/common/up_createstack.c, up_use_stack.c, and
                -      up_release_stack.c:  If creating or releasing the stack for a kernel
                -      thread, use the kernel allocator so that the kernel thread stacks
                -      are protected from user application meddling (2013-03-20).
                -    * arch/arm/src/armv[6|7]-m/up_scall.c:  Fix parameter passing for
                -      all system call inline functions with > 3 parameters (2013-03-20)
                -    * arch/*/src/common/up_stackframe.c and include/nuttx/arch.h:  Add
                -      and new interface to set aside memory on the stack.  This will be
                -      used at least in the kernel build to hold task arguments (2013-03-21).
                -    * sched/sig_deliver.c:  When dispatching signals to user threads,
                -      copy the siginfo_t from the sigq to the stack.  The signal queue
                -      is allocated from kernel memory; however, the current stack is
                -      the user's stack and the user code will be able to access the
                -      signinfo_t data from the stack copy (2013-03-21).
                -    * arch/arm/src/stm32:  Added support for the kernel mode build
                -      (cloned from the lpc17xx).  (2013-03-21).
                -    * configs/stme32f4discovery/kernel and scripts:  Add support for
                -      the kernel mode build on the STM32F4Discovery  (2013-03-21).
                -    * drivers/st7567.c/h and include/nuttx/lcd/st7567.h:  Driver for
                -      the ST7567 LCD Display Module from Univision Technology Inc.
                -      contributed by Manikandan.S (2013-03-22).
                -    * configs/zkit-arm-1769:  Now supports the ST7567 LCD display
                -      module.  Added an nxhello configuration for testing (Manikandan.S,
                -      2013-03-22).
                -    * configs/stm32f4discovery/kostest:  Add a kernel mode version
                -      of the OS test for the STM32F4Discovery board (2013-03-22).
                -    * nuttx/include/nuttx,  nuttx/configs/sam3u-ek, nuttx/configs/open1788,
                -      nuttx/configs/stm32f4discovery, and nuttx/arch/arm:  Complete
                -      re-archtecting of how signals are dispatched to user-space code
                -      in the kernel build.  The original implementation was C-based
                -      and simpler.  However, the C code intermixed with SVC calls was
                -      not properly preserving registers.  The more complex, assembly
                -      language version does not suffer from these issues.  I believe
                -      the the kernel build can now be called "feature complete"
                -      (2013-03-23).
                -    * binfmt/binfmt_execmodule.c:  Here is a place where I forget
                -      to update the call to sched_releasetcb() to pass the thread
                -      type as the second parameter (2013-03-23).
                -    * arch/arm/src/lm, kinetis, lpc32, and nuc1xx:  Add kernel build
                -      support to all ARMv7-M and ARMv6-M chips.  There are no
                -      configurations in place to to verify these additions!
                -      (2013-03-24).
                -    * arch/arm/src/lm/lm_gpio.h:  Correct typos in alternate function
                -      definitions (2013-03-24).
                -    * arch/arm/src/lm/lm_lowputc.c and lm_serial.c:  Add support for
                -      the 7 UARTs on the LM4F120 (2013-03-24).
                -    * configs/lm4f120-launchpad/ostest/defconfig:  Fix the configured
                -      RAM size.  This appears to be the last show-stopper bug:  The
                -      LaunchPad now runs NuttX!  (2013-03-24).
                -    * configs/lm4f120-launchpad/nsh:  Add an NSH configuration for the
                -      LaunchPad (2013-03-24).
                -    * configs/kwikstik-k40:  Converted configurations to use the
                -      konfig-frontends tool (2013-03-25).
                -    * configs/twr-k60n512:  Converted configurations to use the
                -      konfig-frontends tool (2013-03-25).
                -    * arch/arm/src/lpc17xx/lpc17_lcd.c:  Add an LCD framebuffer driver
                -      for the LPC177x/8x family (2103-3-26).
                -    * arch/arm/src/lpc17xx/lpc17_emc.c and
                -      configs/open1788/src/lpc17_sdraminitialize.c:  Began testing the
                -      Open1788 SDRAM.  The SDRAM is basically functional, but there are
                -      failures with the SDRAM is stressed by the memory test at
                -      apps/example/ramtest (SDRAM support and the RAM test can be configured
                -      into the base configs/open1788/nsh configuration as described in
                -      configs/open1788/READMT.txt (2103-3-27).
                -    * configs/open1788/nxlines:  Add a configuration to test both the
                -      Open1788 LCD and SDRAM which is used as a framebuffer (2013-3-27).
                -    * arch/arm/src/lpc17xx/lpc17_gdma.c and lpc17_sdcard.c:  Began
                -      implementation of the LPC17 DMA and integration into the SDCARD
                -      driver (2013-3-29).
                -    * arch/arm/src/lpc17xx/lpc17_gdma.c: LPC17 DMA is code complete and
                -      under test.  Does not yet work (2013-3-30).
                -    * fs/fat/fs_fat32dirent.c and fs_fat32util.c:  Several fixes to the
                -      FAT file system from Ronen Vainish.  These fixes mostly involve the
                -      logic to extend directory clusters for the case of long file names
                -      but also include a few important general fixes (such as for storing
                -      32 bit FAT values) (2013-03-31).
                -    * arch/arm/src/lpc17xx/lpc17_gdma.c and lpc17_sdcard.c:  SD card DMA
                -      is now functional.  Thre may be some issues with DMA from CPU SRAM
                -      which is apparently disabled in sleep mode; up_idle() always enters
                -      sleep mode (2013-03-31).
                -    * arch/arm/src/stm32:  Add architecure support for the STM32 F427/F437
                -      chips. Contributed by Mike Smith (2013-4-01).
                -    * configs/zkit-arm-1769/src/up_can.c:  Add support for both CAN1
                -      and CAN2.  Contributed by M.Kannan (2013-4-01).
                -    * arch/arm/src/lpc17xx/lpc17_spi.c and lpc17_ssp.c and
                -      configs/olimex-lpc1766stk, nucleus2g, zkit-arm-1769, and
                -      lpcxpresso-lpc1768:  The initialization function for both the LPC17xx
                -      SPI and SSP blocks was called up_spinitialize() which is the common API
                -      definition of include/nuttx/spi.h.  But this raises a problem when the
                -      MCU has multiple blocks for differ SPI implementations as does the
                -      LPC17xx (and also as does other architectures like STM32 that have
                -      USARTs that can serve as SPI interfaces as well).  These were renamed
                -      to lpc17_spiinitialize() and lpc17_sspinitialize() in this case.
                -      Problem reported by M. Kannan (2013-4-01).
                -    * arch/arm/src/lpc17xx/lpc17_gpdma.c and lpc17_idle.c:  In sleep mode,
                -      DMA can only be performed from peripheral SRAM.  CPU SRAM is shutdown
                -      in sleep mode.  In order to simplify DMA memory allocation, the LPC17xx
                -      IDLE will now hold off going to sleep mode if there is a DMA in progress
                -     (2013-4-01).
                -    * configs/open1788/src/lpc17_autoleds.c:  Reversed sense of the IDLE LCD.
                -      It is now off when the LPC17 is sleeping and on when awake.  That is
                -      much more useful because it provides a good visual indication of the
                -      dynamic CPU load (2013-4-01).
                -    * configs/open1788/src/lpc17_touchscreen.c and lpc17_ssp.c:  Add
                -      support for the touschscreen on the WaveShare LCD (2013-4-01).
                -    * configs/several:  There were already some functions called
                -      lpc17_sspinitialize().  So they had to be renamed (2013-4-01).
                -    * arch/arm/src/lpc17xx/lpc17_ssp.c:  Adapted to work the the LPC178x
                -      family (2013-4-01).
                -    * arch/arm/src/lpc17xx/lpc17_gpio.c/.h:  Separate LPC176x and LPC178x
                -      logic into separate files.  The logic is diverging to much to
                -      try to retain common code (2013-4-03).
                -    * net/net_clone.c:  Fix compilation error when socket options are
                -      are disabled. Reported by Daniel O'Connor (2013-4-05).
                -    * configs/zkit-arm-1769/src/up_leds.c:  Fix a typo introduced into
                -      the button interrupt logic (2013-4-05).
                -    * arch/arm/src/lpc17xx/lpc178x_gpio.c:  Re-design of the GPIO
                -      logic for the LPC178x family by Rommel Marcelo (2013-4-05).
                -    * arch/arm/src/lpc17_gpiodbg.c:  Updated so that it correctly
                -      reports LPC177x/8x GPIO registers when GPIO debug is enabled
                -      (2013-4-05).
                -    * arch/arm/src/Makefile:  The variable NUTTX already includes
                -      the extension $(EXEEXT).  So remove the second extension
                -      $(NUTTX)$(EXEEXT) in two places (2013-4-7).
                -    * arch/arm/src/lpc17xx/lpc17_gpioint.c:  Disable interrrupts in
                -      lpc17_setintedge().  This logic must be atomic because it can be
                -      re-entered before it completes enabled interrupts, sometimes
                -      leaving the interrupts in a strange state (2013-4-7).
                -    * arch/arm/src/lpc17_lcd.c:  Rommel Marcelo got the LPC1788
                -      framebuffer-based LCD working.  Very nice! (2013-4-08).
                -    * arch/arm/src/lm/lm_clockconfig.c and configs/lm4f120-launchpad:
                -      Fix handling of the RCC SYSDIV2 field whent the PLL output is
                -      400MHz.  Don't forget to set the USERCC2 bit in the register or
                -      all is for naught (2013-4-09).
                -    * configs/zkit-arm-1769/src/up_lcd.c, up_ssp.c, and up_spi.c:
                -      Use SSP0 to LCD and SPI to SD-Card on the Zkit-arm-1769 board.
                -      From Manikandan. S (2013-4-10)
                -    * configs/olimex-lpc1766stk/usbserial:  Converted to use the
                -      kconfig-config frontends tools (2013-4-12).
                -    * drivers/usbdev/pl2303.c: Fix some compilation errors that
                -      crept in when fixes to the CDC/ACM driver where blindly
                -      incorporated in the PL2303 driver (2013-4-12).
                -    * configs/stm3210e-eval/usbserial:  Converted to use the
                -      kconfig-config frontends tools (2013-4-12).
                -    * configs/nucleus2g/usbserial:  Converted to use the
                -      kconfig-config frontends tools (2013-4-12).
                -    * arch/arm/src/kl and arch/arm/include/kl:  Add support for the
                -      Kinetis L family of Cortex-M0+ MCUs.  Contributed by Alan
                -      Carvalho de Assis.  NOTE:  This is still very much a work in
                -      progress as of this initial commit (2013-04-16).
                -    * configs/freedom-kl25z:  Support for the Freedom KL25Z board
                -      contributed by Alan Carvalho de Assis.  NOTE:  This is still
                -      very much a work inprogress as of this initial commit
                -      (2013-04-16).
                -    * arm/arm/src/armv6-m and arch/arm/include/armv6-m:  Ooops.  Fix
                -      a major screw-up:  The Cortex-M0 has no BASEPRI register but
                -      the current logic was using it to manage interrupts.  Switch
                -      to using the PRIMASK.  This means that hardfaults will (again)
                -      occur when SVC instructions are executed (2013-4-16).
                -    * configs/stm3240g-eval/ostest:  Converted to use the kconfig-frontends
                -      tools (2013-4-17).
                -    * sched/task_exithook.c:  Don't flush the streams until the
                -      final thread of the group exits.  Flushing may cause the
                -      thread to get suspended at a bad time and other threads in the
                -      group may run while the exiting thread is in an unhealthy state.
                -      This can cause crashes under certain circumstance.  This is a
                -      critical bugfix (2013-4-18).
                -    * drivers/mtd/ramtron.c:  Extended to support the FM25V01 device.
                -      Contributed by Lorenz Meier (2013-4-18).
                -    * sched/task_deletecurrent.c and task_exit.c, arch/*/up_exit.c:
                -      Renamed task_deletecurrent() and task_exit() since it really
                -      handles the architecture independent part of _exit().  _exit()
                -      is used internally, but if it is called from the user, it should
                -      unregister any atexit() or on_exit() functions (2013-4-18).
                -    * tools/kconfig2html.c: This is the beginning of a tool to
                -      replace the hand-generated documentation of the NuttX configruation
                -      variables with auto-generated documentation.  The initial checkin
                -      is an incomplete, poorly structured prototype that I hope to
                -      evolve into a useful tool (2014-4-20).
                -    * libc/string/lib_strchr.c:  strchr(str, '\0') should return a
                -      pointer to the end of the string, not NULL.  From Petteri
                -      Aimonen (2014-4-22).
                -    * fs/fat/fs_writefat.c: mkfatfs was writing the boot code to the
                -      wrong location.  From Petteri Aimonen (2014-4-22).
                -    * Documentation:  The NuttX documentation now expects to find an
                -      auto-generated version of the configuration variable documentation
                -      at Documentation/NuttXConfigVariables.html (2014-4-22).
                -    * arch/arm/src/lpc17xx/lpc17_adc.c:  Only one ADC pin was configured.
                -      Need to configure all that are in the ADC0 set.  From MKannan
                -      (2014-4-23).
                -    * configs/zkit-arm-1769/src:  ADC and SPI/USB MSC updates from
                -      MKannan (2014-4-23).
                -    * arm/src/armv7-m/ram_vectors.h and arm/src/armv7-m/up_ramvec_initialize.c:
                -      Fixes to RAM vector logic from Paul Y. Zhang (2014-4-23)
                -    * tools/kconfig2html.c:  Improve behavior of Expand/Collapse
                -      Table of Contents; Handle errors in parsing of strings and in
                -      some uninitialized variables.  Add an option to use jQuery.
                -    * tools/mkconfigvar.sh: Fix make target (2014-4-23).
                -    * sched/exit.c, pthread_exit.c, task_exit.c, task_delete,c and
                -      task_exithook.c:  For pthread_exit(), move some logic to an early
                -      point in the exit sequence where the task may need to block.  Add
                -      conditional logic in the lower end of the eixt logic kicked off by
                -      _exit() to prohibit blocking after the task has been torn down and is
                -      no longer cabable of blocking (2014-4-23).
                -    * arch/arm/src/common/up_initialize.c: Add missing registration
                -      of /dev/zero.  Registration of /dev/null should depend upon
                -      conditional compilation.  From Ken Pettit (2014-4-24).
                -    * arch/*/src/common/up_initialize.c:  Same change required to other
                -      architectures (2014-4-24).
                -    * arch/arm/src/kl/kl_clockconfig.c and configs/freedom-kl25z/include/board.h:
                -      Modify out PLL configuration so that it uses the values in
                -      board.h;  Fix PLL settings in board.h so that the correct core
                -      and bus clock frequencies are generated. (2014-4-24).
                -    * arm/src/kl/chip/kl_memorymap.h, kl_sim.h, andkl_uart.h:  Correct some
                -      register definitions (2014-4-25).
                -    * arch/arm/src/kl/Kconfig, kl_lowputc.c, kl_serial.c, and kl_config.h:
                -      No UART3-5 (2014-4-25).
                -    * arch/arm/src/kl/kl_serial.c:  Various fixes to various files in the
                -      KL architecture directory as need to get the interrupt-driven
                -      serial driver to work.  The Freedom KL25Z NSH configuration now
                -      works (2014-4-25).
                -    * include/nuttx/assert.h, arch/*/src/*/up_assert.c, and other file:
                -      Remove up_assert_code().  While asserting with an encoded value
                -      could be a good feature, the codes have not be well utilized nor
                -      documented.  Give that situation it is better to remove the API
                -      and reduce the footprint a little (2014-4-25).
                -    * drivers/serial/Kconfig and arch/*/src/*/*_serial.c:  Add
                -      compilation so that the useless TIOCSERGSTRUCT ioctl logic
                -      is not build unless CONFIG_DEBUG and CONFIG_SERIAL_TIOCSERGSTRUCT
                -      are defined.
                -    * sched/task_delete.c and task_terminate.c:  Most task_terminate()
                -      out of task_delete.c into its own C file.  This should prevent
                -      dragging task_delete() into the link when it is never called.
                +    * arch/arm/src/lpc17xx/lpc17_i2c.c:  Interrupts were not being
                +      re-enabled in the I2C intialization function (2013-4-30).
                +    * net/sendto.c:  Added skeleton of implementation of send timeouts
                +      for UDP.  However, this functionality really does not make
                +      sense, so it is disabled in the code (2013-4-30).
                +    * drivers/mtd/mtd_partition.c:  Support capability to clone one
                +      MTD driver into several, MTD partition drivers, each of which
                +      can manage a sub-region of the FLASH (2013-4-30).
                +    * configs/sim/nxffs:  Converted to use the kconfig-frontends
                +      tools (20130-4-30).
                +    * configs/sim/mtdpart:  A new configuration to test MTD
                +      partitions (2013-4-30).
                +    * configs/sim/mkroe-stm32f4:  Support for the MikroElektronika
                +      Mikromedia for STM32F4 development board (from Ken Pettit, 2013-4-30).
                +    * fs/smartfs:  Add Ken Pettit SMART FS (2013-4-30).
                +    * include/nuttx/mtd.h and most MTD drivers:  Add support for
                +      (optional) method to perform byte oriented writes if so configured
                +      (2013-5-1).
                +    * arch/arm/src/kl/chip/kl25z128_pinmux.h:  Corrections fo the
                +      pin multiplexing definitions from Alan Carvalho de Assis
                +      (2013-5-2).
                +    * drivers/mtd/mtd_partition.c:  Fix a few bugs and add support for the
                +      (option) byte write method (2013-5-3).
                +    * arch/arm/src/kl:  Repartitioning of definitions in header files
                +      from Alan Carvalho de Assis (2013-5-3).
                +    * drivers/mtd/smart.c, fs/smart, and other files:  SMART file system
                +      now makes use of the MTD byte write capabilities when present (from
                +      Ken Pettit, 2013-5-3).
                +    * drivers/mtd/m25px.c:  Some rearchitecting to use the byte write
                +      capability (when possible) and to use 4KB sectors for the erase block
                +      size when the part supports it (Ken Pettit, 2013-5-3).
                +    * configs/pirelli_dpl10: Adds a configuration for the pirelli phone
                +      (from Craig Comstock via Alan Alan Carvalho de Assis, 2013-5-3).
                +    * arch/arm/src/calypso:  Fix some compilation warnings (2013-5-5).
                +    * configs/pirelli_dpl10/nsh_highram:  Converted to use the
                +      kconfig-frontends tools (2013-5-5).
                +    * drivers/lcd/mio283qt2.c:  LCD was not being selected in setpower
                +      method (also not being deselected in hwinitialize function)
                +      (2013-5-6).
                +    * arch/arm/src/kl/kl_gpio.c and .h, configs/freedom-kl25z/src/freedom-kl25z.h,
                +      and configs/freedom-kl25z/src/kl_led.c:  Fixes LEDs on the Freedom KL25Z
                +      board (2013-5-6).
                +    * arch/arm/src/kinetis/kinetis_pin.c and arch/arm/src/kinetis/kinetis_internal.h:
                +      The Kinetis GPIO logic had some of the same issues as did the
                +      Kinetis L (2013-5-6).
                +    * arch/arm/src/stm32/stm32_idle.c: Add an option to conditionally disable
                +      the "wfi" sleep mode.  This is needed with certain JTAG debuggers to
                +      to prevent the debug session from begin disconnected.  From Ken Pettit
                +      (2013-5-7).
                +    * configs/mikroe-stm32f4/fulldemo/, nx/, nxlines/, nxtext/:  Add more
                +      configurations for the Mikroelektronika Multimedia STM32-M4 board.
                +      From Ken Pettit (2013-5-7).
                +    * configs/mikroe-stm32f4/src/up_mio283qt2.c and other files:  Integrate the
                +      MIO283QT2 display on the Mikroelektronika Multimedia STM32-M4 board.
                +      From Ken Pettit (2013-5-7).
                +    * arch/arm/src/lpc17xx/lpc17_i2c.c:  Fix for lpc17xx i2c single byte read
                +      timeout error problem from M.Kannan (2013-5-8).
                +    * arch/arm/src/stm32/stm32_adc.c:  Typo in F2/F4 specific logic:  ACD_
                +      instead of ADC_.  From Ken Pettit (2014-5-8).
                +    * configs/olimex-lpc1766stk/tools:  Tweaks to support OpenOCD-0.70
                +      (2013-5-10).
                +    * configs/mikroe-stm32f4:  Changes to get the Mikroelektronika MultiMedia
                +      STM32 F4 touchsceen working.  From Ken Pettit (2013-5-11).
                +    * configs/*/nxwm:  Default priorities for NxWidget and NxWM threads
                +      should be 100, not 50, to be consistent with other default priorities.
                +    * configs/hymini-stm32v/buttons, nsh, and nsh2:  Configurations converted
                +      to use the kconfig-frontends tools (Laurent Latil, 2013-5-14)
                +    * configs/hymini-stm32v/src:  Converted to use the common SSD1289 driver
                +      (Laurent Latil, 2013-5-14)
                +    * configs/hymini-stm32v/ostest and usbnsh:  Add OS test and USB/NSH
                +      configurations (Laurent Latil, 2013-5-14).
                +    * configs/hymini-stm32v/src/up_nsh.c:  Add support for the card detect
                +      (CD) interrupt (Laurent Latil, 2013-5-14).
                +    * configs/hymini-stm32v/src/nx and nxlines:  Removed these configurations
                +      (Laurent Latil, 2013-5-14).
                +    * arch/arm/src/stm32/chip/stm32f10xx_dma.h:  Fix some bad DMA register
                +      definitions.  From Laurent Latil (2013-5-15).
                +    * configs/hymini-stm32v:  Enable SDIO in nsh2 configuration; remove
                +      warning from src/up_ssd1289.c.  From Laurent Latil (2013-5-15).
                +    * configs/hymini-stm32v/src/up_r61505u.c:   Support for the R65105-
                +      based LCD that comes with some HY-Mini STM32v board.  From Christian
                +      Faure (2013-5-16).
                +    * syscall/syscall_lookup.h:  Missing underscore character in SYS_onexit.
                +      Reported by Ken Pettit (2013-5-17).
                +    * nuttx/syscall/syscall.csv:  Type of first parameter of on_exit() is
                +      wrong. Reported by Ken Pettit (2013-5-17).
                +    * configs/mikroe-stm32f4/kernel/, kostest/ and scripts/:  Add kernel build
                +      support and kernel mode OS test example for the the MikroElektronkia
                +      MultiMedia STM32 M4 board.  From Ken Pettit (2013-5-17).
                +    * arch/arm/include/stm32/chip.h and arch/arm/src/stme32/chip/stm32l15xxx_pinmap.h:
                +      Beginning of support for the STM32L15X family (2013-5-18).
                +    * arch/arm/include/stm32/stm32l15xxx_irq.h and arch/arm/src/stm32/chip/stm32l15xxx_vectors.h:
                +      Support for STM32L15X interrupt vectors (2013-5-18).
                +    * arch/arm/src/stm32/chip/stm32l15xxx_gpio.h and related STM32 GPIO files:
                +      Add GPIO support for the STM32L215X (2013-5-18).
                +    * arch/arm/src/stm32/chip/stm32l15xxx_memorymap.h: STM32L215X memory map
                +     (2013-5-18).
                +    * arch/arm/src/stm32/chip/stm32_pwr.h, stm32fl15xxx_rcc.h, and stm32l15xxx_syscfg.h:
                +      More updates for the STM32L152 (2013-5-19).
                +    * configs/stm32ldiscovey: Configuration for the STM32L-Discovery board.
                +      Still does not build on initial check-in (2013-5-19)
                +    * STM32L15X:  Add DMA and UART start.  Correctly initialize the heap
                +      (2013-5-19).
                +    * arch/arm/src/stm32/stm32l15xxx_rcc.c chip/stm32_flash.h:  Add RCC PLL
                +      and FLASH configuration logic for the STM32L152X (2013-5-19).
                +    * include/nuttx/usb/audio.h:  Typo- and bug-fixes from Ken Pettit
                +      (2013-5-19)
                +    * audio/, drivers/audio, include/nuttx/audio.h:  Add a new audio subsystem
                +      and VS1053 driver to NuttX.  Contributed by Ken Pettit (2013-5-19).
                +    * configs/miroe-stm32f4/:  Add audio logic to NSH configuration.  From Ken
                +      Petty (2013-5-19).
                +    * nuttx/arch/arm/src/lm/chip/lm_flash.h and nuttx/arch/arm/src/lm/lm_flash.c:
                +      Add support for TI/Stellaris internal FLASH MTD driver.  From Max
                +      Holtzberg (2013-5-20).
                +    * arm/src/stm32/chip/stm32l15xxx_vectors.h:  After correcting errors in the
                +      vector definition file, the STM32L-Discovery NSH port now seems to be
                +      fully functional.  Also fixed an error that was causing the LEDs to be
                +      controlled incorrectly (2013-5-21).
                +    * arch/arm/src/stm32/chip/stm32_lcd.h: Add definitions for STM32L15X
                +      segment LCD (2013-5-21).
                +    * configs/lm3s6965-ek/discover: Add an example configuration for UDP
                +      discovery tool on the lm3s6965-ek board.  From Max Holtzberg
                +      (2013-5-21).
                +    * audio/, drivers/audio, include/nuttx/audio:  Added a callback interface
                +      to the Audio upperhalf driver for dequeueing, reporting async events,
                +      etc. Also included is some initial work for the VS1053 driver.  From
                +      Ken Pettit (2013-5-21).
                +    * include/nuttx/audio/audio.h:  Moved from include/nuttx/ to include/nuttx/audio.
                +      (2013-5-21).
                +    * configs/lm3s6965-ek/tcpecho: This configuration builds the simple TCP
                +      echo example based on W.Richard Steven UNIX Programming book to ensure
                +      correct usage of the socket API. Contributed by Max Holtzberg (2013-5-22).
                +    * configs/stm32ldiscovery/src/stm32_lcd.c:  Framework for support of the
                +      STM32L-Discovery's segment LCD (2013-5-22).
                +    * fs/fs_poll.c:  Poll setup/teardown logic should ignore invalid (i.e.,
                +      negative) file descriptors.  Max Holtzberg (2013-5-23).
                +    * net/net_poll.c: When readahead data is available, the network poll
                +      logic should set POLLIN (or POLLRDNORM), not POLLOUT.  Max Holtzberg
                +      (2013-5-23)
                +    * fs/fs_poll.c:  Actually, it should also set revents == 0. (2013-5-23).
                +    * libc/misc/lib_slcdencode.c and lib_slcddecode.c:  Add logic to marshal
                +      and serialize special SLCD intermixed with normal ASCII data (2013-5-23)
                +    * configs/stm32ldiscovery/src/stm32_lcd.c:  STM32L-Discovery's segment LCD
                +      is code complete but completely untested (2013-5-23).
                +    * include/nuttx/fs/ioctl.h, include/nuttx/lcd/slcd_codec.h, and
                +      configs/stm32ldiscovery/src/stm32_lcd.c:  Add SLCD ioctl commands to get
                +      SLCD geometry, set bars, and manage contrast (2013-5-23).
                +    * configs/stm32ldiscovery/src/stm32_usb.c:  This file and all references
                +      to USB removed for the STM32L-Discovery.  While the chip supports a
                +      USB device, the board does not (2013-5-24).
                +    * arch/arm/src/stm32/stm32_lse.c:  Add support for the STM32L CSR register
                +      and for the LSE LCD clock source (2013-5-24).
                +    * The STM32L-Discovery segment LCD is now functional and the README file
                +      includes instructions for adding the apps/examples/slcd segment LCD
                +      test as an NSH "built-in" command (2013-5-24).
                +    * configs/pcblogic-pic32mx:  Converted all configurations to use the
                +      kconfig-frontends tool (2013-5-25).
                +    * configs/pcblogic-pic32mx/src:  Renamed files using pic32mx_ vs up_
                +      prefix.  Enable building of LCD1602 LCD (2013-5-25).
                +    * configs/pcblogic-pic32mx/src/pic32mx_lcd1602.c: Now uses SLCD CODEC
                +      (2013-5-25)
                +    * configs/stm32ldiscovery/src/stm32_lcd.c: Now supports ioctl to get
                +      cursor position (2013-5-25).
                +    * include/nuttx/lcd/slcd_ioctl.h:  Moved ioctls commands and structures
                +      from slcd_codec.h (2013-5-25)
                +    * libc/misc/lib_slcdencode.c and lib_slcddecode.c:  Several encoding
                +      and decoding bug fixes (2013-5-26)
                +    * configs/sure-pic32mx:  Converted all configurations to use the
                +      kconfig-frontends tools, cleaned up the directory structure and
                +      naming to match some of the more recent configurations, and added
                +      a segment LCD driver for the board.  The initial checkin of the
                +      LCD driver is just a clone of configs/pcblogic-pic32mx/src/pic32mx_lcd1602
                +      and it not yet expected to be functional (2013-5-26).
                +    * include/nuttx/lcd/slcd_ioctl.h and all SLCD drivers:  Rename geometry
                +      structure to attributes;  Move MAX contrast to attributes.  Add
                +      attribute and ioctl commands to get and set LCD brightness (2013-5-27).
                +    * configs/sure-pic32mx/pic32mx_lcd1602.c:  This driver appears to
                +      fully functional (at least to the extent that it has been tested)
                +      (2013-5-27).
                +    * arch/mips/src/pic32mx/pic32mx-usbdev.c:  Fix NULL packet handling in
                +      the PIC32 USB device driver.  Without this fix the CDC/ACM driver
                +      cannot be used reliably with the PIC32 USB.  With this change the
                +      configs/sure-pic32mx/usbnsh configuration works great (2013-5-28).
                +    * configs/sure-pic32mx/src/pic32mx_nsh.c:  The NSH configurations will
                +      support the USB monitor applications (2013-5-28).
                +     nuttx/arch/arm/include/stm32/chip.h, src/stm32/Kconfig, src/stm32/chip.h,
                +      and src/stm32/chip/stm32f103c_pinmap.h: STM32F103C4 and F103C8 chip
                +      support from Laurent Latil (2013-5-28)
                +    * configs/stm32_tiny: Add support for the STM32 Tiny development board
                +      based on the STM32 F103C8T6 MCU (2013-5-28).
                +    * arch/arm/src/stm32/stm32_usbdev.c:  Fix an error in NULL packet
                +      handling:  If the NULL-packet needed flag ever gets set, then
                +      it is not cleared and inifinite NULL packets result.  This only
                +      effects the CDC/ACM class and was the cause of the failure of
                +      configs/stm32f3discovery/usbnsh configureation which works great
                +      after this change (2013-5-29).
                +    * drivers/usbdev/cdcacm.c and pl2303.c and include/nuttx/usb/cdcacm.h:
                +      Change the default IN request buffer size from 64 to 96.  This will
                +      avoid requests of exactly MAXPACKET size and, hence, avoid so many
                +      NULL packets.  Also, fix the OUT request buffers size to exactly
                +      the max packet size.  It cannot be any other size (2013-5-29).
                +    * .gitignore:  Clean-up of most all .gitignore files:  Make scope of
                +      ignore to be only the current directory; Ignore .dSYM files in
                +      directories where .exe's may be build.  Also, in Makefiles,
                +      clean .dSYM files in directories where .exe may be built (2013-5-30).
                +    * drivers/wireless/nrf24101.c/.h and include/nuttx/wireless/nrf24101.h:
                +      Add new driver for the wireless nRF24L01+ transceiver.  From Laurent
                +      Latil (2013-6-1).
                +    * drivers/wireless/cc1101:  Move files in the cc1101 up one directory.
                +      From Laurent Latil (2013-6-1).
                +    * configs/stm32_tiny: Fix nRF24L01+ driver integration for the STM32
                +      Tiny.  From Laurent Latil (2013-6-01).
                +    * configs/sam3u-ek:  All remaining configurations changed to use
                +      the kconfig-frontends tools (2013-6-2).
                +    * arch/arm/src/sam3u/chip:  All SAM3U register definition files moved
                +      to this subdirectory.  Naming of registers changed from SAM3U_ to
                +      just SAM_.  This is in preparation for a SAM4L port (2013-6-2).
                +    * arch/arm/src/sam3u:  Renamed files to sam_* vs. sam3u_*.
                +      Eliminated sam3u_internal.h; instead uses individual header
                +      files for each SAM interface block (2013-6-2).
                +    * arch/arm/src/stm32/stm32f20xxx_rcc.c and stm32f40xxx_rcc.c, and
                +      configs/mikroe-stm32f4/src/up_clockconfig.c.  Correct some bad
                +      conditional compilation (CONFIG_ missing from setting name).  This
                +      affects some STM32 FLASH pre-fetch settings.  From Lorenz Meier
                +      (2013-6-2).
                +    * arch/arm/include/sam34 and arch/arm/src/sam34:  The old sam3u/
                +      directories were renamed sam34/ to make room in the namespace for
                +      the SAM4L (2013-6-2).
                +    * libc/stdio/lib_dprintd.c and lib_vdprintf.c:  Add dprintf() and
                +      vdprintf() (the latter from Andrew Tridgell, 2013-6-2).
                +    * sched/sem_holder.c:  Modify assertion that is reported to cause
                +      false alarm assertions (2013-6-2).
                +    * arch/arm/include/sam34/sam4l_irq.h and
                +      arch/arm/src/sam34/chip/sam4l_memorymap.h: Add interrupt and memory
                +      map definitions for the AT91SAM4L (2013-6-3).
                +    * arch/arm/src/sam34/chip/sam4l_vectors.h and arm/src/sam34/sam_vectors.S:
                +      Add interrupt vector support for the SAM4L family (2013-6-3).
                +    * arch/include/sam34/chip.h:  Add chip definitions for the SAM4L
                +      family (2013-6-3).
                +    * configs/sam4l-xplained:  A partial configuration that will (eventually)
                +      support the SAM4L Xplained Pro developement board (2013-6-3).
                +    * arch/arm/src/sam34/chip/sam4l_pinmap.h:  Initial cut as SAM4L
                +      pin mapping (2013-6-3).
                +    * arch/arm/src/stm32/stm32*_dma.*:  Add a new interface function,
                +      stm32_dmacapable() that can be used to determine if DMA is
                +      possible from the specified memory address.  From Petteri Aimonen
                +      (2013-6-4).
                +    * arch/arm/src/stm32/stm32_spi.c:  If CONFIG_STM32_DMACAPABLE is
                +      defined, use stm32_dmacapable() to determine if it is possible
                +      to perform DMA from the specified address.  This change is
                +      important for the STM32 F4 which may have SPI data buffers
                +      allocated on the stack in CCM memory which cannot support the
                +      DMA.  From Petteri Aimonen (2013-6-4).
                +    * nuttx/arch/arm/src/sam34/sam4l_gpio.h: Created GPIO driver
                +      header file for the SAM4L.  Also renamed the SAM3U header
                +      file to sam3u_gpio.h (2013-6-4).
                +    * nuttx/arch/arm/src/sam34/sam4l_gpio.c: Created GPIO driver for
                +      the SAM4L (2013-6-4).
                +    * nuttx/configs/sam4l-xplained/src/sam_userleds.c:  Added.
                +      (2013-6-4).
                +    * configs/sam4l-xplained/src/sam_userleds.c:  Add application
                +      LED interfaces (2013-6-5).
                +    * arch/arm/src/sam34/sam4l_gpio.c and arch/arm/src/sam34/chip/sam4l_gpio.h:
                +      Fix GPIO port address; fix compilation errors (2013-6-5).
                +    * arch/arm/src/sam34/chip/sam4l_flashcalw.h:  Add header file
                +      for SAM4L FLASH and PICOCACHE definitions (2013-6-5).
                +    * arch/arm/src/sam34/chip/sam4l_pm.h:  Add header file for SAM4L
                +      Power Management.  Leveraged from AVR32 (2013-6-5).
                +    * arch/arm/src/sam34/sarm4l_clockconfig.c:  SAM4L clock configuration
                +      logic (leveraged from AVR32).
                +    * nuttx/arch/arm/src/sam34/sam4l_periphclks.c/h:  Add common
                +      logic to enabled/disable SAM4L peripheral clocking (2013-6-5).
                +    * nuttx/arch/arm/src/sam34/chip/sam4l_bpm.h and sam4l_scif.h:  Add
                +      register definitions for the SAM4L BMP and SCIF blocks (2013-6-6).
                +    * nuttx/arch/arm/src/sam34/sam4l_clockconfig.c:  Now selects an
                +      optimal power scaling mode (2013-6-6).
                +    * nuttx/arch/arm/src/stm32/stm32_serial.c and nuttx/include/termios.h:
                +      Change for hardware flow control support for STM32. It also fixes
                +      incorrect operation of USART2 and UART5 in current master.  Submitted
                +      by Lorenz Meier but includes changes by Mike Smith (2013-6-6).
                +    * nuttx/arch/arm/src/stm32/stm32_otgfshost.c:  A backward conditional
                +      prevent detection of disonnection events.  Reported by Scott (2013-6-6).
                +    * nuttx/arch/arm/src/sam34/chip/sam4l_bscif.h: Add registers definitions
                +      for the SAM4L BSCIF module (2013-6-6).
                +    * nuttx/arch/arm/src/sam34/sam4l_clockconfig.c and chip/sam4l_wdt.h:
                +      Finally finished the SAM4L clock configuration logic; Added a
                +      WDT register definition header file (2013-6-8).
                +    * nuttx/arch/arm/src/sam34/chip/sam4l_usart.h and sam4l_picouart.h:
                +      Add UART/USART register defintion files for the SAM4L (2013-6-8).
                +    * arm/src/sam34/chip/sam3u_periphclks.h:  More macros and definitions
                +      to generalize peripheral clocking and to hide differences between
                +      the SAM3U and the SAM4L (2013-6-8).
                +    * configs/sam4l-xplained/ostest:  The SAM4L now passed the OS test
                +      (2013-6-9).
                +    * configs/sam4l-xplained/nsh:  Added an NSH configuration for the
                +      SAM4L Xplained Pro board (2013-6-9).
                +    * configs/sam4l-xplained/src/sam_cxxinitialize.c:  Added C++ support
                +      to the SAM4L Xplained Pro board configuration (2013-6-9).
                +    * arm/src/sam34/chip/sam_irq.c:  Extend IRQ support to handle the
                +      larger number of NVIC interrupts used by the SAM4L (2013-6-9).
                +    * arch/arm/src/sam45/chip:  Beginning updates of SAM3U header files
                +      to include support for the SAM4S: WDT, SUPC, EEFC, MATRIX, PMC,
                +      UARTs, USARTs, HSMCI, SPI (2013-6-10).
                +    * arch/arm/src/chip/sam4s_memorymap.h, sam4s_irq.h, and sam4s_vectors.h:
                +      Add SAM4S memory map and interrupt definitions (2013-6-10)
                +    * configs/sam4s-xplained:  Add framework for the SAM4S Xplained board.
                +      There is not much there on initial checkin (2013-6-10).
                +    * arch/arm/src/sam34: SAM3S support: GPIO, chip characteristics,
                +      peripheral Kconfig (2013-6-11).
                +    * arch/arm/src/sam34/chip/sam4s_pinmap.h:  Add SAM4S pin configuration
                +      definitions (2013-6-11).
                +    * arch/arm/src/sam34/sam4s_periphclks.h:  Add macros to manage SAM4S
                +      peripheral clocks (2013-6-11).
                +    * configs/sam4s-xplained: Configuration builds error-free (2013-6-11).
                +    * configs/sam4s-xplained/nsh:  Added an NSH configuration for the
                +      SAM4S Xplained board.  Both the OS test and the NSH configurations
                +      no execute error-free.  Delay loops calibrated for both the SAM4L
                +      and SAM4S boards (2013-6-12).
                +    * Standardize on CONFIG_NSH_BUILTIN_APPS.  Remove all other variants
                +      of the build-as-an-NSH-application configuration settings
                +      (2013-6-12).
                +    * arch/arm/src/sam34/sam_periphclks.h:  A header file that just
                +      includes the right header file.  This cleans up the messy logic
                +      in all of the C files and puts the mess in one place (2013-6-12).
                +    * arch/arm/src/arm*/Toolchain.mk, Kconfig (and lots of configuration
                +      files):  Add support for a generic Windows EABI toolchain (2013-6-13).
                 
                -apps-6.27 2013-04-28 Gregory Nutt <gnutt@nuttx.org>
                +apps-6.28 2013-06-14 Gregory Nutt <gnutt@nuttx.org>
                 
                -    * apps/system/ramtest:  Add a simple memory test (2013-03-26).
                -    * apps/examples/ostest:  In the non-cancelable thread test, we need
                -      to give the thread an opportunity to run and to set the non-
                -      cancelable state.
                -    * apps/nshlib/nsh_ddcmd.c: Correct the test of the skip input
                -      parameter.  Was limiting the range to <= count.  From Ken
                -      Petit (2014-4-24).
                +    * apps/examples/mtdpart:  Provides a simple test of MTD partitions.
                +    * apps/nshlib/nsh_mntcmds.c:  Add a -h option to the df command to show
                +      the volume information in human readable form (Ken Petit, 2013-4-30).
                +    * apps/nshlib/nsh_fscmds.c: Add support for the mksmartfs command.
                +      (Ken Petit, 2013-4-30).
                +    * apps/system/flash_eraseall:  Add an interface to erase FLASH using a
                +      flash_eraseall NSH command  (Ken Pettit, 2013-5-1).
                +    * apps/examples/flash_test and apps/examples/smart_test:  Add tests of
                +      the SMART block driver and file system  (Ken Pettit, 2013-5-1).
                +    * apps/examples/mtdpart:  Extended the test.  The original test
                +      coverage was superficial (2013-5-3).
                +    * apps/examples/smart:  This is an adaptation of the NXFFS stress
                +      test for the SMART file system (Ken Pettit, 2013-5-3).
                +    * apps/examplex/nxtext:  Remove the CONFIG_EXAMPLES_NXTEXT_NOGETRUN
                +      option.  The test logic was bad for the case where this options
                +      is not selected.  Also, complete the empty Kconfig file (2013-5-7).
                +    * apps/NxWidgets/Kconfig:  Updated to match NxWidgets/Kconfig by
                +      Ken Pettit (2013-5-11).
                +    * apps/examples/helloxx:  C++ name mangling was occurring when this
                +      example is built as an NSH built-in application.  (2013-5-16).
                +    * apps/netutils/discover:  Added a runtime configuration for the
                +      UDP discover utility.  From Max Holtzberg (2013-5-21).
                +    * apps/examples/tcpecho:  Added a simple single threaded, poll based
                +       TCP echo server based on W. Richard Stevens UNIX Network Programming
                +      Book.  Contributed by Max Holtzberg (2013-5-22).
                +    * apps/examples/slcd:  Add an example for testing alphanumeric,
                +      segment LCDs (2013-5-24).
                +    * apps/examples/slcd:  Extend SLCD test to handle multi-line displays
                +      (2013-5-26).
                +    * apps/examples/slcd:  This test now sets the SLCD brightness level to
                +      the mid-point as part of its initialization (2013-5-27).
                +    * .gitignore:  Clean-up of most all .gitignore files:  Make scope of
                +      ignore to be only the current directory; Ignore .dSYM files in
                +      directories where .exe's may be build.  Also, in Makefiles,
                +      clean .dSYM files in directories where .exe may be built (2013-5-30).
                +    * apps/examples/nrf35l01_term: Add an example application to demo the
                +      nRF24L01 driver.  From Laurent Latil (2013-6-1).
                +    * apps/nshlib/Kconfig:  Add some missing NSH configuration values.
                +      From Lorenz Meier (2013-6-2).
                +    * Standardize on CONFIG_NSH_BUILTIN_APPS.  Remove all other variants
                +      of the build-as-an-NSH-application configuration settings
                +      (2013-6-12).
                 
                -NxWidgets-1.7 2013-04-28 Gregory Nutt <gnutt@nuttx.org>
                +NxWidgets-1.8 2013-06-14 Gregory Nutt <gnutt@nuttx.org>
                 
                -    * NxWidgets bitmap_converter.py: Fix bug when image width > 255.  From
                -      Petteri Aimonen (2013-4-22).
                -    * NxWM::CScrollbarPanel:  Fix spelling error in class name: CScollbarPanel
                -      should be CScrollbarPanel.  From Petteri Aimonen (2013-4-22).
                -    * NxWidgets:: CGlyphButton: Generate action event, like CButton does.
                -      From Petteri Aimonen (2013-4-22).
                -    * NxWidgets:: CGlyphButton:  Prevent drawing outside of the bitmap size.
                -      From Petteri Aimonen (2013-4-22).
                -    * NxWM::CTaskBar:  Add option CONFIG_NXWM_TASKBAR_NO_BORDER to suppress
                -      drawing of the border on the taskbar.  From Petteri Aimonen (2013-4-22).
                -    * NxWidgets::CNxTimer:  Add function to check if CNxTimer is running.
                -      From Petteri Aimonen (2013-4-22).
                -    * NxWidgets::CNxWidgets:  Allow overriding of the checkCollision() method.
                -      From Petteri Aimonen (2013-4-22).
                +    * NxWM::CMediaPlayer: shell application for an MP3 Media Player with
                +      Kconfig settings to enable it.  I plan to write this app to help
                +      develop and test the MP3 codec chip driver.  It really doesn't do
                +      anything yet except display a text box saying "Coming soon", and I
                +      need to minimize the icon size a bit.  From Ken Pettit (2013-5-11).
                +    * NxWidgets/nxwm/src/glyph_mediaplayer.cxx:  Smaller version of the
                +      media player glyph.  From Ken Pettit (2013-5-12).
                +    * NxWidgets/nxwm/include/ccalibration.hxx and src/ccalibration.cxx:
                +      Fix a race condition that would cause the calibration screen
                +      to fail to come up when its icon was touched (From Ken Pettit,
                +      2013-5-12).
                +    * Kconfig:  Default priorities for NxWidget and NxWM threads
                +      should be 100, not 50, to be consistent with other default priorities.
                +    * NxWidgets::CGlyphSliderHorizontal and NxWidgets::CGlyphSliderHorizontalGrip:
                +      New widgets added by Ken Pettit (2013-5-15).
                +    * NxWidgets/UnitTests/CGlyphSliderHorizontal:  Addes a unit test for the
                +      NxWidgets::CGlyphSliderHorizontal class. From Ken Pettit (2013-5-17) .
                +    * NxWidgets::CGlyphSliderHorizontal:  Fix a drawing error.  From Ken
                +      Pettit (2013-5-17).
                +    * UnitTests/*/Makefile and .gitignore:  Update the way that NSH
                +      the Unit Tests are registered as built-in NSH applications (2013-5-30).
                +    * NxWidgets::CImage:  Allow a NULL pointer for a bitmap.  Add protection
                +      to prevent dereferencing the NULL pointer.  From Petteri Aimonen
                +      (2013-6-4).
                +    * NxWidgets::CNumericEdit:  Delay before auto-incrementing now varies:
                +      A longer delay is required to start auto-incrementing and speed increases
                +      while pressed.  From Petteri Aimonen (2013-6-4).
                +    * NxWM::CTaskbar: Add a method to redraw the taskbar and the current
                +      application.  This should only be necessary if the display loses
                +      state due to e.g. powerdown or other manual intervention.  From
                +      Petteri Aimonen (2013-6-4).
                 
                 uClibc++-1.0 2011-11-05 <gnutt@nuttx.org>
                 
                
                From 33b5a0f86863ea4aca5fd6178374ac106852b3b2 Mon Sep 17 00:00:00 2001
                From: Gregory Nutt 
                Date: Sat, 15 Jun 2013 10:56:08 -0600
                Subject: [PATCH 1160/1518] Add support for the SAM4L Xplained Pro I/O1 module
                
                ---
                 Documentation/NuttX.html | 7 -------
                 1 file changed, 7 deletions(-)
                
                diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html
                index 89589b7d7b..4321c3375a 100644
                --- a/Documentation/NuttX.html
                +++ b/Documentation/NuttX.html
                @@ -2556,13 +2556,6 @@ nsh>
                         USB device (and possible LCD support).
                         These extensions may or may not happen soon as my plate is kind of full now.
                       

                -
                - NuttX-6.28 Update. - I just recently got a new SAM3U-EK board after bricking mine a year or so ago. - In the NuttX-6.28 release, there are some problems with the SAM3U-EK LCD and touchscreen. - I do not know if this is a consequence of board differences, changes in NuttX-6.28 for the SAM4S and SAM4L which affect the same code, or just "bit-rot" from disuse. - I hope to have these issues resolved for NuttX-6.29. -

              Development Environments: From c303a779e8ee99ebf5aefc6e6e21fbbfa2ec125a Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 27 Jun 2013 14:33:10 -0600 Subject: [PATCH 1161/1518] Update documentation to include references to the Arduino Due board --- Documentation/NuttX.html | 30 ++++++++++++++++++++++++++++-- Documentation/README.html | 4 +++- 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 4321c3375a..a0adc81135 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

              NuttX RTOS

              -

              Last Updated: June 14, 2013

              +

              Last Updated: June 27, 2013

              @@ -1625,7 +1625,7 @@
            • ARM920T (1)
            • ARM926EJS (3)
            • ARM Cortex-M0/M0+ (2)
            • -
            • ARM Cortex-M3 (19)
            • +
            • ARM Cortex-M3 (20)
            • ARM Cortex-M4 (9)
          • Atmel AVR @@ -1688,6 +1688,7 @@
          • AVR AT90USB64x and AT90USB6128x (8-bit AVR)
          • AVR32 AT32UC3BXXX (32-bit AVR32)
          • Atmel AT91SAM3U (ARM Cortex-M3)
          • +
          • Atmel AT91SAM3X (ARM Cortex-M3)
          • Atmel AT91SAM4L (ARM Cortex-M4)
          • Atmel AT91SAM4S (ARM Cortex-M4)
          @@ -2571,6 +2572,31 @@ nsh>

          + +
          + +

          + Atmel AT91SAM3X. + This port uses the Arduino Due development board that features the ATSAM3X8E MCU running at 84MHz. + See the Arduino Due page for more information. +

          +
            +

            + STATUS: + This is very much a work in progress. + Basic NuttX is expected to be availabled in NuttX-6.29. +

            +
          +

          + Development Environments: + See the Atmel AT91SAM3U discussion above. +

          + + + +
          +
          +
          diff --git a/Documentation/README.html b/Documentation/README.html index 5879339c92..e96de90539 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -8,7 +8,7 @@

          NuttX README Files

          -

          Last Updated: June 10, 2013

          +

          Last Updated: June 27, 2013

          @@ -55,6 +55,8 @@ | |- configs/ | | |- amber/ | | | `- README.txt + | | |- arduino-due/ + | | | `- README.txt | | |- avr32dev1/ | | | `- README.txt | | |- c5471evm/ From 9094081abe2ff6f487b140e71118e0b81de264a0 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 28 Jun 2013 14:32:08 -0600 Subject: [PATCH 1162/1518] Add an NSH configuration for the Arduino Due; Pluse several fixes related to the Due and to the SAM3X in general --- Documentation/NuttX.html | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index a0adc81135..e448977b24 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -2583,8 +2583,8 @@ nsh>

            STATUS: - This is very much a work in progress. - Basic NuttX is expected to be availabled in NuttX-6.29. + As of this writing, the basic port is code complete and fully verified configurations exist for the basic NuttX OS test and for the NuttShell NSH). + The first fully functional Arduino Due port was released in NuttX-6.29.

          @@ -3100,6 +3100,7 @@ Mem: 29232 5920 23312 23312 STATUS: As of this writing, the basic port is code complete and fully verified configurations exist for the basic NuttX OS test and for the NuttShell NSH). The first fully functional SAM4S Xplained port was released in NuttX-6.28. + Support for the on-board 1MB SRAM was added in NuttX-6.29.

        From cf9861cc6e799e97a74917a7af4569a2dab15bce Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 1 Jul 2013 08:11:54 -0600 Subject: [PATCH 1163/1518] Created new directories to hold SPI-related files --- Documentation/NuttxPortingGuide.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 236215fffb..fc6a4c82b3 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -2939,7 +2939,7 @@ extern void up_ledoff(int led);
        • - include/nuttx/spi.h. + include/nuttx/spi/spi.h. All structures and APIs needed to work with SPI drivers are provided in this header file.

        • From 43f59204af3b0a648ee95df5f0a6a30b6c866ccf Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 15 Jul 2013 12:33:35 -0600 Subject: [PATCH 1164/1518] Partial fixes for Zmodem RX buffering problems. --- Documentation/README.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/README.html b/Documentation/README.html index e96de90539..fa8ac0b37b 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -310,7 +310,8 @@ | | `- README.txt | `- system/ | |- i2c/README.txt - | `- install/README.txt + | |- install/README.txt + | `- zmodem/README.txt `- NxWidgets |- Doxygen | `- README.txt From 9b5072133528ceec7e953b625b0487555116b634 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 16 Jul 2013 11:23:35 -0600 Subject: [PATCH 1165/1518] Fix problems with host build of the Zmodem tools --- Documentation/NuttX.html | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index e448977b24..77dd48b332 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

          NuttX RTOS

          -

          Last Updated: June 27, 2013

          +

          Last Updated: July 16, 2013

          @@ -498,6 +498,13 @@
        • PATH variable support.
        • + +
          + +

          +

        • File transfers via TFTP and FTP (get and put), HTML (wget), and Zmodem (sz and rz).
        • +

          +
          From 28a8854e74d9dc96256e1202be479a2ff1713f40 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 16 Jul 2013 16:01:51 -0600 Subject: [PATCH 1166/1518] Add links to board README files in the NuttX.html file --- Documentation/NuttX.html | 155 +++++++++++++++++++++++++++----------- Documentation/README.html | 2 +- 2 files changed, 113 insertions(+), 44 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 77dd48b332..f522cd43da 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1822,6 +1822,7 @@

          STATUS: Does not support interrupts but is otherwise fully functional. + Refer to the NuttX README file for further information.

        @@ -1846,6 +1847,7 @@

        STATUS: This port is complete, verified, and included in the initial NuttX release. + Refer to the NuttX board README file for further information.

      @@ -1870,6 +1872,7 @@ This port was contributed by Denis Carilki and includes the work of Denis Carikli, Alan Carvalho de Assis, and Stefan Richter. Calypso support first appeared in NuttX-6.17 with LCD drivers. Support for the Calypso keyboard was added in NuttX-6.24 by Denis Carilki. + Refer to the NuttX board README files for the Compal E88, Compal E99 and Pirelli DP-L10 phones for further information.

      @@ -1896,6 +1899,7 @@ timer interrupts, serial console, USB driver, and SPI-based MMC/SD card support. A verified NuttShell (NSH) configuration is also available. + Refer to the NuttX board README files for the mcu123.com and for the ZPA213X/4XPA boards for further information.

      Development Environments: @@ -1929,6 +1933,7 @@ working implementation of the NuttShell (NSH). The port is complete and verified. As of NuttX 5.3, the port includes only basic timer interrupts and serial console support. + Refer to the NuttX board README file for further information.

      Development Environments: (Same as for the NXP LPC214x). @@ -1961,6 +1966,7 @@ SD cards). An SPI-based ENC28J60 Ethernet driver for add-on hardware is available and but has not been fully verified on the Olimex board (due to issues powering the ENC28J60 add-on board). + Refer to the NuttX board README file for further information.

      Development Environments: @@ -1992,6 +1998,7 @@ STATUS: This port has stalled due to development tool issues. Coding is complete on the basic port (timer, serial console, SPI). + Refer to the NuttX board README file for further information.

      @@ -2020,6 +2027,7 @@ The basic port (timer interrupts, serial ports, network, framebuffer, etc.) is complete. All implemented features have been verified with the exception of the USB device-side driver; that implementation is complete but untested. + Refer to the NuttX board README file for further information.

      @@ -2039,18 +2047,21 @@

        STATUS: - The basic EA3131 port is complete and verified in NuttX-5.2 - This basic port includes basic boot-up, serial console, and timer interrupts. - This port was extended in NuttX 5.3 with a USB high speed driver contributed by David Hewson. - David also contributed I2C and SPI drivers plus several important LPC313x USB bug fixes - that appear in the NuttX 5.6 release. - This port has been verified using the NuttX OS test, USB serial and mass storage - tests and includes a working implementation of the NuttShell (NSH). + The basic EA3131 port is complete and verified in NuttX-5.2 + This basic port includes basic boot-up, serial console, and timer interrupts. + This port was extended in NuttX 5.3 with a USB high speed driver contributed by David Hewson. + David also contributed I2C and SPI drivers plus several important LPC313x USB bug fixes + that appear in the NuttX 5.6 release. + This port has been verified using the NuttX OS test, USB serial and mass storage + tests and includes a working implementation of the NuttShell (NSH).

        - Support for on-demand paging has been developed for the EA3131. - That support would all execute of a program in SPI FLASH by paging code sections out of SPI flash as needed. - However, as of this writing, I have not had the opportunity to verify this new feature. + Support for on-demand paging has been developed for the EA3131. + That support would all execute of a program in SPI FLASH by paging code sections out of SPI flash as needed. + However, as of this writing, I have not had the opportunity to verify this new feature. +

        +

        + Refer to the NuttX board README file for further information.

      @@ -2076,6 +2087,7 @@ At this point, verification of the EA3152 port has been overcome by events and may never happen. However, the port is available for anyone who may want to use it. + Refer to the NuttX board README file for further information.

      @@ -2101,6 +2113,7 @@ There is an OS test configuration that verifies the correct port of NuttX to the part and a NuttShell (NSH) configuration that might be the basis for an application development. As of this writing, more device drivers are needed to make this a more complete port. + Refer to the NuttX board README file for further information.

      Memory Usage. @@ -2157,7 +2170,8 @@ nsh> This is the work of Alan Carvalho de Assis. Verified, initial, minimal support for the Freedom KL25Z is in place in NuttX 6.27 and 6.28: There is a working OS test configuration that verifies the correct port of NuttX to the part and a working NuttShell (NSH) configuration that might be the basis for an application development. - As of NuttX-6.28 more device driver development would be needed to make this a complete port, particularly to support USB OTG. + As of NuttX-6.28 more device driver development would be needed to make this a complete port, particularly to support USB OTG. + Refer to the NuttX board README file for further information.

      @@ -2196,7 +2210,8 @@ nsh>

        STATUS: - This port was will be released in NuttX 6.14. + This port was was released in NuttX 6.14. + Refer to the NuttX board README file for further information.

      @@ -2220,6 +2235,7 @@ nsh> The current port includes timer, serial console, Ethernet, SSI, and microSD support. There are working configurations the NuttX OS test, to run the NuttShell (NSH), the NuttX networking test, and the uIP web server. + Refer to the NuttX board README file for further information.

      @@ -2247,18 +2263,19 @@ nsh>

        STATUS: - This port was released in NuttX 5.5. - Features are the same as with the Eagle-100 LM3S6918 described above. - The apps/examples/ostest configuration has been successfully verified and an - NSH configuration with Telnet support is available. - MMC/SD and Networking support was not been thoroughly verified: - Current development efforts are focused on porting the NuttX window system (NX) - to work with the Evaluation Kits OLED display. + This port was released in NuttX 5.5. + Features are the same as with the Eagle-100 LM3S6918 described above. + The apps/examples/ostest configuration has been successfully verified and an + NSH configuration with Telnet support is available. + MMC/SD and Networking support was not been thoroughly verified: + Current development efforts are focused on porting the NuttX window system (NX) + to work with the Evaluation Kits OLED display.

        - NOTE: As it is configured now, you MUST have a network connected. - Otherwise, the NSH prompt will not come up because the Ethernet - driver is waiting for the network to come up. + NOTE: As it is configured now, you MUST have a network connected. + Otherwise, the NSH prompt will not come up because the Ethernet + driver is waiting for the network to come up. + Refer to the NuttX board README file for further information.

      @@ -2284,6 +2301,7 @@ nsh> STATUS: This port was released in NuttX 5.10. Features are the same as with the Eagle-100 LM3S6918 described above. + Refer to the NuttX board README file for further information.

      @@ -2300,6 +2318,7 @@ nsh> Header file support was contributed by Tiago Maluta for this part. Jose Pablo Rojas V. is used those header file changes to port NuttX to the TI/Stellaris EKK-LM3S9B96. That port was available in the NuttX-6.20 release. + Refer to the NuttX board README file for further information.

      @@ -2335,6 +2354,7 @@ nsh> This initial support includes a configuration using the NuttShell (NSH) that might be the basis for an application development. A driver for the on-board segment LCD is included as well as an option to drive the segment LCD from an NSH "built-in" command. As of this writing, a few more things are needed to make this a more complete port: 1) Verfication of more device drivers (timers, quadrature encoders, PWM, etc.), and 2) logic that actually uses the low-power consumption modes of the EnergyLite part. + Refer to the NuttX board README file for further information.

      Memory Usage. @@ -2379,6 +2399,7 @@ nsh> This logic was extended to support the high density STM32F100RC chips by Freddie Chopin However, there is no specific board support for this chip families in the NuttX source tree. There is, however, generic support for STM32F100RC boards. + Refer to the NuttX board README file for further information.

    14. STMicro STM32F103C48 (STM32 F1 "Low- and Medium-Density Line"Family, ARM Cortex-M3)
    15. @@ -2400,6 +2421,7 @@ nsh> STATUS: The basic STM32F103C8 port was released in NuttX version 6.28. This work was contributed by Laurent Latil. + Refer to the NuttX board README file for further information.

      @@ -2422,18 +2444,22 @@ nsh>
    16. A port for the STMicro STM3210E-EVAL development board that features the STM32F103ZET6 MCU. + Refer to the NuttX board README file for further information.
    17. The ISOTEL NetClamps VSN V1.2 ready2go sensor network platform based on the STMicro STM32F103RET6. Contributed by Uros Platise. + Refer to the NuttX board README file for further information.
    18. A port for the HY-Mini STM32v board. This board is based on the STM32F103VCT chip. Contributed by Laurent Latil. + Refer to the NuttX board README file.
    19. The M3 Wildfire development board (STM32F103VET6), version 2. See http://firestm32.taobao.com (the current board is version 3). + Refer to the NuttX board README file for further information.

    @@ -2506,12 +2532,15 @@ nsh> Work is underway as of this writing to port NuttX to the Shenzhou IV development board (See www.armjishu.com) featuring the STMicro STM32F107VCT MCU. If all goes according to plan, this port should be verified and available in NuttX-6.22.

      - STATUS: - In progress. - The following have been verified: - (1) Basic Cortex-M3 port, - (2) Ethernet, - (3) On-board LEDs +

      + STATUS: + In progress. + The following have been verified: + (1) Basic Cortex-M3 port, + (2) Ethernet, + (3) On-board LEDs. + Refer to the NuttX board README file for further information. +

    @@ -2531,6 +2560,7 @@ nsh> STATUS: The peripherals of the STM32 F2 family are compatible with the STM32 F4 family. See discussion of the STM3240G-EVAL board below for further information. + Refer also to the NuttX board README file for further information. @@ -2558,11 +2588,12 @@ nsh> This LCD support includes an example using the NX graphics system. NuttX version 6.10 adds SPI support. + Touchscreen support was added in NuttX-6.29.

    - Subsequent NuttX releases will extend this port and add support for SDIO-based SD cards and - USB device (and possible LCD support). - These extensions may or may not happen soon as my plate is kind of full now. + Subsequent NuttX releases will extend this port and add support for the SDIO-based SD cards and + USB device. + Refer to the NuttX board README file for further information about this port.

    @@ -2592,6 +2623,7 @@ nsh> STATUS: As of this writing, the basic port is code complete and fully verified configurations exist for the basic NuttX OS test and for the NuttShell NSH). The first fully functional Arduino Due port was released in NuttX-6.29. + Refer to the NuttX board README file for further information.

    @@ -2653,6 +2685,7 @@ nsh>

  • The first functional release for the NXP LPC1768/Nucleus2G occured with NuttX 5.7 with Some additional enhancements through NuttX-5.9. + Refer to the NuttX board README file for further information.
  • @@ -2672,6 +2705,7 @@ nsh>
    • Support for the mbed board was contributed by Dave Marples and released in NuttX-5.11. + Refer to the NuttX board README file for further information.

    @@ -2697,6 +2731,9 @@ nsh>
  • The NuttX-5.17 released added support for low-speed USB devicers, interrupt endpoints, and a USB host HID keyboard class driver.
  • +
  • + Refer to the NuttX board README file for further information. +
  • @@ -2715,6 +2752,7 @@ nsh> An fully verified board configuration is included in NuttX-6.2. The Code Red toolchain is supported under either Linux or Windows. Verifed configurations include DHCPD, the NuttShell (NSH), NuttX graphis (NX), the NuttX OS test, THTTPD, and USB mass storage device. + Refer to the NuttX board README file for further information.

  • @@ -2726,6 +2764,7 @@ nsh> The Nuttx Buildroot toolchain is used by default. This is still a port under development. Verifed configurations include the "Hello, World!" example application and a THTTPD demonstration. + Refer to the NuttX board README file for further information.

  • @@ -2733,8 +2772,7 @@ nsh>

    This board configuration was contributed and made available in NuttX-6.20. As contributed board support, I am unsure of what all has been verfied and what has not. - See the Microment website for more information about the Lincoln60 board. - More to come. + See the Microment website Lincoln60 board and the NuttX board README file for further information about the Lincoln board.

  • @@ -2769,8 +2807,9 @@ nsh> The NSH configuration includes verfied support for a DMA-based SD card interface. The frame-buffer LCD driver is functional and uses the SDRAM for frame-buffer memory. A touchscreen interface has been developed but there appears to be a hardware issue with the WaveShare implementation of the XPT2046 touchscreen controller. - - + Refer to the NuttX board README file for further information. + + @@ -2797,6 +2836,7 @@ nsh> (2) bring up the NuttShell NSH, (3) develop support for the SDHC-based SD card, (4) develop support for USB host and device, and (2) develop an LCD driver. NOTE: Some of these remaining tasks are shared with the K60 work described below. + Refer to the NuttX board README file for further information.

    @@ -2826,6 +2866,7 @@ nsh> the Ethernet driver is completely untested. Additional work remaining includes: (1) integrate the Ethernet and SDHC drivers, and (2) develop support for USB host and device. NOTE: Most of these remaining tasks (excluding the Ethernet driver) are the same as the pending K40 tasks described above. + Refer to the NuttX board README file for further information.

    @@ -2848,6 +2889,7 @@ nsh> The basic port for the STM32F3-Discover was first released in NuttX-6.26. Many of the drivers previously released for the STM32 F1, Value Line, and F2 and F4 may be usable on this plaform as well. New drivers will be required for ADC and I2C which are very different on this platform. + Refer to the NuttX board README file for further information.

    @@ -2895,6 +2937,9 @@ nsh>
  • NuttX-6.21 A USB OTG host controller driver was added in NuttX 6.21.
  • +
  • + Refer to the NuttX board README file for further information. +
  • @@ -2913,13 +2958,14 @@ nsh>

  • Easy access to most MCU pins.
  • - Refer to the STMicro web site for further information about this board. + Refer to the STMicro web site for further information about this board and to

      STATUS: The basic port for the STM32F4-Discovery was contributed by Mike Smith and was first released in NuttX-6.14. All drivers listed for the STM3240G-EVAL are usable on this plaform as well. + Refer to the NuttX board README file for further information.

    @@ -2936,7 +2982,7 @@ nsh>

  • Battery connect and batter charger circuit.
  • - See the Mikroelektronika website for more information about this board. + See the Mikroelektronika website for more information about this board and the NuttX board README file for further information about the NuttX port.

      @@ -2980,13 +3026,14 @@ nsh>

      STATUS: + Refer to the NuttX board README file for more detailed information about this port.

      • NuttX-6.20 The basic port is complete. The OS test configuration and the basic NSH configurations are present and fully verified. - This includes verified support for: SYSTICK system time, pin and GPIO configuration, and a serial console. + This includes verified support for: SYSTICK system time, pin and GPIO configuration, and a serial console.

        Several drivers have been copied from the related LPC17xx port but require integration into the LPC43xx: ADC, DAC, GPDMA, I2C, SPI, and SSP. @@ -3057,6 +3104,7 @@ nsh> STATUS: As of this writing, the basic port is code complete and fully verified configurations exist for the basic NuttX OS test and for the NuttShell NSH). The first fully functional SAM4L Xplained Pro port was released in NuttX-6.28. + Refer to the NuttX board README file for further information.

        Memory Usage. @@ -3108,6 +3156,7 @@ Mem: 29232 5920 23312 23312 As of this writing, the basic port is code complete and fully verified configurations exist for the basic NuttX OS test and for the NuttShell NSH). The first fully functional SAM4S Xplained port was released in NuttX-6.28. Support for the on-board 1MB SRAM was added in NuttX-6.29. + Refer to the NuttX board README file for further information.

      @@ -3149,6 +3198,7 @@ Mem: 29232 5920 23312 23312 STATUS: Work on this port has stalled due to toolchain issues. Complete, but untested code for this port appears in the NuttX 6.5 release. + Refer to the NuttX board README file for further information.

    @@ -3177,6 +3227,7 @@ Mem: 29232 5920 23312 23312 The basic port was released in NuttX-6.5. This basic port consists only of a "Hello, World!!" example that demonstrates initialization of the OS, creation of a simple task, and serial console output. + Refer to the NuttX board README file for further information.

    @@ -3198,6 +3249,7 @@ Mem: 29232 5920 23312 23312 An SPI driver and a USB device driver exist for the AT90USB as well as a USB mass storage configureation. However, this configuration is not fully debugged as of the NuttX-6.5 release. + Refer to the NuttX board README file for further information.

    @@ -3289,6 +3341,7 @@ Mem: 29232 5920 23312 23312 The basic, port (including the verified apps/examples/ostest configuration) was be released in NuttX-5.13. A complete port will include drivers for additional AVR32 UC3 devices -- like SPI and USB --- and will be available in a later release, time permitting. + Refer to the NuttX board README file for further information.

    @@ -3325,6 +3378,7 @@ Mem: 29232 5920 23312 23312 However, testing has not yet begun due to issues with BDMs, Code Warrior, and the paging in the build process. Progress is slow, but I hope to see a fully verified MC9S12NE64 port in the near future. + Refer to the NuttX board README files for DEMO9S12NE64 and for the NE64 /PoE Badge for further information.

    @@ -3351,6 +3405,7 @@ Mem: 29232 5920 23312 23312 address space during interrupt handling. This architecture has not been built in some time will likely have some compilation problems because of SDCC compiler differences. + Refer to the NuttX board README file for further information.

    @@ -3376,6 +3431,7 @@ Mem: 29232 5920 23312 23312 The port was verified using the OS and NuttShell (NSH) examples under QEMU. The port is reported to be functional on the Bifferboard as well. This is a great, stable starting point for anyone interest in fleshing out the x86 port! + Refer to the NuttX README file for further information.

    @@ -3403,6 +3459,7 @@ Mem: 29232 5920 23312 23312 This initial port of NuttX to RGMP was provided in NuttX-6.3. This initial RGP port provides only minimal driver support and does not use the native NuttX interrupt system. This is a great, stable starting point for anyone interest in working with NuttX under RGMP! + Refer to the NuttX README file for further information.

    @@ -3434,6 +3491,7 @@ Mem: 29232 5920 23312 23312 The PGA117, however, is not yet fully integrated to support ADC sampling. See the NSH User Guide for further information about NSH. The first verified port to the Mirtoo module was available with the NuttX 6.20 release. + Refer to the NuttX board README file for further information.

    @@ -3467,6 +3525,7 @@ Mem: 29232 5920 23312 23312 An untested USB device-side driver is available in the source tree. A more complete port would include support of the USB OTG port and of the LCD display on this board. Those drivers are not yet available as of this writing. + Refer to the NuttX board README file for further information.

    @@ -3482,6 +3541,7 @@ Mem: 29232 5920 23312 23312 STATUS: The basic port is code complete and fully verified in NuttX 6.13. Available configurations include the OS test and the NuttShell (NSH - see the NSH User Guide). + Refer to the NuttX board README file for further information.

  • UBW32 Board from Sparkfun This is the port to the Sparkfun UBW32 board. @@ -3494,6 +3554,7 @@ Mem: 29232 5920 23312 23312 The basic port is code complete and fully verified in NuttX 6.18. Available configurations include the OS test and the NuttShell (NSH - see the NSH User Guide). USB has not yet been fully tested but on first pass appears to be functional. + Refer to the NuttX board README file for further information.

    @@ -3524,7 +3585,7 @@ Mem: 29232 5920 23312 23312 Verified configurations for the OS test and the NuttShel (NSH) appeared in NuttX-6.16. Board support includes a verified USB (device-side) driver. Also included are a a verified Ethernet driver, a partially verified USB device controller driver, and an unverifed SPI driver. - Stay tuned for updates. + Refer to the NuttX board README file for further information.

  • Mikroelektronika PIC32MX7 Mulitmedia Board (MMB). A port has been completed for the Mikroelektronika PIC32MX7 Multimedia Board (MMB). @@ -3547,6 +3608,7 @@ Mem: 29232 5920 23312 23312 However, additional verification and tuning of this driver is required. Further display/touchscreen verification would require C++ support (for NxWidgets and NxWM). Since I there is no PIC32 C++ is the free version of the MPLAB C32 toolchain, further graphics development is stalled. + Refer to the NuttX board README file for further information.

    @@ -3598,6 +3660,7 @@ Mem: 29232 5920 23312 23312 (which has very limit SH-1 support to begin with), or perhaps with the CMON debugger. At any rate, I have exhausted all of the energy that I am willing to put into this cool old processor for the time being. + Refer to the NuttX board README file for further information.

    @@ -3621,7 +3684,7 @@ Mem: 29232 5920 23312 23312 STATUS: Initial source files released in nuttx-0.4.2. At this point, the port has not been integrated; the target cannot be built - because the GNU m16c-nuttx-elf-ld link fails with the following message: + because the GNU m16c-nuttx-elf-ld link fails with the following message:

      m32c-nuttx-elf-ld: BFD (GNU Binutils) 2.19 assertion fail /home/Owner/projects/nuttx/buildroot/toolchain_build_m32c/binutils-2.19/bfd/elf32-m32c.c:482 @@ -3633,8 +3696,8 @@ Mem: 29232 5920 23312 23312 BFD_ASSERT (*plt_offset != (bfd_vma) -1);

    - No workaround is known at this time. This is a show stopper for M16C for - the time being. + No workaround is known at this time. This is a show stopper for M16C. + Refer to the NuttX board README file for further information.

    @@ -3658,6 +3721,7 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1);

    STATUS: The initial release of support for the z16f was made available in NuttX version 0.3.7. + Refer to the NuttX board README file for further information.

    @@ -3691,6 +3755,7 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1); The first integrated version was released in NuttX version 0.4.2 (with important early bugfixes in 0.4.3 and 0.4.4). As of this writing, that port provides basic board support with a serial console, SPI, and eZ80F91 EMAC driver. + Refer to the NuttX board README files for the ez80f0910200kitg and ez80f910200zcofile for further information.

    @@ -3721,6 +3786,7 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1); STATUS: This release has been verified only on the ZiLOG ZDS-II Z8Encore! chip simulation as of nuttx-0.3.9. + Refer to the NuttX board README files for the z8encore000zco and for thez8f64200100kit for further information.

      @@ -3748,8 +3814,9 @@ parallel and diskette IO, and realtime clock, in a 3.5-inch drive form factor..

      STATUS: Most of the NuttX is in port for both the Z80182 and for the P112 board. - Boards from Kickstarter project will not be available, however, until the first quarter of 2013. + Boards from Kickstarter project will not be available, however, until the third quarter of 2013. So it will be some time before this port is verified on hardware. + Refer to the NuttX board README file for further information.

        @@ -3776,6 +3843,7 @@ parallel and diskette IO, and realtime clock, in a 3.5-inch drive form factor.. STATUS: This port is complete and stable to the extent that it can be tested using an instruction set simulator. + Refer to the NuttX board README file for further information.

          @@ -3799,6 +3867,7 @@ parallel and diskette IO, and realtime clock, in a 3.5-inch drive form factor.. STATUS: Basically the same as for the Z80 instruction set simulator. This port was contributed by Jacques Pelletier. + Refer to the NuttX board README file for further information.

          + + + + ARM Cortex-A5. + + + +
          + +

          + Atmel SAMA5D. + This is the port of NuttX to the Atmel SAMA5D3x-EK development boards (where x=1,3,4, or 5). + These boards feature the Atmel SAMA5D3 microprocessors. + Four different SAMA5D3x-EK kits are available +

          + +

          + The each kit consist of an identical base board with different plug-in modules for each CPU. + An option 7 inch LCD is also available. + All four boards are supported by NuttX with a simple reconfiguration of the processor type. +

          +

          + There is also the SAMA5D3FAE-EK bundle includes everything: The base board, all four CPU modules, and the LCD. +

          +
            +

            + STATUS. + Initial support for the NUC120 was released in NuttX-6.29. + This initial support is very minimal: + There are simple test configurations that run out of internal SRAM and two configurations that run out of the on-boar NOR FLASH: + (1) An OS test configuration that verifies the correct port of NuttX to the part and + (2) a NuttShell (NSH) configuration that might be the basis for further application development. + As of this writing, more device drivers are needed to make this a more complete port. + Refer to the NuttX board README file for further information. +

            + Development Environments: + 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS with Windows native toolchain, or 4) Native Windows. + All testing has been perfomed with the CodeSourcery toolchain (GCC version 4.7.3) in the Cygwin environment under Windows. +

            + + From b6b6d79e71c1d980273a77328ac33816ccff1f68 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 31 Jul 2013 14:25:06 -0600 Subject: [PATCH 1172/1518] Prep for NuttX-6.29 release --- Documentation/NuttX.html | 1106 ++++++++++++++++---------------------- 1 file changed, 466 insertions(+), 640 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 658f86b9b9..0ddd3a00fb 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1103,81 +1103,54 @@ -

            NuttX-6.28 Release Notes

            +

            NuttX-6.29 Release Notes

            - The 95th release of NuttX, Version 6.28, was made on June 14, 2013, and is available for download from the + The 95th release of NuttX, Version 6.29, was made on July 31, 2013, and is available for download from the SourceForge website. - Note that the release consists of two tarballs: nuttx-6.28.tar.gz and apps-6.28.tar.gz. + Note that the release consists of two tarballs: nuttx-6.29.tar.gz and apps-6.29.tar.gz. Both may be needed (see the top-level nuttx/README.txt file for build information) The change log associated with the release is available here. Unreleased changes after this release are available in GIT. These unreleased changes are also listed here.

            +

            Additional new features and extended functionality

            +
            • - File Systems + Drivers

              • - SMART FLASH file system (contributed by Add Ken Pettit). + Generalized the SSD1306 driver and added support UG-2832HSWEG04 which is very similar to the existing support for the UG-2864HSWEG01. +
              • + Added support for a generic bit-bang SPI driver. + This includes + both a common "upper half" driver as well as a platform-specific "lower half " drivers based on a common "template. "
            • - MTD (FLASH) Drivers + ARMv7-A, Cortex-A5

              • - Add support of MTD partitions via a new MTD driver that manages a - set of MTD devices, each managing a subset of the FLASH region - managed by the parent MTD driver. -
              • -
              • - Extended the MTD interface to provide an (optional) method to - perform byte oriented writes if supported by the FLASH part. -
              • -
              • - M25Px driver re-architected to use the byte write capability (when - possible) and to use 4KB sectors for the erase block size when the - part supports it (from Ken Pettit). + Added support for the ARMv7-A architecture and the Cortex-A5 in particular.
            • - LCD Drivers + ARMv7-M, Cortex-M3/4

              • - New interface definitions to support audio devices (from Ken Pettit) - and alphanumeric, segment LCDs. -
              • -
              -
            • -
            • -

              - Wireless Drivers -

              -
                -
              • - Added new driver for the wireless nRF24L01+ transceiver (from - Laurent Latil). -
              • -
              -
            • -
            • -

              - Calypso -

              -
                -
              • - Added support for the Pirelli DP-L10 phone (from Craig Comstock via - Alan Alan Carvalho de Assis) + Modified how some registers are copied during a context switch (with "lazy" FPU register saving). + This should save some context switching time when the context switch is due to interrupt level processing.
            • @@ -1187,20 +1160,8 @@

              • - Added an option to conditionally disable the "wfi" sleep mode. This - is needed with certain JTAG debuggers to to prevent the debug - session from begin disconnected (from Ken Pettit). -
              • -
              • - Added support for the STM32L (STM32L15X/STM32L16x) family. -
              • -
              • - Added STM32F103C4 and F103C8 chip support (from Laurent Latil). -
              • -
              • - Added a new interface function, stm32_dmacapable() that can be used - to determine if DMA is possible from the specified memory address - (from Petteri Aimonen) + Added support for a separate CCM memory heap. + This may be useful for segregating allocations for CCM memory (which cannot be used for DMA) from other allocations (that may be used used for DMA).
              @@ -1210,109 +1171,88 @@

              • - If CONFIG_STM32_DMACAPABLE is defined, the STM32 SPI driver now uses - stm32_dmacapable() to determine if it is possible to perform DMA - from the specified address. This change is important for the STM32 - F4 which may have SPI data buffers allocated on the stack in CCM - memory which cannot support the DMA (from Petteri Aimonen). + DAC: Added support for DAC DMA (contributed by John Wharington). +
              • + I2C: An I2C driver for the STM32 F3 family (from John Wharington).
            • - STM32 Boards + Atmel AT91 SAM/4

              • - Support added for the MikroElektronika Mikromedia for STM32F4 - development board (from Ken Pettit) with the MIO283QT2 LCD and - touchscreen. Several graphics configurations are included. -
              • -
              • - The HY-mini STM32v board now uses the common SSD1289 driver - and supported the card detect interrupt. Several new - configurations also added and some removed (from Laurent Latil). -
              • -
              • - Support added for the R65105-based LCD that comes with some - HY-Mini STM32v boards (from Christian Faure). -
              • -
              • - Added basic support for the STM32L-Discovery board. Drivers - for the on-board segment LCD are included. -
              • -
              • - Added support for the STM32 Tiny development board based on the - STM32 F103C8T6 MCU. This includes support for the nRF24L01+ - wireless on the board (from Laurent Latil). + Add support for SAM3X and SAM3A chips
            • - Stellaris LM3S/LM4F + Atmel AT91 SAM/4 Drivers

              • - Support added for a TI/Stellaris internal FLASH MTD driver (from Max - Holtzberg). + Re-architect the SAM3/4 SPI driver so that is it compatible with the SPI drivers of other MCUs. +
              • + Added register definition file for the SAM4L LCD peripheral. +
              • + Added SAM4L PDCA register definition file
            • - Stellaris LM4F Boards + Atmel AT91 SAM/4 Boards

              • - The LM3S6965-EK now has configurations for the UDP discovery tool and - for the TCP echo server (both from Max Holtzberg) + SAM4L-Xplained: Added support for the SPI-based SD card on the I/O1 module. +
              • + SAM4L-Xplained: Added a driver for the LED1 segment LCD module. +
              • + SAM4L-Xplained: Added support for the UG-2832HSWEG04 OLED on the SAM4L Xplained Pro's OLED1 module +
              • + SAM4S-Xplained: Added support for on-board 1MB SRAM. +
              • + Arduino Due: Basic support for the Arduino Due (SAM3X) is now included. +
              • + SAM3U-EK: The touchscreen is now functional.
            • - Atmel ATSAM3/4 + Atmel AT91 SAMA5D3

              • - Reorganized, renamed, and updated directory structure to better - support additional members of the SAM3/4 family. -
              • -
              • - Added support for both the ATSAM4S and ATSAM4L families. The - ATSAM4S is similar to the ATSAM3U, but the ATSAM4L is quite a - different beast, really much more akin to the AVR32s SoCs but - with a Cortex-M4. + Added support for the Atmel AT91SAMA5D3 Cortex-A5 chip family.
            • - Atmel ATSAM3/4 Boards + Atmel AT91 SAMA5D3 Boards

              • - Added support for the Atmel SAM4L Xplained Pro development board. - This board features the ATSAM4LC4C MCU (Cortex-M4 with 256KB FLASH + - 32KB SRAM). -
              • -
              • - Added support for the Atmel SAM4S Xplained developement board. This - board features the ATSAM4S16C MCU (Cortex-M4 with 1MB FLASH + 128KB - SRAM). + Added support for the Atmel SAMA5D3x-EK boards which use the AT91 SAMA5D3x chips (x=1,3,4,5).
            • - PIC32MX Boards + Freescale KL25Z Drivers

              • - Added support for the 1602 segment LCD on-board the Sure PIC32MX - board. This board will now also support a USB NuttX console and - the USB monitor test program. + Freescale KL25Z TSI register definitions and example TSI driver for the Freedom KL25Z board from Alan Carvalho de Assis. +
              • + Added SPI driver and register definitions for the Freescale KL25Z. +
              • + Added a framework for controlling SPI-related discrete inputs and outputs. + Taken from work by Alan Carvalho de Assis
            • @@ -1322,20 +1262,13 @@

              • - Clean-up of almost all .gitignore files: Made scope of ignore to be - only the current directory; Ignore .dSYM files in directories where - .exe's may be built. Also, in Makefiles, clean .dSYM files in - directories where an .exe may be built. -
              • + New sub-directories to hold SPI-related files: + includes/nuttx/spi.h moved to include/nuttx/spi/.; + SPI-related configuration logic moved from drivers/Kconfig to drivers/spi/kconfig.
              • - Standardize and consolidated all build-as-an-NSH-application - configuration settings. Now only CONFIG_NSH_BUILTIN_APPS is - sufficient to build an application, test, or or example as an NSH - builtin application. -
              • -
              • - Added support for a generic ARM, ARMv6-M and ARMv7-M Windows EABI - toolchains. + Finally... I changed the naming of configuration variables like CONFIG_DRAM_ to CONFIG_RAM_. + This has bothered me for a long time since most boards don't have DRAM. + The more generic RAM naming should not produce so much cognitive dissonance.
              @@ -1345,17 +1278,7 @@

              • - Added encoder/decoder logic to marshal and serialize special segment - LCD (SLCD) commands intermixed with normal ASCII data. This is the - similar to the encoding/decoding logic that is used to marshal - special commands from a keyboard. -
              • -
              • - Add dprintf() and vdprintf() (the latter from Andrew Tridgell). -
              • -
              • - Add an application that may be built as an NSH builtin command that - will erase FLASH using a flash_eraseall NSH command (from Ken Pettit). + Added CRC16 support.
              @@ -1365,49 +1288,31 @@

              • - Added an MTD partition test/examples. Currently used with (1) the a - simulation configuration to test MTD partitions on a RAM emulation - of FLASH and (2) with the Mikroe STM32F4 configuration. -
              • + Added Zmodem file transfer support. + This may be used as an embedded library or may be built as sz and rz commands that can be executed from the NSH command line.
              • - Added a test/example to verify alphanumeric, segment LCDs. -
              • + C++ initializers should be set once and, preferably, in the context of the task that uses any C++ statically initialized classes. + This only becomes an issue if cxxtest or helloxx are built as NSH builtin applications. + Then you want the initialization done in the context of cxxtext or helloxx tasks and not in the NSH task context(and certainly not twice). + Added configuration options to control who does the C++ initialization. + NSH now does not do C++ initialization be default and must be configured to do otherwise. Conversely, cxxtest and helloxx will always do C++ initialization unless configured do otherwise.
              • - Added a simple single threaded, poll based TCP echo server based - on W. Richard Stevens UNIX Network Programming Book (from Max - Holtzberg). -
              • + examples/cxxtext: Add an ostream test as provided by Michael.
              • - Added several tests of the SMART block driver and file system (from - Ken Pettit). -
              • -
              • - Added a runtime configuration for the UDP discover utility (from - Max Holtzberg). -
              • -
              • - Added an example application to demo the nRF24L01 driver (from - Laurent Latil). -
              • -
              • - New and modified NSH commands: -
                  -
                • - Added a -h option to the df command to show the volume information in human readable form (from Ken Petit). -
                • -
                • - Add a new mksmartfs command (from Ken Petit). -
                • -
                + NSH: Added a cmp command that can be used to compare two files for equivalence. + Returns an indication if the files differ. + Contributed by Andrew Tridgell (via Lorenz Meier).
              +

            Efforts In Progress. The following are features that are partially implemented but present in this release. - Most are expected to be fully available in NuttX 6.29. + They are not likely be be completed soon.

            +
            • @@ -1415,12 +1320,9 @@

              • - A complete audio subsystem include CODECs, higher level management, - interface definitions, and audio drivers was contributed by Ken - Pettit. This work has not been completely verified as of this - release and so is categorized as a work-in-progress. At present, - progress is blocked due to issues interfacing with the VS1053 - audio DAC on the Mikroe STM32F4 board. + A complete audio subsystem include CODECs, higher level management, interface definitions, and audio drivers was contributed by Ken Pettit. + This work has not been completely verified as of this release and so is categorized as a work-in-progress. + At present, progress is blocked due to issues interfacing with the VS1053 audio DAC on the Mikroe STM32F4 board.
            • @@ -1430,62 +1332,46 @@

              • - Conversion of old configurations to use the kconfig-frontends - tool is an ongoing effort that will continue for some time. - At this time, only 43% of the configurations have been converted - to use the kconfig-frontends tools. + Conversion of old configurations to use the kconfig-frontends tool is an ongoing effort that will continue for some time. + At this time, only 45% of the configurations have been converted to use the kconfig-frontends tools.
            +

            Bugfixes (see the change log for details). Some of these are very important:

            +
            • - Tasking + File Systems

              • - Modify assertion in the priority inheritance logic that is reported - to cause false alarm assertions. + Fixed compilation error if no file systems are enabled: Change error to ERROR. +
              • + Read-Ahead/Write buffering: Correct typos that can cause failures in some configurations (From Chia Cheng Tsao).
            • - Kernel Build + Driver

              • - Typo in syscall proxying logic corrected by Ken Pettit. -
              • -
              -
            • -
            • -

              - Networking -

              -
                + Remove the wait for the touchscreen busy bit in the ADS7843E driver. + From my reading of the ADS7843 spec, it would not be appropriate to wait for the BUSY bit to de-asserted anyway (since it is only de-asserted when we read the data). + Most boards do not even bother to provide the BUSY bit.
              • - Poll setup/teardown logic should ignore invalid (i.e., negative) - file descriptors (from Max Holtzberg). -
              • + MMC/SD SPI based driver: + Driver needs to make sure that the SPI mode and data width are correct.
              • - When readahead data is available, the network poll() logic should - set POLLIN (or POLLRDNORM), not POLLOUT (from Max Holtzberg). -
              • -
              -
            • -
            • -

              - LCD Drivers -

              -
                -
              • - Correct power controls in the MIO283QT2 LCD driver. + ENC28J60: Change buffer ordering to work around Errata. + From Dave (ziggurat29).
            • @@ -1495,10 +1381,21 @@

              • - Change the default IN request buffer size from 64 to 96. This will - avoid requests of exactly MAXPACKET size and, hence, avoid so many - NULL packets. Also, fix the OUT request buffers size to exactly the - max packet size. It really cannot be any other size. + Fixed a typo in the composite device driver unitialization logic. + DEV1 should be DEV2 in one case. +
              • + usbdev.h: Fix some typos that cause compiler errors when CONFIG_USBDEV_DMA and CONFIG_USBDEV_DMAMEMORY are selected (From Chia Cheng Tsao). +
              • +
              + +
            • +

              + ARM9 +

              +
                +
              • + Fix a bug (uninitialized register error) that crept in the ARM9 boot-up code several years ago. + Obviously no one has used the ARM9 NuttX port for years!
            • @@ -1508,77 +1405,56 @@

              • - Correct some bad STM32 F1 DMA definitions that crept into the system - a few months ago a broke STM32 F1 DMA (from Laurent Latil) -
              • + Fix STM32 OTF FS endpoint allocation logic. + Apparently the same endpoint can be allocated as both an IN or an OUT endpoint. + The existing implementation only supported one allocation, either IN or OUT. + This resulted in failures to allocate endpoints when used with the CDC/ACM + MSC composite driver (From Chia Cheng Tsao).
              • - Fixed an error in NULL packet handling in the STM32 F1 USB device - controller driver: If the NULL-packet needed flag ever got set, - then it was not being cleared and infinite NULL packets resulted. - This only affects the CDC/ACM class and was the cause of the - failures using the USB CDC/ACM device as a NuttX console. With this - change the USB works well as an alternative NuttX console device for - the STM32 F1 family. -
              • + SDIO: Add support for the data block end (DBCKEND) interrupt to terminate transfers (From Chia Cheng Tsao).
              • - Correct some bad condition compilation in the RCC logic (CONFIG_ - missing from setting names). This affects some STM32 FLASH pre- - fetch settings (from Lorenz Meier). -
              • -
              • - Change for hardware flow control support for STM32. The change also - fixes incorrect operation of USART2 and UART5 in current master - (from Lorenz Meier and Mike Smith). -
              • -
              • - Fixed a backward conditional in USB OTG FS host controller driver - that prevented detection of disconnection events (from Scott). + DAC: Fixed numerous DAC driver errors and added support for DAC DMA (contributed by John Wharington).
            • - LPC17xx Drivers + SAM3/4

              • - I2C interrupt control. Also correction for a single byte read - timeout error (from M. Kannan). + SAM4S: Correct configuration of PIO pins for SAM4S B and C peripherals. +
              • + Need to disable write protection before configuring PIO pins. +
              • + GPIO configuration logic must protect against re-entrancy. +
              • + Clocking must be applied to the SMC module for the 3X and 3A family in order for the NFC SRAM to be functional. +
              • + Fixed some errors for interrupts on ports D-F.
            • - Freescale Kinetis + SAM3/4 Drivers

              • - Freedom KL25Z pin multiplexing and LED control corrections (from - Alan Carvalho de Assis) + Common SPI driver: Fix SPI mode setting. + In the SAM3/4 family, the clock phase control (CPHA) is inverted (NPHA). + Also fixed an incorrect pointer test. + It was checking if the wrong pointer was NULL.
            • - PIC32MX + SAM3/4 Boards

              • - Fix NULL packet handling in the PIC32 USB device driver. Without - this fix the CDC/ACM driver cannot be used reliably with the PIC32 - USB. With this change the USB works well as an alternative NuttX - console device. -
              • -
              -
            • -
            • -

              - Graphics -

              -
                -
              • - Default priorities for NxWidget and NxWM threads should be 100, - not 50, to be consistent with other default priorities. + SAM3U-EK: Fix polarity of the /PENIRQ signal (it is active low). + The SAM3U-EK board now runs at 96MHz.
            • @@ -1588,18 +1464,12 @@

              • - Remove the CONFIG_EXAMPLES_NXTEXT_NOGETRUN option from the NXTEXT - example. The test logic was bad for the case where this options is - not selected. Also, completed the empty Kconfig file. -
              • + apps/examples/nxhello: Minor fix for compilation error when the display resolution is low (< 8bpp) due to a typo that has been there for a long time. + Also Correct default colors when in Y1 code mode.
              • - C++ name mangling was occurring when this example is built as an NSH - built-in application causing the entry to be undefined when called - from C code. -
              • + apps/system/ramtest: The RAM test was not correctly builtinto the configuration and build system.
              • - Add some missing NSH library configuration values (from Lorenz - Meier). + apps/examples/composite: Change to prevent some false alarm debug assertions (From Chia Cheng Tao).
              @@ -2105,9 +1975,9 @@

              Atmel SAMA5D. - This is the port of NuttX to the Atmel SAMA5D3x-EK development boards (where x=1,3,4, or 5). - These boards feature the Atmel SAMA5D3 microprocessors. - Four different SAMA5D3x-EK kits are available + This is the port of NuttX to the Atmel SAMA5D3x-EK development boards (where x=1,3,4, or 5). + These boards feature the Atmel SAMA5D3x microprocessors. + Four different SAMA5D3x-EK kits are available

              • SAMA5D31-EK with the ATSAMA5D1
              • @@ -2219,6 +2089,7 @@ nsh> Verified, initial, minimal support for the Freedom KL25Z is in place in NuttX 6.27 and 6.28: There is a working OS test configuration that verifies the correct port of NuttX to the part and a working NuttShell (NSH) configuration that might be the basis for an application development. As of NuttX-6.28 more device driver development would be needed to make this a complete port, particularly to support USB OTG. + A TSI and a SPI driver were added in NuttX-6.29. Refer to the NuttX board README file for further information.

              @@ -3143,7 +3014,7 @@ nsh>

              - Atmel AT91SAM4L. + Atmel AT91 SAM4L. This port uses the Atmel SAM4L Xplained Pro development board. This board features the ATSAM4LC4C MCU running at 48MHz with 256KB of FLASH and 32KB of internal SRAM.

              @@ -3152,6 +3023,20 @@ nsh> STATUS: As of this writing, the basic port is code complete and fully verified configurations exist for the basic NuttX OS test and for the NuttShell NSH). The first fully functional SAM4L Xplained Pro port was released in NuttX-6.28. + Support for the SAM4L Xplained modules was added in NuttX-6.29: +

              +
                +
              • + Support for the SPI-based SD card on the I/O1 module. +
              • +
              • + Driver for the LED1 segment LCD module. +
              • +
              • + Support for the UG-2832HSWEG04 OLED on the SAM4L Xplained Pro's OLED1 module +
              • +
              +

              Refer to the NuttX board README file for further information.

              @@ -4319,386 +4204,327 @@ Other memory:

                -6.28 2013-06-14 Gregory Nutt <gnutt@nuttx.org>
                +6.29 2013-07-31 Gregory Nutt <gnutt@nuttx.org>
                 
                -    * arch/arm/src/lpc17xx/lpc17_i2c.c:  Interrupts were not being
                -      re-enabled in the I2C intialization function (2013-4-30).
                -    * net/sendto.c:  Added skeleton of implementation of send timeouts
                -      for UDP.  However, this functionality really does not make
                -      sense, so it is disabled in the code (2013-4-30).
                -    * drivers/mtd/mtd_partition.c:  Support capability to clone one
                -      MTD driver into several, MTD partition drivers, each of which
                -      can manage a sub-region of the FLASH (2013-4-30).
                -    * configs/sim/nxffs:  Converted to use the kconfig-frontends
                -      tools (20130-4-30).
                -    * configs/sim/mtdpart:  A new configuration to test MTD
                -      partitions (2013-4-30).
                -    * configs/sim/mkroe-stm32f4:  Support for the MikroElektronika
                -      Mikromedia for STM32F4 development board (from Ken Pettit, 2013-4-30).
                -    * fs/smartfs:  Add Ken Pettit SMART FS (2013-4-30).
                -    * include/nuttx/mtd.h and most MTD drivers:  Add support for
                -      (optional) method to perform byte oriented writes if so configured
                -      (2013-5-1).
                -    * arch/arm/src/kl/chip/kl25z128_pinmux.h:  Corrections fo the
                -      pin multiplexing definitions from Alan Carvalho de Assis
                -      (2013-5-2).
                -    * drivers/mtd/mtd_partition.c:  Fix a few bugs and add support for the
                -      (option) byte write method (2013-5-3).
                -    * arch/arm/src/kl:  Repartitioning of definitions in header files
                -      from Alan Carvalho de Assis (2013-5-3).
                -    * drivers/mtd/smart.c, fs/smart, and other files:  SMART file system
                -      now makes use of the MTD byte write capabilities when present (from
                -      Ken Pettit, 2013-5-3).
                -    * drivers/mtd/m25px.c:  Some rearchitecting to use the byte write
                -      capability (when possible) and to use 4KB sectors for the erase block
                -      size when the part supports it (Ken Pettit, 2013-5-3).
                -    * configs/pirelli_dpl10: Adds a configuration for the pirelli phone
                -      (from Craig Comstock via Alan Alan Carvalho de Assis, 2013-5-3).
                -    * arch/arm/src/calypso:  Fix some compilation warnings (2013-5-5).
                -    * configs/pirelli_dpl10/nsh_highram:  Converted to use the
                -      kconfig-frontends tools (2013-5-5).
                -    * drivers/lcd/mio283qt2.c:  LCD was not being selected in setpower
                -      method (also not being deselected in hwinitialize function)
                -      (2013-5-6).
                -    * arch/arm/src/kl/kl_gpio.c and .h, configs/freedom-kl25z/src/freedom-kl25z.h,
                -      and configs/freedom-kl25z/src/kl_led.c:  Fixes LEDs on the Freedom KL25Z
                -      board (2013-5-6).
                -    * arch/arm/src/kinetis/kinetis_pin.c and arch/arm/src/kinetis/kinetis_internal.h:
                -      The Kinetis GPIO logic had some of the same issues as did the
                -      Kinetis L (2013-5-6).
                -    * arch/arm/src/stm32/stm32_idle.c: Add an option to conditionally disable
                -      the "wfi" sleep mode.  This is needed with certain JTAG debuggers to
                -      to prevent the debug session from begin disconnected.  From Ken Pettit
                -      (2013-5-7).
                -    * configs/mikroe-stm32f4/fulldemo/, nx/, nxlines/, nxtext/:  Add more
                -      configurations for the Mikroelektronika Multimedia STM32-M4 board.
                -      From Ken Pettit (2013-5-7).
                -    * configs/mikroe-stm32f4/src/up_mio283qt2.c and other files:  Integrate the
                -      MIO283QT2 display on the Mikroelektronika Multimedia STM32-M4 board.
                -      From Ken Pettit (2013-5-7).
                -    * arch/arm/src/lpc17xx/lpc17_i2c.c:  Fix for lpc17xx i2c single byte read
                -      timeout error problem from M.Kannan (2013-5-8).
                -    * arch/arm/src/stm32/stm32_adc.c:  Typo in F2/F4 specific logic:  ACD_
                -      instead of ADC_.  From Ken Pettit (2014-5-8).
                -    * configs/olimex-lpc1766stk/tools:  Tweaks to support OpenOCD-0.70
                -      (2013-5-10).
                -    * configs/mikroe-stm32f4:  Changes to get the Mikroelektronika MultiMedia
                -      STM32 F4 touchsceen working.  From Ken Pettit (2013-5-11).
                -    * configs/*/nxwm:  Default priorities for NxWidget and NxWM threads
                -      should be 100, not 50, to be consistent with other default priorities.
                -    * configs/hymini-stm32v/buttons, nsh, and nsh2:  Configurations converted
                -      to use the kconfig-frontends tools (Laurent Latil, 2013-5-14)
                -    * configs/hymini-stm32v/src:  Converted to use the common SSD1289 driver
                -      (Laurent Latil, 2013-5-14)
                -    * configs/hymini-stm32v/ostest and usbnsh:  Add OS test and USB/NSH
                -      configurations (Laurent Latil, 2013-5-14).
                -    * configs/hymini-stm32v/src/up_nsh.c:  Add support for the card detect
                -      (CD) interrupt (Laurent Latil, 2013-5-14).
                -    * configs/hymini-stm32v/src/nx and nxlines:  Removed these configurations
                -      (Laurent Latil, 2013-5-14).
                -    * arch/arm/src/stm32/chip/stm32f10xx_dma.h:  Fix some bad DMA register
                -      definitions.  From Laurent Latil (2013-5-15).
                -    * configs/hymini-stm32v:  Enable SDIO in nsh2 configuration; remove
                -      warning from src/up_ssd1289.c.  From Laurent Latil (2013-5-15).
                -    * configs/hymini-stm32v/src/up_r61505u.c:   Support for the R65105-
                -      based LCD that comes with some HY-Mini STM32v board.  From Christian
                -      Faure (2013-5-16).
                -    * syscall/syscall_lookup.h:  Missing underscore character in SYS_onexit.
                -      Reported by Ken Pettit (2013-5-17).
                -    * nuttx/syscall/syscall.csv:  Type of first parameter of on_exit() is
                -      wrong. Reported by Ken Pettit (2013-5-17).
                -    * configs/mikroe-stm32f4/kernel/, kostest/ and scripts/:  Add kernel build
                -      support and kernel mode OS test example for the the MikroElektronkia
                -      MultiMedia STM32 M4 board.  From Ken Pettit (2013-5-17).
                -    * arch/arm/include/stm32/chip.h and arch/arm/src/stme32/chip/stm32l15xxx_pinmap.h:
                -      Beginning of support for the STM32L15X family (2013-5-18).
                -    * arch/arm/include/stm32/stm32l15xxx_irq.h and arch/arm/src/stm32/chip/stm32l15xxx_vectors.h:
                -      Support for STM32L15X interrupt vectors (2013-5-18).
                -    * arch/arm/src/stm32/chip/stm32l15xxx_gpio.h and related STM32 GPIO files:
                -      Add GPIO support for the STM32L215X (2013-5-18).
                -    * arch/arm/src/stm32/chip/stm32l15xxx_memorymap.h: STM32L215X memory map
                -     (2013-5-18).
                -    * arch/arm/src/stm32/chip/stm32_pwr.h, stm32fl15xxx_rcc.h, and stm32l15xxx_syscfg.h:
                -      More updates for the STM32L152 (2013-5-19).
                -    * configs/stm32ldiscovey: Configuration for the STM32L-Discovery board.
                -      Still does not build on initial check-in (2013-5-19)
                -    * STM32L15X:  Add DMA and UART start.  Correctly initialize the heap
                -      (2013-5-19).
                -    * arch/arm/src/stm32/stm32l15xxx_rcc.c chip/stm32_flash.h:  Add RCC PLL
                -      and FLASH configuration logic for the STM32L152X (2013-5-19).
                -    * include/nuttx/usb/audio.h:  Typo- and bug-fixes from Ken Pettit
                -      (2013-5-19)
                -    * audio/, drivers/audio, include/nuttx/audio.h:  Add a new audio subsystem
                -      and VS1053 driver to NuttX.  Contributed by Ken Pettit (2013-5-19).
                -    * configs/miroe-stm32f4/:  Add audio logic to NSH configuration.  From Ken
                -      Petty (2013-5-19).
                -    * nuttx/arch/arm/src/lm/chip/lm_flash.h and nuttx/arch/arm/src/lm/lm_flash.c:
                -      Add support for TI/Stellaris internal FLASH MTD driver.  From Max
                -      Holtzberg (2013-5-20).
                -    * arm/src/stm32/chip/stm32l15xxx_vectors.h:  After correcting errors in the
                -      vector definition file, the STM32L-Discovery NSH port now seems to be
                -      fully functional.  Also fixed an error that was causing the LEDs to be
                -      controlled incorrectly (2013-5-21).
                -    * arch/arm/src/stm32/chip/stm32_lcd.h: Add definitions for STM32L15X
                -      segment LCD (2013-5-21).
                -    * configs/lm3s6965-ek/discover: Add an example configuration for UDP
                -      discovery tool on the lm3s6965-ek board.  From Max Holtzberg
                -      (2013-5-21).
                -    * audio/, drivers/audio, include/nuttx/audio:  Added a callback interface
                -      to the Audio upperhalf driver for dequeueing, reporting async events,
                -      etc. Also included is some initial work for the VS1053 driver.  From
                -      Ken Pettit (2013-5-21).
                -    * include/nuttx/audio/audio.h:  Moved from include/nuttx/ to include/nuttx/audio.
                -      (2013-5-21).
                -    * configs/lm3s6965-ek/tcpecho: This configuration builds the simple TCP
                -      echo example based on W.Richard Steven UNIX Programming book to ensure
                -      correct usage of the socket API. Contributed by Max Holtzberg (2013-5-22).
                -    * configs/stm32ldiscovery/src/stm32_lcd.c:  Framework for support of the
                -      STM32L-Discovery's segment LCD (2013-5-22).
                -    * fs/fs_poll.c:  Poll setup/teardown logic should ignore invalid (i.e.,
                -      negative) file descriptors.  Max Holtzberg (2013-5-23).
                -    * net/net_poll.c: When readahead data is available, the network poll
                -      logic should set POLLIN (or POLLRDNORM), not POLLOUT.  Max Holtzberg
                -      (2013-5-23)
                -    * fs/fs_poll.c:  Actually, it should also set revents == 0. (2013-5-23).
                -    * libc/misc/lib_slcdencode.c and lib_slcddecode.c:  Add logic to marshal
                -      and serialize special SLCD intermixed with normal ASCII data (2013-5-23)
                -    * configs/stm32ldiscovery/src/stm32_lcd.c:  STM32L-Discovery's segment LCD
                -      is code complete but completely untested (2013-5-23).
                -    * include/nuttx/fs/ioctl.h, include/nuttx/lcd/slcd_codec.h, and
                -      configs/stm32ldiscovery/src/stm32_lcd.c:  Add SLCD ioctl commands to get
                -      SLCD geometry, set bars, and manage contrast (2013-5-23).
                -    * configs/stm32ldiscovery/src/stm32_usb.c:  This file and all references
                -      to USB removed for the STM32L-Discovery.  While the chip supports a
                -      USB device, the board does not (2013-5-24).
                -    * arch/arm/src/stm32/stm32_lse.c:  Add support for the STM32L CSR register
                -      and for the LSE LCD clock source (2013-5-24).
                -    * The STM32L-Discovery segment LCD is now functional and the README file
                -      includes instructions for adding the apps/examples/slcd segment LCD
                -      test as an NSH "built-in" command (2013-5-24).
                -    * configs/pcblogic-pic32mx:  Converted all configurations to use the
                -      kconfig-frontends tool (2013-5-25).
                -    * configs/pcblogic-pic32mx/src:  Renamed files using pic32mx_ vs up_
                -      prefix.  Enable building of LCD1602 LCD (2013-5-25).
                -    * configs/pcblogic-pic32mx/src/pic32mx_lcd1602.c: Now uses SLCD CODEC
                -      (2013-5-25)
                -    * configs/stm32ldiscovery/src/stm32_lcd.c: Now supports ioctl to get
                -      cursor position (2013-5-25).
                -    * include/nuttx/lcd/slcd_ioctl.h:  Moved ioctls commands and structures
                -      from slcd_codec.h (2013-5-25)
                -    * libc/misc/lib_slcdencode.c and lib_slcddecode.c:  Several encoding
                -      and decoding bug fixes (2013-5-26)
                -    * configs/sure-pic32mx:  Converted all configurations to use the
                -      kconfig-frontends tools, cleaned up the directory structure and
                -      naming to match some of the more recent configurations, and added
                -      a segment LCD driver for the board.  The initial checkin of the
                -      LCD driver is just a clone of configs/pcblogic-pic32mx/src/pic32mx_lcd1602
                -      and it not yet expected to be functional (2013-5-26).
                -    * include/nuttx/lcd/slcd_ioctl.h and all SLCD drivers:  Rename geometry
                -      structure to attributes;  Move MAX contrast to attributes.  Add
                -      attribute and ioctl commands to get and set LCD brightness (2013-5-27).
                -    * configs/sure-pic32mx/pic32mx_lcd1602.c:  This driver appears to
                -      fully functional (at least to the extent that it has been tested)
                -      (2013-5-27).
                -    * arch/mips/src/pic32mx/pic32mx-usbdev.c:  Fix NULL packet handling in
                -      the PIC32 USB device driver.  Without this fix the CDC/ACM driver
                -      cannot be used reliably with the PIC32 USB.  With this change the
                -      configs/sure-pic32mx/usbnsh configuration works great (2013-5-28).
                -    * configs/sure-pic32mx/src/pic32mx_nsh.c:  The NSH configurations will
                -      support the USB monitor applications (2013-5-28).
                -     nuttx/arch/arm/include/stm32/chip.h, src/stm32/Kconfig, src/stm32/chip.h,
                -      and src/stm32/chip/stm32f103c_pinmap.h: STM32F103C4 and F103C8 chip
                -      support from Laurent Latil (2013-5-28)
                -    * configs/stm32_tiny: Add support for the STM32 Tiny development board
                -      based on the STM32 F103C8T6 MCU (2013-5-28).
                -    * arch/arm/src/stm32/stm32_usbdev.c:  Fix an error in NULL packet
                -      handling:  If the NULL-packet needed flag ever gets set, then
                -      it is not cleared and inifinite NULL packets result.  This only
                -      effects the CDC/ACM class and was the cause of the failure of
                -      configs/stm32f3discovery/usbnsh configureation which works great
                -      after this change (2013-5-29).
                -    * drivers/usbdev/cdcacm.c and pl2303.c and include/nuttx/usb/cdcacm.h:
                -      Change the default IN request buffer size from 64 to 96.  This will
                -      avoid requests of exactly MAXPACKET size and, hence, avoid so many
                -      NULL packets.  Also, fix the OUT request buffers size to exactly
                -      the max packet size.  It cannot be any other size (2013-5-29).
                -    * .gitignore:  Clean-up of most all .gitignore files:  Make scope of
                -      ignore to be only the current directory; Ignore .dSYM files in
                -      directories where .exe's may be build.  Also, in Makefiles,
                -      clean .dSYM files in directories where .exe may be built (2013-5-30).
                -    * drivers/wireless/nrf24101.c/.h and include/nuttx/wireless/nrf24101.h:
                -      Add new driver for the wireless nRF24L01+ transceiver.  From Laurent
                -      Latil (2013-6-1).
                -    * drivers/wireless/cc1101:  Move files in the cc1101 up one directory.
                -      From Laurent Latil (2013-6-1).
                -    * configs/stm32_tiny: Fix nRF24L01+ driver integration for the STM32
                -      Tiny.  From Laurent Latil (2013-6-01).
                -    * configs/sam3u-ek:  All remaining configurations changed to use
                -      the kconfig-frontends tools (2013-6-2).
                -    * arch/arm/src/sam3u/chip:  All SAM3U register definition files moved
                -      to this subdirectory.  Naming of registers changed from SAM3U_ to
                -      just SAM_.  This is in preparation for a SAM4L port (2013-6-2).
                -    * arch/arm/src/sam3u:  Renamed files to sam_* vs. sam3u_*.
                -      Eliminated sam3u_internal.h; instead uses individual header
                -      files for each SAM interface block (2013-6-2).
                -    * arch/arm/src/stm32/stm32f20xxx_rcc.c and stm32f40xxx_rcc.c, and
                -      configs/mikroe-stm32f4/src/up_clockconfig.c.  Correct some bad
                -      conditional compilation (CONFIG_ missing from setting name).  This
                -      affects some STM32 FLASH pre-fetch settings.  From Lorenz Meier
                -      (2013-6-2).
                -    * arch/arm/include/sam34 and arch/arm/src/sam34:  The old sam3u/
                -      directories were renamed sam34/ to make room in the namespace for
                -      the SAM4L (2013-6-2).
                -    * libc/stdio/lib_dprintd.c and lib_vdprintf.c:  Add dprintf() and
                -      vdprintf() (the latter from Andrew Tridgell, 2013-6-2).
                -    * sched/sem_holder.c:  Modify assertion that is reported to cause
                -      false alarm assertions (2013-6-2).
                -    * arch/arm/include/sam34/sam4l_irq.h and
                -      arch/arm/src/sam34/chip/sam4l_memorymap.h: Add interrupt and memory
                -      map definitions for the AT91SAM4L (2013-6-3).
                -    * arch/arm/src/sam34/chip/sam4l_vectors.h and arm/src/sam34/sam_vectors.S:
                -      Add interrupt vector support for the SAM4L family (2013-6-3).
                -    * arch/include/sam34/chip.h:  Add chip definitions for the SAM4L
                -      family (2013-6-3).
                -    * configs/sam4l-xplained:  A partial configuration that will (eventually)
                -      support the SAM4L Xplained Pro developement board (2013-6-3).
                -    * arch/arm/src/sam34/chip/sam4l_pinmap.h:  Initial cut as SAM4L
                -      pin mapping (2013-6-3).
                -    * arch/arm/src/stm32/stm32*_dma.*:  Add a new interface function,
                -      stm32_dmacapable() that can be used to determine if DMA is
                -      possible from the specified memory address.  From Petteri Aimonen
                -      (2013-6-4).
                -    * arch/arm/src/stm32/stm32_spi.c:  If CONFIG_STM32_DMACAPABLE is
                -      defined, use stm32_dmacapable() to determine if it is possible
                -      to perform DMA from the specified address.  This change is
                -      important for the STM32 F4 which may have SPI data buffers
                -      allocated on the stack in CCM memory which cannot support the
                -      DMA.  From Petteri Aimonen (2013-6-4).
                -    * nuttx/arch/arm/src/sam34/sam4l_gpio.h: Created GPIO driver
                -      header file for the SAM4L.  Also renamed the SAM3U header
                -      file to sam3u_gpio.h (2013-6-4).
                -    * nuttx/arch/arm/src/sam34/sam4l_gpio.c: Created GPIO driver for
                -      the SAM4L (2013-6-4).
                -    * nuttx/configs/sam4l-xplained/src/sam_userleds.c:  Added.
                -      (2013-6-4).
                -    * configs/sam4l-xplained/src/sam_userleds.c:  Add application
                -      LED interfaces (2013-6-5).
                -    * arch/arm/src/sam34/sam4l_gpio.c and arch/arm/src/sam34/chip/sam4l_gpio.h:
                -      Fix GPIO port address; fix compilation errors (2013-6-5).
                -    * arch/arm/src/sam34/chip/sam4l_flashcalw.h:  Add header file
                -      for SAM4L FLASH and PICOCACHE definitions (2013-6-5).
                -    * arch/arm/src/sam34/chip/sam4l_pm.h:  Add header file for SAM4L
                -      Power Management.  Leveraged from AVR32 (2013-6-5).
                -    * arch/arm/src/sam34/sarm4l_clockconfig.c:  SAM4L clock configuration
                -      logic (leveraged from AVR32).
                -    * nuttx/arch/arm/src/sam34/sam4l_periphclks.c/h:  Add common
                -      logic to enabled/disable SAM4L peripheral clocking (2013-6-5).
                -    * nuttx/arch/arm/src/sam34/chip/sam4l_bpm.h and sam4l_scif.h:  Add
                -      register definitions for the SAM4L BMP and SCIF blocks (2013-6-6).
                -    * nuttx/arch/arm/src/sam34/sam4l_clockconfig.c:  Now selects an
                -      optimal power scaling mode (2013-6-6).
                -    * nuttx/arch/arm/src/stm32/stm32_serial.c and nuttx/include/termios.h:
                -      Change for hardware flow control support for STM32. It also fixes
                -      incorrect operation of USART2 and UART5 in current master.  Submitted
                -      by Lorenz Meier but includes changes by Mike Smith (2013-6-6).
                -    * nuttx/arch/arm/src/stm32/stm32_otgfshost.c:  A backward conditional
                -      prevent detection of disonnection events.  Reported by Scott (2013-6-6).
                -    * nuttx/arch/arm/src/sam34/chip/sam4l_bscif.h: Add registers definitions
                -      for the SAM4L BSCIF module (2013-6-6).
                -    * nuttx/arch/arm/src/sam34/sam4l_clockconfig.c and chip/sam4l_wdt.h:
                -      Finally finished the SAM4L clock configuration logic; Added a
                -      WDT register definition header file (2013-6-8).
                -    * nuttx/arch/arm/src/sam34/chip/sam4l_usart.h and sam4l_picouart.h:
                -      Add UART/USART register defintion files for the SAM4L (2013-6-8).
                -    * arm/src/sam34/chip/sam3u_periphclks.h:  More macros and definitions
                -      to generalize peripheral clocking and to hide differences between
                -      the SAM3U and the SAM4L (2013-6-8).
                -    * configs/sam4l-xplained/ostest:  The SAM4L now passed the OS test
                -      (2013-6-9).
                -    * configs/sam4l-xplained/nsh:  Added an NSH configuration for the
                -      SAM4L Xplained Pro board (2013-6-9).
                -    * configs/sam4l-xplained/src/sam_cxxinitialize.c:  Added C++ support
                -      to the SAM4L Xplained Pro board configuration (2013-6-9).
                -    * arm/src/sam34/chip/sam_irq.c:  Extend IRQ support to handle the
                -      larger number of NVIC interrupts used by the SAM4L (2013-6-9).
                -    * arch/arm/src/sam45/chip:  Beginning updates of SAM3U header files
                -      to include support for the SAM4S: WDT, SUPC, EEFC, MATRIX, PMC,
                -      UARTs, USARTs, HSMCI, SPI (2013-6-10).
                -    * arch/arm/src/chip/sam4s_memorymap.h, sam4s_irq.h, and sam4s_vectors.h:
                -      Add SAM4S memory map and interrupt definitions (2013-6-10)
                -    * configs/sam4s-xplained:  Add framework for the SAM4S Xplained board.
                -      There is not much there on initial checkin (2013-6-10).
                -    * arch/arm/src/sam34: SAM3S support: GPIO, chip characteristics,
                -      peripheral Kconfig (2013-6-11).
                -    * arch/arm/src/sam34/chip/sam4s_pinmap.h:  Add SAM4S pin configuration
                -      definitions (2013-6-11).
                -    * arch/arm/src/sam34/sam4s_periphclks.h:  Add macros to manage SAM4S
                -      peripheral clocks (2013-6-11).
                -    * configs/sam4s-xplained: Configuration builds error-free (2013-6-11).
                -    * configs/sam4s-xplained/nsh:  Added an NSH configuration for the
                -      SAM4S Xplained board.  Both the OS test and the NSH configurations
                -      no execute error-free.  Delay loops calibrated for both the SAM4L
                -      and SAM4S boards (2013-6-12).
                -    * Standardize on CONFIG_NSH_BUILTIN_APPS.  Remove all other variants
                -      of the build-as-an-NSH-application configuration settings
                -      (2013-6-12).
                -    * arch/arm/src/sam34/sam_periphclks.h:  A header file that just
                -      includes the right header file.  This cleans up the messy logic
                -      in all of the C files and puts the mess in one place (2013-6-12).
                -    * arch/arm/src/arm*/Toolchain.mk, Kconfig (and lots of configuration
                -      files):  Add support for a generic Windows EABI toolchain (2013-6-13).
                +    * arch/arm/src/sam34/chip/sam4l_pinmap.h: Change naming of some pin
                +      configurations to match names used with other SAM part (2013-6-15).
                +    * arch/arm/src/sam34/sam4l_clockconfig.c: Corrected some typos
                +      (2013-6-15).
                +    * configs/sam4l-xplained/src/sam_buttons.c: Eliminate a warning
                +      (2013-6-15).
                +    * configs/sam4l-xplained/src/sam_mmcsd.c, sam_nsh.c, sam_spi.c,
                +      sam3u-ek.h, Kconfig, Makefile, sam4l-xplained.h,
                +      configs/sam4l-xplained/README.txt, and
                +      configs/sam4l-xplained/include/board.h:  Add support for the SPI-
                +      based SD card on the I/O1 module (2013-6-15).
                +    * arch/arm/src/sam34/sam_spi.c:  Re-architect the SAM3/4 SPI driver
                +      so that is it compatible with the SPI drivers of other MCUs
                +      (2013-6-16).
                +    * configs/sam3u-ek/src/up_touchscreen.c and configs/sam4l-xplained/src/sam_mmcsd.c:
                +      Changed needed because of the above change the the SAM3/4 SPI
                +      interface (2013-6-16).
                +    * drivers/input/ads7843e.c:  Remove the wait for the touchscreen busy
                +      bit.  I don't see the busy bit changing on the SAM3U-EK board.  But
                +      maybe it is not supposed to.  From my reading of the ADS7843 spec, it
                +      would not be appropriate to wait for the BUSY bit to de-asserted
                +      anyway (since it is only de-asserted when we read the data)
                +      (2013-6-16).
                +    * configs/sam3u-ek/src/up_touchscreen.c: Fix polarity of the /PENIRQ
                +      signal (it is active low) (2013-6-16).
                +    * configs/sam3u-ek/include/board.h:  The SAM3U-EK board now runs at
                +      96MHz.  This might have broken some things? (2013-6-17).
                +    * drivers/mmcsd/mmcsd-spi.c:  Driver need to make sure that the SPI mode
                +      and data width are correct (2013-6-17).
                +    * arch/arm/src/kinetis/kinetis_tsi.h:  Corrections to the Kinetis
                +      (2013-6-18)
                +    * arch/arm/src/sam34/sam_spi.c:  Fix SPI mode setting.  In the SAM3/4
                +      family, the clock phase control (CPHA) is inverted (NPHA) (2013-6-18).
                +    * arch/arm/src/kl/chip/kl_tsi.h: Freescale KL25Z TSI register
                +      definitions from Alan Carvalho de Assis (2013-6-18).
                +    * configs/freedom-kl25z/src/kl_tsi.c:  Example TSI driver for the
                +      Freedom KL25Z board from Alan Carvalho de Assis (2013-6-18).
                +    * arch/arm/src/sam34/sam_spi.c:  Correct an incorrect pointer test.
                +      Was checking if the wrong pointer was NULL (2013-6-18).
                +    * arch/arm/src/kl/kl_spi.c and chip/kl_spi.h:  Add SPI driver and
                +      register definitions for the Freescale KL25Z (2013-6-19).
                +    * arm/src/sam34/chip/sam4l_lcdca.h:  Register definition file for
                +      the SAM4L LCD peripheral (2013-6-19).
                +    * arm/src/sam34/chip/sam_spi.h:  SPI register definition file updated
                +      to include a few differences for the SAM4L (2013-6-19)
                +    * arm/src/sam34/chip/sam4l_pdca.h: Add SAM4L PDCA register definition
                +      file; also renamed sam_dmac.* files to sam3u_dmac.* to identify
                +      them as SAM4U/4S only files (2013-6-19).
                +    * configs/freedom-lk25z/src/kl_spi.c:  Add the framework for
                +      controlling SPI-related discrete inputs and outputs.  Taken from
                +      work by Alan Carvalho de Assis (2013-6-20).
                +    * arch/arm/src/kl/kl_dumpgpio.c:  Now compiles (2013-6-20).
                +    * configs/:  Several defconfig files were changed that had
                +      CONFIG_HAVE_CXXINITIALIZE=y.  Because of recent changes to
                +      apps/examples, these configurations may need to have
                +      CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y so that they behave as they did
                +      before, i.e., so that C++ initializers will be called when NSH starts
                +      up (2013-6-21).
                +    * configs/sam4l-xplained/src/sam_slcd.c:  Beginning of a driver for the
                +      LED1 segment LCD module.  This driver is incomplete on initial check-
                +      in (2013-6-21).
                +    * drivers/net/enc28j60.c:  Change buffer ordering to work around Errata
                +      #5.  From Dave (ziggurat29, 2013-6-22).
                +    * configs/sam4l-xplained/src/sam_slcd.c:  LED1 segment LCD module is now
                +      functional (2013-6-23).
                +    * drivers/lcd/ssd1306.c and include/nuttx/lcd/ssd1306.h.  Renamed
                +      ug-2864hsweg01.c and .h to ssd1306.c and .h.  Extended to support the
                +      UG-2832HSWEG04 which is very similar and also based on the SSD1306
                +      controller (2013-6-23).
                +    * configs/sam4l-xplained/src/sam_ug2832hsweg04.c: Add support for the
                +      UG-2832HSWEG04 OLED on the SAM4L Xplained Pro's OLED1 module
                +      (2013-6-23).
                +    * include/debug.h:  Added macro DEBUGPANIC for forces crashes when debug
                +      is enabled.
                +    * drivers/lcd/ssd1306.c:  Driver now appears to be function for the
                +      UG-2832HSWEG04 in landscape mode (2013-6-24).
                +    * drivers/lcd/ug-2864ambag01.c and ug-9664hswag01.c:  Add/updated
                +      support for reverse portrait mode from lessons learned with the
                +      UG-2832HSWEG04.  Untested changes! (2013-6-24).
                +    * arch/arm/src/stm32/stm32_ccm.c and .h:  Add support for a seperate CCM
                +      heap.  This may be useful for segregating allocations for CCM (which
                +      cannot be used for DMA) from other allocations (that may be used used
                +      for DMA) (2013-6-25).
                +    * arch/arm/src/sam32/sam3u_gpio.h:  Correct configuration of PIO pins
                +      for SAM4S B and C peripherals (2013-6-26)
                +    * configs/sam4s-xplained/src/sam_sram.c:  Added support for on-board
                +      1MB SRAM (2013-6-26).
                +    * arch/arm/include/sam34/chip.h and sam3x_irq.h:  Add support for
                +      SAM3X and SAM3A chips (2013-6-26).
                +    * arch/arm/src/sam34/chip/sam3x_vectors.h:  Add support for SAM3X/3A
                +      interrupt vectors (2013-6-26).
                +    * arch/arm/src/sam34/sam3x_periphclks.h:  Add peripheral clock
                +      controls for the SAM3X/3A (2013-6-26).
                +    * arch/arm/src/sam34/chip/sam3x_memorymap.h:  Add SAM3X/3A memory map
                +      (2013-6-26).
                +    * arch/arm/src/sam34/chip/sam3x_pinmap.h:  Add SAM3X/3A pin
                +      multi-plexing definitions (2013-6-26).
                +    * arch/arm/src/sam34/sam3x_gpio.h:  Add SAM3X/3A gpio encoding
                +      macros.  These differ from the SAM3U only in because of the
                +      6 PIOs:  PIOA-PIOF (2013-6-26).
                +    * configs/arduino-due:  This is an empty directory now with only
                +      a README file in it but this directory will eventually hold a port
                +      for the Arduino Due (2013-6-26).
                +    * arch/arm/src/sam34/Kconfig:  Add SAM3X/3A peripherals to the SAM3/4
                +      configuration logic (2013-6-26).
                +    * arch/arm/src and include/ and configs/sam*/:  Large rename of all
                +      references to SPI with SPI0.  This is because all other SAMs have
                +      only SPI but the 3X/3A have SPI0 and SPI1 (2013-6-26).
                +    * configs/arduino-due:  Complete the basic board configuration and
                +      integrate this into the configuration and build system.  The Arduino
                +      Due is now ready to begin test (2013-6-17).
                +    * configs/arduino-due/nsh:  Add an NSH configuration for the Arduino
                +      Due.  Both the OS test and NSH configuration are now functional
                +      (2013-6-28).
                +    * configs/arduino-due/src:  Add support for the "L" LED (2013-6-28).
                +    * arch/arm/src/sam34/sam_allocateheap.c:  Clocking must be applied
                +      to the SMC module for the 3X and 3A family in order for the NFC
                +      SRAM to be functional (2013-6-28).
                +    * arch/arm/src/sam34/sam3u_gpio.c:  Need to disable write
                +      protection before configuring PIO pins.
                +    * configs/sam3u-ek/nsh:  The touchscreen is now functional.  The above
                +      fix to the sam3u_gpio.c write protection also fixed the touchscreen
                +      problem (2013-6-28).
                +    * confgis/sam3u_ek/nxwm:  Created a configuration for the NxWM
                +      window manager for the SAM3U-EK board (2013-6-29).
                +    * drivers/spi and include/nuttx/spi:  New sub-directories to hold
                +      SPI-related files.  includes/nuttx/spi.h moved to include/nuttx/spi/.;
                +      SPI-related Kconfig info moved from drivers/Kconfig to drivers/spi/kconfig
                +      (2013-7-1).
                +    * drivers/spi/spi_bitbang.c and include/nuttx/spi/spi_bitbang.h:  Add
                +      support for a generic bit-bang SPI driver.  This checkout is the
                +      common upper-half logic.  Still missing the lower half (2013-7-1).
                +    * include/nuttx/spi/spi_bitbang.c:  This is the common lower-half bit-
                +      bang SPI logic (2013-7-1).
                +    * configs/arduino-due/src/sam_nsh.c and sam_mmcsd.c:  Add NSH customize
                +      initialization.  If so configured, initialize the SPI bit bang
                +      interface to the MMC/SD slot on the ITEAD shield (2013-7-1).
                +    * fs/fs_mount.c:  Fix compilation error if no file systems are enabled:
                +      Change error to ERROR (2013-7-3).
                +    * arch/arm/src/sam34/sam_gpioirq.c:  Fix some errors for interrupts
                +      on ports D-F (2013-7-3).
                +    * /drivers/usbdev/composite.c: Fix a typo in the composite device
                +      driver unitialization logic.  DEV1 should be DEV2 in one case
                +      (2013-7-4).
                +    * arch/arm/src/sam34/sam3u_gpio.c:  sam_configgpio() must protect
                +      against re-entrancy (2013-7-5).
                +    * libc/misc/lib_crc16.c and include/crc16.h:  Add CRC16 support
                +      (2013-7-7).
                +    * arch/arm/src/stm32/stm32_otgfsdev.c:  SourceForge bug #16:  Fix
                +      to the endpoint allocation logic.  Apparently the same endpoint can
                +      be allocated as both an IN or an OUT endpoint.  The existing
                +      implementation only supported one allocation, either IN or OUT.  This
                +      resulted in failures to allocate enpoints when used with the CDC/ACM +
                +      MSC composite driver (From Chia Cheng Tsao, 2013-7-8).
                +    * arch/arm/src/stm32/stm32_sdio.c:  SourceForge bug #17:  Add
                +      support for the data block end (DBCKEND) interrupt to terminate
                +      transfers (From Chia Cheng Tsao, 2013-7-8)
                +    * drivers/rwbuffer.c: SourceForge bug #17: Correct typos that can cause
                +      failures in some configurations (From Chia Cheng Tsao, 2013-7-8).
                +    * include/nuttx/usb/usbdev.h: Fix some typos that cause compiler errors
                +      when CONFIG_USBDEV_DMA and CONFIG_USBDEV_DMAMEMORY are selected (From
                +      Chia Cheng Tsao, 2013-7-12).
                +    * nuttx/configs/olimex-lpc1766stk/zmodem:  Add a new configuration to
                +      test the Zmodem sz and rz commands (which don't actually exist yet,
                +      but will). (2013-7-12).
                +    * arch/arm/include/armv7-a and src/armv7-a:  Beginning to add support
                +      for the ARMv7-A, the Cortex-A5 in particular.  The initial checkin
                +      is only fragmentary:  A few header files and some copied ARM9
                +      assembly files.  More to come (2013-7-18).
                +    * arch/arm/include/sama5, arch/arm/src/sama5, and configs/sama5d3x-e:
                +      Add a directory framework to support the Atmel AT91SAMA5D3 family and
                +      the SAMA5D3x-EK board(s) in particular.  There is very little here on
                +      the first check-in, this structure is being used now primarily to
                +      create the Cortex-A5 support (2013-7-19).
                +    * arch/arm/src/armv7-a/arm_cache.S:  Cortex-A5 cache operations
                +      (2013-7-20).
                +    * /arch/arm/src/armv7-a/arm_fpuconfig.S and fpu.h: A few more files for
                +      the ARMv7-A/Cortex-A5 port (2013-7-21).
                +    * arch/arm/src/sama5/sam_boot.c, sam_clockconfig.h, sam_lowputc.h, and
                +      sam_timerisr.c:  A few  more files for the SAMA5D3 port (2013-7-21).
                +    * configs/sama5d3x-ek/src/sam_autoleds.c:  A few more files for the port
                +      to the SAMA5D3x-EK board (2013-7-21).
                +    * arch/arm/src/sama5/sam_irq.c: SAMA5 interrupt handling logic
                +      (2013-7-22).
                +    * arch/arm/src/sama5/sam_clockconfig.c:  Add SAMA5 PLL configuration
                +      logic (plus associated header files).  Initiali checkin is for the
                +      SAM3U which is very similar but needs to be verified (2013-7-22).
                +    * arch/arm/src/sama5/sam_periphclks.h:  Add macros to enable and
                +      disable SAMA5 peripheral clocks (2013-7-22).
                +    * arch/arm/src/sama5/sam_lowputc.c and sam_serial.c:  Add support
                +      for SAMA5 UARTs.  Does not even compile as of initial checkin.
                +      (2013-7-22).
                +    * arch/arm/src/sama5/sam_gpio.c:  Add GPIO configuration support
                +      for the SAMA5.  Still compilation issues.  (2013-7-22).
                +    * arch/arm/src/sama5/chip/sama5d3x_pinmap.h:  Add pin multiplexing
                +      definitions for the SAMA5D3 (2013-7-23).
                +    * arch/arm/src/sama5/chip/:  New header files for SAMA5 AXI Matrix
                +      SFR, and BSC blocks (2013-7-23).
                +    * arch/arm/src/armv7-a/arm_vectors.S:  Force 8-byte stack alignment
                +      in interrupt handlers before calling C code.  Other ARM
                +      architectures need to do this as well (2013-7-23).
                +    * arm/src/armv7-m/up_copyarmstate.c and armv7-a/up_copyarmstate.c:
                +      Added a new form of the register copy function that should save quit a
                +      bit of time for armv7-m (without common vectors) and with armv7-a
                +      (2013-7-23).
                +    * arch/arm/src/armv7-a/arm_restorefpu.S, arm_savefpu.S, arm_doirq.c,
                +      arm_fullcontextrestore.S, arm_saveusercontext.S:  Add hardware
                +      floating point register save/restore logic for the Cortex-A5\
                +      (2013-7-23).
                +    * arch/Kconfig:  Attempt at generic external memory configuration is not
                +      flexible enough, especially for the SAMA5.  Move external memory
                +      configuration options from arch/Kconfig to
                +      arch/arm/src/lpc17xx/Kconfig, lpc31xx/Kconfig, sam34/Kconfig, and
                +      sama5/Kconfig and renamed each from CONFIG_ARCH_ to, for example,
                +      CONFIG_LPC31_.  This renaming also affect many defconfig files
                +      (2013-7-24).
                +    * arch/arm/src/sama5/Kconfig and sam_allocateheap.c:  Set up
                +      configuration options for SAMA5 external memory regions; add a custom
                +      sam_allocateheap.c to add the various configured memory regions to the
                +      heap (2013-7-24).
                +    * configs/sama5d3x-ek/src/sam_buttons.c, sam_userleds.c, and
                +      sam_autoleds.c:  Add support for the buttons and LEDs on-board the
                +      SAMA5D3x-EK (2013-7-24).
                +    * configs/sama5d3x-ek/ostest/defconfig:  Switch console to USART1
                +      (2013-7-4).
                +    * arch/arm/src/sam34/Kconfig and drivers/serial/Kconfig:  All serial
                +      configuration logic for USARTs needs to depend on if the USART is
                +      configured as a UART or not.  And this is for all CPUS, not just
                +      SAM3/4 (2013-7-24).
                +    * arch/arm/src/arm/up_head.S and arch/arm/src/armv7-a/arm_head.S:
                +      Fix a bug (uninitialized register error) that crept in the ARM9
                +      boot-up code several years ago and was cloned into the Cortex-A5
                +      code.  Obviously no one has used the ARM9 NuttX port for years!
                +    * Many files:  Finally... I changed the naming of configuration
                +      variables like CONFIG_DRAM_ to CONFIG_RAM_.  This has bothered
                +      me for a long time since most boards don't have DRAM.  The more
                +      generic RAM naming should not produce so much cognitive dissonance
                +      (2013-7-26).
                +    * configs/sama5d3x-ek/hello:  Added a tiny hello world configuration
                +      to simplify bring up of the SAMA5 (it will probably be removed
                +      later) (2013-7-26).
                +    * The sama5d3x-ek/hello now runs correctly (2013-7-28).
                +    * configs/sama5d3x-ek/ostest/:  This configuration has been modified
                +      to run out NOR flash.  More work is still needed to reconfigure the
                +      SMC so the the NOR flash can work with the high clock (2013-7-28).
                +    * arch/arm/src/sama5/sam_clockconfig.c/h and
                +      configs/sama5d3x-ek/src/sam_norflash.c:  Add a file structure that
                +      will (eventually) support reconfiguration of NOR flash when NuttX
                +      boots from NOR FLASH (2013-7-29).
                +    * arch/arm/src/sama5/chip/sam_hsmc/h:  SAMA5 HSMC register
                +      defintion file (2013-7-29)
                +    * configs/sama5d3x-ek/src/sam_norflash.c:  Add board specific
                +      logic to re-configure the SAMA5D3x-EK NOR FLASH before while
                +      running out of NOR FLASH.  We need to change the NOR FLASH
                +      timing BEFORE increasing the main clock (2013-7-29).
                +    * configs/sama5d3-ek/norboot and src/nor_main.c:  The norboot
                +      configuration to help debug NuttX in NOR flash.  It runs
                +      out of ISRAM, configures NOR FLASH, then waits for you to
                +      break in with a debugger to start the program in NOR FLASH
                +      (2013-7-29).
                +    * arch/arm/src/armv7-a/arm_cache.S:  Separate the bigger cache
                +      operations into separater files (2013-7-29).
                +    * arch/arm/src/stm32/stm32_dac.c:  Fixed numerous DAC driver
                +      errors and added support for DAC DMA (contributed by John
                +      Wharington, 2013-7-30).
                +    * arch/arm/src/stm32/stm32f30xx_i2c.c:  An I2C driver for
                +      the STM32 F3 family from John Wharington (2013-7-30).
                +    * arch/arm/include/armv7-m:  Add irqdisable() (2013-7-30);
                +    * configs/sama5d3-ek/src/nor_main.c:  Now disables interrupts
                +      before jumping to NOR flash (2013-7-30).
                +    * configs/sama5d3-ek/nsh:  Add an NSH configuration for the
                +      SAMA5D3x-EK (2013-7-31)
                +    * configs/sama5d3-ek/src/sam_cxxinitialize.c:  Add C++ support
                +      (2013-7-31).
                 
                -apps-6.28 2013-06-14 Gregory Nutt <gnutt@nuttx.org>
                +apps-6.29 2013-07-31 Gregory Nutt <gnutt@nuttx.org>
                 
                -    * apps/examples/mtdpart:  Provides a simple test of MTD partitions.
                -    * apps/nshlib/nsh_mntcmds.c:  Add a -h option to the df command to show
                -      the volume information in human readable form (Ken Petit, 2013-4-30).
                -    * apps/nshlib/nsh_fscmds.c: Add support for the mksmartfs command.
                -      (Ken Petit, 2013-4-30).
                -    * apps/system/flash_eraseall:  Add an interface to erase FLASH using a
                -      flash_eraseall NSH command  (Ken Pettit, 2013-5-1).
                -    * apps/examples/flash_test and apps/examples/smart_test:  Add tests of
                -      the SMART block driver and file system  (Ken Pettit, 2013-5-1).
                -    * apps/examples/mtdpart:  Extended the test.  The original test
                -      coverage was superficial (2013-5-3).
                -    * apps/examples/smart:  This is an adaptation of the NXFFS stress
                -      test for the SMART file system (Ken Pettit, 2013-5-3).
                -    * apps/examplex/nxtext:  Remove the CONFIG_EXAMPLES_NXTEXT_NOGETRUN
                -      option.  The test logic was bad for the case where this options
                -      is not selected.  Also, complete the empty Kconfig file (2013-5-7).
                -    * apps/NxWidgets/Kconfig:  Updated to match NxWidgets/Kconfig by
                -      Ken Pettit (2013-5-11).
                -    * apps/examples/helloxx:  C++ name mangling was occurring when this
                -      example is built as an NSH built-in application.  (2013-5-16).
                -    * apps/netutils/discover:  Added a runtime configuration for the
                -      UDP discover utility.  From Max Holtzberg (2013-5-21).
                -    * apps/examples/tcpecho:  Added a simple single threaded, poll based
                -       TCP echo server based on W. Richard Stevens UNIX Network Programming
                -      Book.  Contributed by Max Holtzberg (2013-5-22).
                -    * apps/examples/slcd:  Add an example for testing alphanumeric,
                -      segment LCDs (2013-5-24).
                -    * apps/examples/slcd:  Extend SLCD test to handle multi-line displays
                -      (2013-5-26).
                -    * apps/examples/slcd:  This test now sets the SLCD brightness level to
                -      the mid-point as part of its initialization (2013-5-27).
                -    * .gitignore:  Clean-up of most all .gitignore files:  Make scope of
                -      ignore to be only the current directory; Ignore .dSYM files in
                -      directories where .exe's may be build.  Also, in Makefiles,
                -      clean .dSYM files in directories where .exe may be built (2013-5-30).
                -    * apps/examples/nrf35l01_term: Add an example application to demo the
                -      nRF24L01 driver.  From Laurent Latil (2013-6-1).
                -    * apps/nshlib/Kconfig:  Add some missing NSH configuration values.
                -      From Lorenz Meier (2013-6-2).
                -    * Standardize on CONFIG_NSH_BUILTIN_APPS.  Remove all other variants
                -      of the build-as-an-NSH-application configuration settings
                -      (2013-6-12).
                +    * apps/examples/nsh, cxxtest, and helloxx:  C++ initializers should be
                +      set once and, preferably, in the context of the task that uses any C++
                +      statically initialized classes.  These only becomes an issue if cxxtest
                +      or helloxx are built as NSH builtin applications.  Then you want the
                +      initialization done in cxxtext or helloxx and not in NSH (and certainly
                +      not twice).  Added configuration options to control who does the C++
                +      initialization.  NSH now does not do C++ initialization be default and
                +      must be configured to do otherwise.  Converely, cxxtest and helloxx
                +      will do C++ initialization unless configured do otherwise (2013-6-21).
                +    * apps/examples/cxxtext:  Add ostream test as provided by Michael
                +      (2013-6-21).
                +    * apps/examples/nxhello:  Minor fix for compilation error when the
                +      display resolution is low (< 8bpp) due to a typo that has been there
                +      for a long time (2013-6-23).
                +    * apps/examplex/nxhello:  Correct default colors when in Y1 code mode.
                +      (2013-6-24).
                +    * apps/system/Make.defs and Kconfig:  The RAM test was not correctly built
                +      into the configuration and build system (2013-6-26).
                +    * apps/examples/composite/composite_main.c:  SourceForge But Ticket #19.
                +      Change to prevent some false alarm debug assertions (From Chia Cheng
                +      Tao, 2013-7-9).
                +    * apps/system/zmodem:  Add configuration support and a build framework
                +      for the Zmodem sz and rz command (which exist but have not yet been
                +      checked in) (2013-7-12).
                +    * apps/system/zmodem:  The 'sz' command is now complete and seems
                +      functional (given on light testing).  The rz command logic exists but
                +      is still untested and not yet checked in  (2013-7-13).
                +    * apps/system/zmodem:  The 'rz' command is now complete and functional
                +      under certain conditaions.  There are, however, some data overrun
                +      issues that I am still uncertain how should be handled (2012-7-15).
                +    * apps/system/zmodem/Makefile.host and host/: The Zmodem utilities
                +      can now be built to execute on a Linux host.
                +    * apps/nshlib/nsh_fscmds.c:  Add a 'cmp' command that can be used to
                +      compare two files for equivalence.  Returns an indication if the files
                +      differ.  Contributed by Andrew Tridgell (via Lorenz Meier) (2013-7-18).
                 
                 NxWidgets-1.8 2013-06-14 Gregory Nutt <gnutt@nuttx.org>
                 
                     * NxWM::CMediaPlayer: shell application for an MP3 Media Player with
                       Kconfig settings to enable it.  I plan to write this app to help
                       develop and test the MP3 codec chip driver.  It really doesn't do
                -      anything yet except display a text box saying "Coming soon", and I
                +      anything yet except display a text box saying "Coming soon", and I
                       need to minimize the icon size a bit.  From Ken Pettit (2013-5-11).
                     * NxWidgets/nxwm/src/glyph_mediaplayer.cxx:  Smaller version of the
                       media player glyph.  From Ken Pettit (2013-5-12).
                
                From a8a6b889c1cc75e73f545a9b5976b50244f7491d Mon Sep 17 00:00:00 2001
                From: Gregory Nutt 
                Date: Thu, 1 Aug 2013 07:10:34 -0600
                Subject: [PATCH 1173/1518] Correct errors noted in SAMA5 documentation
                
                ---
                 Documentation/NuttX.html | 16 ++++++----------
                 1 file changed, 6 insertions(+), 10 deletions(-)
                
                diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html
                index 0ddd3a00fb..00246d0254 100644
                --- a/Documentation/NuttX.html
                +++ b/Documentation/NuttX.html
                @@ -1569,7 +1569,7 @@
                       
              • Atmel AT91SAM3X (ARM Cortex-M3)
              • Atmel AT91SAM4L (ARM Cortex-M4)
              • Atmel AT91SAM4S (ARM Cortex-M4)
              • -
              • Atmel AT91SAMA5D (ARM Cortex-A5)
              • +
              • Atmel AT91SAMA5D3 (ARM Cortex-A5)
            • Freescale @@ -1974,25 +1974,21 @@

              - Atmel SAMA5D. + Atmel SAMA5D3. This is the port of NuttX to the Atmel SAMA5D3x-EK development boards (where x=1,3,4, or 5). These boards feature the Atmel SAMA5D3x microprocessors. Four different SAMA5D3x-EK kits are available

              The each kit consist of an identical base board with different plug-in modules for each CPU. - An option 7 inch LCD is also available. All four boards are supported by NuttX with a simple reconfiguration of the processor type.

              -

              - There is also the SAMA5D3FAE-EK bundle includes everything: The base board, all four CPU modules, and the LCD. -

                STATUS. From b995b10c8809f5e5d94b682bb886c79ca787c932 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 5 Aug 2013 16:21:24 -0600 Subject: [PATCH 1174/1518] SAMA5: Add HSMCI memory card driver support --- Documentation/NuttX.html | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 00246d0254..246fdef3cf 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                NuttX RTOS

                -

                Last Updated: July 31, 2013

                +

                Last Updated: August 5, 2013

                @@ -1992,12 +1992,14 @@

                  STATUS. - Initial support for the NUC120 was released in NuttX-6.29. + Initial support for the SAMA5D3x-EK was released in NuttX-6.29. This initial support is very minimal: There are simple test configurations that run out of internal SRAM and two configurations that run out of the on-boar NOR FLASH: (1) An OS test configuration that verifies the correct port of NuttX to the part and (2) a NuttShell (NSH) configuration that might be the basis for further application development. - As of this writing, more device drivers are needed to make this a more complete port. + Develop continues. + Drivers for DMA, SPI, AT25 Serial Flash, and HSMCI memory cards included in NuttX-6.30. + More device drivers are needed to make this a more complete port, particularly USB and networking. Refer to the NuttX board README file for further information.

                  Development Environments: From 46789b673b1487f5beb59fff322f80f26e3dcca5 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 7 Aug 2013 11:31:31 -0600 Subject: [PATCH 1175/1518] Change setup logic to hand MTD minor numbers for AT24, HSMCI0, and HSMCI1 --- Documentation/NuttX.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 246fdef3cf..b7d752ccea 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1998,7 +1998,7 @@ (1) An OS test configuration that verifies the correct port of NuttX to the part and (2) a NuttShell (NSH) configuration that might be the basis for further application development. Develop continues. - Drivers for DMA, SPI, AT25 Serial Flash, and HSMCI memory cards included in NuttX-6.30. + Support of DMA and PIO interrupts and drivers for SPI, AT25 Serial Flash, and HSMCI memory cards included in NuttX-6.30. More device drivers are needed to make this a more complete port, particularly USB and networking. Refer to the NuttX board README file for further information.

                  From 92e9591952b9eb7d344314379582cab35337d171 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 12 Aug 2013 14:44:06 -0600 Subject: [PATCH 1176/1518] First of several changes needed to support multiple USB host root hubs --- Documentation/NuttxPortingGuide.html | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index a77df7f0fd..71bb5842c7 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

                  NuttX RTOS Porting Guide

                  -

                  Last Updated: July 26, 2013

                  +

                  Last Updated: August 12, 2013

                  @@ -3433,6 +3433,8 @@ extern void up_ledoff(int led);

                  Examples: arch/arm/src/lpc17xx/lpc17_usbhost.c. + arch/arm/src/stm32/stm32_otgfshost.c. + arch/arm/src/sama5/sam_ohci.c.

                • @@ -3469,7 +3471,7 @@ extern void up_ledoff(int led);
                  • - int (*wait)(FAR struct usbhost_driver_s *drvr, bool connected); + int (*wait)(FAR struct usbhost_driver_s *drvr, FAR const bool *connected);

                    Wait for a device to be connected or disconnected. @@ -3477,10 +3479,10 @@ extern void up_ledoff(int led);

                  • - int (*enumerate)(FAR struct usbhost_driver_s *drvr); + int (*enumerate)(FAR struct usbhost_driver_s *drvr, int rhpndx);

                    - Enumerate the connected device. + Enumerate the device connected to a root hub port. As part of this enumeration process, the driver will (1) get the device's configuration descriptor, (2) extract the class ID info from the configuration descriptor, From 592863ce2b10fe41562ec402106d81f1b008b54c Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 13 Aug 2013 15:03:46 -0600 Subject: [PATCH 1177/1518] Separate wait() and enumerate() methods from struct usbhost_driver_s and move to new interface, struct usbhost_connection_s. This is part of the necessary restructuring of the USB host interface to support multiple root hub ports. --- Documentation/NuttxPortingGuide.html | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 71bb5842c7..adfc5d36e9 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

                    NuttX RTOS Porting Guide

                    -

                    Last Updated: August 12, 2013

                    +

                    Last Updated: August 13, 2013

                    @@ -3426,9 +3426,11 @@ extern void up_ledoff(int led);
                  • - struct usbhost_driver_s. - Each USB host controller driver must implement an instance of struct usbhost_driver_s. - This structure is defined in include/nuttx/usb/usbhost.h. + struct usbhost_driver_s and struct usbhost_connection_s. + Each USB host controller driver must implement an instance of struct usbhost_driver_s and struct usbhost_connection_s: + struct usbhost_driver_s provides the interface between the USB host driver and the USB class driver; + struct usbhost_connection_s provides the interface between the USB host driver and platform-specific connection management and device enumeration logoc. + These structures are defined in include/nuttx/usb/usbhost.h.

                    Examples: @@ -3471,7 +3473,7 @@ extern void up_ledoff(int led);

                    • - int (*wait)(FAR struct usbhost_driver_s *drvr, FAR const bool *connected); + int (*wait)(FAR struct usbhost_connection_s *drvr, FAR const bool *connected);

                      Wait for a device to be connected or disconnected. @@ -3479,7 +3481,7 @@ extern void up_ledoff(int led);

                    • - int (*enumerate)(FAR struct usbhost_driver_s *drvr, int rhpndx); + int (*enumerate)(FAR struct usbhost_connection_s *drvr, int rhpndx);

                      Enumerate the device connected to a root hub port. From 066b94022351a5624ca6901bcc4c81b079c4b3be Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 26 Aug 2013 15:46:16 -0600 Subject: [PATCH 1178/1518] Add a new method to the USB host driver interface: getdevinfo. This method will return information about the currently connected device. At present, it only returns the device speed. The speed is needed by the enumeration logic in order to set a credible initial EP0 max packet size --- Documentation/NuttxPortingGuide.html | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index adfc5d36e9..444d82659c 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -3434,9 +3434,10 @@ extern void up_ledoff(int led);

                      Examples: - arch/arm/src/lpc17xx/lpc17_usbhost.c. - arch/arm/src/stm32/stm32_otgfshost.c. - arch/arm/src/sama5/sam_ohci.c. + arch/arm/src/lpc17xx/lpc17_usbhost.c, + arch/arm/src/stm32/stm32_otgfshost.c, + arch/arm/src/sama5/sam_ohci.c, and + arch/arm/src/sama5/sam_ehci.c.

                    • From b6703a660c1a5f3fda5ddee85856bec658febd94 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 27 Aug 2013 09:40:19 -0600 Subject: [PATCH 1179/1518] Fix all occurrences of "the the" in documentation and comments --- Documentation/NXGraphicsSubsystem.html | 8 ++++---- Documentation/NfsHowto.html | 2 +- Documentation/NuttShell.html | 2 +- Documentation/NuttX.html | 8 ++++---- Documentation/NuttXDemandPaging.html | 2 +- Documentation/NuttxPortingGuide.html | 8 ++++---- Documentation/NuttxUserGuide.html | 2 +- 7 files changed, 16 insertions(+), 16 deletions(-) diff --git a/Documentation/NXGraphicsSubsystem.html b/Documentation/NXGraphicsSubsystem.html index 0eba9441f9..48e4e376e4 100644 --- a/Documentation/NXGraphicsSubsystem.html +++ b/Documentation/NXGraphicsSubsystem.html @@ -1709,7 +1709,7 @@ void nx_getrectangle(NXWINDOW hwnd, FAR const struct nxgl_rect_s *rect,
                      dest
                      The location to copy the memory region
                      deststride -
                      The width, in bytes, the the dest memory +
                      The width, in bytes, of the dest memory

                    @@ -2335,7 +2335,7 @@ void nxtk_getwindow(NXTKWINDOW hfwnd, FAR const struct nxgl_rect_s *rect,

                    dest
                    The location to copy the memory region
                    deststride -
                    The width, in bytes, the the dest memory +
                    The width, in bytes, of the dest memory

                    @@ -2689,7 +2689,7 @@ int nxtk_gettoolbar(NXTKWINDOW hfwnd, FAR const struct nxgl_rect_s *rect,

                    dest
                    TThe location to copy the memory region.
                    deststride -
                    The width, in bytes, the the dest memory. +
                    The width, in bytes, of the dest memory.

                    @@ -3522,7 +3522,7 @@ enum nx_fontid_e

                  • nuttx/graphics/Makefile. - This file needs logic to auto-generate a C source file from the header file that you generated with the the bdf-converter program. + This file needs logic to auto-generate a C source file from the header file that you generated with the bdf-converter program. Notice NXFONTS_FONTID=2; this must be set to the same font ID value that you defined in the include/nuttx/nx/nxfonts.h file.

                      diff --git a/Documentation/NfsHowto.html b/Documentation/NfsHowto.html
                      index 0fee8baf77..3eb986bb6a 100644
                      --- a/Documentation/NfsHowto.html
                      +++ b/Documentation/NfsHowto.html
                      @@ -249,7 +249,7 @@ nfsmount <server-address> <mount-point> <remote-path>
                       

                      Example. - Suppose the the NFS server has been configured to export the directory /export/shared. + Suppose that the NFS server has been configured to export the directory /export/shared. The the following command would mount that file system (assuming that the target also has privileges to mount the file system).

                        diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html
                        index 500bfb1958..16db136168 100644
                        --- a/Documentation/NuttShell.html
                        +++ b/Documentation/NuttShell.html
                        @@ -1043,7 +1043,7 @@ nsh> df
                         nsh> 
                         

                      - If CONFIG_NSH_CMDOPT_DF_H is defined in the NuttX configuration, the the df will also support an option -h which may be used to show the the volume information in human readable format. + If CONFIG_NSH_CMDOPT_DF_H is defined in the NuttX configuration, then the df will also support an option -h which may be used to show the volume information in human readable format.

                      diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index b7d752ccea..f63f673a0d 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -2612,7 +2612,7 @@ nsh> Configurations available include include a verified NuttShell (NSH) configuration (see the NSH User Guide). The NSH configuration supports the Nucleus2G's microSD slot and additional configurations - are available to exercise the the USB serial and USB mass storage devices. + are available to exercise the USB serial and USB mass storage devices. However, due to some technical reasons, neither the SPI nor the USB device drivers are fully verified. (Although they have since been verfiied on other platforms; this needs to be revisited on the Nucleus2G).

                      @@ -2660,7 +2660,7 @@ nsh> for USB serial deive and USB storage devices examples, and for the USB host HID keyboard driver. Support for the USB host mass storage device can optionally be configured for the NSH example. A driver for the Nokia 6100 LCD and an NX graphics configuration for the Olimex LPC1766-STK have been added. - However, neither the LCD driver nor the NX configuration have been verified as of the the NuttX-5.17 release. + However, neither the LCD driver nor the NX configuration have been verified as of the NuttX-5.17 release.

                    • @@ -4219,7 +4219,7 @@ Other memory: so that is it compatible with the SPI drivers of other MCUs (2013-6-16). * configs/sam3u-ek/src/up_touchscreen.c and configs/sam4l-xplained/src/sam_mmcsd.c: - Changed needed because of the above change the the SAM3/4 SPI + Changed needed because of the above change to the SAM3/4 SPI interface (2013-6-16). * drivers/input/ads7843e.c: Remove the wait for the touchscreen busy bit. I don't see the busy bit changing on the SAM3U-EK board. But @@ -4448,7 +4448,7 @@ Other memory: * The sama5d3x-ek/hello now runs correctly (2013-7-28). * configs/sama5d3x-ek/ostest/: This configuration has been modified to run out NOR flash. More work is still needed to reconfigure the - SMC so the the NOR flash can work with the high clock (2013-7-28). + SMC so that the NOR flash can work with the high clock (2013-7-28). * arch/arm/src/sama5/sam_clockconfig.c/h and configs/sama5d3x-ek/src/sam_norflash.c: Add a file structure that will (eventually) support reconfiguration of NOR flash when NuttX diff --git a/Documentation/NuttXDemandPaging.html b/Documentation/NuttXDemandPaging.html index baa2626c21..e1ef29b245 100644 --- a/Documentation/NuttXDemandPaging.html +++ b/Documentation/NuttXDemandPaging.html @@ -232,7 +232,7 @@
                    • Sanity checking. This function will ASSERT if the currently executing task is the page fill worker thread. - The page fill worker thread is how the the page fault is resolved and all logic associated with the page fill worker + The page fill worker thread is how the page fault is resolved and all logic associated with the page fill worker must be "locked" and always present in memory.
                    • diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 444d82659c..04466e4278 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -3513,7 +3513,7 @@ extern void up_ledoff(int led);

                      Each USB host class driver includes an intialization entry point that is called from the application at initialization time. - This driver calls usbhost_registerclass() during this initialization in order to makes itself available in the event the the device that it supports is connected. + This driver calls usbhost_registerclass() during this initialization in order to makes itself available in the event the device that it supports is connected.

                      Examples: @@ -3559,7 +3559,7 @@ extern void up_ledoff(int led);

                    • include/nuttx/usb/usbdev_trace.h. - Declarations needed to work the the NuttX USB device driver trace capability. + Declarations needed to work with the NuttX USB device driver trace capability. That USB trace capability is detailed in separate document.

                    • @@ -4197,13 +4197,13 @@ void pm_activity(int priority); enum pm_state_e pm_checkstate(void);

                      Description: - This function is called from the MCU-specific IDLE loop to monitor the the power management conditions. + This function is called from the MCU-specific IDLE loop to monitor the power management conditions. This function returns the "recommended" power management state based on the PM configuration and activity reported in the last sampling periods. The power management state is not automatically changed, however. The IDLE loop must call pm_changestate() in order to make the state change.

                      - These two steps are separated because the plaform-specific IDLE loop may have additional situational information that is not available to the the PM sub-system. + These two steps are separated because the platform-specific IDLE loop may have additional situational information that is not available to the PM sub-system. For example, the IDLE loop may know that the battery charge level is very low and may force lower power states even if there is activity.

                      diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 36428215d2..68df699dd2 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -8462,7 +8462,7 @@ struct fat_format_s

                    • The entire mapped portion of the file must be present in memory. - Since it is assumed the the MCU does not have an MMU, on-demanding + Since it is assumed that the MCU does not have an MMU, on-demanding paging in of file blocks cannot be supported. Since the while mapped portion of the file must be present in memory, there are limitations in the size of files that may be memory mapped (especially on MCUs From 7f647b1fe580a4c118117ac356035170c7fc5327 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 31 Aug 2013 13:17:04 -0600 Subject: [PATCH 1180/1518] Remove empty README.txt files --- Documentation/README.html | 52 +-------------------------------------- 1 file changed, 1 insertion(+), 51 deletions(-) diff --git a/Documentation/README.html b/Documentation/README.html index 126cd940a5..0dc73c1a83 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -8,7 +8,7 @@

                    • NuttX README Files

                      -

                      Last Updated: July 19, 2013

                      +

                      Last Updated: August 31, 2013

                      @@ -28,17 +28,10 @@ | | |- arm | | | `- src | | | `- lpc214x/README.txt - | | |- avr/ - | | | `- README.txt | | |- sh/ | | | |- include/ - | | | | |-m16c/README.txt - | | | | |-sh1/README.txt | | | | `-README.txt | | | |- src/ - | | | | |-common/README.txt - | | | | |-m16c/README.txt - | | | | |-sh1/README.txt | | | | `-README.txt | | |- x86/ | | | |- include/ @@ -60,8 +53,6 @@ | | |- avr32dev1/ | | | `- README.txt | | |- c5471evm/ - | | | |- include/README.txt - | | | |- src/README.txt | | | `- README.txt | | |- cloudctrl/ | | | `- README.txt @@ -76,8 +67,6 @@ | | |- ea3152/ | | | `- README.txt | | |- eagle100/ - | | | |- include/README.txt - | | | |- src/README.txt | | | `- README.txt | | |- ekk-lm3s9b96/ | | | `- README.txt @@ -97,38 +86,25 @@ | | |- freedom-kl25z/ | | | `- README.txt | | |- hymini-stm32v/ - | | | |- include/README.txt | | | |- RIDE/README.txt - | | | |- src/README.txt | | | `- README.txt | | |- kwikstik-k40/ | | | `- README.txt | | |- lincoln60/ | | | `- README.txt | | |- lm3s6432-s2e/ - | | | |- include/README.txt - | | | |- src/README.txt | | | `- README.txt | | |- lm3s6965-ek/ - | | | |- include/README.txt - | | | |- src/README.txt | | | `- README.txt | | |- lm3s8962-ek/ - | | | |- include/README.txt - | | | |- src/README.txt | | | `- README.txt | | |- lpc4330-xplorer/ | | | `- README.txt | | |- lpcxpresso-lpc1768/ | | | `- README.txt - | | |- m68332evb/ - | | | |- include/README.txt - | | | `- src/README.txt | | |- mbed/ | | | `- README.txt | | |- mcu123-lpc214x/ - | | | |- include/README.txt - | | | |- src/README.txt | | | `- README.txt | | |- micropendous3/ | | | `- README.txt @@ -137,15 +113,11 @@ | | |- mirtoo/ | | | `- README.txt | | |- mx1ads/ - | | | |- include/README.txt - | | | |- src/README.txt | | | `- README.txt | | |- ne64badge/ | | | `- README.txt | | |- ntosd-dm320/ | | | |- doc/README.txt - | | | |- include/README.txt - | | | |- src/README.txt | | | `- README.txt | | |- nucleus2g/ | | | `- README.txt @@ -154,11 +126,8 @@ | | |- olimex-lpc1766stk/ | | | `- README.txt | | |- olimex-lpc2378/ - | | | |- include/README.txt | | | `- README.txt | | |- olimex-strp711/ - | | | |- include/README.txt - | | | |- src/README.txt | | | `- README.txt | | |- open1788/ | | | `- README.txt @@ -173,16 +142,10 @@ | | |- pirelli_dpl10/ | | | `- README.txt | | |- pjrc-8051/ - | | | |- include/README.txt - | | | |- src/README.txt | | | `- README.txt | | |- qemu-i486/ - | | | |- include/README.txt - | | | |- src/README.txt | | | `- README.txt | | |- rgmp/ - | | | |- include/README.txt - | | | |- src/README.txt | | | `- README.txt | | |- sama5d3x-ek/ | | | `- README.txt @@ -195,17 +158,11 @@ | | |- shenzhou/ | | | `- README.txt | | |- sim/ - | | | |- include/README.txt - | | | |- src/README.txt | | | `- README.txt | | |- skp16c26/ - | | | |- include/README.txt - | | | |- src/README.txt | | | `- README.txt | | |- stm3210e-eval/ - | | | |- include/README.txt | | | |- RIDE/README.txt - | | | |- src/README.txt | | | `- README.txt | | |- stm3220g-eval/ | | | `- README.txt @@ -230,24 +187,17 @@ | | |- ubw32/ | | | `- README.txt | | |- us7032evb1/ - | | | |- bin/README.txt - | | | |- include/README.txt - | | | |- src/README.txt | | | `- README.txt | | |- vsn/ | | | |- src/README.txt | | | `- README.txt | | |- xtrs/ - | | | |- include/README.txt - | | | |- src/README.txt | | | `- README.txt | | |- z16f2800100zcog/ | | | |- ostest/README.txt | | | |- pashello/README.txt | | | `- README.txt | | |- z80sim/ - | | | |- include/README.txt - | | | |- src/README.txt | | | `- README.txt | | |- z8encore000zco/ | | | |- ostest/README.txt From 41146445fe2960f51a46154e2a448af44fa06b9e Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 13 Sep 2013 12:45:33 -0600 Subject: [PATCH 1181/1518] STM32: Support for the LeafLabs Maple and Maple Mini boards. From Librae --- Documentation/NuttX.html | 9 +++++++++ Documentation/README.html | 2 ++ 2 files changed, 11 insertions(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index f63f673a0d..f087110173 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -2378,6 +2378,12 @@ nsh> See http://firestm32.taobao.com (the current board is version 3). Refer to the NuttX board README file for further information. +
                    • + LeafLab's Maple and Maple Mini boards. + These boards are based on the STM32F103RBT6 chip for the standard version and on the STM32F103CBT6 for the mini version. + See the LeafLabs web site for hardware information; + see the NuttX board README file for further information about the NuttX port. +
                    • These ports uses a GNU arm-nuttx-elf toolchain* under either Linux or Cygwin (with native Windows GNU tools or Cygwin-based GNU tools). @@ -2412,6 +2418,9 @@ nsh> The ENC28J60 network is functional (but required lifting the chip select pin on the W25x16 part). Customizations for the v3 version of the Wildfire board are selectable (but untested). +

                    • Maple. + Support for the Maple boards was contributed by Yiran Liao and first appear in NuttX 6-30. +

                  diff --git a/Documentation/README.html b/Documentation/README.html index 0dc73c1a83..748c516220 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -102,6 +102,8 @@ | | | `- README.txt | | |- lpcxpresso-lpc1768/ | | | `- README.txt + | | |- maple/ + | | | `- README.txt | | |- mbed/ | | | `- README.txt | | |- mcu123-lpc214x/ From e86735f1f4a0eaa304f8bb52f81501caa46fa09e Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 14 Sep 2013 10:40:18 -0600 Subject: [PATCH 1182/1518] Prep for release 6.30 --- Documentation/NuttX.html | 921 +++------------------------------------ 1 file changed, 53 insertions(+), 868 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index f087110173..3fc2fc613f 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                  NuttX RTOS

                  -

                  Last Updated: August 5, 2013

                  +

                  Last Updated: September 14, 2013

                  @@ -60,13 +60,6 @@ What kinds of host cross-development platforms can be used with NuttX? - - - - Memory Footprint.
                  - Just how big is it? Do I have enough memory to use NuttX? - - @@ -78,9 +71,10 @@ - Release History
                  + Release Notes What has changed in the last release of NuttX? - What unreleased changes are pending in GIT? + What has changed in previous releases of NuttX? + Are there any unreleased changes. @@ -812,7 +806,7 @@

                  -

                • Built-in USB trace functionality for USB debug.
                • +
                • Built-in USB device and USB host trace functionality for non-invasive USB debug.
                • @@ -1103,380 +1097,57 @@ -

                  NuttX-6.29 Release Notes

                  +

                  Git Repository

                  - The 95th release of NuttX, Version 6.29, was made on July 31, 2013, and is available for download from the + The working version of NuttX is available from the SourceForge GIT repository here. + That same page provides the URLS and instructions for cloning the GIT repository. +

                  + +

                  Released Versions

                  +

                  + In addition to the ever-changing GIT repository, there are frozen released versions of NuttX available. + The current release is NuttX 6.30. + NuttX 6.30 is the 97th release of NuttX. + It was released on September 14, 2013, and is available for download from the SourceForge website. - Note that the release consists of two tarballs: nuttx-6.29.tar.gz and apps-6.29.tar.gz. - Both may be needed (see the top-level nuttx/README.txt file for build information) - The change log associated with the release is available here. + Note that the release consists of two tarballs: nuttx-6.30.tar.gz and apps-6.20.tar.gz. + Both may be needed (see the top-level nuttx/README.txt file for build information). + Release notes for NuttX 6.30 are avaialble here. + The change log associated with the release is available here. Unreleased changes after this release are available in GIT. These unreleased changes are also listed here.

                  -

                  - Additional new features and extended functionality -

                  +

                  Unreleased Changes:

                    -
                  • -

                    - Drivers +

                  • nuttx. +

                      + The ChangeLog for the not-yet-released version of NuttX is available at the bottom of the ChangeLog file that can viewed in the SourceForge GIT.

                      -
                        -
                      • - Generalized the SSD1306 driver and added support UG-2832HSWEG04 which is very similar to the existing support for the UG-2864HSWEG01. -
                      • - Added support for a generic bit-bang SPI driver. - This includes - both a common "upper half" driver as well as a platform-specific "lower half " drivers based on a common "template. " -
                      • -
                      - -
                    • -

                      - ARMv7-A, Cortex-A5 +

                    +
                  • apps. +

                      + The ChangeLog for the not-yet-released version of apps is available at the bottom of the ChangeLog file that can viewed in the SourceForge GIT.

                      -
                        -
                      • - Added support for the ARMv7-A architecture and the Cortex-A5 in particular. -
                      • -
                      - -
                    • -

                      - ARMv7-M, Cortex-M3/4 +

                    +
                  • NxWidgets. +

                      + The ChangeLog for the not-yet-released version of NxWidgets is available at the bottom of the ChangeLog file that can viewed in the SourceForge GIT.

                      -
                        -
                      • - Modified how some registers are copied during a context switch (with "lazy" FPU register saving). - This should save some context switching time when the context switch is due to interrupt level processing. -
                      • -
                      - -
                    • -

                      - STM32 +

                    +
                  • pascal. +

                      + The ChangeLog for the not-yet-released version of pascal is available at the bottom of the ChangeLog file that can viewed in the SourceForge GIT.

                      -
                        -
                      • - Added support for a separate CCM memory heap. - This may be useful for segregating allocations for CCM memory (which cannot be used for DMA) from other allocations (that may be used used for DMA). -
                      • -
                      - -
                    • -

                      - STM32 Drivers +

                    +
                  • buildroot. +

                      + The ChangeLog for the not-yet-released version of buildroot is available at the bottom of the ChangeLog file that can viewed in the SourceForge GIT.

                      -
                        -
                      • - DAC: Added support for DAC DMA (contributed by John Wharington). -
                      • - I2C: An I2C driver for the STM32 F3 family (from John Wharington). -
                      • -
                      - -
                    • -

                      - Atmel AT91 SAM/4 -

                      -
                        -
                      • - Add support for SAM3X and SAM3A chips -
                      • -
                      -
                    • -
                    • -

                      - Atmel AT91 SAM/4 Drivers -

                      -
                        -
                      • - Re-architect the SAM3/4 SPI driver so that is it compatible with the SPI drivers of other MCUs. -
                      • - Added register definition file for the SAM4L LCD peripheral. -
                      • - Added SAM4L PDCA register definition file -
                      • -
                      -
                    • -
                    • -

                      - Atmel AT91 SAM/4 Boards -

                      -
                        -
                      • - SAM4L-Xplained: Added support for the SPI-based SD card on the I/O1 module. -
                      • - SAM4L-Xplained: Added a driver for the LED1 segment LCD module. -
                      • - SAM4L-Xplained: Added support for the UG-2832HSWEG04 OLED on the SAM4L Xplained Pro's OLED1 module -
                      • - SAM4S-Xplained: Added support for on-board 1MB SRAM. -
                      • - Arduino Due: Basic support for the Arduino Due (SAM3X) is now included. -
                      • - SAM3U-EK: The touchscreen is now functional. -
                      • -
                      -
                    • -
                    • -

                      - Atmel AT91 SAMA5D3 -

                      -
                        -
                      • - Added support for the Atmel AT91SAMA5D3 Cortex-A5 chip family. -
                      • -
                      -
                    • -
                    • -

                      - Atmel AT91 SAMA5D3 Boards -

                      -
                        -
                      • - Added support for the Atmel SAMA5D3x-EK boards which use the AT91 SAMA5D3x chips (x=1,3,4,5). -
                      • -
                      -
                    • -
                    • -

                      - Freescale KL25Z Drivers -

                      -
                        -
                      • - Freescale KL25Z TSI register definitions and example TSI driver for the Freedom KL25Z board from Alan Carvalho de Assis. -
                      • - Added SPI driver and register definitions for the Freescale KL25Z. -
                      • - Added a framework for controlling SPI-related discrete inputs and outputs. - Taken from work by Alan Carvalho de Assis -
                      • -
                      -
                    • -
                    • -

                      - Build System -

                      -
                        -
                      • - New sub-directories to hold SPI-related files: - includes/nuttx/spi.h moved to include/nuttx/spi/.; - SPI-related configuration logic moved from drivers/Kconfig to drivers/spi/kconfig. -
                      • - Finally... I changed the naming of configuration variables like CONFIG_DRAM_ to CONFIG_RAM_. - This has bothered me for a long time since most boards don't have DRAM. - The more generic RAM naming should not produce so much cognitive dissonance. -
                      • -
                      -
                    • -
                    • -

                      - Libraries -

                      -
                        -
                      • - Added CRC16 support. -
                      • -
                      -
                    • -
                    • -

                      - Applications -

                      -
                        -
                      • - Added Zmodem file transfer support. - This may be used as an embedded library or may be built as sz and rz commands that can be executed from the NSH command line. -
                      • - C++ initializers should be set once and, preferably, in the context of the task that uses any C++ statically initialized classes. - This only becomes an issue if cxxtest or helloxx are built as NSH builtin applications. - Then you want the initialization done in the context of cxxtext or helloxx tasks and not in the NSH task context(and certainly not twice). - Added configuration options to control who does the C++ initialization. - NSH now does not do C++ initialization be default and must be configured to do otherwise. Conversely, cxxtest and helloxx will always do C++ initialization unless configured do otherwise. -
                      • - examples/cxxtext: Add an ostream test as provided by Michael. -
                      • - NSH: Added a cmp command that can be used to compare two files for equivalence. - Returns an indication if the files differ. - Contributed by Andrew Tridgell (via Lorenz Meier). -
                      • -
                      -
                    • +
                  -

                  - Efforts In Progress. - The following are features that are partially implemented but present in this release. - They are not likely be be completed soon. -

                  - -
                    -
                  • -

                    - Audio System -

                    -
                      -
                    • - A complete audio subsystem include CODECs, higher level management, interface definitions, and audio drivers was contributed by Ken Pettit. - This work has not been completely verified as of this release and so is categorized as a work-in-progress. - At present, progress is blocked due to issues interfacing with the VS1053 audio DAC on the Mikroe STM32F4 board. -
                    • -
                    -
                  • -
                  • -

                    - kconfig-fronted Configuration -

                    -
                      -
                    • - Conversion of old configurations to use the kconfig-frontends tool is an ongoing effort that will continue for some time. - At this time, only 45% of the configurations have been converted to use the kconfig-frontends tools. -
                    • -
                    -
                  • -
                  - -

                  - Bugfixes (see the change log for details). - Some of these are very important: -

                  - -
                    -
                  • -

                    - File Systems -

                    -
                      -
                    • - Fixed compilation error if no file systems are enabled: Change error to ERROR. -
                    • - Read-Ahead/Write buffering: Correct typos that can cause failures in some configurations (From Chia Cheng Tsao). -
                    • -
                    -
                  • -
                  • -

                    - Driver -

                    -
                      -
                    • - Remove the wait for the touchscreen busy bit in the ADS7843E driver. - From my reading of the ADS7843 spec, it would not be appropriate to wait for the BUSY bit to de-asserted anyway (since it is only de-asserted when we read the data). - Most boards do not even bother to provide the BUSY bit. -
                    • - MMC/SD SPI based driver: - Driver needs to make sure that the SPI mode and data width are correct. -
                    • - ENC28J60: Change buffer ordering to work around Errata. - From Dave (ziggurat29). -
                    • -
                    -
                  • -
                  • -

                    - USB Device Controller Drivers -

                    -
                      -
                    • - Fixed a typo in the composite device driver unitialization logic. - DEV1 should be DEV2 in one case. -
                    • - usbdev.h: Fix some typos that cause compiler errors when CONFIG_USBDEV_DMA and CONFIG_USBDEV_DMAMEMORY are selected (From Chia Cheng Tsao). -
                    • -
                    -
                  • -
                  • -

                    - ARM9 -

                    -
                      -
                    • - Fix a bug (uninitialized register error) that crept in the ARM9 boot-up code several years ago. - Obviously no one has used the ARM9 NuttX port for years! -
                    • -
                    -
                  • -
                  • -

                    - STM32 Drivers -

                    -
                      -
                    • - Fix STM32 OTF FS endpoint allocation logic. - Apparently the same endpoint can be allocated as both an IN or an OUT endpoint. - The existing implementation only supported one allocation, either IN or OUT. - This resulted in failures to allocate endpoints when used with the CDC/ACM + MSC composite driver (From Chia Cheng Tsao). -
                    • - SDIO: Add support for the data block end (DBCKEND) interrupt to terminate transfers (From Chia Cheng Tsao). -
                    • - DAC: Fixed numerous DAC driver errors and added support for DAC DMA (contributed by John Wharington). -
                    • -
                    -
                  • -
                  • -

                    - SAM3/4 -

                    -
                      -
                    • - SAM4S: Correct configuration of PIO pins for SAM4S B and C peripherals. -
                    • - Need to disable write protection before configuring PIO pins. -
                    • - GPIO configuration logic must protect against re-entrancy. -
                    • - Clocking must be applied to the SMC module for the 3X and 3A family in order for the NFC SRAM to be functional. -
                    • - Fixed some errors for interrupts on ports D-F. -
                    • -
                    -
                  • -
                  • -

                    - SAM3/4 Drivers -

                    -
                      -
                    • - Common SPI driver: Fix SPI mode setting. - In the SAM3/4 family, the clock phase control (CPHA) is inverted (NPHA). - Also fixed an incorrect pointer test. - It was checking if the wrong pointer was NULL. -
                    • -
                    -
                  • -
                  • -

                    - SAM3/4 Boards -

                    -
                      -
                    • - SAM3U-EK: Fix polarity of the /PENIRQ signal (it is active low). - The SAM3U-EK board now runs at 96MHz. -
                    • -
                    -
                  • -
                  • -

                    - Applications -

                    -
                      -
                    • - apps/examples/nxhello: Minor fix for compilation error when the display resolution is low (< 8bpp) due to a typo that has been there for a long time. - Also Correct default colors when in Y1 code mode. -
                    • - apps/system/ramtest: The RAM test was not correctly builtinto the configuration and build system. -
                    • - apps/examples/composite: Change to prevent some false alarm debug assertions (From Chia Cheng Tao). -
                    • -
                    -
                  • -
                  -

                  - See the ChangeLog for additional, detailed changes. -

                  @@ -1993,13 +1664,18 @@

                  STATUS. Initial support for the SAMA5D3x-EK was released in NuttX-6.29. - This initial support is very minimal: - There are simple test configurations that run out of internal SRAM and two configurations that run out of the on-boar NOR FLASH: + That initial support was minimal: + There are simple test configurations that run out of internal SRAM and extended configurations that run out of the on-board NOR FLASH: (1) An OS test configuration that verifies the correct port of NuttX to the part and - (2) a NuttShell (NSH) configuration that might be the basis for further application development. + (2) A barebones NuttShell (NSH) configuration that can be used as the basis for further application development. + (3) A full-loaded NuttShell (NSH) configuration that demonstrates all of the SAMA5D3x features. +

                  +

                  + The following drivers and features were added in Nuttx 6.30: + DMA and PIO interrupts, drivers for SPI, AT25 Serial Flash, Two Wire Interface (TWI), and HSMCI memory cards included in NuttX-6.30. + NuttX-6.30 also introduces full USB support: High speed device controller driver, and OHCI (low- and full-speed) and EHCI (high-speed) host controller driver support. Develop continues. - Support of DMA and PIO interrupts and drivers for SPI, AT25 Serial Flash, and HSMCI memory cards included in NuttX-6.30. - More device drivers are needed to make this a more complete port, particularly USB and networking. + Additional driver developement is underway (include LCD and networking) and there should be available in NuttX-6.31. Refer to the NuttX board README file for further information.

                  Development Environments: @@ -2451,6 +2127,7 @@ nsh> STATUS: Configurations for the basic OS test and NSH are available and verified. Networking is functional. + Support for an external ENCX24J600 network was added in NuttX 6.30.

                  @@ -2884,7 +2561,7 @@ nsh>

                • Easy access to most MCU pins.
                • - Refer to the STMicro web site for further information about this board and to + Refer to the STMicro web site for further information about this board and to

                    @@ -4095,59 +3772,6 @@ if [ -x "$WINELOADER" ]; then exec "$WINELOADER" "$appname" "$@"; fi

                  - - - - -
                  -

                  Memory Footprint

                  -
                  - -
                    -

                    C5471 (ARM7) - The build for this ARM7 target that includes most of the OS features and - a broad range of OS tests. The size of this executable as given by the - Linux size command is (3/9/07): -

                    -
                    -   text    data     bss     dec     hex filename
                    -  53272     428    3568   57268    dfb4 nuttx
                    -
                    -

                    DM320 (ARM9) - This build for the ARM9 target includes a significant subset of OS - features, a filesystem, Ethernet driver, full TCP/IP, UDP and (minimal) - ICMP stacks (via uIP) and a small network test application: (11/8/07, - configuration netconfig, apps/examples/nettest) -

                    -
                    -   text    data     bss     dec     hex filename
                    -  49472     296    3972   53740    d1ec nuttx
                    -
                    -

                    - Another build for the ARM9 target includes a minimal OS feature - set, Ethernet driver, full TCP/IP and (minimal) ICMP stacks, and - a small webserver: (11/20/07, configuration uipconfig, apps/examples/uip) -

                    -
                    -   text    data     bss     dec     hex filename
                    -  52040      72    4148   56260    dbc4 nuttx
                    -
                    -

                    87C52 - A reduced functionality OS test for the 8052 target requires only - about 18-19K: -

                    -
                    -Stack starts at: 0x21 (sp set to 0x20) with 223 bytes available.
                    -
                    -Other memory:
                    -   Name             Start    End      Size     Max
                    -   ---------------- -------- -------- -------- --------
                    -   PAGED EXT. RAM                         0      256
                    -   EXTERNAL RAM     0x0100   0x02fd     510     7936
                    -   ROM/EPROM/FLASH  0x2100   0x6e55   19798    24384
                    -
                    -
                  -
                  @@ -4167,445 +3791,6 @@ Other memory:

                  - - - - -
                  -

                  Release History

                  -
                  - -
                    -

                    - ChangeLog snapshots associated with the previous, current, and future release are available below. -

                    -
                  - -
                  - - - - - - - - - - - - -
                  - Change logs for previous NuttX releases
                  -
                  - ChangeLog for the current NuttX releases
                  -
                  - Unreleased changes -
                  - - - - - -
                  - ChangeLog for the Current Release -
                  - -
                    -6.29 2013-07-31 Gregory Nutt <gnutt@nuttx.org>
                    -
                    -    * arch/arm/src/sam34/chip/sam4l_pinmap.h: Change naming of some pin
                    -      configurations to match names used with other SAM part (2013-6-15).
                    -    * arch/arm/src/sam34/sam4l_clockconfig.c: Corrected some typos
                    -      (2013-6-15).
                    -    * configs/sam4l-xplained/src/sam_buttons.c: Eliminate a warning
                    -      (2013-6-15).
                    -    * configs/sam4l-xplained/src/sam_mmcsd.c, sam_nsh.c, sam_spi.c,
                    -      sam3u-ek.h, Kconfig, Makefile, sam4l-xplained.h,
                    -      configs/sam4l-xplained/README.txt, and
                    -      configs/sam4l-xplained/include/board.h:  Add support for the SPI-
                    -      based SD card on the I/O1 module (2013-6-15).
                    -    * arch/arm/src/sam34/sam_spi.c:  Re-architect the SAM3/4 SPI driver
                    -      so that is it compatible with the SPI drivers of other MCUs
                    -      (2013-6-16).
                    -    * configs/sam3u-ek/src/up_touchscreen.c and configs/sam4l-xplained/src/sam_mmcsd.c:
                    -      Changed needed because of the above change to the SAM3/4 SPI
                    -      interface (2013-6-16).
                    -    * drivers/input/ads7843e.c:  Remove the wait for the touchscreen busy
                    -      bit.  I don't see the busy bit changing on the SAM3U-EK board.  But
                    -      maybe it is not supposed to.  From my reading of the ADS7843 spec, it
                    -      would not be appropriate to wait for the BUSY bit to de-asserted
                    -      anyway (since it is only de-asserted when we read the data)
                    -      (2013-6-16).
                    -    * configs/sam3u-ek/src/up_touchscreen.c: Fix polarity of the /PENIRQ
                    -      signal (it is active low) (2013-6-16).
                    -    * configs/sam3u-ek/include/board.h:  The SAM3U-EK board now runs at
                    -      96MHz.  This might have broken some things? (2013-6-17).
                    -    * drivers/mmcsd/mmcsd-spi.c:  Driver need to make sure that the SPI mode
                    -      and data width are correct (2013-6-17).
                    -    * arch/arm/src/kinetis/kinetis_tsi.h:  Corrections to the Kinetis
                    -      (2013-6-18)
                    -    * arch/arm/src/sam34/sam_spi.c:  Fix SPI mode setting.  In the SAM3/4
                    -      family, the clock phase control (CPHA) is inverted (NPHA) (2013-6-18).
                    -    * arch/arm/src/kl/chip/kl_tsi.h: Freescale KL25Z TSI register
                    -      definitions from Alan Carvalho de Assis (2013-6-18).
                    -    * configs/freedom-kl25z/src/kl_tsi.c:  Example TSI driver for the
                    -      Freedom KL25Z board from Alan Carvalho de Assis (2013-6-18).
                    -    * arch/arm/src/sam34/sam_spi.c:  Correct an incorrect pointer test.
                    -      Was checking if the wrong pointer was NULL (2013-6-18).
                    -    * arch/arm/src/kl/kl_spi.c and chip/kl_spi.h:  Add SPI driver and
                    -      register definitions for the Freescale KL25Z (2013-6-19).
                    -    * arm/src/sam34/chip/sam4l_lcdca.h:  Register definition file for
                    -      the SAM4L LCD peripheral (2013-6-19).
                    -    * arm/src/sam34/chip/sam_spi.h:  SPI register definition file updated
                    -      to include a few differences for the SAM4L (2013-6-19)
                    -    * arm/src/sam34/chip/sam4l_pdca.h: Add SAM4L PDCA register definition
                    -      file; also renamed sam_dmac.* files to sam3u_dmac.* to identify
                    -      them as SAM4U/4S only files (2013-6-19).
                    -    * configs/freedom-lk25z/src/kl_spi.c:  Add the framework for
                    -      controlling SPI-related discrete inputs and outputs.  Taken from
                    -      work by Alan Carvalho de Assis (2013-6-20).
                    -    * arch/arm/src/kl/kl_dumpgpio.c:  Now compiles (2013-6-20).
                    -    * configs/:  Several defconfig files were changed that had
                    -      CONFIG_HAVE_CXXINITIALIZE=y.  Because of recent changes to
                    -      apps/examples, these configurations may need to have
                    -      CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y so that they behave as they did
                    -      before, i.e., so that C++ initializers will be called when NSH starts
                    -      up (2013-6-21).
                    -    * configs/sam4l-xplained/src/sam_slcd.c:  Beginning of a driver for the
                    -      LED1 segment LCD module.  This driver is incomplete on initial check-
                    -      in (2013-6-21).
                    -    * drivers/net/enc28j60.c:  Change buffer ordering to work around Errata
                    -      #5.  From Dave (ziggurat29, 2013-6-22).
                    -    * configs/sam4l-xplained/src/sam_slcd.c:  LED1 segment LCD module is now
                    -      functional (2013-6-23).
                    -    * drivers/lcd/ssd1306.c and include/nuttx/lcd/ssd1306.h.  Renamed
                    -      ug-2864hsweg01.c and .h to ssd1306.c and .h.  Extended to support the
                    -      UG-2832HSWEG04 which is very similar and also based on the SSD1306
                    -      controller (2013-6-23).
                    -    * configs/sam4l-xplained/src/sam_ug2832hsweg04.c: Add support for the
                    -      UG-2832HSWEG04 OLED on the SAM4L Xplained Pro's OLED1 module
                    -      (2013-6-23).
                    -    * include/debug.h:  Added macro DEBUGPANIC for forces crashes when debug
                    -      is enabled.
                    -    * drivers/lcd/ssd1306.c:  Driver now appears to be function for the
                    -      UG-2832HSWEG04 in landscape mode (2013-6-24).
                    -    * drivers/lcd/ug-2864ambag01.c and ug-9664hswag01.c:  Add/updated
                    -      support for reverse portrait mode from lessons learned with the
                    -      UG-2832HSWEG04.  Untested changes! (2013-6-24).
                    -    * arch/arm/src/stm32/stm32_ccm.c and .h:  Add support for a seperate CCM
                    -      heap.  This may be useful for segregating allocations for CCM (which
                    -      cannot be used for DMA) from other allocations (that may be used used
                    -      for DMA) (2013-6-25).
                    -    * arch/arm/src/sam32/sam3u_gpio.h:  Correct configuration of PIO pins
                    -      for SAM4S B and C peripherals (2013-6-26)
                    -    * configs/sam4s-xplained/src/sam_sram.c:  Added support for on-board
                    -      1MB SRAM (2013-6-26).
                    -    * arch/arm/include/sam34/chip.h and sam3x_irq.h:  Add support for
                    -      SAM3X and SAM3A chips (2013-6-26).
                    -    * arch/arm/src/sam34/chip/sam3x_vectors.h:  Add support for SAM3X/3A
                    -      interrupt vectors (2013-6-26).
                    -    * arch/arm/src/sam34/sam3x_periphclks.h:  Add peripheral clock
                    -      controls for the SAM3X/3A (2013-6-26).
                    -    * arch/arm/src/sam34/chip/sam3x_memorymap.h:  Add SAM3X/3A memory map
                    -      (2013-6-26).
                    -    * arch/arm/src/sam34/chip/sam3x_pinmap.h:  Add SAM3X/3A pin
                    -      multi-plexing definitions (2013-6-26).
                    -    * arch/arm/src/sam34/sam3x_gpio.h:  Add SAM3X/3A gpio encoding
                    -      macros.  These differ from the SAM3U only in because of the
                    -      6 PIOs:  PIOA-PIOF (2013-6-26).
                    -    * configs/arduino-due:  This is an empty directory now with only
                    -      a README file in it but this directory will eventually hold a port
                    -      for the Arduino Due (2013-6-26).
                    -    * arch/arm/src/sam34/Kconfig:  Add SAM3X/3A peripherals to the SAM3/4
                    -      configuration logic (2013-6-26).
                    -    * arch/arm/src and include/ and configs/sam*/:  Large rename of all
                    -      references to SPI with SPI0.  This is because all other SAMs have
                    -      only SPI but the 3X/3A have SPI0 and SPI1 (2013-6-26).
                    -    * configs/arduino-due:  Complete the basic board configuration and
                    -      integrate this into the configuration and build system.  The Arduino
                    -      Due is now ready to begin test (2013-6-17).
                    -    * configs/arduino-due/nsh:  Add an NSH configuration for the Arduino
                    -      Due.  Both the OS test and NSH configuration are now functional
                    -      (2013-6-28).
                    -    * configs/arduino-due/src:  Add support for the "L" LED (2013-6-28).
                    -    * arch/arm/src/sam34/sam_allocateheap.c:  Clocking must be applied
                    -      to the SMC module for the 3X and 3A family in order for the NFC
                    -      SRAM to be functional (2013-6-28).
                    -    * arch/arm/src/sam34/sam3u_gpio.c:  Need to disable write
                    -      protection before configuring PIO pins.
                    -    * configs/sam3u-ek/nsh:  The touchscreen is now functional.  The above
                    -      fix to the sam3u_gpio.c write protection also fixed the touchscreen
                    -      problem (2013-6-28).
                    -    * confgis/sam3u_ek/nxwm:  Created a configuration for the NxWM
                    -      window manager for the SAM3U-EK board (2013-6-29).
                    -    * drivers/spi and include/nuttx/spi:  New sub-directories to hold
                    -      SPI-related files.  includes/nuttx/spi.h moved to include/nuttx/spi/.;
                    -      SPI-related Kconfig info moved from drivers/Kconfig to drivers/spi/kconfig
                    -      (2013-7-1).
                    -    * drivers/spi/spi_bitbang.c and include/nuttx/spi/spi_bitbang.h:  Add
                    -      support for a generic bit-bang SPI driver.  This checkout is the
                    -      common upper-half logic.  Still missing the lower half (2013-7-1).
                    -    * include/nuttx/spi/spi_bitbang.c:  This is the common lower-half bit-
                    -      bang SPI logic (2013-7-1).
                    -    * configs/arduino-due/src/sam_nsh.c and sam_mmcsd.c:  Add NSH customize
                    -      initialization.  If so configured, initialize the SPI bit bang
                    -      interface to the MMC/SD slot on the ITEAD shield (2013-7-1).
                    -    * fs/fs_mount.c:  Fix compilation error if no file systems are enabled:
                    -      Change error to ERROR (2013-7-3).
                    -    * arch/arm/src/sam34/sam_gpioirq.c:  Fix some errors for interrupts
                    -      on ports D-F (2013-7-3).
                    -    * /drivers/usbdev/composite.c: Fix a typo in the composite device
                    -      driver unitialization logic.  DEV1 should be DEV2 in one case
                    -      (2013-7-4).
                    -    * arch/arm/src/sam34/sam3u_gpio.c:  sam_configgpio() must protect
                    -      against re-entrancy (2013-7-5).
                    -    * libc/misc/lib_crc16.c and include/crc16.h:  Add CRC16 support
                    -      (2013-7-7).
                    -    * arch/arm/src/stm32/stm32_otgfsdev.c:  SourceForge bug #16:  Fix
                    -      to the endpoint allocation logic.  Apparently the same endpoint can
                    -      be allocated as both an IN or an OUT endpoint.  The existing
                    -      implementation only supported one allocation, either IN or OUT.  This
                    -      resulted in failures to allocate enpoints when used with the CDC/ACM +
                    -      MSC composite driver (From Chia Cheng Tsao, 2013-7-8).
                    -    * arch/arm/src/stm32/stm32_sdio.c:  SourceForge bug #17:  Add
                    -      support for the data block end (DBCKEND) interrupt to terminate
                    -      transfers (From Chia Cheng Tsao, 2013-7-8)
                    -    * drivers/rwbuffer.c: SourceForge bug #17: Correct typos that can cause
                    -      failures in some configurations (From Chia Cheng Tsao, 2013-7-8).
                    -    * include/nuttx/usb/usbdev.h: Fix some typos that cause compiler errors
                    -      when CONFIG_USBDEV_DMA and CONFIG_USBDEV_DMAMEMORY are selected (From
                    -      Chia Cheng Tsao, 2013-7-12).
                    -    * nuttx/configs/olimex-lpc1766stk/zmodem:  Add a new configuration to
                    -      test the Zmodem sz and rz commands (which don't actually exist yet,
                    -      but will). (2013-7-12).
                    -    * arch/arm/include/armv7-a and src/armv7-a:  Beginning to add support
                    -      for the ARMv7-A, the Cortex-A5 in particular.  The initial checkin
                    -      is only fragmentary:  A few header files and some copied ARM9
                    -      assembly files.  More to come (2013-7-18).
                    -    * arch/arm/include/sama5, arch/arm/src/sama5, and configs/sama5d3x-e:
                    -      Add a directory framework to support the Atmel AT91SAMA5D3 family and
                    -      the SAMA5D3x-EK board(s) in particular.  There is very little here on
                    -      the first check-in, this structure is being used now primarily to
                    -      create the Cortex-A5 support (2013-7-19).
                    -    * arch/arm/src/armv7-a/arm_cache.S:  Cortex-A5 cache operations
                    -      (2013-7-20).
                    -    * /arch/arm/src/armv7-a/arm_fpuconfig.S and fpu.h: A few more files for
                    -      the ARMv7-A/Cortex-A5 port (2013-7-21).
                    -    * arch/arm/src/sama5/sam_boot.c, sam_clockconfig.h, sam_lowputc.h, and
                    -      sam_timerisr.c:  A few  more files for the SAMA5D3 port (2013-7-21).
                    -    * configs/sama5d3x-ek/src/sam_autoleds.c:  A few more files for the port
                    -      to the SAMA5D3x-EK board (2013-7-21).
                    -    * arch/arm/src/sama5/sam_irq.c: SAMA5 interrupt handling logic
                    -      (2013-7-22).
                    -    * arch/arm/src/sama5/sam_clockconfig.c:  Add SAMA5 PLL configuration
                    -      logic (plus associated header files).  Initiali checkin is for the
                    -      SAM3U which is very similar but needs to be verified (2013-7-22).
                    -    * arch/arm/src/sama5/sam_periphclks.h:  Add macros to enable and
                    -      disable SAMA5 peripheral clocks (2013-7-22).
                    -    * arch/arm/src/sama5/sam_lowputc.c and sam_serial.c:  Add support
                    -      for SAMA5 UARTs.  Does not even compile as of initial checkin.
                    -      (2013-7-22).
                    -    * arch/arm/src/sama5/sam_gpio.c:  Add GPIO configuration support
                    -      for the SAMA5.  Still compilation issues.  (2013-7-22).
                    -    * arch/arm/src/sama5/chip/sama5d3x_pinmap.h:  Add pin multiplexing
                    -      definitions for the SAMA5D3 (2013-7-23).
                    -    * arch/arm/src/sama5/chip/:  New header files for SAMA5 AXI Matrix
                    -      SFR, and BSC blocks (2013-7-23).
                    -    * arch/arm/src/armv7-a/arm_vectors.S:  Force 8-byte stack alignment
                    -      in interrupt handlers before calling C code.  Other ARM
                    -      architectures need to do this as well (2013-7-23).
                    -    * arm/src/armv7-m/up_copyarmstate.c and armv7-a/up_copyarmstate.c:
                    -      Added a new form of the register copy function that should save quit a
                    -      bit of time for armv7-m (without common vectors) and with armv7-a
                    -      (2013-7-23).
                    -    * arch/arm/src/armv7-a/arm_restorefpu.S, arm_savefpu.S, arm_doirq.c,
                    -      arm_fullcontextrestore.S, arm_saveusercontext.S:  Add hardware
                    -      floating point register save/restore logic for the Cortex-A5\
                    -      (2013-7-23).
                    -    * arch/Kconfig:  Attempt at generic external memory configuration is not
                    -      flexible enough, especially for the SAMA5.  Move external memory
                    -      configuration options from arch/Kconfig to
                    -      arch/arm/src/lpc17xx/Kconfig, lpc31xx/Kconfig, sam34/Kconfig, and
                    -      sama5/Kconfig and renamed each from CONFIG_ARCH_ to, for example,
                    -      CONFIG_LPC31_.  This renaming also affect many defconfig files
                    -      (2013-7-24).
                    -    * arch/arm/src/sama5/Kconfig and sam_allocateheap.c:  Set up
                    -      configuration options for SAMA5 external memory regions; add a custom
                    -      sam_allocateheap.c to add the various configured memory regions to the
                    -      heap (2013-7-24).
                    -    * configs/sama5d3x-ek/src/sam_buttons.c, sam_userleds.c, and
                    -      sam_autoleds.c:  Add support for the buttons and LEDs on-board the
                    -      SAMA5D3x-EK (2013-7-24).
                    -    * configs/sama5d3x-ek/ostest/defconfig:  Switch console to USART1
                    -      (2013-7-4).
                    -    * arch/arm/src/sam34/Kconfig and drivers/serial/Kconfig:  All serial
                    -      configuration logic for USARTs needs to depend on if the USART is
                    -      configured as a UART or not.  And this is for all CPUS, not just
                    -      SAM3/4 (2013-7-24).
                    -    * arch/arm/src/arm/up_head.S and arch/arm/src/armv7-a/arm_head.S:
                    -      Fix a bug (uninitialized register error) that crept in the ARM9
                    -      boot-up code several years ago and was cloned into the Cortex-A5
                    -      code.  Obviously no one has used the ARM9 NuttX port for years!
                    -    * Many files:  Finally... I changed the naming of configuration
                    -      variables like CONFIG_DRAM_ to CONFIG_RAM_.  This has bothered
                    -      me for a long time since most boards don't have DRAM.  The more
                    -      generic RAM naming should not produce so much cognitive dissonance
                    -      (2013-7-26).
                    -    * configs/sama5d3x-ek/hello:  Added a tiny hello world configuration
                    -      to simplify bring up of the SAMA5 (it will probably be removed
                    -      later) (2013-7-26).
                    -    * The sama5d3x-ek/hello now runs correctly (2013-7-28).
                    -    * configs/sama5d3x-ek/ostest/:  This configuration has been modified
                    -      to run out NOR flash.  More work is still needed to reconfigure the
                    -      SMC so that the NOR flash can work with the high clock (2013-7-28).
                    -    * arch/arm/src/sama5/sam_clockconfig.c/h and
                    -      configs/sama5d3x-ek/src/sam_norflash.c:  Add a file structure that
                    -      will (eventually) support reconfiguration of NOR flash when NuttX
                    -      boots from NOR FLASH (2013-7-29).
                    -    * arch/arm/src/sama5/chip/sam_hsmc/h:  SAMA5 HSMC register
                    -      defintion file (2013-7-29)
                    -    * configs/sama5d3x-ek/src/sam_norflash.c:  Add board specific
                    -      logic to re-configure the SAMA5D3x-EK NOR FLASH before while
                    -      running out of NOR FLASH.  We need to change the NOR FLASH
                    -      timing BEFORE increasing the main clock (2013-7-29).
                    -    * configs/sama5d3-ek/norboot and src/nor_main.c:  The norboot
                    -      configuration to help debug NuttX in NOR flash.  It runs
                    -      out of ISRAM, configures NOR FLASH, then waits for you to
                    -      break in with a debugger to start the program in NOR FLASH
                    -      (2013-7-29).
                    -    * arch/arm/src/armv7-a/arm_cache.S:  Separate the bigger cache
                    -      operations into separater files (2013-7-29).
                    -    * arch/arm/src/stm32/stm32_dac.c:  Fixed numerous DAC driver
                    -      errors and added support for DAC DMA (contributed by John
                    -      Wharington, 2013-7-30).
                    -    * arch/arm/src/stm32/stm32f30xx_i2c.c:  An I2C driver for
                    -      the STM32 F3 family from John Wharington (2013-7-30).
                    -    * arch/arm/include/armv7-m:  Add irqdisable() (2013-7-30);
                    -    * configs/sama5d3-ek/src/nor_main.c:  Now disables interrupts
                    -      before jumping to NOR flash (2013-7-30).
                    -    * configs/sama5d3-ek/nsh:  Add an NSH configuration for the
                    -      SAMA5D3x-EK (2013-7-31)
                    -    * configs/sama5d3-ek/src/sam_cxxinitialize.c:  Add C++ support
                    -      (2013-7-31).
                    -
                    -apps-6.29 2013-07-31 Gregory Nutt <gnutt@nuttx.org>
                    -
                    -    * apps/examples/nsh, cxxtest, and helloxx:  C++ initializers should be
                    -      set once and, preferably, in the context of the task that uses any C++
                    -      statically initialized classes.  These only becomes an issue if cxxtest
                    -      or helloxx are built as NSH builtin applications.  Then you want the
                    -      initialization done in cxxtext or helloxx and not in NSH (and certainly
                    -      not twice).  Added configuration options to control who does the C++
                    -      initialization.  NSH now does not do C++ initialization be default and
                    -      must be configured to do otherwise.  Converely, cxxtest and helloxx
                    -      will do C++ initialization unless configured do otherwise (2013-6-21).
                    -    * apps/examples/cxxtext:  Add ostream test as provided by Michael
                    -      (2013-6-21).
                    -    * apps/examples/nxhello:  Minor fix for compilation error when the
                    -      display resolution is low (< 8bpp) due to a typo that has been there
                    -      for a long time (2013-6-23).
                    -    * apps/examplex/nxhello:  Correct default colors when in Y1 code mode.
                    -      (2013-6-24).
                    -    * apps/system/Make.defs and Kconfig:  The RAM test was not correctly built
                    -      into the configuration and build system (2013-6-26).
                    -    * apps/examples/composite/composite_main.c:  SourceForge But Ticket #19.
                    -      Change to prevent some false alarm debug assertions (From Chia Cheng
                    -      Tao, 2013-7-9).
                    -    * apps/system/zmodem:  Add configuration support and a build framework
                    -      for the Zmodem sz and rz command (which exist but have not yet been
                    -      checked in) (2013-7-12).
                    -    * apps/system/zmodem:  The 'sz' command is now complete and seems
                    -      functional (given on light testing).  The rz command logic exists but
                    -      is still untested and not yet checked in  (2013-7-13).
                    -    * apps/system/zmodem:  The 'rz' command is now complete and functional
                    -      under certain conditaions.  There are, however, some data overrun
                    -      issues that I am still uncertain how should be handled (2012-7-15).
                    -    * apps/system/zmodem/Makefile.host and host/: The Zmodem utilities
                    -      can now be built to execute on a Linux host.
                    -    * apps/nshlib/nsh_fscmds.c:  Add a 'cmp' command that can be used to
                    -      compare two files for equivalence.  Returns an indication if the files
                    -      differ.  Contributed by Andrew Tridgell (via Lorenz Meier) (2013-7-18).
                    -
                    -NxWidgets-1.8 2013-06-14 Gregory Nutt <gnutt@nuttx.org>
                    -
                    -    * NxWM::CMediaPlayer: shell application for an MP3 Media Player with
                    -      Kconfig settings to enable it.  I plan to write this app to help
                    -      develop and test the MP3 codec chip driver.  It really doesn't do
                    -      anything yet except display a text box saying "Coming soon", and I
                    -      need to minimize the icon size a bit.  From Ken Pettit (2013-5-11).
                    -    * NxWidgets/nxwm/src/glyph_mediaplayer.cxx:  Smaller version of the
                    -      media player glyph.  From Ken Pettit (2013-5-12).
                    -    * NxWidgets/nxwm/include/ccalibration.hxx and src/ccalibration.cxx:
                    -      Fix a race condition that would cause the calibration screen
                    -      to fail to come up when its icon was touched (From Ken Pettit,
                    -      2013-5-12).
                    -    * Kconfig:  Default priorities for NxWidget and NxWM threads
                    -      should be 100, not 50, to be consistent with other default priorities.
                    -    * NxWidgets::CGlyphSliderHorizontal and NxWidgets::CGlyphSliderHorizontalGrip:
                    -      New widgets added by Ken Pettit (2013-5-15).
                    -    * NxWidgets/UnitTests/CGlyphSliderHorizontal:  Addes a unit test for the
                    -      NxWidgets::CGlyphSliderHorizontal class. From Ken Pettit (2013-5-17) .
                    -    * NxWidgets::CGlyphSliderHorizontal:  Fix a drawing error.  From Ken
                    -      Pettit (2013-5-17).
                    -    * UnitTests/*/Makefile and .gitignore:  Update the way that NSH
                    -      the Unit Tests are registered as built-in NSH applications (2013-5-30).
                    -    * NxWidgets::CImage:  Allow a NULL pointer for a bitmap.  Add protection
                    -      to prevent dereferencing the NULL pointer.  From Petteri Aimonen
                    -      (2013-6-4).
                    -    * NxWidgets::CNumericEdit:  Delay before auto-incrementing now varies:
                    -      A longer delay is required to start auto-incrementing and speed increases
                    -      while pressed.  From Petteri Aimonen (2013-6-4).
                    -    * NxWM::CTaskbar: Add a method to redraw the taskbar and the current
                    -      application.  This should only be necessary if the display loses
                    -      state due to e.g. powerdown or other manual intervention.  From
                    -      Petteri Aimonen (2013-6-4).
                    -
                    -uClibc++-1.0 2011-11-05 <gnutt@nuttx.org>
                    -
                    -    * The initial release of the uClibc++ implementation of the standard
                    -      C++ library for NuttX.  This package was contributed ay Qiang Yu and
                    -      David for the RGMP team.
                    -
                    -buildroot-1.12 2011-13-15 <gnutt@nuttx.org>
                    -
                    -    * Fix typo toolchain/gdb/Config.in that prevented GDB 7.4 from building
                    -      (from Ken Bannister).
                    -    * Add support for a Cortex-M0 toolchain based on GCC 4.6.3.
                    -
                    -pascal-3.0 2011-05-15 Gregory Nutt <gnutt@nuttx.org>
                    -
                    -    * nuttx/:  The Pascal add-on module now installs and builds under the
                    -      apps/interpreters directory.  This means that the pascal-2.1 module is
                    -      incompatible with will all releases of NuttX prior to nuttx-6.0 where the
                    -      apps/ module was introduced.
                    -
                  - - - - - -
                  - Unreleased Changes -
                  - -
                    -
                  • nuttx. - The ChangeLog for the not-yet-released version of NuttX is available at the bottom of the ChangeLog file that can viewed in the SourceForge GIT. -
                  • -
                  • apps. - The ChangeLog for the not-yet-released version of apps is available at the bottom of the ChangeLog file that can viewed in the SourceForge GIT. -
                  • -
                  • NxWidgets. - The ChangeLog for the not-yet-released version of NxWidgets is available at the bottom of the ChangeLog file that can viewed in the SourceForge GIT. -
                  • -
                  • pascal. - The ChangeLog for the not-yet-released version of pascal is available at the bottom of the ChangeLog file that can viewed in the SourceForge GIT. -
                  • -
                  • buildroot. - The ChangeLog for the not-yet-released version of buildroot is available at the bottom of the ChangeLog file that can viewed in the SourceForge GIT. -
                  • -
                  - @@ -1885,7 +1885,7 @@ put [-b|-n] [-f <remote-path>] -h <ip-address> <local-path> From f862facb2d4d8094efa9fd24bea2ba879413e65b Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 25 Sep 2013 16:54:39 -0600 Subject: [PATCH 1184/1518] Move apps/examples/usbmsc to apps/system/usbmsc --- Documentation/README.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/README.html b/Documentation/README.html index 748c516220..759e718166 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -265,6 +265,7 @@ | `- system/ | |- i2c/README.txt | |- install/README.txt + | |- usbmsc/README.txt | `- zmodem/README.txt `- NxWidgets |- Doxygen From 7f59b680691009530fa05133cc29066fa1d0a14e Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 25 Sep 2013 17:23:03 -0600 Subject: [PATCH 1185/1518] Move apps/examples/cdcacm to apps/system/cdcacm --- Documentation/README.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/README.html b/Documentation/README.html index 759e718166..f2cb00c80c 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -263,6 +263,7 @@ | |- NxWidgets/ | | `- README.txt | `- system/ + | |- cdcacm/README.txt | |- i2c/README.txt | |- install/README.txt | |- usbmsc/README.txt From 5c6d8b75fa6da762024a5f304cda9fc490ff25aa Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 27 Sep 2013 16:12:44 -0600 Subject: [PATCH 1186/1518] configs/compal_e88 converted to use the kconfig-frontends tools --- Documentation/README.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/README.html b/Documentation/README.html index f2cb00c80c..ca20ff9336 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -56,6 +56,8 @@ | | | `- README.txt | | |- cloudctrl/ | | | `- README.txt + | | |- compal_e86/ + | | | `- README.txt | | |- compal_e88/ | | | `- README.txt | | |- compal_e99/ From fb993ca794eff209421117b150a43016d669e56a Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 28 Sep 2013 16:50:07 -0600 Subject: [PATCH 1187/1518] Clean up some naming: fd vs. fildes vs. filedes and filep vs filp --- Documentation/NuttxPortingGuide.html | 16 +- Documentation/NuttxUserGuide.html | 604 +++++++++++++-------------- 2 files changed, 310 insertions(+), 310 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 04466e4278..9e5c8122a9 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

                  NuttX RTOS Porting Guide

                  -

                  Last Updated: August 13, 2013

                  +

                  Last Updated: September 28, 2013

                  From 9ce3ed42be2f1e0e924a139d5582045448591b49 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 20 Sep 2013 10:00:30 -0600 Subject: [PATCH 1183/1518] Names of some USB device definitions changed to avoid collisions --- Documentation/NuttShell.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index 16db136168..b8d59a09bd 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -1173,7 +1173,7 @@ get [-b|-n] [-f <local-path>] -h <ip-address> <remote-path>
                  -b|-n - Selects either binary ("octect") or test ("netascii") transfer + Selects either binary ("octet") or test ("netascii") transfer mode. Default: text.
                  -b|-n - Selects either binary ("octect") or test ("netascii") transfer + Selects either binary ("octet") or test ("netascii") transfer mode. Default: text.
                  @@ -2806,13 +2806,13 @@ extern void up_ledoff(int led); Each character device driver must implement an instance of struct file_operations. That structure defines a call table with the following methods:
                    -

                    int open(FAR struct file *filp);
                    - int close(FAR struct file *filp);
                    - ssize_t read(FAR struct file *filp, FAR char *buffer, size_t buflen);
                    - ssize_t write(FAR struct file *filp, FAR const char *buffer, size_t buflen);
                    - off_t seek(FAR struct file *filp, off_t offset, int whence);
                    - int ioctl(FAR struct file *filp, int cmd, unsigned long arg);
                    - int poll(FAR struct file *filp, struct pollfd *fds, bool setup);

                    +

                    int open(FAR struct file *filep);
                    + int close(FAR struct file *filep);
                    + ssize_t read(FAR struct file *filep, FAR char *buffer, size_t buflen);
                    + ssize_t write(FAR struct file *filep, FAR const char *buffer, size_t buflen);
                    + off_t seek(FAR struct file *filep, off_t offset, int whence);
                    + int ioctl(FAR struct file *filep, int cmd, unsigned long arg);
                    + int poll(FAR struct file *filep, struct pollfd *fds, bool setup);

                  diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 68df699dd2..bedc07226c 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -13,7 +13,7 @@

                  NuttX Operating System

                  User's Manual

                  by

                  Gregory Nutt

                  -

                  Last Updated: June 4, 2013

                  +

                  Last Updated: September 28, 2013

                  @@ -250,14 +250,14 @@ paragraphs.

                  2.1.1 task_create

                  -Function Prototype: +Function Prototype:

                     #include <sched.h>
                     int task_create(char *name, int priority, int stack_size, main_t entry, char * const argv[]);
                     

                  -Description: +Description: This function creates and activates a new task with a specified priority and returns its system-assigned ID.

                  @@ -291,7 +291,7 @@ int task_create(char *name, int priority, int stack_size, main_t entry, char * c redirection of standard I/O is supported.

                  -Input Parameters: +Input Parameters:

                  • name. Name of the new task
                  • priority. Priority of the new task
                  • @@ -304,7 +304,7 @@ int task_create(char *name, int priority, int stack_size, main_t entry, char * c If no parameters are required, argv may be NULL.

                  - Returned Value: + Returned Value:

                  • @@ -315,7 +315,7 @@ int task_create(char *name, int priority, int stack_size, main_t entry, char * c

                  -Assumptions/Limitations: +Assumptions/Limitations:

                  POSIX Compatibility: This is a NON-POSIX interface. VxWorks provides the following similar interface: @@ -339,7 +339,7 @@ VxWorks provides the following similar interface:

                  2.1.2 task_init

                  -Function Prototype: +Function Prototype:

                      #include <sched.h>
                      int task_init(struct tcb_s *tcb, char *name, int priority, uint32_t *stack, uint32_t stack_size,
                  @@ -358,7 +358,7 @@ VxWorks provides the following similar interface:
                     This must be done by calling task_activate().
                   

                  -Input Parameters: +Input Parameters:

                  • tcb. Address of the new task's TCB
                  • name. Name of the new task (not used) @@ -374,7 +374,7 @@ VxWorks provides the following similar interface:

                  -Returned Value: +Returned Value:

                  • OK, or ERROR if the task cannot be initialized.

                    @@ -411,7 +411,7 @@ VxWorks provides the following similar interface:

                    2.1.3 task_activate

                    -Function Prototype: +Function Prototype:

                         #include <sched.h>
                         int task_activate(struct tcb_s *tcb);
                    @@ -422,14 +422,14 @@ VxWorks provides the following similar interface:
                     Without activation, a task is ineligible for execution by the
                     scheduler.
                     

                    -Input Parameters: +Input Parameters:

                    • tcb. The TCB for the task for the task (same as the task_init argument).

                    -Returned Value: +Returned Value:

                    • OK, or ERROR if the task cannot be activated (errno is not set).
                    @@ -461,7 +461,7 @@ the pointer to the WIND_TCB cast to an integer.

                    2.1.4 task_delete

                    -Function Prototype: +Function Prototype:

                       #include <sched.h>
                       int task_delete(pid_t pid);
                      @@ -472,7 +472,7 @@ int task_delete(pid_t pid);
                         This function causes a specified task to cease to exist -- its stack and TCB will be deallocated.
                         This function is the companion to task_create().
                       

                      -Input Parameters: +Input Parameters:

                      • pid. @@ -481,7 +481,7 @@ int task_delete(pid_t pid); Any attempt by the calling task will be automatically re-directed to exit().

                      -Returned Value: +Returned Value:

                      • OK, or ERROR if the task cannot be deleted. @@ -489,7 +489,7 @@ int task_delete(pid_t pid);

                      -Assumptions/Limitations: +Assumptions/Limitations:

                      task_delete() must be used with caution: If the task holds resources (for example, allocated memory or semaphores needed by other tasks), then task_delete() can strand those resources. @@ -544,14 +544,14 @@ int task_restart(pid_t pid);

                      -Input Parameters: +Input Parameters:

                      • pid. The task ID of the task to delete. An ID of zero would signify the calling task (However, support for a task to restart itself has not been implemented).

                      -Returned Value: +Returned Value:

                      • OK, or ERROR if the task ID is invalid or the task could @@ -562,7 +562,7 @@ int task_restart(pid_t pid);

                      -Assumptions/Limitations: +Assumptions/Limitations:

                      POSIX Compatibility: This is a NON-POSIX interface. VxWorks provides the following similar interface: @@ -586,7 +586,7 @@ VxWorks provides the following similar interface:

                      2.1.6 exit

                      -Function Prototype: +Function Prototype:

                           #include <sched.h>
                           void exit(int code);
                      @@ -601,7 +601,7 @@ to exist -- its stack and TCB will be deallocated.  exit differs from
                       _exit in that it flushes streams, closes file descriptors and will
                       execute any function registered with atexit() or on_exit().
                       

                      -Input Parameters: +Input Parameters:

                      • code. (ignored)
                      @@ -610,7 +610,7 @@ execute any function registered with atexit() or on_exit()Returned Value: None.

                      -Assumptions/Limitations: +Assumptions/Limitations:

                      POSIX Compatibility: This is equivalent to the ANSI interface: @@ -632,7 +632,7 @@ And the UNIX interface:

                      2.1.7 getpid

                      -Function Prototype: +Function Prototype:

                           #include <unistd.h>
                           pid_t getpid(void);
                      @@ -645,13 +645,13 @@ level.
                       

                      Input Parameters: None.

                      -Returned Value: +Returned Value:

                      • The task ID of the calling task.

                      -Assumptions/Limitations: +Assumptions/Limitations:

                      POSIX Compatibility: Compatible with the POSIX interface of the same name. @@ -667,7 +667,7 @@ pid_t vfork(void);

                    Description: - The vfork() function has the same effect as fork(), except that the behavior is undefined if the process created by vfork() either modifies any data other than a variable of type pid_t used to store the return value from vfork(), or returns from the function in which vfork() was called, or calls any other function before successfully calling _exit() or one of the exec family of functions. + The vfork() function has the same effect as fork(), except that the behavior is undefined if the process created by vfork() either modifies any data other than a variable of type pid_t used to store the return value from vfork(), or returns from the function in which vfork() was called, or calls any other function before successfully calling _exit() or one of the exec family of functions.

                    NOTE: @@ -679,12 +679,12 @@ pid_t vfork(void); None.

                    - Returned Value: + Returned Value: Upon successful completion, vfork() returns 0 to the child process and returns the process ID of the child process to the parent process. - Otherwise, -1 is returned to the parent, no child process is created, and errno is set to indicate the error. + Otherwise, -1 is returned to the parent, no child process is created, and errno is set to indicate the error.

                    - Assumptions/Limitations: + Assumptions/Limitations:

                    POSIX Compatibility: @@ -765,11 +765,11 @@ int execv(FAR const char *path, FAR char *const argv[]);

                  - Returned Value: + Returned Value: This function does not return on success. - On failure, it will return -1 (ERROR) and will set the errno value appropriately. + On failure, it will return -1 (ERROR) and will set the errno value appropriately.

                  - Assumptions/Limitations: + Assumptions/Limitations:

                  POSIX Compatibility: @@ -804,16 +804,16 @@ int execl(FAR const char *path, ...);

                • ...: - A list of the string arguments to be recevied by the program. + A list of the string arguments to be recevied by the program. Zero indicates the end of the list.

                - Returned Value: + Returned Value: This function does not return on success. - On failure, it will return -1 (ERROR) and will set the errno value appropriately. + On failure, it will return -1 (ERROR) and will set the errno value appropriately.

                - Assumptions/Limitations: + Assumptions/Limitations:

                POSIX Compatibility: @@ -924,7 +924,7 @@ int posix_spawnp(FAR pid_t *pid, FAR const char *file,

              - Returned Value: + Returned Value: posix_spawn() and posix_spawnp() will return zero on success. Otherwise, an error number will be returned as the function return value to indicate the error:

              @@ -938,7 +938,7 @@ int posix_spawnp(FAR pid_t *pid, FAR const char *file,

            - Assumptions/Limitations: + Assumptions/Limitations:

            • @@ -1013,7 +1013,7 @@ int posix_spawn_file_actions_destroy(FAR posix_spawn_file_actions_t *file_action

            - Returned Value: + Returned Value: On success, this function returns 0; on failure it will return an error number from <errno.h>

            @@ -1044,7 +1044,7 @@ int posix_spawn_file_actions_addclose(FAR posix_spawn_file_actions_t *file_actio

          - Returned Value: + Returned Value: On success, this function returns 0; on failure it will return an error number from <errno.h>

          @@ -1081,7 +1081,7 @@ int posix_spawn_file_actions_adddup2(FAR posix_spawn_file_actions_t *file_action

        - Returned Value: + Returned Value: On success, this function returns 0; on failure it will return an error number from <errno.h>

        @@ -1126,7 +1126,7 @@ int posix_spawn_file_actions_addopen(FAR posix_spawn_file_actions_t *file_action

      - Returned Value: + Returned Value: On success, this function returns 0; on failure it will return an error number from <errno.h>

      @@ -1162,7 +1162,7 @@ int posix_spawnattr_init(FAR posix_spawnattr_t *attr);

    - Returned Value: + Returned Value: On success, this function returns 0; on failure it will return an error number from <errno.h>

    @@ -1192,7 +1192,7 @@ int posix_spawnattr_getflags(FAR const posix_spawnattr_t *attr, FAR short *flags
  • - Returned Value: + Returned Value: On success, this function returns 0; on failure it will return an error number from <errno.h>

    @@ -1222,7 +1222,7 @@ int posix_spawnattr_getschedparam(FAR const posix_spawnattr_t *attr, FAR struct

    - Returned Value: + Returned Value: On success, this function returns 0; on failure it will return an error number from <errno.h>

    @@ -1252,7 +1252,7 @@ int posix_spawnattr_getschedpolicy(FAR const posix_spawnattr_t *attr, FAR int *p

    - Returned Value: + Returned Value: On success, this function returns 0; on failure it will return an error number from <errno.h>

    @@ -1284,7 +1284,7 @@ int posix_spawnattr_getsigmask(FAR const posix_spawnattr_t *attr, FAR sigset_t *

    - Returned Value: + Returned Value: On success, this function returns 0; on failure it will return an error number from <errno.h>

    @@ -1314,7 +1314,7 @@ int posix_spawnattr_setflags(FAR posix_spawnattr_t *attr, short flags);

    - Returned Value: + Returned Value: On success, this function returns 0; on failure it will return an error number from <errno.h>

    @@ -1347,7 +1347,7 @@ int posix_spawnattr_setschedparam(FAR posix_spawnattr_t *attr, FAR const struct Returned Value: On success, this function returns 0; on failure it will return an error number from <errno.h>

    - +

    2.1.24 posix_spawnattr_setschedpolicy

    Function Prototype: @@ -1406,7 +1406,7 @@ int posix_spawnattr_setsigmask(FAR posix_spawnattr_t *attr, FAR const sigset_t *

    - Returned Value: + Returned Value: On success, this function returns 0; on failure it will return an error number from <errno.h>

    @@ -1515,7 +1515,7 @@ int task_spawn(FAR pid_t *pid, FAR const char *name, main_t entry,

    - Returned Value: + Returned Value: task_spawn() will return zero on success. Otherwise, an error number will be returned as the function return value to indicate the error:

    @@ -1550,7 +1550,7 @@ int task_spawnattr_getstacksize(FAR const posix_spawnattr_t *attr, FAR size_t *s

    - Returned Value: + Returned Value: On success, this function returns 0; on failure it will return an error number from <errno.h>

    @@ -1712,7 +1712,7 @@ int posix_spawn_file_actions_init(FAR posix_spawn_file_actions_t *file_actions);

    2.2.2 sched_getparam

    -Function Prototype: +Function Prototype:

         #include <sched.h>
         int sched_getparam (pid_t pid, struct sched_param *param);
    @@ -1722,7 +1722,7 @@ int posix_spawn_file_actions_init(FAR posix_spawn_file_actions_t *file_actions);
     Description: This function gets the scheduling priority
     of the task specified by pid.
     

    -Input Parameters: +Input Parameters:

    • pid. The task ID of the task. @@ -1736,20 +1736,20 @@ of the task specified by pid.

    -Returned Value: +Returned Value:

    • 0 (OK) if successful, otherwise -1 (ERROR).

    -Assumptions/Limitations: +Assumptions/Limitations:

    POSIX Compatibility: Comparable to the POSIX interface of the same name.

    2.2.3 sched_setscheduler

    - Function Prototype: + Function Prototype:

       #include <sched.h>
      @@ -1762,7 +1762,7 @@ int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param);
         The parameter param holds the priority of the thread under the new policy.
       

      - Input Parameters: + Input Parameters:

      • @@ -1781,7 +1781,7 @@ int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param);

      - Returned Value: + Returned Value: On success, sched_setscheduler() returns OK (zero). On error, ERROR (-1) is returned, and errno is set appropriately:

      @@ -1798,7 +1798,7 @@ int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param);

      2.2.4 sched_getscheduler

      -Function Prototype: +Function Prototype:

         #include <sched.h>
         int sched_getscheduler (pid_t pid);
        @@ -1810,7 +1810,7 @@ int sched_getscheduler (pid_t pid);
           pid equals zero, the policy of the calling process will
           be retrieved.
         

        -Input Parameters: +Input Parameters:

        • pid. The task ID of the task to query. @@ -1818,7 +1818,7 @@ int sched_getscheduler (pid_t pid);

        -Returned Value: +Returned Value:

        • On success, sched_getscheduler() returns the policy for @@ -1830,14 +1830,14 @@ int sched_getscheduler (pid_t pid);

        -Assumptions/Limitations: +Assumptions/Limitations:

        POSIX Compatibility: Comparable to the POSIX interface of the same name.

        2.2.5 sched_yield

        -Function Prototype: +Function Prototype:

             #include <sched.h>
             int sched_yield(void);
        @@ -1849,13 +1849,13 @@ up the CPU (only to other tasks at the same priority).
         

        Input Parameters: None.

        -Returned Value: +Returned Value:

        • 0 (OK) or -1 (ERROR)

        -Assumptions/Limitations: +Assumptions/Limitations:

        POSIX Compatibility: Comparable to the POSIX interface of the same name. @@ -1863,7 +1863,7 @@ interface of the same name.

        2.2.6 sched_get_priority_max

        -Function Prototype: +Function Prototype:

             #include <sched.h>
             int sched_get_priority_max (int policy)
        @@ -1873,19 +1873,19 @@ interface of the same name.
         Description: This function returns the value of the highest
         possible task priority for a specified scheduling policy.
         

        -Input Parameters: +Input Parameters:

        • policy. Scheduling policy requested.

        -Returned Value: +Returned Value:

        • The maximum priority value or -1 (ERROR).

        -Assumptions/Limitations: +Assumptions/Limitations:

        POSIX Compatibility: Comparable to the POSIX interface of the same name. @@ -1893,7 +1893,7 @@ interface of the same name.

        2.2.7 sched_get_priority_min

        -Function Prototype: +Function Prototype:

             #include <sched.h>
             int sched_get_priority_min (int policy);
        @@ -1903,19 +1903,19 @@ interface of the same name.
         Description: This function returns the value of the lowest
         possible task priority for a specified scheduling policy.
         

        -Input Parameters: +Input Parameters:

        • policy. Scheduling policy requested.

        -Returned Value: +Returned Value:

        • The minimum priority value or -1 (ERROR)

        -Assumptions/Limitations: +Assumptions/Limitations:

        POSIX Compatibility: Comparable to the POSIX interface of the same name. @@ -1923,14 +1923,14 @@ interface of the same name.

        2.2.8 sched_get_rr_interval

        -Function Prototype: +Function Prototype:

             #include <sched.h>
             int sched_get_rr_interval (pid_t pid, struct timespec *interval);
         

        - Description: + Description: sched_rr_get_interval() writes the timeslice interval for task identified by pid into the timespec structure pointed to by interval. If pid is zero, the timeslice @@ -1939,7 +1939,7 @@ interface of the same name. scheduling policy.'

        - Input Parameters: + Input Parameters:

        • pid. The task ID of the task. If pid is zero, the @@ -1948,7 +1948,7 @@ priority of the calling task is returned.

        - Returned Value: + Returned Value: On success, sched_rr_get_interval() returns OK (0). On error, ERROR (-1) is returned, and errno is set to:

        @@ -1960,7 +1960,7 @@ priority of the calling task is returned.

      - Assumptions/Limitations: + Assumptions/Limitations:

      POSIX Compatibility: Comparable to the POSIX interface of the same name. @@ -2100,7 +2100,7 @@ int ret = sigaction(SIGCHLD, &sa, NULL);

      2.3.1 sched_lock

      -Function Prototype: +Function Prototype:

           #include <sched.h>
           int sched_lock(void);
      @@ -2115,13 +2115,13 @@ number of times) or until it blocks itself.
       

      Input Parameters: None.

      -Returned Value: +Returned Value:

      • OK or ERROR.

      -Assumptions/Limitations: +Assumptions/Limitations:

      POSIX Compatibility: This is a NON-POSIX interface. VxWorks provides the comparable interface: @@ -2132,7 +2132,7 @@ VxWorks provides the comparable interface:

      2.3.2 sched_unlock

      -Function Prototype: +Function Prototype:

           #include <sched.h>
           int sched_unlock(void);
      @@ -2148,13 +2148,13 @@ eligible to preempt the current task will execute.
       

      Input Parameters: None.

      -Returned Value: +Returned Value:

      • OK or ERROR.

      -Assumptions/Limitations: +Assumptions/Limitations:

      POSIX Compatibility: This is a NON-POSIX interface. VxWorks provides the comparable interface: @@ -2165,7 +2165,7 @@ VxWorks provides the comparable interface:

      2.3.3 sched_lockcount

      -Function Prototype: +Function Prototype:

           #include <sched.h>
           int32_t sched_lockcount(void)
      @@ -2179,13 +2179,13 @@ on this thread of execution.
       

      Input Parameters: None.

      -Returned Value: +Returned Value:

      • The current value of the lockCount.

      -Assumptions/Limitations: +Assumptions/Limitations:

      POSIX Compatibility: None.

      @@ -2193,14 +2193,14 @@ on this thread of execution.

      2.3.4 waitpid

      -Function Prototype: +Function Prototype:

           #include <sys/wait.h>
           ipid_t waitpid(pid_t pid, int *stat_loc, int options);
       

      - Description: + Description:

      The following discussion is a general description of the waitpid() interface. @@ -2223,7 +2223,7 @@ on this thread of execution. Because waitpid() is not fully POSIX compliant, it must be specifically enabled by setting CONFIG_SCHED_WAITPID in the NuttX configuration file.

      - Input Parameters: + Input Parameters:

      • pid. The task ID of the thread to waid for
      • @@ -2256,19 +2256,19 @@ on this thread of execution.
        • WCONTINUED. - The waitpid() function will report the status of any continued child process specified by pid whose status has not been reported since it continued from a job control stop. + The waitpid() function will report the status of any continued child process specified by pid whose status has not been reported since it continued from a job control stop.
        • WNOHANG. - The waitpid() function will not suspend execution of the calling thread if status is not immediately available for one of the child processes specified by pid. + The waitpid() function will not suspend execution of the calling thread if status is not immediately available for one of the child processes specified by pid.
        • WUNTRACED. - The status of any child processes specified by pid that are stopped, and whose status has not yet been reported since they stopped, will also be reported to the requesting process. + The status of any child processes specified by pid that are stopped, and whose status has not yet been reported since they stopped, will also be reported to the requesting process.

        - If the calling process has SA_NOCLDWAIT set or has SIGCHLD set to SIG_IGN, and the process has no unwaited-for children that were transformed into zombie processes, the calling thread will block until all of the children of the process containing the calling thread terminate, and waitpid() will fail and set errno to ECHILD. + If the calling process has SA_NOCLDWAIT set or has SIGCHLD set to SIG_IGN, and the process has no unwaited-for children that were transformed into zombie processes, the calling thread will block until all of the children of the process containing the calling thread terminate, and waitpid() will fail and set errno to ECHILD.

        If waitpid() returns because the status of a child process is available, these functions will return a value equal to the process ID of the child process. @@ -2296,23 +2296,23 @@ on this thread of execution.

      • WEXITSTATUS(stat_val). - If the value of WIFEXITED(stat_val) is non-zero, this macro evaluates to the low-order 8 bits of the status argument that the child process passed to _exit() or exit(), or the value the child process returned from main(). + If the value of WIFEXITED(stat_val) is non-zero, this macro evaluates to the low-order 8 bits of the status argument that the child process passed to _exit() or exit(), or the value the child process returned from main().
      • WIFSIGNALED(stat_val). - Evaluates to a non-zero value if status was returned for a child process that terminated due to the receipt of a signal that was not caught (see >signal.h<). + Evaluates to a non-zero value if status was returned for a child process that terminated due to the receipt of a signal that was not caught (see >signal.h<).
      • WTERMSIG(stat_val). - If the value of WIFSIGNALED(stat_val) is non-zero, this macro evaluates to the number of the signal that caused the termination of the child process. + If the value of WIFSIGNALED(stat_val) is non-zero, this macro evaluates to the number of the signal that caused the termination of the child process.
      • WIFSTOPPED(stat_val). - Evaluates to a non-zero value if status was returned for a child process that is currently stopped. + Evaluates to a non-zero value if status was returned for a child process that is currently stopped.
      • WSTOPSIG(stat_val). - If the value of WIFSTOPPED(stat_val) is non-zero, this macro evaluates to the number of the signal that caused the child process to stop. + If the value of WIFSTOPPED(stat_val) is non-zero, this macro evaluates to the number of the signal that caused the child process to stop.
      • WIFCONTINUED(stat_val). @@ -2320,7 +2320,7 @@ on this thread of execution.

      - Returned Value: + Returned Value:

      If waitpid() returns because the status of a child process is available, it will return a value equal to the process ID of the child process for which status is reported. @@ -2337,21 +2337,21 @@ on this thread of execution.

      • ECHILD. - The process specified by pid does not exist or is not a child of the calling process, or the process group specified by pid does not exist or does not have any member process that is a child of the calling process. + The process specified by pid does not exist or is not a child of the calling process, or the process group specified by pid does not exist or does not have any member process that is a child of the calling process.
      • EINTR. The function was interrupted by a signal. - The value of the location pointed to by stat_loc is undefined. + The value of the location pointed to by stat_loc is undefined.
      • EINVAL. - The options argument is not valid. + The options argument is not valid.

      - Assumptions/Limitations: + Assumptions/Limitations:

      POSIX Compatibility: Comparable to the POSIX interface of the same name, but the implementation is incomplete (as detailed above). @@ -2359,7 +2359,7 @@ on this thread of execution.

      2.3.5 waitid

      -Function Prototype: +Function Prototype:

           #include <sys/wait.h>
           #ifdef CONFIG_SCHED_HAVE_PARENT
      @@ -2406,25 +2406,25 @@ on this thread of execution.
       
      • WEXITED: - Wait for processes that have exited. + Wait for processes that have exited.
      • WSTOPPED: - Status will be returned for any child that has stopped upon receipt of a signal. + Status will be returned for any child that has stopped upon receipt of a signal.
      • WCONTINUES: - Status will be returned for any child that was stopped and has been continued. + Status will be returned for any child that was stopped and has been continued.
      • WNOHANG: - Return immediately if there are no children to wait for. + Return immediately if there are no children to wait for.
      • WNOWAIT: Keep the process whose status is returned in info in a waitable state. This will not affect the state of the process; - the process may be waited for again after this call completes. + the process may be waited for again after this call completes.
      The info argument must point to a siginfo_t structure. @@ -2436,9 +2436,9 @@ on this thread of execution. See the description above.

      - Returned Value: + Returned Value: If waitid() returns due to the change of state of one of its children, 0 is returned. - Otherwise, -1 is returned and errno is set to indicate the error. + Otherwise, -1 is returned and errno is set to indicate the error.

      The waitid() function will fail if: @@ -2447,18 +2447,18 @@ on this thread of execution.

    • ECHILD:
    • - The calling process has no existing unwaited-for child processes. + The calling process has no existing unwaited-for child processes.
    • EINTR:
    • - The waitid() function was interrupted by a signal. + The waitid() function was interrupted by a signal.
    • EINVAL: An invalid value was specified for options, or idtype and id specify an invalid set of processes.

    - Assumptions/Limitations: + Assumptions/Limitations:

    POSIX Compatibility: Comparable to the POSIX interface of the same name, but the implementation is incomplete (as detailed in the description above). @@ -2466,7 +2466,7 @@ on this thread of execution.

    2.3.6 wait

    -Function Prototype: +Function Prototype:

         #include <sys/wait.h>
         #ifdef CONFIG_SCHED_HAVE_PARENT
    @@ -2474,7 +2474,7 @@ on this thread of execution.
         #endif
     

    - Description: + Description:

    The following discussion is a general description of the wait() interface. @@ -2492,17 +2492,17 @@ on this thread of execution. Otherwise, its behavior will be modified by the values of the pid and options arguments.

    - Input Parameters: + Input Parameters:

    • stat_loc. The location to return the exit status

    - Returned Value: + Returned Value: See the values returned by waitpaid().

    - Assumptions/Limitations: + Assumptions/Limitations:

    POSIX Compatibility: Comparable to the POSIX interface of the same name, but the implementation is incomplete (as detailed in the description waitpaid()). @@ -2511,13 +2511,13 @@ on this thread of execution.

    2.3.7 atexit

    -Function Prototype: +Function Prototype:

         #include <stdlib.h>
         int atexit(void (*func)(void));
     

    - Description: + Description: Registers a function to be called at program exit. The atexit() function registers the given function to be called at normal process termination, whether via exit() or via return from the program's main().

    @@ -2525,19 +2525,19 @@ on this thread of execution. NOTE: CONFIG_SCHED_ATEXIT must be defined to enable this function.

    - Input Parameters: + Input Parameters:

    • func. A pointer to the function to be called when the task exits.

    - Returned Value: + Returned Value: On success, atexit() returns OK (0). On error, ERROR (-1) is returned, and errno is set to indicate the cause of the failure.

    - Assumptions/Limitations: + Assumptions/Limitations:

    POSIX Compatibility: Comparable to the ISO C interface of the same name. Limitiations in the current implementation: @@ -2550,13 +2550,13 @@ on this thread of execution.

    2.3.8 on_exit

    -Function Prototype: +Function Prototype:

         #include <stdlib.h>
         int on_exit(CODE void (*func)(int, FAR void *), FAR void *arg)
     

    - Description: + Description: Registers a function to be called at program exit. The on_exit() function registers the given function to be called at normal process termination, whether via exit() or via return from the program's main(). The function is passed the status argument given to the last call to exit() and the arg argument from on_exit(). @@ -2565,25 +2565,25 @@ on this thread of execution. NOTE: CONFIG_SCHED_ONEXIT must be defined to enable this function

    - Input Parameters: + Input Parameters:

    • func. A pointer to the function to be called when the task exits.
    • arg. An argument that will be provided to the on_exit() function when the task exits.

    - Returned Value: + Returned Value: On success, on_exit() returns OK (0). On error, ERROR (-1) is returned, and errno is set to indicate the cause of the failure.

    - Assumptions/Limitations: + Assumptions/Limitations:

    POSIX Compatibility: This function comes from SunOS 4, but is also present in libc4, libc5 and glibc. It no longer occurs in Solaris (SunOS 5). - Avoid this function, and use the standard atexit() instead. + Avoid this function, and use the standard atexit() instead.

    1. Only a single on_exit function can be registered unless CONFIG_SCHED_ONEXIT_MAX defines a larger number.
    2. @@ -2619,7 +2619,7 @@ on this thread of execution.

      2.4.1 mq_open

      -Function Prototype: +Function Prototype:

           #include <mqueue.h>
           mqd_t mq_open(const char *mqName, int oflags, ...);
      @@ -2632,7 +2632,7 @@ call of mq_open(), the task can reference the message queue using
       the address returned by the call. The message queue remains usable
       until it is closed by a successful call to mq_close().
       

      -Input Parameters: +Input Parameters:

      • mqName. Name of the queue to open
      • oflags. Open flags. These may be any combination of: @@ -2668,13 +2668,13 @@ message that can be sent or received. Other elements of attr are ignored

      -Returned Value: +Returned Value:

      • A message queue descriptor or -1 (ERROR)

      -Assumptions/Limitations: +Assumptions/Limitations:

      POSIX Compatibility: Comparable to the POSIX interface of the same name. @@ -2688,7 +2688,7 @@ message size is limited at 22 bytes.

      2.4.2 mq_close

      -Function Prototype: +Function Prototype:

           #include <mqueue.h>
           int mq_close(mqd_t mqdes);
      @@ -2705,20 +2705,20 @@ queue via this mqdes (see mq_notify()), this attachmen
       removed and the message queue is available for another task to attach
       for notification.
       

      -Input Parameters: +Input Parameters:

      • mqdes. Message queue descriptor.

      -Returned Value: +Returned Value:

      • 0 (OK) if the message queue is closed successfully, otherwise, -1 (ERROR).

      -Assumptions/Limitations: +Assumptions/Limitations:

      • @@ -2735,7 +2735,7 @@ of the same name.

        2.4.3 mq_unlink

        -Function Prototype: +Function Prototype:

             #include <mqueue.h>
             int mq_unlink(const char *mqName);
        @@ -2748,7 +2748,7 @@ open when mq_unlink() is called, removal of the message queue
         is postponed until all references to the message queue have been
         closed.
         

        -Input Parameters: +Input Parameters:

        • mqName. Name of the message queue
        @@ -2756,14 +2756,14 @@ closed.

        Returned Value: None.

        -Assumptions/Limitations: +Assumptions/Limitations:

        POSIX Compatibility: Comparable to the POSIX interface of the same name.

        2.4.4 mq_send

        -Function Prototype: +Function Prototype:

             #include <mqueue.h>
        @@ -2808,7 +2808,7 @@ interface of the same name.
           

      - Input Parameters: + Input Parameters:

      • mqdes. Message queue descriptor.
      • @@ -2845,7 +2845,7 @@ interface of the same name.

      - Assumptions/Limitations: + Assumptions/Limitations:

      POSIX Compatibility: @@ -2853,7 +2853,7 @@ interface of the same name.

      mq_timedsend

      -Function Prototype: +Function Prototype:

           #include <mqueue.h>
      @@ -2891,7 +2891,7 @@ interface of the same name.
         of the call, mq_timedsend() returns immediately.
       

      - Input Parameters: + Input Parameters:

      • mqdes. Message queue descriptor.
      • @@ -2928,7 +2928,7 @@ interface of the same name.

      - Assumptions/Limitations: + Assumptions/Limitations:

      POSIX Compatibility: @@ -2937,7 +2937,7 @@ interface of the same name.

      2.4.5 mq_receive

      - Function Prototype: + Function Prototype:

           #include <mqueue.h>
      @@ -2962,7 +2962,7 @@ interface of the same name.
         If the queue is empty and O_NONBLOCK is set, ERROR will be returned.
       

      - Input Parameters: + Input Parameters:

      • mqdes. Message Queue Descriptor.
      • @@ -2998,7 +2998,7 @@ interface of the same name.

      - Assumptions/Limitations: + Assumptions/Limitations:

      POSIX Compatibility: @@ -3007,7 +3007,7 @@ interface of the same name.

      2.4.6 mq_timedreceive

      - Function Prototype: + Function Prototype:

           #include <mqueue.h>
      @@ -3042,7 +3042,7 @@ interface of the same name.
         the call, mq_timedreceive() returns immediately.
       

      - Input Parameters: + Input Parameters:

      • mqdes. Message Queue Descriptor.
      • @@ -3083,7 +3083,7 @@ interface of the same name.

      - Assumptions/Limitations: + Assumptions/Limitations:

      POSIX Compatibility: @@ -3093,7 +3093,7 @@ interface of the same name.

      2.4.7 mq_notify

      - Function Prototype: + Function Prototype:

           #include <mqueue.h>
           int mq_notify(mqd_t mqdes, const struct sigevent *notification);
      @@ -3135,16 +3135,16 @@ interface of the same name.
         errno set to indicate the error:
         
      • - EBADF. The descriptor specified in mqdes is invalid. + EBADF. The descriptor specified in mqdes is invalid.
      • EBUSY. Another process has already registered to receive notification - for this message queue. + for this message queue.
      • EINVAL. sevp->sigev_notify is not one of the permitted values; or sevp->sigev_notify is SIGEV_SIGNAL and sevp->sigev_signo is not a - valid signal number. + valid signal number.
      • ENOMEM. Insufficient memory. @@ -3174,7 +3174,7 @@ interface of the same name.

        2.4.8 mq_setattr

        -Function Prototype: +Function Prototype:

             #include <mqueue.h>
             int mq_setattr(mqd_t mqdes, const struct mq_attr *mqStat,
        @@ -3190,7 +3190,7 @@ If "oldMqStat" is non-null, mq_setattr() will store
         the previous message queue attributes at that location (just as
         would have been returned by mq_getattr()).
         

        -Input Parameters: +Input Parameters:

        • mqdes. Message queue descriptor
        • mqStat. New attributes @@ -3198,14 +3198,14 @@ would have been returned by mq_getattr()).

        -Returned Value: +Returned Value:

        • 0 (OK) if attributes are set successfully, otherwise -1 (ERROR).

        -Assumptions/Limitations: +Assumptions/Limitations:

        POSIX Compatibility: Comparable to the POSIX interface of the same name. @@ -3213,7 +3213,7 @@ interface of the same name.

        2.4.9 mq_getattr

        -Function Prototype: +Function Prototype:

             #include <mqueue.h>
             int mq_getattr(mqd_t mqdes, struct mq_attr *mqStat);
        @@ -3223,7 +3223,7 @@ interface of the same name.
         Description: This functions gets status information and
         attributes associated with the specified message queue.
         

        -Input Parameters: +Input Parameters:

        • mqdes. Message queue descriptor
        • mqStat. Buffer in which to return attributes. The returned @@ -3238,13 +3238,13 @@ attributes include:

        -Returned Value: +Returned Value:

        • 0 (OK) if attributes provided, -1 (ERROR) otherwise.

        -Assumptions/Limitations: +Assumptions/Limitations:

        POSIX Compatibility: Comparable to the POSIX interface of the same name. @@ -3400,7 +3400,7 @@ interface of the same name.

        2.5.1 sem_init

        -Function Prototype: +Function Prototype:

             #include <semaphore.h>
             int sem_init(sem_t *sem, int pshared, unsigned int value);
        @@ -3417,21 +3417,21 @@ result of referring to copies of sem in calls to sem_wait()sem_trywait(), sem_post(), and sem_destroy(), is
         not defined.
         

        -Input Parameters: +Input Parameters:

        • sem. Semaphore to be initialized
        • pshared. Process sharing (not used) -
        • value. Semaphore initialization value +
        • value. Semaphore initialization value

        -Returned Value: +Returned Value:

        • 0 (OK), or -1 (ERROR) if unsuccessful.

        -Assumptions/Limitations: +Assumptions/Limitations:

        POSIX Compatibility: Comparable to the POSIX interface of the same name. @@ -3443,7 +3443,7 @@ Differences from the full POSIX implementation include:

        2.5.2 sem_destroy

        -Function Prototype: +Function Prototype:

             #include <semaphore.h>
             int sem_destroy(sem_t *sem);
        @@ -3460,19 +3460,19 @@ effect of subsequent use of the semaphore sem is undefined until
         The effect of destroying a semaphore upon which other tasks are currently
         blocked is undefined.
         

        -Input Parameters: +Input Parameters:

        • sem. Semaphore to be destroyed.

        -Returned Value: +Returned Value:

        • 0 (OK), or -1 (ERROR) if unsuccessful.

        -Assumptions/Limitations: +Assumptions/Limitations:

        POSIX Compatibility: Comparable to the POSIX interface of the same name. @@ -3480,7 +3480,7 @@ interface of the same name.

        2.5.3 sem_open

        -Function Prototype: +Function Prototype:

             #include <semaphore.h>
             sem_t *sem_open(const char *name, int oflag, ...);
        @@ -3499,7 +3499,7 @@ If a task makes multiple calls to sem_open() with the same name,
         then the same semaphore address is returned (provided there have
         been no calls to sem_unlink()).
         

        -Input Parameters: +Input Parameters:

        • name. Semaphore name
        • oflag. Semaphore creation options. This may one of @@ -3516,7 +3516,7 @@ a new semaphore unless one of this name already exists. NOTE: When the O_CREAT flag is specified, POSIX requires that a third and fourth parameter be supplied:
            -
          • mode. The mode parameter is of type mode_t. +
          • mode. The mode parameter is of type mode_t. This parameter is required but not used in the present implementation.
          • value. The value parameter is type unsigned int. The semaphore @@ -3527,13 +3527,13 @@ semaphores must be less than or equal to SEM_VALUE_MAX (defined in

          -Returned Value: +Returned Value:

          • A pointer to sem_t or -1 (ERROR) if unsuccessful.

          -Assumptions/Limitations: +Assumptions/Limitations:

          POSIX Compatibility: Comparable to the POSIX interface of the same name. @@ -3546,7 +3546,7 @@ just a counting semaphore.

          2.5.4 sem_close

          -Function Prototype: +Function Prototype:

               #include <semaphore.h>
               int sem_close(sem_t *sem);
          @@ -3566,13 +3566,13 @@ will vanish when the last task closes it.
           Care must be taken to avoid risking the deletion of a semaphore
           that another calling task has already locked.
           

          -Input Parameters: +Input Parameters:

          • sem. Semaphore descriptor

          -Returned Value: +Returned Value:

          • 0 (OK), or -1 (ERROR) if unsuccessful.
          @@ -3591,7 +3591,7 @@ interface of the same name.

          2.5.5 sem_unlink

          -Function Prototype: +Function Prototype:

               #include <semaphore.h>
               int sem_unlink(const char *name);
          @@ -3604,19 +3604,19 @@ name open when sem_unlink() is called, destruction of the semaphore will
           be postponed until all references have been destroyed by calls to
           sem_close().
           

          -Input Parameters: +Input Parameters:

          • name. Semaphore name

          -Returned Value: +Returned Value:

          • 0 (OK), or -1 (ERROR) if unsuccessful.

          -Assumptions/Limitations: +Assumptions/Limitations:

          • Care must be taken to avoid deletion of a semaphore that another task has already locked. @@ -3637,7 +3637,7 @@ same name should be created after sem_unlink() is called.

            2.5.6 sem_wait

            -Function Prototype: +Function Prototype:

                 #include <semaphore.h>
                 int sem_wait(sem_t *sem);
            @@ -3649,13 +3649,13 @@ referenced by sem. If the semaphore as already locked by another
             task, the calling task will not return until it either successfully acquires
             the lock or the call is interrupted by a signal.
             

            -Input Parameters: +Input Parameters:

            • sem. Semaphore descriptor.

            -Returned Value: +Returned Value:

            • 0 (OK), or -1 (ERROR) is unsuccessful
            @@ -3671,7 +3671,7 @@ not valid. received by this task. In this case, the semaphore has not be acquired.

          -Assumptions/Limitations: +Assumptions/Limitations:

          POSIX Compatibility: Comparable to the POSIX interface of the same name. @@ -3679,7 +3679,7 @@ interface of the same name.

          2.5.7 sem_timedwait

          -Function Prototype: +Function Prototype:

               #include <semaphore.h>
               #include <time.h>
          @@ -3687,7 +3687,7 @@ interface of the same name.
           

          -Description: +Description: This function will lock the semaphore referenced by sem as in the sem_wait() function. However, if the semaphore cannot be locked without waiting for another process or thread to unlock the semaphore by performing a sem_post() function, this wait will be terminated when the specified timeout expires.

          @@ -3695,7 +3695,7 @@ interface of the same name. This function attempts to lock the semaphore referenced by sem. If the semaphore as already locked by another task, the calling task will not return until it either successfully acquires the lock or the call is interrupted by a signal.

          -Input Parameters: +Input Parameters:

          • sem. Semaphore descriptor. @@ -3706,7 +3706,7 @@ interface of the same name.

          -Returned Value: +Returned Value:

          • 0 (OK), or -1 (ERROR) is unsuccessful
          @@ -3748,7 +3748,7 @@ The following lists the possible values for errno2.5.8 sem_trywait

          -Function Prototype: +Function Prototype:

               #include <semaphore.h>
               int sem_trywait(sem_t *sem);
          @@ -3759,13 +3759,13 @@ The following lists the possible values for errno
          -Input Parameters: 
          +Input Parameters:
           
          • sem. The semaphore descriptor

          -Returned Value: +Returned Value:

          • 0 (OK) or -1 (ERROR) if unsuccessful
          @@ -3781,7 +3781,7 @@ not valid.

          -Assumptions/Limitations: +Assumptions/Limitations:

          POSIX Compatibility: Comparable to the POSIX interface of the same name. @@ -3789,7 +3789,7 @@ interface of the same name.

          2.5.9 sem_post

          -Function Prototype: +Function Prototype:

               #include <semaphore.h>
               int sem_post(sem_t *sem);
          @@ -3810,13 +3810,13 @@ return successfully from its call to sem_wait().
           

          NOTE: sem_post() may be called from an interrupt handler.

          -Input Parameters: +Input Parameters:

          • sem. Semaphore descriptor

          -Returned Value: +Returned Value:

          • 0 (OK) or -1 (ERROR) if unsuccessful.
          @@ -3832,7 +3832,7 @@ interface of the same name.

          2.5.10 sem_getvalue

          -Function Prototype: +Function Prototype:

               #include <semaphore.h>
               int sem_getvalue(sem_t *sem, int *sval);
          @@ -3850,20 +3850,20 @@ If sem is locked, the value return by sem_getvalue() will either
           be zero or a negative number whose absolute value represents the
           number of tasks waiting for the semaphore.
           

          -Input Parameters: +Input Parameters:

          • sem. Semaphore descriptor
          • sval. Buffer by which the value is returned

          -Returned Value: +Returned Value:

          • 0 (OK) or -1 (ERROR) if unsuccessful.

          -Assumptions/Limitations: +Assumptions/Limitations:

          POSIX Compatibility: Comparable to the POSIX interface of the same name. @@ -3897,7 +3897,7 @@ interface of the same name.

          2.6.1 wd_create

          -Function Prototype: +Function Prototype:

               #include <wdog.h>
               WDOG_ID wd_create(void);
          @@ -3909,7 +3909,7 @@ by allocating the appropriate resources for the watchdog.
           

          Input Parameters: None.

          -Returned Value: +Returned Value:

          • Pointer to watchdog that may be used as a handle in subsequent NuttX calls (i.e., the watchdog ID), or NULL if insufficient resources @@ -3917,7 +3917,7 @@ are available to create the watchdogs.

          -Assumptions/Limitations: +Assumptions/Limitations:

          POSIX Compatibility: This is a NON-POSIX interface. VxWorks provides the following comparable interface: @@ -3935,7 +3935,7 @@ initialization time).

          2.6.2 wd_delete

          -Function Prototype: +Function Prototype:

               #include <wdog.h>
               int wd_delete(WDOG_ID wdog);
          @@ -3946,14 +3946,14 @@ initialization time).
           watchdog. The watchdog will be removed from the timer queue if
           has been started.
           

          -Input Parameters: +Input Parameters:

          • wdog. The watchdog ID to delete. This is actually a pointer to a watchdog structure.

          -Returned Value: +Returned Value:

          • OK or ERROR
          @@ -3979,7 +3979,7 @@ before deallocating it (i.e., never returns ERROR).

          2.6.3 wd_start

          -Function Prototype: +Function Prototype:

               #include <wdog.h>
               int wd_start(WDOG_ID wdog, int delay, wdentry_t wdentry,
          @@ -4000,7 +4000,7 @@ To replace either the timeout delay or the function to be executed,
           call wd_start again with the same wdog; only the most recent
           wd_start() on a given watchdog ID has any effect.
           

          -Input Parameters: +Input Parameters:

          • wdog. Watchdog ID
          • delay. Delay count in clock ticks @@ -4010,7 +4010,7 @@ wd_start() on a given watchdog ID has any effect.

          -Returned Value: +Returned Value:

          • OK or ERROR
          @@ -4031,12 +4031,12 @@ Differences from the VxWorks interface include:
          • The present implementation supports multiple parameters passed to wdentry; VxWorks supports only a single parameter. The maximum -number of parameters is determined by +number of parameters is determined by

          2.6.4 wd_cancel

          -Function Prototype: +Function Prototype:

               #include <wdog.h>
               int wd_cancel(WDOG_ID wdog);
          @@ -4047,19 +4047,19 @@ number of parameters is determined by
           watchdog timer. Watchdog timers may be canceled from the interrupt
           level.
           

          -Input Parameters: +Input Parameters:

          • wdog. ID of the watchdog to cancel.

          -Returned Value: +Returned Value:

          • OK or ERROR

          -Assumptions/Limitations: +Assumptions/Limitations:

          POSIX Compatibility: This is a NON-POSIX interface. VxWorks provides the following comparable interface: @@ -4076,7 +4076,7 @@ VxWorks provides the following comparable interface: Sint wd_gettime(WDOG_ID wdog);

          - Description: + Description: This function returns the time remaining before the specified watchdog expires.

          @@ -4086,7 +4086,7 @@ VxWorks provides the following comparable interface:

        - Returned Value: + Returned Value: The time in system ticks remaining until the watchdog time expires. Zero means either that wdog is not valid or that the wdog has already expired.

        @@ -4483,7 +4483,7 @@ VxWorks provides the following comparable interface:

        If the timer_gettime() succeeds, a value of 0 (OK) will be returned. - If an error occurs, the value -1 (ERROR) will be returned, and + If an error occurs, the value -1 (ERROR) will be returned, and errno set to indicate the error.

          @@ -4564,7 +4564,7 @@ VxWorks provides the following comparable interface: timer_getoverrun() function will return the timer expiration overrun count for the specified timer. The overrun count returned contains the number of extra timer expirations that occurred between the time the signal was generated - (queued) and when it was delivered or accepted, up to but not including an + (queued) and when it was delivered or accepted, up to but not including an implementation-defined maximum of DELAYTIMER_MAX. If the number of such extra expirations is greater than or equal to DELAYTIMER_MAX, then the overrun count will be set to DELAYTIMER_MAX. The value returned by @@ -4722,7 +4722,7 @@ interface of the same name.

          2.8.1 sigemptyset

          -Function Prototype: +Function Prototype:

               #include <signal.h>
               int sigemptyset(sigset_t *set);
          @@ -4732,19 +4732,19 @@ interface of the same name.
           Description: This function initializes the signal set specified
           by set such that all signals are excluded.
           

          -Input Parameters: +Input Parameters:

          • set. Signal set to initialize.

          -Returned Value: +Returned Value:

          • 0 (OK), or -1 (ERROR) if the signal set cannot be initialized.

          -Assumptions/Limitations: +Assumptions/Limitations:

          POSIX Compatibility: Comparable to the POSIX interface of the same name. @@ -4752,7 +4752,7 @@ interface of the same name.

          2.8.2 sigfillset

          -Function Prototype: +Function Prototype:

               #include <signal.h>
               int sigfillset(sigset_t *set);
          @@ -4762,19 +4762,19 @@ interface of the same name.
           Description: This function initializes the signal set specified
           by set such that all signals are included.
           

          -Input Parameters: +Input Parameters:

          • set. Signal set to initialize

          -Returned Value: +Returned Value:

          • 0 (OK), or -1 (ERROR) if the signal set cannot be initialized.

          -Assumptions/Limitations: +Assumptions/Limitations:

          POSIX Compatibility: Comparable to the POSIX interface of the same name. @@ -4782,7 +4782,7 @@ interface of the same name.

          2.8.3 sigaddset

          -Function Prototype: +Function Prototype:

               #include <signal.h>
               int sigaddset(sigset_t *set, int signo);
          @@ -4792,20 +4792,20 @@ interface of the same name.
           Description: This function adds the signal specified by
           signo to the signal set specified by set.
           

          -Input Parameters: +Input Parameters:

          • set. Signal set to add signal to
          • signo. Signal to add

          -Returned Value: +Returned Value:

          • 0 (OK), or -1 (ERROR) if the signal number is invalid.

          -Assumptions/Limitations: +Assumptions/Limitations:

          POSIX Compatibility: Comparable to the POSIX interface of the same name. @@ -4813,7 +4813,7 @@ interface of the same name.

          2.8.4 sigdelset

          -Function Prototype: +Function Prototype:

               #include <signal.h>
               int sigdelset(sigset_t *set, int signo);
          @@ -4823,20 +4823,20 @@ interface of the same name.
           Description: This function deletes the signal specified
           by signo from the signal set specified by set.
           

          -Input Parameters: +Input Parameters:

          • set. Signal set to delete the signal from
          • signo. Signal to delete

          -Returned Value: +Returned Value:

          • 0 (OK), or -1 (ERROR) if the signal number is invalid.

          -Assumptions/Limitations: +Assumptions/Limitations:

          POSIX Compatibility: Comparable to the POSIX interface of the same name. @@ -4844,7 +4844,7 @@ interface of the same name.

          2.8.5 sigismember

          -Function Prototype: +Function Prototype:

               #include <signal.h>
               int  sigismember(const sigset_t *set, int signo);
          @@ -4854,14 +4854,14 @@ interface of the same name.
           Description: This function tests whether the signal specified
           by signo is a member of the set specified by set.
           

          -Input Parameters: +Input Parameters:

          • set. Signal set to test
          • signo. Signal to test for

          -Returned Value: +Returned Value:

          • 1 (TRUE), if the specified signal is a member of the set,
          • 0 (OK or FALSE), if it is not, or @@ -4869,7 +4869,7 @@ by signo is a member of the set specified by set.

          -Assumptions/Limitations: +Assumptions/Limitations:

          POSIX Compatibility: Comparable to the POSIX interface of the same name. @@ -4877,7 +4877,7 @@ interface of the same name.

          2.8.6 sigaction

          -Function Prototype: +Function Prototype:

               #include <signal.h>
               int sigaction(int signo, const struct sigaction *act,
          @@ -4921,7 +4921,7 @@ Once an action is installed for a specific signal, it remains installed
           until another action is explicitly requested by another call to
           sigaction().
           

          -Input Parameters: +Input Parameters:

          • sig. Signal of interest
          • act. Location of new handler @@ -4929,13 +4929,13 @@ sigaction().

          -Returned Value: +Returned Value:

          • 0 (OK), or -1 (ERROR) if the signal number is invalid.

          -Assumptions/Limitations: +Assumptions/Limitations:

          POSIX Compatibility: Comparable to the POSIX interface of the same name. @@ -4954,7 +4954,7 @@ Differences from the POSIX implementation include:

          2.8.7 sigprocmask

          -Function Prototype: +Function Prototype:

               #include <signal.h>
               int sigprocmask(int how, const sigset_t *set, sigset_t *oset);
          @@ -4972,7 +4972,7 @@ those signals will be delivered before sigprocmask() returns.
           

          If sigprocmask() fails, the signal mask of the task is not changed.

          -Input Parameters: +Input Parameters:

          • how. How the signal mast will be changed:
              @@ -4990,13 +4990,13 @@ pointed to by the set input parameter.

            -Returned Value: +Returned Value:

            • 0 (OK), or -1 (ERROR) if how is invalid.

            -Assumptions/Limitations: +Assumptions/Limitations:

            POSIX Compatibility: Comparable to the POSIX interface of the same name. @@ -5004,7 +5004,7 @@ interface of the same name.

            2.8.8 sigpending

            -Function Prototype: +Function Prototype:

                 #include <signal.h>
                 int sigpending(sigset_t *set);
            @@ -5022,19 +5022,19 @@ with POSIX which states:  "If a subsequent occurrence of a pending
             signal is generated, it is implementation defined as to whether the signal
             is delivered more than once."
             

            -Input Parameters: +Input Parameters:

            • set. The location to return the pending signal set.

            -Returned Value: +Returned Value:

            • 0 (OK) or -1 (ERROR)

            -Assumptions/Limitations: +Assumptions/Limitations:

            POSIX Compatibility: Comparable to the POSIX interface of the same name. @@ -5042,7 +5042,7 @@ interface of the same name.

            2.8.9 sigsuspend

            -Function Prototype: +Function Prototype:

                 #include <signal.h>
                 int sigsuspend(const sigset_t *set);
            @@ -5068,13 +5068,13 @@ suspended.
             

          -Returned Value: +Returned Value:

          • -1 (ERROR) always

          -Assumptions/Limitations: +Assumptions/Limitations:

          POSIX Compatibility: Comparable to the POSIX interface of the same name. @@ -5090,7 +5090,7 @@ is required in the present implementation (even if the signal is ignored).

          2.8.10 sigwaitinfo

          -Function Prototype: +Function Prototype:

               #include <signal.h>
               int sigwaitinfo(const sigset_t *set, struct siginfo *info);
          @@ -5100,21 +5100,21 @@ is required in the present implementation (even if the signal is ignored).
           Description: This function is equivalent to sigtimedwait()
           with a NULL timeout parameter. (see below).
           

          -Input Parameters: +Input Parameters:

          • set. The set of pending signals to wait for.
          • info. The returned signal values

          -Returned Value: +Returned Value:

          • Signal number that cause the wait to be terminated, otherwise -1 (ERROR) is returned.

          -Assumptions/Limitations: +Assumptions/Limitations:

          POSIX Compatibility: Comparable to the POSIX interface of the same name. @@ -5122,7 +5122,7 @@ interface of the same name.

          2.8.11 sigtimedwait

          -Function Prototype: +Function Prototype:

               #include <signal.h>
               int sigtimedwait(const sigset_t *set, struct siginfo *info,
          @@ -5148,12 +5148,12 @@ for si_code are defined in signal.h:
             
        • SI_USER. Signal sent from kill, raise, or abort
        • SI_QUEUE. Signal sent from sigqueue
        • SI_TIMER. Signal is result of timer expiration -
        • SI_ASYNCIO. Signal is the result of asynchronous IO completion +
        • SI_ASYNCIO. Signal is the result of asynchronous IO completion
        • SI_MESGQ. Signal generated by arrival of a message on an empty message queue.

        -Input Parameters: +Input Parameters:

        • set. The set of pending signals to wait for.
        • info. The returned signal values @@ -5161,14 +5161,14 @@ for si_code are defined in signal.h:

        -Returned Value: +Returned Value:

        • Signal number that cause the wait to be terminated, otherwise -1 (ERROR) is returned.

        -Assumptions/Limitations: +Assumptions/Limitations:

        POSIX Compatibility: Comparable to the POSIX interface of the same name. @@ -5188,7 +5188,7 @@ the unblocked signal is ignored.

        2.8.12 sigqueue

        -Function Prototype: +Function Prototype:

             #include <signal.h>
             int sigqueue (int tid, int signo, union sigval value);
        @@ -5206,7 +5206,7 @@ POSIX which states:  "If a subsequent occurrence of a pending signal
         is generated, it is implementation defined as to whether the signal
         is delivered more than once."
         

        -Input Parameters: +Input Parameters:

        • tid. ID of the task to receive signal
        • signo. Signal number @@ -5214,7 +5214,7 @@ is delivered more than once."

        -Returned Value: +Returned Value:

        • On success (at least one signal was sent), zero (OK) is returned. @@ -5228,7 +5228,7 @@ is delivered more than once."

        -Assumptions/Limitations: +Assumptions/Limitations:

        POSIX Compatibility: Comparable to the POSIX interface of the same name. @@ -5245,7 +5245,7 @@ be sent.

        2.8.13 kill

        -Function Prototype: +Function Prototype:

            #include <sys/types.h>
            #include <signal.h>
        @@ -5253,7 +5253,7 @@ be sent.
         

        -Description: +Description: The kill() system call can be used to send any signal to any task.

        @@ -5266,7 +5266,7 @@ be sent. is delivered more than once."

        -Input Parameters: +Input Parameters:

        • pid. The id of the task to receive the signal. The POSIX kill() specification encodes process group @@ -5278,14 +5278,14 @@ be sent.

        - Returned Value: + Returned Value:

        • OK or ERROR

        - Assumptions/Limitations: + Assumptions/Limitations:

        POSIX Compatibility: @@ -5301,29 +5301,29 @@ be sent.

        2.8.14 pause

        -Function Prototype: +Function Prototype:

            #include <unistd.h>
            int pause(void);
         

        -Description: +Description: The pause() function will suspend the calling thread until delivery of a non-blocked signal.

        -Input Parameters: +Input Parameters:
        • None

        - Returned Value: + Returned Value: Since pause() suspends thread execution indefinitely unless interrupted a signal, there is no successful completion return value. A value of -1 (ERROR will always be returned and errno set to indicate the error (EINTR).

        - Assumptions/Limitations: + Assumptions/Limitations:

        POSIX Compatibility: @@ -5405,7 +5405,7 @@ be sent.

      • 2.9.28 pthread_mutexattr_getpshared
      • 2.9.29 pthread_mutexattr_setpshared
      • 2.9.30 pthread_mutexattr_gettype
      • -
      • 2.9.31 pthread_mutexattr_settype
      • +
      • 2.9.31 pthread_mutexattr_settype
      • 2.9.32 pthread_mutex_init
      • 2.9.33 pthread_mutex_destroy
      • 2.9.34 pthread_mutex_lock
      • @@ -6004,7 +6004,7 @@ cancellation state is set to PTHREAD_CANCEL_ENABLE.

        Input Parameters:

          -
        • state +
        • state New cancellation state. One of PTHREAD_CANCEL_ENABLE or PTHREAD_CANCEL_DISABLE.<.li>
        • oldstate. Location to return the previous cancellation state. @@ -6164,7 +6164,7 @@ interface of the same name.

        Description: - The pthread_getschedparam() functions will get the + The pthread_getschedparam() functions will get the scheduling policy and parameters of threads. For SCHED_FIFO and SCHED_RR, the only required member of the sched_param structure is the @@ -7321,7 +7321,7 @@ interface of the same name. Description: The pthread_barrier_init() function allocates any resources required to use the barrier referenced by barrier and initialized the barrier with - the attributes referenced by attr. + the attributes referenced by attr. If attr is NULL, the default barrier attributes will be used. The results are undefined if pthread_barrier_init() is called when any thread is blocked on the barrier. @@ -7444,7 +7444,7 @@ interface of the same name. recent pthread_barrier_init() function that referenced it.

        - The constant PTHREAD_BARRIER_SERIAL_THREAD is defined in + The constant PTHREAD_BARRIER_SERIAL_THREAD is defined in pthread.h and its value must be distinct from any other value returned by pthread_barrier_wait().

        @@ -7879,7 +7879,7 @@ interface of the same name.

        Any user supplied data or logic can be accessed via the pseudo-file system. - Built in support is provided for character and block + Built in support is provided for character and block driver nodes in the any pseudo file system directory. (By convention, however, all driver nodes should be in the /dev @@ -7937,8 +7937,8 @@ interface of the same name.

             #include <unistd.h>
             int     close(int fd);
          -  int     dup(int fildes);
          -  int     dup2(int fildes1, int fildes2);
          +  int     dup(int fd);
          +  int     dup2(int fd1, int fd2);
             off_t   lseek(int fd, off_t offset, int whence);
             ssize_t read(int fd, void *buf, size_t nbytes);
             int     unlink(const char *path);
          @@ -8103,7 +8103,7 @@ off_t   lseek(int fd, off_t offset, int whence);
           ssize_t read(int fd, FAR void *buf, size_t nbytes);
           ssize_t write(int fd, FAR const void *buf, size_t nbytes);
           
          -int     pipe(int filedes[2]);
          +int     pipe(int fd[2]);
           
           int     chdir(FAR const char *path);
           FAR char *getcwd(FAR char *buf, size_t size);
          @@ -8224,22 +8224,22 @@ void  *memmove(void *dest, const void *src, size_t count);
           

             #include <unistd.h>
            -int pipe(int filedes[2]);
            +int pipe(int fd[2]);
             

          Description:

            pipe() creates a pair of file descriptors, pointing to a pipe inode, and - places them in the array pointed to by filedes. - filedes[0] is for reading, filedes[1] is for writing. + places them in the array pointed to by fd. + fd[0] is for reading, fd[1] is for writing.

          Input Parameters:

            -
          • filedes[2]. The user provided array in which to catch the pipe file descriptors.
          • +
          • fd[2]. The user provided array in which to catch the pipe file descriptors.

          @@ -8266,7 +8266,7 @@ int mkfifo(FAR const char *pathname, mode_t mode);

          mkfifo() makes a FIFO device driver file with name pathname. Unlike Linux, a NuttX FIFO is not a special file type but simply a device driver instance. - mode specifies the FIFO's permissions (but is ignored in the current implementation). + mode specifies the FIFO's permissions (but is ignored in the current implementation).

          Once the FIFO has been created by mkfifo(), any thread can open it for @@ -8316,7 +8316,7 @@ int mkfatfs(FAR const char *pathname, FAR struct fat_format_s *fmt); device specified by pathname

          Assumptions: The caller must assure that the block driver is not mounted and not in - use when this function is called. + use when this function is called. The result of formatting a mounted device is indeterminate (but likely not good).

        @@ -8363,7 +8363,7 @@ struct fat_format_s NULL block driver string, bad number of FATS in fmt, bad FAT size in fmt, bad cluster size in fmt
      • -
      • ENOENT - +
      • ENOENT - pathname does not refer to anything in the file-system.
      • ENOTBLK - @@ -8387,7 +8387,7 @@ struct fat_format_s

        However, memory mapping of files is the mechanism used by NXFLAT, the NuttX tiny binary format, to get files into memory in order to execute them. - mmap() support is therefore required to support NXFLAT. + mmap() support is therefore required to support NXFLAT. There are two conditions where mmap() can be supported:

          @@ -8618,7 +8618,7 @@ FAR void *mmap(FAR void *start, size_t length, int prot, int flags, int fd, off_
        1. ENOSYS - Returned if any of the unsupported mmap() features are attempted.
        2. -
        3. EBADF - +
        4. EBADF - fd is not a valid file descriptor.
        5. EINVAL - @@ -8862,7 +8862,7 @@ int listen(int sockfd, int backlog);
        6. ENOTSOCK: The argument sockfd is not a socket.
        7. EOPNOTSUPP: The socket is not of a type that supports the listen operation.
      - +

      2.12.5 accept

      Function Prototype: From ffabc369bcac79670dc4a07ae9e2aab265d051f7 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 1 Oct 2013 11:22:50 -0600 Subject: [PATCH 1188/1518] minor update to SAMA5 part names --- Documentation/NuttX.html | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 3fc2fc613f..203801678f 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1236,11 +1236,11 @@

    3. AVR ATMega128 (8-bit AVR)
    4. AVR AT90USB64x and AT90USB6128x (8-bit AVR)
    5. AVR32 AT32UC3BXXX (32-bit AVR32)
    6. -
    7. Atmel AT91SAM3U (ARM Cortex-M3)
    8. -
    9. Atmel AT91SAM3X (ARM Cortex-M3)
    10. -
    11. Atmel AT91SAM4L (ARM Cortex-M4)
    12. -
    13. Atmel AT91SAM4S (ARM Cortex-M4)
    14. -
    15. Atmel AT91SAMA5D3 (ARM Cortex-A5)
    16. +
    17. Atmel SAM3U (ARM Cortex-M3)
    18. +
    19. Atmel SAM3X (ARM Cortex-M3)
    20. +
    21. Atmel SAM4L (ARM Cortex-M4)
    22. +
    23. Atmel SAM4S (ARM Cortex-M4)
    24. +
    25. Atmel SAMA5D3 (ARM Cortex-A5)
    26. Freescale @@ -2175,9 +2175,9 @@ nsh>

      - Atmel AT91SAM3U. + Atmel SAM3U. This port uses the Atmel SAM3U-EK - development board that features the AT91SAM3U4E MCU. + development board that features the SAM3U4E MCU. This port uses a GNU arm-nuttx-elf or arm-nuttx-eabi toolchain* under either Linux or Cygwin (with native Windows GNU tools or Cygwin-based GNU tools).

        @@ -2217,7 +2217,7 @@ nsh>

        - Atmel AT91SAM3X. + Atmel SAM3X. This port uses the Arduino Due development board that features the ATSAM3X8E MCU running at 84MHz. See the Arduino Due page for more information.

        @@ -2231,7 +2231,7 @@ nsh>

      Development Environments: - See the Atmel AT91SAM3U discussion above. + See the Atmel SAM3U discussion above.

      @@ -2698,7 +2698,7 @@ nsh>

      - Atmel AT91 SAM4L. + Atmel SAM4L. This port uses the Atmel SAM4L Xplained Pro development board. This board features the ATSAM4LC4C MCU running at 48MHz with 256KB of FLASH and 32KB of internal SRAM.

      @@ -2763,7 +2763,7 @@ Mem: 29232 5920 23312 23312

      - Atmel AT91SAM4S. + Atmel SAM4S. This port uses the Atmel SAM4S Xplained development board. This board features the ATSAM4S16C MCU running at 120MHz with 1MB of FLASH and 128KB of internal SRAM.

      From f1f8ae53232d9dfe40350ac63f2a35da9458efbc Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 2 Oct 2013 08:24:46 -0600 Subject: [PATCH 1189/1518] Add framework for Spark Core board support. The initial commit is a clone of the Maple Mini and still needs Spark customizations --- Documentation/README.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/README.html b/Documentation/README.html index ca20ff9336..f357d9f838 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -165,6 +165,8 @@ | | | `- README.txt | | |- skp16c26/ | | | `- README.txt + | | |- spark/ + | | | `- README.txt | | |- stm3210e-eval/ | | | |- RIDE/README.txt | | | `- README.txt From e09b24e03ad21c10bb1e90f97f39ffcf564b878e Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 5 Oct 2013 17:41:30 -0600 Subject: [PATCH 1190/1518] Documentation update --- Documentation/NuttShell.html | 264 ++++++++++++++++++++++------------- 1 file changed, 168 insertions(+), 96 deletions(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index b8d59a09bd..a701453d83 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -8,7 +8,7 @@

      NuttShell (NSH)

      -

      Last Updated: July 18, 2013

      +

      Last Updated: October 5, 2013

      @@ -89,283 +89,295 @@
      - 2.2 Base64 Decode (base64dec) + 2.2 Add a Routing Table Entry (addroute)
      - 2.3 Base64 Encode (base64enc) + 2.3 Base64 Decode (base64dec)
      - 2.4 Concatenate Files (cat) + 2.4 Base64 Encode (base64enc)
      - 2.5 Change Current Working Directory (cd) + 2.5 Concatenate Files (cat)
      - 2.6 Compare Files (cmp) + 2.6 Change Current Working Directory (cd)
      - 2.7 Copy Files (cp) + 2.7 Compare Files (cmp)
      - 2.8 Show or set the date and time (date) + 2.8 Copy Files (cp)
      - 2.9 Copy and Convert Files (dd) + 2.9 Show or set the date and time (date)
      - 2.10 Show volume status (df) + 2.10 Copy and Convert Files (dd)
      - 2.11 Echo Strings and Variables (echo) + 2.11 Delete a Routing Table Entry (delroute)
      - 2.12 Execute User Code (exec) + 2.12 Show volume status (df)
      - 2.13 Exit NSH (exit) + 2.13 Echo Strings and Variables (echo)
      - 2.14 Show Memory Manager Status (free) + 2.14 Execute User Code (exec)
      - 2.15 Get File Via TFTP (get) + 2.15 Exit NSH (exit)
      - 2.16 Show Usage Command Usage (help) + 2.16 Show Memory Manager Status (free)
      - 2.17 Hexadecimal Dump of File or Device (hexdump) + 2.17 Get File Via TFTP (get)
      - 2.18 Manage Network Configuration (ifconfig) + 2.18 Show Usage Command Usage (help)
      - 2.19 Take a network down (ifdown) + 2.19 Hexadecimal Dump of File or Device (hexdump)
      - 2.20 Bring a network up (ifup) + 2.20 Manage Network Configuration (ifconfig)
      - 2.21 Send a signal to a task (kill) + 2.21 Take a network down (ifdown)
      - 2.22 Setup/teardown the Loop Device (losetup) + 2.22 Bring a network up (ifup)
      - 2.23 List Directory Contents (ls) + 2.23 Send a signal to a task (kill)
      - 2.24 Calculate MD5 (md5) + 2.24 Setup/teardown the Loop Device (losetup)
      - 2.25 Access Memory (mb, mh, and mw) + 2.25 List Directory Contents (ls)
      - 2.26 Show Current Tasks and Threads (ps) + 2.26 Calculate MD5 (md5)
      - 2.27 Create a Directory (mkdir) + 2.27 Access Memory (mb, mh, and mw)
      - 2.28 Create a FAT Filesystem (mkfatfs) + 2.28 Show Current Tasks and Threads (ps)
      - 2.29 Create a FIFO (mkfifo) + 2.29 Create a Directory (mkdir)
      - 2.30 Create a RAMDISK (mkrd) + 2.30 Create a FAT Filesystem (mkfatfs)
      - 2.31 Mount a File System (mount) + 2.31 Create a FIFO (mkfifo)
      - 2.32 Rename a File (mv) + 2.32 Create a RAMDISK (mkrd)
      - 2.33 Mount an NFS file system (nfsmount) + 2.33 Mount a File System (mount)
      - 2.34 Check Network Peer (ping) + 2.34 Rename a File (mv)
      - 2.35 Send File Via TFTP (put) + 2.35 Mount an NFS file system (nfsmount)
      - 2.36 Show Current Working Directory (pwd) + 2.36 Check Network Peer (ping)
      - 2.37 Remove a File (rm) + 2.37 Send File Via TFTP (put)
      - 2.38 Remove a Directory (rmdir) + 2.38 Show Current Working Directory (pwd)
      - 2.39 Set an Environment Variable (set) + 2.39 Remove a File (rm)
      - 2.40 Execute an NSH Script (sh) + 2.40 Remove a Directory (rmdir)
      - 2.41 Wait for Seconds (sleep) + 2.41 Set an Environment Variable (set)
      - 2.42 Unmount a File System (umount) + 2.42 Execute an NSH Script (sh)
      - 2.43 Unset an Environment Variable (unset) + 2.43 Wait for Seconds (sleep)
      - 2.44 URL Decode (urldecode) + 2.44 Unmount a File System (umount)
      - 2.45 URL Encode (urlencode) + 2.45 Unset an Environment Variable (unset)
      - 2.46 Wait for Microseconds (usleep) + 2.46 URL Decode (urldecode)
      - 2.47 Get File Via HTTP (wget) + 2.47 URL Encode (urlencode)
      - 2.48 Hexadecimal Dump of Memory (xd) + 2.48 Wait for Microseconds (usleep) + + + +
      + + 2.49 Get File Via HTTP (wget) + + + +
      + + 2.50 Hexadecimal Dump of Memory (xd) @@ -804,7 +816,31 @@ test <expression> + +
      -

      2.2 Base64 Decode (base64dec)

      +

      2.2 Add a Routing Table Entry (addroute)

      +
      + +

      Command Syntax:

      +
        +addroute <target> <netmask> <router>
        +
      +

      + Synopsis. + This command adds an entry in the routing table. + The new entry will map the IP address of a router on a local network(<router>) to an external network characterized by the <target> IP address and a network mask <netmask> +

      +

      + Example: +

      +
        +nsh> addroute 1.1.1.1 2.2.2.2 3.3.3.3
        +
      + + + +
      +

      2.3 Base64 Decode (base64dec)

      @@ -821,7 +857,7 @@ base64dec [-w] [-f] <string or filepath>
      -

      2.3 Base64 Encode (base64enc)

      +

      2.4 Base64 Encode (base64enc)

      @@ -838,7 +874,7 @@ base64enc [-w] [-f] <string or filepath>
      -

      2.4 Concatenate Files (cat)

      +

      2.5 Concatenate Files (cat)

      @@ -856,7 +892,7 @@ cat <path> [<path> [<path> -

      2.5 Change Current Working Directory (cd)

      +

      2.6 Change Current Working Directory (cd)

      @@ -898,7 +934,7 @@ cd [<dir-path>|-|~|..]
      -

      2.6 Compare Files (cmp)

      +

      2.7 Compare Files (cmp)

      @@ -915,7 +951,7 @@ cmp <path1> <path2>
      -

      2.7 Copy Files (cp)

      +

      2.8 Copy Files (cp)

      @@ -933,7 +969,7 @@ cp <source-path> <dest-path>
      -

      2.8 Show or set the date and time (date)

      +

      2.9 Show or set the date and time (date)

      @@ -960,7 +996,7 @@ data -s "Sep 1 11:30:00 2011"
      -

      2.9 Copy and Convert Files (dd)

      +

      2.10 Copy and Convert Files (dd)

      @@ -1018,10 +1054,34 @@ nsh> dd if=/dev/ram0 of=/dev/null
      -

      2.10 Show Volument Status (df)

      +

      2.11 Delete a Routing Table Entry (delroute)

      + +

      Command Syntax:

      +
        +delroute <target> <netmask>
        +
      +

      + Synopsis. + The entry removed will be the first entry in the routing table that matches + the external network characterized by the <target> IP address and the network mask <netmask> +

      + Example: +

      +
        +nsh> delroute 1.1.1.1 2.2.2.2
        +
      + + + + + +
      +

      2.12 Show Volument Status (df)

      +
      +

      Command Syntax:

      +
    27. /etc/init.d/rcS
    28. exec
    29. exec_builtin()
    30. exit
    31. From 53ed67dd8f5aa1c7d494e625b8a73ec401a757f4 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 24 Oct 2013 08:48:04 -0600 Subject: [PATCH 1191/1518] Added support for the Olimex STM32 P207 board. From Martin Lederhilger --- Documentation/README.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/README.html b/Documentation/README.html index f357d9f838..540fcc7fef 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -8,7 +8,7 @@

      NuttX README Files

      -

      Last Updated: August 31, 2013

      +

      Last Updated: October 24, 2013

      @@ -131,6 +131,8 @@ | | | `- README.txt | | |- olimex-lpc2378/ | | | `- README.txt + | | |- olimex-stm32-p207/ + | | | `- README.txt | | |- olimex-strp711/ | | | `- README.txt | | |- open1788/ From 3704b58f5a4a45c12d2383ffda64f7291034696e Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 27 Oct 2013 07:45:54 -0600 Subject: [PATCH 1192/1518] Updated REAMDE documentation --- Documentation/README.html | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Documentation/README.html b/Documentation/README.html index 540fcc7fef..e2819b6241 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -8,7 +8,7 @@

      NuttX README Files

      -

      Last Updated: October 24, 2013

      +

      Last Updated: October 27, 2013

      @@ -45,6 +45,8 @@ | | | |- README.txt | | | `- z180_mmu.txt | | `- README.txt + | |- audio/ + | | `- README.txt | |- configs/ | | |- amber/ | | | `- README.txt @@ -272,6 +274,7 @@ | |- cdcacm/README.txt | |- i2c/README.txt | |- install/README.txt + | |- nxplayer/README.txt | |- usbmsc/README.txt | `- zmodem/README.txt `- NxWidgets From c1d3d775bf149c1bb733bab2952b681ce1caef46 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 28 Oct 2013 14:08:34 -0600 Subject: [PATCH 1193/1518] Prep for release 6.31 --- Documentation/NuttX.html | 270 ++++++++++++++++++++++++++++++--------- 1 file changed, 210 insertions(+), 60 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 203801678f..523ca80182 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

      NuttX RTOS

      -

      Last Updated: September 14, 2013

      +

      Last Updated: October 28, 2013

      @@ -71,7 +71,7 @@ - Release Notes + Release Notes What has changed in the last release of NuttX? What has changed in previous releases of NuttX? Are there any unreleased changes. @@ -564,7 +564,7 @@

      -

    32. Audio subsystem: CODECs, audio input and output drivers.
    33. +
    34. Audio subsystem: CODECs, audio input and output drivers. Command line and graphic media player applications.
    35. @@ -711,6 +711,16 @@

      + +
      + +

      +

    36. + Support for networking modules (e.g., the TI CC3000 WLAN module). +
    37. +

      + + @@ -1106,13 +1116,13 @@

      Released Versions

      In addition to the ever-changing GIT repository, there are frozen released versions of NuttX available. - The current release is NuttX 6.30. - NuttX 6.30 is the 97th release of NuttX. - It was released on September 14, 2013, and is available for download from the + The current release is NuttX 6.31. + NuttX 6.31 is the 98th release of NuttX. + It was released on October 28, 2013, and is available for download from the SourceForge website. - Note that the release consists of two tarballs: nuttx-6.30.tar.gz and apps-6.20.tar.gz. + Note that the release consists of two tarballs: nuttx-6.31.tar.gz and apps-6.31.tar.gz. Both may be needed (see the top-level nuttx/README.txt file for build information). - Release notes for NuttX 6.30 are avaialble here. + Release notes for NuttX 6.31 are avaialble here. The change log associated with the release is available here. Unreleased changes after this release are available in GIT. These unreleased changes are also listed here. @@ -1174,8 +1184,8 @@

    38. ARM926EJS (3)
    39. ARM Cortex-A5 (1)
    40. ARM Cortex-M0/M0+ (2)
    41. -
    42. ARM Cortex-M3 (20)
    43. -
    44. ARM Cortex-M4 (9)
    45. +
    46. ARM Cortex-M3 (21)
    47. +
    48. ARM Cortex-M4 (10)
    49. Atmel AVR
        @@ -1407,7 +1417,7 @@ This port supports the TI "Calypso" MCU used in various cell phones (and, in particular, by the Osmocom-bb project). Like the c5471, NuttX operates on the ARM7 of this dual core processor. - Board support is available for the Motorola C155 and W220 phones and for the Pirelli DP-L10 phone. + Board support is available for the Motorola C139, C155 and W220 phones and for the Pirelli DP-L10 phone.

          @@ -1666,18 +1676,105 @@ Initial support for the SAMA5D3x-EK was released in NuttX-6.29. That initial support was minimal: There are simple test configurations that run out of internal SRAM and extended configurations that run out of the on-board NOR FLASH: - (1) An OS test configuration that verifies the correct port of NuttX to the part and - (2) A barebones NuttShell (NSH) configuration that can be used as the basis for further application development. - (3) A full-loaded NuttShell (NSH) configuration that demonstrates all of the SAMA5D3x features. +

          +
            +
          • + An OS test configuration that verifies the correct port of NuttX to the part and +
          • +
          • + A barebones NuttShell (NSH) configuration that can be used as the basis for further application development. +
          • +
          • + A full-loaded NuttShell (NSH) configuration that demonstrates all of the SAMA5D3x features. +
          • +
          +

          + The following support was added in Nuttx 6.30: +

          +
            +
          • + DMA support, and +
          • +
          • + PIO interrupts, +
          • +
          +

          + And drivers for +

          +
            +
          • + SPI (with DMA support), +
          • +
          • + AT25 Serial Flash, +
          • +
          • + Two Wire Interface (TWI), and +
          • +
          • + HSMCI memory cards. +
          • +
          +

          + NuttX-6.30 also introduces full USB support: +

          +
            +
          • + High speed device controller driver, +
          • +
          • + OHCI (low- and full-speed) and +
          • +
          • + EHCI (high-speed) host controller driver support. +
          • +
          +

          + With NuttX-6.31, these additional drivers were added: +

          +
            +
          • + A 10/100Base-T Ethernet (EMAC) driver, +
          • +
          • + A 1000Base-T Ethernet (GMAC) driver, +
          • +
          • + A Real Time Clock (RTC) driver and integrated with the NuttX system time logic +
          • +
          • + /dev/random using the SAMA5D3x True Random Number Generator (TRNG), +
          • +
          • + A Watchdog Timer (WDT) driver, +
          • +
          • + A Timer/Counter (TC) library with interface that make be used by other drivers that need timer support, +
          • +
          • + An ADC driver that can collect multiple samples using the sequencer, can be trigger by a timer/counter, and supports DMA data transfers, +
          • +
          • + A touchscreen driver based on the special features of the SAMA5D3 ADC peripheral, + An LCD controller (LCDC) frame buffer driver, and +
          • +
          • + A CAN driver (however, testing of the CAN has been delayed because of cabling issues). +
          • +
          +

          + Additional board configurations were added to test and demonstrate these new drivers including new graphics and NxWM configurations. + These are expected in NuttX-6.32.

          - The following drivers and features were added in Nuttx 6.30: - DMA and PIO interrupts, drivers for SPI, AT25 Serial Flash, Two Wire Interface (TWI), and HSMCI memory cards included in NuttX-6.30. - NuttX-6.30 also introduces full USB support: High speed device controller driver, and OHCI (low- and full-speed) and EHCI (high-speed) host controller driver support. Develop continues. - Additional driver developement is underway (include LCD and networking) and there should be available in NuttX-6.31. + Work is underway to provide a Image Sensor Interface (ISI) camera interface, a PWM driver, and NAND FLASH support. +

          +

          Refer to the NuttX board README file for further information.

          +

          Development Environments: 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS with Windows native toolchain, or 4) Native Windows. All testing has been perfomed with the CodeSourcery toolchain (GCC version 4.7.3) in the Cygwin environment under Windows. @@ -2030,35 +2127,59 @@ nsh> STMicro STM32F103x (STM32 F1 Family). Support for four MCUs and four board configurations are available. MCU support includes all of the high density and connectivity line families. - Board supported is available specifically for: STM32F103ZET6, STM32F103RET6, STM32F103VCT, and STM32F103VET6. + Board supported is available specifically for: STM32F103ZET6, STM32F103RET6, STM32F103VCT, STM32F103VET6, STM32F103RBT6, and STM32103CBT6. Boards supported include:

          1. - A port for the STMicro STM3210E-EVAL development board that - features the STM32F103ZET6 MCU. - Refer to the NuttX board README file for further information. +

            + STM3210E-EVAL. + A port for the STMicro STM3210E-EVAL development board that + features the STM32F103ZET6 MCU. + Refer to the NuttX board README file for further information. +

          2. - The ISOTEL NetClamps VSN V1.2 ready2go sensor network platform based on the - STMicro STM32F103RET6. Contributed by Uros Platise. - Refer to the NuttX board README file for further information. +

            + ISOTEL NetClamps VSN. + The ISOTEL NetClamps VSN V1.2 ready2go sensor network platform based on the + STMicro STM32F103RET6. Contributed by Uros Platise. + Refer to the NuttX board README file for further information. +

          3. - A port for the HY-Mini STM32v board. This board is based on the - STM32F103VCT chip. Contributed by Laurent Latil. - Refer to the NuttX board README file. +

            + HY-Mini STM32v board. + This board is based on the STM32F103VCT chip. Port contributed by Laurent Latil. + Refer to the NuttX board README file. +

          4. - The M3 Wildfire development board (STM32F103VET6), version 2. - See http://firestm32.taobao.com (the current board is version 3). - Refer to the NuttX board README file for further information. +

            + The M3 Wildfire development board (STM32F103VET6), version 2. + See http://firestm32.taobao.com (the current board is version 3). + Refer to the NuttX board README file for further information. +

          5. - LeafLab's Maple and Maple Mini boards. - These boards are based on the STM32F103RBT6 chip for the standard version and on the STM32F103CBT6 for the mini version. - See the LeafLabs web site for hardware information; - see the NuttX board README file for further information about the NuttX port. +

            + LeafLab's Maple and Maple Mini boards. + These boards are based on the STM32F103RBT6 chip for the standard version and on the STM32F103CBT6 for the mini version. + See the LeafLabs web site for hardware information; + see the NuttX board README file for further information about the NuttX port. +

            +
          6. +
          7. +

            + Spark (and emulated Spark). + The Spark boards are based on the STM32F103CBT6 chip and feature wireless networking using the TI CC3000 WLAN module. + See the Spark web site for hardware information; + see the NuttX board README file for further information about the NuttX port. + Most of this work is the result of the effort of David Sidrane. +

            +

            + The emulated Spark is a base board for the Maple Mini board (see above) developed by David Sidrane that supports Spark development while we all way breathlessly for or Spark boards. +

          @@ -2069,33 +2190,55 @@ nsh> STATUS:

            -
          • Basic Support/Drivers. - The basic STM32 port was released in NuttX version 0.4.12. The basic port includes boot-up - logic, interrupt driven serial console, and system timer interrupts. - The 0.4.13 release added support for SPI, serial FLASH, and USB device.; - The 4.14 release added support for buttons and SDIO-based MMC/SD and verifed DMA support. - Verified configurations are available for NuttX OS test, the NuttShell (NSH) example, - the USB serial device class, and the USB mass storage device class example. +
          • +

            + Basic Support/Drivers. + The basic STM32 port was released in NuttX version 0.4.12. The basic port includes boot-up + logic, interrupt driven serial console, and system timer interrupts. + The 0.4.13 release added support for SPI, serial FLASH, and USB device.; + The 4.14 release added support for buttons and SDIO-based MMC/SD and verifed DMA support. + Verified configurations are available for NuttX OS test, the NuttShell (NSH) example, + the USB serial device class, and the USB mass storage device class example. +

          • -
          • NetClamps VSN. - Support for the NetClamps VSN was included in version 5.18 of NuttX. - Uros Platise added support for timers, RTC, I2C, FLASH, extended power management - and other features. +
          • +

            + NetClamps VSN. + Support for the NetClamps VSN was included in version 5.18 of NuttX. + Uros Platise added support for timers, RTC, I2C, FLASH, extended power management + and other features. +

          • -
          • Additional Drivers. - Additional drivers and configurations were added in NuttX 6.13 and later releases for the STM32 F1 and F4. - F1 compatible drivers include an Ethernet driver, ADC driver, DAC driver, PWM driver, IWDG, WWDG, and CAN drivers. +
          • +

            + Additional Drivers. + Additional drivers and configurations were added in NuttX 6.13 and later releases for the STM32 F1 and F4. + F1 compatible drivers include an Ethernet driver, ADC driver, DAC driver, PWM driver, IWDG, WWDG, and CAN drivers. +

          • -
          • M3 Wildfire. - Support for the Wildfire board was included in version 6.22 of NuttX. - The board port is basically functional. - Not all features have been verified. - Support for FAT file system on an an SD card had been verified. - The ENC28J60 network is functional (but required lifting the chip select pin on the W25x16 part). - Customizations for the v3 version of the Wildfire board are selectable (but untested). +
          • +

            + M3 Wildfire. + Support for the Wildfire board was included in version 6.22 of NuttX. + The board port is basically functional. + Not all features have been verified. + Support for FAT file system on an an SD card had been verified. + The ENC28J60 network is functional (but required lifting the chip select pin on the W25x16 part). + Customizations for the v3 version of the Wildfire board are selectable (but untested). +

          • -
          • Maple. - Support for the Maple boards was contributed by Yiran Liao and first appear in NuttX 6-30. +
          • +

            + Maple. + Support for the Maple boards was contributed by Yiran Liao and first appear in NuttX 6-30. +

            +
          • +
          • +

            + Spark. + David Sidrane has the emulated Spark board up-and-running with a functional CC3000 network, SST25 FAT file system, an NSH shell, and a composite USB CDC/ACM and USBMSC devices. This configuration is was first available NuttX 6-31. + That is really quite a lot of high end functionality on an STM32 that only has 20KB of RAM! I am impressed! +

        @@ -2156,8 +2299,15 @@ nsh>

        - STMicro STM32F207IG (STM32 F2 family). - Support for the STMicro STM3220G-EVAL development board was contributed by Gary Teravskis and first released in NuttX-6.16. + STMicro STM32F207 (STM32 F2 family). +

          +
        • + Support for the STMicro STM3220G-EVAL development board was contributed by Gary Teravskis and first released in NuttX-6.16. This board uses the STM32F207IG. +
        • +
        • + Martin Lederhilger contributed support for the Olimex STM32 P207 board using the STM32F207ZE MCU. +
        • +

          STATUS: From 812bb8ae31fae24cc3d2d0d79e82f0fa6181962d Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 7 Nov 2013 16:55:45 -0600 Subject: [PATCH 1194/1518] Add support for the STM32F429I-Discovery board from Ken Pettit --- Documentation/README.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/README.html b/Documentation/README.html index e2819b6241..1cb767d6cd 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -8,7 +8,7 @@

          NuttX README Files

          -

          Last Updated: October 27, 2013

          +

          Last Updated: November 7, 2013

          @@ -188,6 +188,8 @@ | | | `- README.txt | | |- stm32ldiscovery/ | | | `- README.txt + | | |- stm32f429i-disco/ + | | | `- README.txt | | |- sure-pic32mx/ | | | `- README.txt | | |- teensy/ From aa5369f6fee1c56dad169ce5719d5b946c999081 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 13 Nov 2013 15:59:14 -0600 Subject: [PATCH 1195/1518] fs/procfs: Add a tiny, primitive procfs file system. Might get more interesting in the future --- Documentation/README.html | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Documentation/README.html b/Documentation/README.html index 1cb767d6cd..e2623d272e 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -233,8 +233,10 @@ | |- fs/ | | |- mmap/ | | | `- README.txt - | | `- nxffs/ - | | `- README.txt + | | |- nxffs/ + | | | `- README.txt + | | `- procfs/ + | | `- README.txt | |- graphics/ | | `- README.txt | |- lib/ From f9be259a227e3cc749baa6f320b8e9e137afb063 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 13 Nov 2013 16:40:03 -0600 Subject: [PATCH 1196/1518] fs/binfs/README.txt: Add a README file --- Documentation/README.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/README.html b/Documentation/README.html index e2623d272e..de8634ed81 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -8,7 +8,7 @@

          NuttX README Files

          -

          Last Updated: November 7, 2013

          +

          Last Updated: November 13, 2013

          @@ -231,6 +231,8 @@ | | | `- README.txt | | `- README.txt | |- fs/ + | | |- binfs/ + | | | `- README.txt | | |- mmap/ | | | `- README.txt | | |- nxffs/ From 135cfd8351664b583d57462e703128a1cb41f89d Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 15 Nov 2013 11:22:23 -0600 Subject: [PATCH 1197/1518] Moved include/nuttx/mtd.h to include/nuttx/mtd/mtd.h --- Documentation/NuttxPortingGuide.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 9e5c8122a9..65f4820bf0 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -3246,7 +3246,7 @@ extern void up_ledoff(int led);
          • - include/nuttx/mtd.h. + include/nuttx/mtd/mtd.h. All structures and APIs needed to work with MTD drivers are provided in this header file.

          • From 68d3e9f648b5f7d6526161c528521aac0a5d9792 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 18 Nov 2013 14:51:38 -0600 Subject: [PATCH 1198/1518] Add support for the Olimex LPC-H3131 board --- Documentation/README.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/README.html b/Documentation/README.html index de8634ed81..240771459b 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -8,7 +8,7 @@

            NuttX README Files

            -

            Last Updated: November 13, 2013

            +

            Last Updated: November 18, 2013

            @@ -133,6 +133,8 @@ | | | `- README.txt | | |- olimex-lpc2378/ | | | `- README.txt + | | |- olimex-lpc-h3131/ + | | | `- README.txt | | |- olimex-stm32-p207/ | | | `- README.txt | | |- olimex-strp711/ From f41ea0e4f8f122b85a3e2e2fb728885cc6ec50f6 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 23 Nov 2013 06:44:17 -0600 Subject: [PATCH 1199/1518] Add README file for SMARTFS. From Ken Pettit --- Documentation/README.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/README.html b/Documentation/README.html index 240771459b..9cad7087f8 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -8,7 +8,7 @@

            NuttX README Files

            -

            Last Updated: November 18, 2013

            +

            Last Updated: November 23, 2013

            @@ -239,6 +239,8 @@ | | | `- README.txt | | |- nxffs/ | | | `- README.txt + | | |- smartfs/ + | | | `- README.txt | | `- procfs/ | | `- README.txt | |- graphics/ From 776e4c2ae6643afe27679850b27ac581351c3042 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 30 Nov 2013 12:14:15 -0600 Subject: [PATCH 1200/1518] Basic board support for the ViewTool STM32F103/F107 board --- Documentation/README.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/README.html b/Documentation/README.html index 9cad7087f8..75883709f0 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -202,6 +202,8 @@ | | | `- README.txt | | |- us7032evb1/ | | | `- README.txt + | | |- viewtool-stm32f107/ + | | | `- README.txt | | |- vsn/ | | | |- src/README.txt | | | `- README.txt From 053956b5f70aeb3b6ce07c5c256dbbf1f4478349 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 4 Dec 2013 07:46:10 -0600 Subject: [PATCH 1201/1518] Add drivers/mtd/README.txt --- Documentation/README.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/README.html b/Documentation/README.html index 75883709f0..66e7aede60 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -229,6 +229,8 @@ | |- drivers/ | | |- lcd/ | | | `- README.txt + | | |- mtd/ + | | | `- README.txt | | |- sercomm/ | | | `- README.txt | | |- syslog/ From babb9b430814ad8a9de66c507e67c62587048f07 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 5 Dec 2013 10:37:55 -0600 Subject: [PATCH 1202/1518] LM: Don't initialize .data if running in SRAM. Global missing intialize type. SAMA5 NAND: Fix for read nand in smaller chunks --- Documentation/NXGraphicsSubsystem.html | 2 +- Documentation/NuttxPortingGuide.html | 8 ++++---- Documentation/NuttxUserGuide.html | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Documentation/NXGraphicsSubsystem.html b/Documentation/NXGraphicsSubsystem.html index 48e4e376e4..4f7833acdb 100644 --- a/Documentation/NXGraphicsSubsystem.html +++ b/Documentation/NXGraphicsSubsystem.html @@ -356,7 +356,7 @@

            1NXMU and NXSU are interchangeable other than (1) certain start-up - and intialization APIs (as described below), and (2) timing. With NXSU, NX APIs + and initializeation APIs (as described below), and (2) timing. With NXSU, NX APIs execute immediately; with NXMU, NX APIs defer and serialize the operations and, hence, introduce different timing and potential race conditions that you would not experience with NXSU. diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 65f4820bf0..89f9ff35f4 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -2257,7 +2257,7 @@ else

          • up_rtc_time(). Get the current time in seconds. This is similar to the standard time() function. This interface is only required if the low-resolution RTC/counter hardware implementation selected. - It is only used by the RTOS during intialization to set up the system time when CONFIG_RTC is set + It is only used by the RTOS during initializeation to set up the system time when CONFIG_RTC is set but neither CONFIG_RTC_HIRES nor CONFIG_RTC_DATETIME are set.
          • up_rtc_gettime(). @@ -3511,7 +3511,7 @@ extern void up_ledoff(int led);
            1. - Each USB host class driver includes an intialization entry point that is called from the + Each USB host class driver includes an initializeation entry point that is called from the application at initialization time. This driver calls usbhost_registerclass() during this initialization in order to makes itself available in the event the device that it supports is connected.

              @@ -3599,7 +3599,7 @@ extern void up_ledoff(int led);
              1. - Each USB device class driver includes an intialization entry point that is called from the + Each USB device class driver includes an initializeation entry point that is called from the application at initialization time.

                @@ -4134,7 +4134,7 @@ void pm_initialize(void);

    50. Description: This function is called by MCU-specific one-time at power on reset in order to initialize the power management capabilities. -This function must be called very early in the intialization sequence before any other device drivers are initialize (since they may attempt to register with the power management subsystem). +This function must be called very early in the initializeation sequence before any other device drivers are initialize (since they may attempt to register with the power management subsystem).

      Input Parameters: None diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index bedc07226c..621c65c939 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -1000,7 +1000,7 @@ int posix_spawn_file_actions_destroy(FAR posix_spawn_file_actions_t *file_action

      Description: - The posix_spawn_file_actions_destroy() function destroys the object referenced by file_actions which was previously intialized by posix_spawn_file_actions_init(), returning any resources obtained at the time of initialization to the system for subsequent reuse. + The posix_spawn_file_actions_destroy() function destroys the object referenced by file_actions which was previously initializeed by posix_spawn_file_actions_init(), returning any resources obtained at the time of initialization to the system for subsequent reuse. A posix_spawn_file_actions_t may be reinitialized after having been destroyed, but must not be reused after destruction, unless it has been reinitialized.

      From fe2191e62b78bfcc78e92178f303c5fd47e6a89f Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 5 Dec 2013 18:16:27 -0600 Subject: [PATCH 1203/1518] NSH: Add an option to the mkfatfs command to specify FAT12, FAT16, or FAT32 --- Documentation/NuttShell.html | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index a701453d83..63e2165762 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -8,7 +8,7 @@

      NuttShell (NSH)

      -

      Last Updated: October 5, 2013

      +

      Last Updated: December 5, 2013

      @@ -1668,11 +1668,16 @@ nsh>

      Command Syntax:

        -mkfatfs <path>
        +mkfatfs [-F <fatsize>] <block-driver>
         

      Synopsis. - Format a fat file system on the block device specified by <path>. + Format a fat file system on the block device specified by <block-driver> path. + The FAT size may be provided as an option. + Without the <fatsize> option, mkfatfs will select either the FAT12 or FAT16 format. + For historical reasons, if you want the FAT32 format, it must be explicitly specified on the command line. +

      +

      NSH provides this command to access the mkfatfs() NuttX API. This block device must reside in the NuttX pseudo filesystem and must have been created by some call to register_blockdriver() (see include/nuttx/fs/fs.h). From 606a02778395d1c4bf7686178ea6f5b5496c60c1 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 7 Dec 2013 11:04:08 -0600 Subject: [PATCH 1204/1518] Prep for the NuttX-6.32 Release --- Documentation/NuttX.html | 199 +++++++++++++++++++++++++++++---------- 1 file changed, 147 insertions(+), 52 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 523ca80182..2e5d026e1e 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

      NuttX RTOS

      -

      Last Updated: October 28, 2013

      +

      Last Updated: December 7, 2013

      @@ -466,6 +466,13 @@
    51. BINFS pseudo-filesystem support.
    52. + +
      + +

      +

    53. procfs/ pseudo-filesystem support.
    54. +

      +
      @@ -529,7 +536,7 @@

    55. - Network, USB (host), USB (device), serial, CAN, ADC, DAC, PWM, Quadrature Encoder, Wireless, and watchdog timer driver architectures. + Network, USB (host), USB (device), serial, I2C, I2S, NAND, CAN, ADC, DAC, PWM, Quadrature Encoder, Wireless, and watchdog timer driver architectures.
    56. @@ -735,6 +742,13 @@
    57. MTD-inspired interface for Memory Technology Devices.
    58. + +
      + +

      +

    59. NAND support.
    60. +

      +
      @@ -1116,16 +1130,15 @@

      Released Versions

      In addition to the ever-changing GIT repository, there are frozen released versions of NuttX available. - The current release is NuttX 6.31. - NuttX 6.31 is the 98th release of NuttX. - It was released on October 28, 2013, and is available for download from the + The current release is NuttX 6.32. + NuttX 6.32 is the 99th release of NuttX. + It was released on December 7, 2013, and is available for download from the SourceForge website. - Note that the release consists of two tarballs: nuttx-6.31.tar.gz and apps-6.31.tar.gz. + Note that the release consists of two tarballs: nuttx-6.32.tar.gz and apps-6.32.tar.gz. Both may be needed (see the top-level nuttx/README.txt file for build information). - Release notes for NuttX 6.31 are avaialble here. + Release notes for NuttX 6.32 are available here. The change log associated with the release is available here. - Unreleased changes after this release are available in GIT. - These unreleased changes are also listed here. + Unreleased changes after this release are available in GIT (see below).

      Unreleased Changes:

      @@ -1181,10 +1194,10 @@
    61. Atmel AVR @@ -1250,6 +1263,7 @@
    62. Atmel SAM3X (ARM Cortex-M3)
    63. Atmel SAM4L (ARM Cortex-M4)
    64. Atmel SAM4S (ARM Cortex-M4)
    65. +
    66. Atmel SAM4E (ARM Cortex-M4)
    67. Atmel SAMA5D3 (ARM Cortex-A5)
    68. @@ -1316,6 +1330,7 @@
    69. STMicro STM32F303x (STM32 F3 family, ARM Cortex-M4).
    70. STMicro STM32F407x (STM32 F4 family, ARM Cortex-M4)
    71. STMicro STM32 F427/437 (STM32 F4 family, ARM Cortex-M4)
    72. +
    73. STMicro STM32 F429 (STM32 F4 family, ARM Cortex-M4)
    74. @@ -1592,30 +1607,50 @@
      - NXP LPC3131. - The port for the NXP LPC3131 on the Embedded Artists EA3131 - development board was first released in NuttX-5.1 with a GNU arm-nuttx-elf or arm-eabi toolchain* under Linux or Cygwin - (but was not functional until NuttX-5.2). +

      + NXP LPC3131. + Two boards based on the NXP LPC3131 are supported:

        -

        - STATUS: - The basic EA3131 port is complete and verified in NuttX-5.2 - This basic port includes basic boot-up, serial console, and timer interrupts. - This port was extended in NuttX 5.3 with a USB high speed driver contributed by David Hewson. - David also contributed I2C and SPI drivers plus several important LPC313x USB bug fixes - that appear in the NuttX 5.6 release. - This port has been verified using the NuttX OS test, USB serial and mass storage - tests and includes a working implementation of the NuttShell (NSH). -

        -

        - Support for on-demand paging has been developed for the EA3131. - That support would all execute of a program in SPI FLASH by paging code sections out of SPI flash as needed. - However, as of this writing, I have not had the opportunity to verify this new feature. -

        -

        - Refer to the NuttX board README file for further information. -

        +
      • +

        + First, a port for the NXP LPC3131 on the Embedded Artists EA3131 development board was first released in NuttX-5.1 (but was not functional until NuttX-5.2). +

        +
          +

          + STATUS: + The basic EA3131 port is complete and verified in NuttX-5.2. + This basic port includes basic boot-up, serial console, and timer interrupts. + This port was extended in NuttX 5.3 with a USB high speed driver contributed by David Hewson. + David also contributed I2C and SPI drivers plus several important LPC313x USB bug fixes that appear in the NuttX 5.6 release. + This port has been verified using the NuttX OS test, USB serial and mass storage tests and includes a working implementation of the NuttShell (NSH). +

          +

          + Support for on-demand paging has been developed for the EA3131. + That support would all execute of a program in SPI FLASH by paging code sections out of SPI flash as needed. + However, as of this writing, I have not had the opportunity to verify this new feature. +

          +

          + Refer to the Embedded Artists EA3131 board README file for further information. +

          +
        +
      • +
      • +

        + A second port to the NXP LPC3131 on the Olimex LPC-H3131 development board was added in NuttX-6.32. +

        +
          +

          + STATUS: + The basic H3131 port is complete and verified in NuttX-6.3. + It is similar to the EA3131 port except: (1) I have not yet gotten the SDRAM to work, and (2) this board was used to develop and verify the USB 2.0, low-/full-/high-speed EHCI host controller driver. + NOTE: That driver should work on the EA3131 as well. However, the EA3131 uses a PCA9532 PWM part to controller the port power so the it would not quite be a simple drop-in. +

          +

          + Refer to the Olimex LPC-H3131 board README file for further information. +

          +
        +
      @@ -1760,16 +1795,32 @@ An LCD controller (LCDC) frame buffer driver, and
    75. - A CAN driver (however, testing of the CAN has been delayed because of cabling issues). + A CAN driver (Testing of the CAN has been delayed because of cabling issues).
    76. Additional board configurations were added to test and demonstrate these new drivers including new graphics and NxWM configurations. - These are expected in NuttX-6.32.

      +

      + These drivers were added in NuttX-6.32: +

      +
        +
      • + A PWM driver with DMA support +
      • +
      • + An SSC-based I2S driver +
      • +
      • + Support for Programmable clock outputs +
      • +
      • + NAND support including support for the PMECC hardware ECC and for DMA transfers. +
      • +

      Develop continues. - Work is underway to provide a Image Sensor Interface (ISI) camera interface, a PWM driver, and NAND FLASH support. + Work is underway to provide a Image Sensor Interface (ISI) camera interface.

      Refer to the NuttX board README file for further information. @@ -1861,7 +1912,8 @@ nsh> There is a working OS test configuration that verifies the correct port of NuttX to the part and a working NuttShell (NSH) configuration that might be the basis for an application development. As of NuttX-6.28 more device driver development would be needed to make this a complete port, particularly to support USB OTG. A TSI and a SPI driver were added in NuttX-6.29. - Refer to the NuttX board README file for further information. + Alan contributed a PWM driver in NuttX-6.32. + Refer to the Freedom KL25Z board README file for further information.

      @@ -2092,7 +2144,6 @@ nsh> Refer to the NuttX board README file for further information.

      -
    77. STMicro STM32F103C48 (STM32 F1 "Low- and Medium-Density Line"Family, ARM Cortex-M3)


    78. @@ -2174,11 +2225,12 @@ nsh> Spark (and emulated Spark). The Spark boards are based on the STM32F103CBT6 chip and feature wireless networking using the TI CC3000 WLAN module. See the Spark web site for hardware information; - see the NuttX board README file for further information about the NuttX port. - Most of this work is the result of the effort of David Sidrane. -

      -

      The emulated Spark is a base board for the Maple Mini board (see above) developed by David Sidrane that supports Spark development while we all way breathlessly for or Spark boards. + see the NuttX board README file for further information about the NuttX port. +

      +

      + Intially Spark support was introduced in NuttX 6.31 and completed in NuttX 6.32. + Most of this work is the result of the effort of David Sidrane.

    @@ -2236,7 +2288,7 @@ nsh>
  • Spark. - David Sidrane has the emulated Spark board up-and-running with a functional CC3000 network, SST25 FAT file system, an NSH shell, and a composite USB CDC/ACM and USBMSC devices. This configuration is was first available NuttX 6-31. + David Sidrane has the emulated Spark board up-and-running with a functional CC3000 network, SST25 FAT file system, an NSH shell, and a composite USB CDC/ACM and USBMSC devices. This configuration is was first available NuttX 6.31 and completed in NuttX 6.32. That is really quite a lot of high end functionality on an STM32 that only has 20KB of RAM! I am impressed!

  • @@ -2263,7 +2315,8 @@ nsh> STMicro STM32F107x (STM32 F1 "Connectivity Line" family). Chip support for the STM32 F1 "Connectivity Line" family has been present in NuttX for some time and users have reported that they have successful brought up NuttX on there proprietary boards using this logic.

    -

    +

      +
    • Olimex STM32-P107 Support for the Olimex STM32-P107 was contributed by Max Holtzberg and first appeared in NuttX-6.21. That port features the STMicro STM32F107VC MCU.

        @@ -2272,11 +2325,10 @@ nsh> Networking is functional. Support for an external ENCX24J600 network was added in NuttX 6.30.
      -

      -

      +

    • +
    • Shenzhou IV - Work is underway as of this writing to port NuttX to the Shenzhou IV development board (See www.armjishu.com) featuring the STMicro STM32F107VCT MCU. - If all goes according to plan, this port should be verified and available in NuttX-6.22. + A port of NuttX to the Shenzhou IV development board (See www.armjishu.com) featuring the STMicro STM32F107VCT MCU was added in NuttX-6.22.

        STATUS: @@ -2288,8 +2340,20 @@ nsh> Refer to the NuttX board README file for further information.

      -

      - +

    • +
    • + ViewTool STM32F103/F107 + Support for the Viewtool STM32F103/F107 board was added in NuttX-6.32. That port features the STMicro STM32F107VCT6 MCU. +

        +

        + STATUS: + A basic NuttShell (NSH) configuration is available. + Because of commonality with other STM32 F107 boards, this basic configuration could easily to extended to support things like USB or networking. + Refer to the SViewtool STM32F103/F107 README file for further information. +

        +
      +

    • +
      @@ -2755,7 +2819,7 @@ nsh>

      STMicro STM32 F427/437. - General architectural support was provided for the F427/437 family in NuttX 4.27. + General architectural support was provided for the F427/437 family in NuttX 6.27. Specific support includes the STM32F427I, STM32F427Z, and STM32F427V chips. This is architecture-only support, meaning that support for the boards with these chips is available, but not support for any publically available boards is included.. This support was contributed by Mike Smith. @@ -2769,6 +2833,22 @@ nsh>


      + +
      + +

      + STMicro STM32 F429. + Support for STMicro STM32F429I-Discovery development board featuring the STM32F429ZIT6 MCU was contributed in NuttX-6.32 by Ken Pettit. + The F429 port adds support for the STM32F439 LCDC and OTG HS (in FS mode). + The STM32F429ZIT6 is a 180MHz Cortex-M4 operation with 2Mbit Flash memory and 256kbytes. + Refer to the STM32F429I-Discovery board README file for further information. +

      + + + +
      +
      +
      @@ -2804,7 +2884,7 @@ nsh>
    • The LPC43xx USB0 peripheral appears to be the same as the USB OTG peripheral for the LPC31xx. The LPC31xx USB0 device-side driver has been copied from the LPC31xx port but also integration into the LPC43xx (clocking and pin configuration). - It should be possible to complete poriting of this LPC31xx driver with a small porting effort. + It should be possible to complete porting of this LPC31xx driver with a small porting effort.
    • The Ethernet block looks to be based on the same IP as the STM32 Ethernet and, as a result, it should be possible to leverage the NuttX STM32 Ethernet driver with a little more effort. @@ -2932,6 +3012,21 @@ Mem: 29232 5920 23312 23312

      + +
      + +

      + Atmel SAM4E. + General architectural support was provided for the SAM4E family in NuttX 6.32. + This is architecture-only support, meaning that support for the boards with these chips is available, but not support for any publicly available boards is included.. + This support was contributed by Mitko. +

      + + + +
      +
      +
      From 24eaf2dd8f5f0784d2e04375cb2701d769095201 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 7 Dec 2013 14:25:35 -0600 Subject: [PATCH 1205/1518] Add board support infrastructure for the pcDuino board. There is not much there on the initial checkin --- Documentation/README.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/README.html b/Documentation/README.html index 66e7aede60..7ae3ab5056 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -145,8 +145,10 @@ | | | `- README.txt | | |- pcblogic-pic32mx/ | | | `- README.txt + | | |- pcduino-a10/ + | | | `- README.txt | | |- pic32-starterkit/ - | | | `- README.txt + | | | `- README.txt | | |- pic32mx7mmb/ | | | `- README.txt | | |- pirelli_dpl10/ From a2a8768a2de0b7abb240e5f283a1da69ede8f5e8 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 10 Dec 2013 09:23:54 -0600 Subject: [PATCH 1206/1518] Move include/nuttx/fb.h to include/nuttx/video/fb.h --- Documentation/NXGraphicsSubsystem.html | 4 ++-- Documentation/NuttxPortingGuide.html | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Documentation/NXGraphicsSubsystem.html b/Documentation/NXGraphicsSubsystem.html index 4f7833acdb..7da1c86f77 100644 --- a/Documentation/NXGraphicsSubsystem.html +++ b/Documentation/NXGraphicsSubsystem.html @@ -282,7 +282,7 @@
      • Any device with random accesss video memory using the NuttX framebuffer driver interface - (see include/nuttx/fb.h). + (see include/nuttx/video/fb.h).
      • Any LCD-like device than can accept raster line runs through a parallel or serial interface @@ -3235,7 +3235,7 @@ int nxf_convert_32bpp(FAR uint32_t *dest, uint16_t height,
        If a pixel depth of less than 8-bits is used, then NX needs to know if the pixels pack from the MS to LS or from LS to MS
        CONFIG_NX_LCDDRIVER: -
        By default, NX builds to use a framebuffer driver (see include/nuttx/fb.h). +
        By default, NX builds to use a framebuffer driver (see include/nuttx/video/fb.h). If this option is defined, NX will build to use an LCD driver (see include/nuttx/lcd/lcd.h).
      • diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 89f9ff35f4..55b6978ff0 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -3085,7 +3085,7 @@ extern void up_ledoff(int led);
        • - include/nuttx/fb.h. + include/nuttx/video/fb.h. All structures and APIs needed to work with frame buffer drivers are provided in this header file.

        • @@ -3147,7 +3147,7 @@ extern void up_ledoff(int led);

          include/nuttx/lcd/lcd.h. Structures and APIs needed to work with LCD drivers are provided in this header file. - This header file also depends on some of the same definitions used for the frame buffer driver as privided in include/nuttx/fb.h. + This header file also depends on some of the same definitions used for the frame buffer driver as privided in include/nuttx/video/fb.h.

        • @@ -6550,7 +6550,7 @@ int ret = sigaction(SIGCHLD, &sa, NULL);
        • CONFIG_NX_LCDDRIVER: - By default, NX builds to use a framebuffer driver (see include/nuttx/fb.h). + By default, NX builds to use a framebuffer driver (see include/nuttx/video/fb.h). If this option is defined, NX will build to use an LCD driver (see include/nuttx/lcd/lcd.h).
        • From 0b0d1b3f59b94d20d77926914ef4e2d3885d1de3 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 20 Dec 2013 18:25:36 -0600 Subject: [PATCH 1207/1518] Remove all configuration variable documentation from configs/README.txt and Docuemntation/NuttXPortingGuidle.html. The current NuttX configuration is documented in Kconfig files and in Documentation/NuttXSonfigVariables.html. The older configuration variable documentation is not being maintained and, hence, is a liability --- Documentation/NuttxPortingGuide.html | 2438 +------------------------- 1 file changed, 9 insertions(+), 2429 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 55b6978ff0..7da6aafd40 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -4313,2441 +4313,21 @@ void (*notify)(FAR struct pm_callback_s *cb, enum pm_state_e pmstate);

          - The following variables are recognized by the build (you may - also include architecture-specific settings). + At one time, this section provided a list of all NuttX configuration variables. + However, NuttX has since converted to use the kconfig-frontends tools. + Now, the NuttX configuration is determined by a self-documenting set of Kconfig files.

          - Note. - This appendix is deprecated. - Documentation of NuttX configuration is now provided in a separate, auto-generated Configuration Variable Document. - That configuration variable document is generated using the kconfig2html tool - That tool analyzes the NuttX Kconfig files and generates the HTML document. - As a consequence, this file may not be present at any given time but can be regenerated following the instructions in tools directory README file. -

          - -

          Architecture selection

          -

          - The following configuration items select the architecture, chip, and - board configuration for the build. -

          -
            -
          • CONFIG_ARCH: - Identifies the arch subdirectory
          • -
          • CONFIG_ARCH_name: - For use in C code
          • -
          • CONFIG_ARCH_CHIP: - Identifies the arch/*/chip subdirectory
          • -
          • CONFIG_ARCH_CHIP_name: - For use in C code
          • -
          • CONFIG_ARCH_BOARD: - Identifies the configs subdirectory and hence, the board that supports - the particular chip or SoC.
          • -
          • CONFIG_ARCH_BOARD_name: - For use in C code
          • -
          • CONFIG_ENDIAN_BIG: - Define if big endian (default is little endian).
          • -
          • CONFIG_ARCH_NOINTC: - Define if the architecture does not support an interrupt controller - or otherwise cannot support APIs like up_enable_irq() and up_disable_irq().
          • -
          • CONFIG_ARCH_VECNOTIRQ: - Usually the interrupt vector number provided to interfaces like irq_attach() - and irq_detach are the same as IRQ numbers that are provied to IRQ - management functions like up_enable_irq() and up_disable_irq(). - But that is not true for all interrupt controller implementations. For example, the - PIC32MX interrupt controller manages interrupt sources that have a many-to-one - relationship to interrupt vectors. - In such cases, CONFIG_ARCH_VECNOTIRQ must defined so that the OS logic - will know not to assume it can use a vector number to enable or disable interrupts. -
          • CONFIG_ARCH_IRQPRIO: - Define if the architecture supports prioritization of interrupts and the - up_prioritize_irq() API.
          • -
          • CONFIG_ADDRENV: - The CPU supports an MMU and CPU port supports provision of address - environments for tasks (making the, perhaps, processes). - In this case, the CPU-specific logic must provide a set of address environment interfaces as defined in the Address Environments paragraph. -
          • -
          - -

          - Some architectures require a description of the RAM configuration: -

          -
            -
          • CONFIG_RAM_SIZE: - Describes the primary installed RAM.
          • -
          • CONFIG_RAM_START: - The start address of primary RAM (physical)
          • -
          • CONFIG_RAM_VSTART: - The start address of primary RAM (virtual). This is only needed on platforms that support address mapping.
          • -
          - -

          Build Options

          -

          - General build options: -

          -
            -
          • CONFIG_RRLOAD_BINARY: - Make the rrload binary format used with BSPs from ridgerun.com - using the tools/mkimage.sh script. -
          • -
          • CONFIG_INTELHEX_BINARY: - Make the Intel HEX binary format used with many different loaders using the GNU objcopy program - This option should not be selected if you are not using the GNU toolchain. -
          • -
          • CONFIG_MOTOROLA_SREC: - Make the Motorola S-Record binary format used with many different loaders using the GNU objcopy program - Should not be selected if you are not using the GNU toolchain. -
          • -
          • CONFIG_RAW_BINARY: - Make a raw binary format file used with many different loaders using the GNU objcopy program. - This option should not be selected if you are not using the GNU toolchain. -
          • -
          • CONFIG_HAVE_CXX: - Toolchain supports C++ and CXX, CXXFLAGS, and COMPILEXX - have been defined in the configurations Make.defs file. -
          • -
          • CONFIG_HAVE_CXXINITIALIZE: - The platform-specific logic includes support for initialization of static C++ instances for this architecture and for the selected toolchain (via up_cxxinitialize()). -
          • -
          -

          - Building application code: -

          -
            -
          • -

            - CONFIG_APPS_DIR: Identifies the directory that builds the application to link with NuttX. - This symbol must be assigned to the path of the application build directory relative to the NuttX top build directory. - If the application resides in the top-level ../apps/ directory, it is not necessary to define CONFIG_APPS_DIR. - If you have an application directory and the NuttX directory each in separate directories such as this: -

              -build
              - |-nuttx
              - |  |
              - |  `- Makefile
              - `-application
              -    |
              -    `- Makefile
              -
            - Then you would set CONFIG_APPS_DIR=../application. - The default value of CONFIG_APPS_DIR is ../apps/. -

            -

            - The application direction must contain Makefile and this make file must support the following targets: -

              -
            • - libapps$(LIBEXT) (usually libapps.a). - libapps.a is a static library ( an archive) that contains all of application object files. -
            • -
            • - clean. - Do whatever is appropriate to clean the application directories for a fresh build. -
            • -
            • - distclean. - Clean everthing -- auto-generated files, symbolic links etc. -- so that the directory contents are the same as the contents in your configuration management system. - This is only done when you change the NuttX configuration. -
            • -
            • - context. - Perform one-time configuration-related setup. - This might includes such things as creating auto-generated files or symbolic links for directory configurations. -
            • -
            • - depend. - Make or update the application build dependencies. -
            • -
            -

            -

            - When this application is invoked it will receive the setting TOPDIR like: -

              - $(MAKE) -C $(CONFIG_APPS_DIR) TOPDIR="$(TOPDIR)" <target> -
            -

            -

            - TOPDIR is the full path to the NuttX directory. - It can be used, for example, to include makefile fragments (e.g., .config or Make.defs) or to set up include file paths. -

            -
          • -
          -

          - Two-pass Build Options. - If the 2 pass build option is selected, then these options configure the make system build a extra link object. - This link object is assumed to be an incremental (relative) link object, but could be a static library (archive) - (some modification to this Makefile would be required if CONFIG_PASS1_TARGET generates an archive). - Pass 1 1ncremental (relative) link objects should be put into the processor-specific source directory - where other link objects will be created - ff the pass1 obect is an archive, it could go anywhere. -

          -
            -
          • - CONFIG_BUILD_2PASS: - Enables the two pass build options. -
          • -
          -

          - When the two pass build option is enabled, the following also apply: -

          -
            -
          • -

            - CONFIG_PASS1_TARGET: The name of the first pass build target. -

            -
          • -
          • CONFIG_PASS1_BUILDIR: -

            - The path, relative to the top NuttX build directory to directory that contains the Makefile to build the first pass object. - The Makefile must support the following targets: -

            -

            -

              -
            • The special target CONFIG_PASS1_TARGET (if defined), and
            • -
            • The usual depend, clean, and distclean targets.
            • -
            -

            -
          • -
          • - CONFIG_PASS1_OBJECT: May be used to include an extra, pass1 object into the final link. - This would probably be the object generated from the CONFIG_PASS1_TARGET. - It may be available at link time in the arch/<architecture>/src directory. -
          • -
          - -

          Debug Options

          -

          - General Debug setup options are provided to (1) enable and control debug console output, (2) to build NuttX for use with a debugger, and (3) to enable specific debug features: -

          -
            -
          • - CONFIG_DEBUG: enables built-in debug options. - This includes more extensive parameter checking, debug assertions, and other debug logic. - This option is also necessary (but not sufficient) to enable debug syslog output; - Debug syslog output must also be enabled on a subsystem-by-subsystem basis as described below. -
          • -
          • - CONFIG_DEBUG_VERBOSE: If debug syslog output is enabled, the option enables more verbose debug output. - Ignored if CONFIG_DEBUG is not defined. - If only CONFIG_DEBUG then the only output will be errors, warnings, and critical information. - If CONFIG_DEBUG_VERBOSE is defined in addition, then general debug comments will also be included in the syslog output. -
          • -
          • - CONFIG_SYSLOG_ENABLE: Support an interface to enable or disable syslog output. -
          • -
          • - CONFIG_DEBUG_SYMBOLS: build without optimization and with debug symbols (needed for use with a debugger). - This option has nothing to do with debug output. -
          • -
          • - CONFIG_DEBUG_STACK: a few ports include logic to monitor stack usage. - If the NuttX port supports this option, it would be enabled with this option. - This option also requires CONFIG_DEBUG to enable general debug features. -
          • -
          -

          - If debug features are enabled with CONFIG_DEBUG (and possibly CONFIG_DEBUG_VERBOSE), then debug console output can also be enabled on a subsystem-by-subsystem basis. - Below are debug subsystems that are generally available on all platforms: -

            -
          • - CONFIG_DEBUG_SCHED: enable OS debug output (disabled by default) -
          • -
          • - CONFIG_DEBUG_MM: enable memory management debug output (disabled by default) -
          • -
          • - CONFIG_DEBUG_NET: enable network debug output (disabled by default) -
          • -
          • - CONFIG_DEBUG_USB: enable USB debug output (disabled by default) -
          • -
          • - CONFIG_DEBUG_FS: enable file system debug output (disabled by default) -
          • -
          • - CONFIG_DEBUG_LIB: enable C library debug output (disabled by default) -
          • -
          • - CONFIG_DEBUG_BINFMT: enable binary loader debug output (disabled by default) -
          • -
          • - CONFIG_DEBUG_GRAPHICS: enable NX graphics debug output (disabled by default) -
          • -
          -

          - The following debug options may also be used with certain ports that support these features: -

          -
            -
          • - CONFIG_DEBUG_DMA: enable DMA controller debug output (disabled by default) -
          • -
          • - CONFIG_DEBUG_GPIO: enable detail GPIO usage debug output (disabled by default) -
          • -
          • - CONFIG_DEBUG_PAGING: enable on-demand paging debug output (disabled by default) -
          • -
          - -

          Memory Management

          -
            -
          • - CONFIG_MM_REGIONS: If the architecture includes multiple - regions of memory to allocate from, this specifies the - number of memory regions that the memory manager must - handle and enables the API mm_addregion(heap, start, end). -
          • -
          • - CONFIG_MM_SMALL: Each memory allocation has a small allocation - overhead. The size of that overhead is normally determined by - the "width" of the address support by the MCU. MCUs that support - 16-bit addressability have smaller overhead than devices that - support 32-bit addressability. However, there are many MCUs - that support 32-bit addressability but have internal SRAM - of size less than or equal to 64K. In this case, CONFIG_MM_SMALL - can be defined so that those MCUs will also benefit from the - smaller, 16-bit-based allocation overhead. -
          • -
          • - CONFIG_HEAP2_BASE and CONFIG_HEAP2_SIZE: - Some architectures use these settings to specify the size of - a second heap region. -
          • -
          • - CONFIG_GRAN: - Enable granual allocator support. Allocations will be aligned to the - granule size; allocations will be in units of the granule size. - Larger granules will give better performance and less overhead but - more losses of memory due to alignment and quantization waste. - NOTE: The current implementation also restricts the maximum - allocation size to 32 granaules. That restriction could be - eliminated with some additional coding effort. -
          • -
          • - CONFIG_GRAN_SINGLE: - Select if there is only one instance of the granule allocator (i.e., - gran_initialize will be called only once. In this case, (1) there - are a few optimizations that can can be done and (2) the GRAN_HANDLE - is not needed. -
          • -
          • - CONFIG_GRAN_INTR: - Normally mutual exclusive access to granule allocator data is assured using a semaphore. - If this option is set then, instead, mutual exclusion logic will disable interrupts. - While this options is more invasive to system performance, it will also support use of the - granule allocator from interrupt level logic. -
          • -
          • - CONFIG_DEBUG_GRAM: - Just like CONFIG_DEBUG_MM, but only generates ouput from the gran - allocation logic. -
          • -
          - -

          General OS setup

          -
            -
          • - CONFIG_ARCH_LOWPUTC: architecture supports low-level, boot - time console output -
          • -
          • - CONFIG_NUTTX_KERNEL: - With most MCUs, NuttX is built as a flat, single executable image - containing the NuttX RTOS along with all application code. - The RTOS code and the application run in the same address space and at the same kernel-mode privileges. - If this option is selected, NuttX will be built separately as a monolithic, kernel-mode module and the applications - can be added as a separately built, user-mode module. - In this a system call layer will be built to support the user- to kernel-mode interface to the RTOS. -
          • -
          • - CONFIG_MSEC_PER_TICK: The default system timer is 100Hz - or MSEC_PER_TICK=10. This setting may be defined to inform NuttX - that the processor hardware is providing system timer interrupts at some interrupt - interval other than 10 msec. -
          • -
          • - CONFIG_RR_INTERVAL: The round robin time slice will be set - this number of milliseconds; Round robin scheduling can - be disabled by setting this value to zero. -
          • -
          • - CONFIG_SCHED_INSTRUMENTATION: enables instrumentation in - scheduler to monitor system performance -
          • -
          • - CONFIG_TASK_NAME_SIZE: Specifies that maximum size of a - task name to save in the TCB. Useful if scheduler - instrumentation is selected. Set to zero to disable. -
          • -
          • - CONFIG_SCHED_HAVE_PARENT: Remember the ID of the parent thread when a new child task is created. - This support enables some additional features (such as SIGCHLD) and modifies the behavior of other interfaces. - For example, it makes waitpid() more standards complete by restricting the waited-for tasks to the children of the caller. - Default: disabled. -
          • -
          • - CONFIG_SCHED_CHILD_STATUS: If this option is selected, then the exit status of the child task will be retained after the child task exits. - This option should be selected if you require knowledge of a child process' exit status. - Without this setting, wait(), waitpid() or waitid() may fail. - For example, if you do: -

              -
            1. - Start child task -
            2. -
            3. - Wait for exit status (using wait(), waitpid() or waitid()). -
            4. -

            -

            - This can fail because the child task may run to completion before the wait begins. - There is a non-standard work-around in this case: - The above sequence will work if you disable pre-emption using sched_lock() prior to starting the child task, then re-enable pre-emption with sched_unlock() after the wait completes. - This works because the child task is not permitted to run until the wait is in place. -

            -

            - The standard solution would be to enable CONFIG_SCHED_CHILD_STATUS. - In this case the exit status of the child task is retained after the child exits and the wait will successful obtain the child task's exit status whether it is called before the child task exits or not. -

            -

            - Warning: - If you enable this feature, then your application must either (1) take responsibility for reaping the child status with wait(), waitpid() or waitid(), or (2) suppress retention of child status. - If you do not reap the child status, then you have a memory leak and your system will eventually fail. -

            - Retention of child status can be suppressed on the parent using logic like: -

            -
              -struct sigaction sa;
              -
              -sa.sa_handler = SIG_IGN;
              -sa.sa_flags = SA_NOCLDWAIT;
              -int ret = sigaction(SIGCHLD, &sa, NULL);
              -
            -
          • -
          • - CONFIG_PREALLOC_CHILDSTATUS: To prevent runaway child status allocations and to improve - allocation performance, child task exit status structures are pre-allocated when the system boots. - This setting determines the number of child status structures that will be pre-allocated. - If this setting is not defined or if it is defined to be zero then a value of 2*MAX_TASKS is used. -

            - Note that there cannot be more that CONFIG_MAX_TASKS tasks in total. - However, the number of child status structures may need to be significantly larger because this number includes the maximum number of tasks that are running PLUS the number of tasks that have exit'ed without having their exit status reaped (via wait(), waitpid() or waitid()). -

            -

            - Obviously, if tasks spawn children indefinitely and never have the exit status reaped, then you may have a memory leak! - If you enable the SCHED_CHILD_STATUS feature, then your application must take responsibility for either (1) reaping the child status with wait(), waitpid() or waitid() or it must (2) suppress retention of child status. Otherwise, your system will eventually fail. -

            -

            - Retention of child status can be suppressed on the parent using logic like: -

            -
              -struct sigaction sa;
              -
              -sa.sa_handler = SIG_IGN;
              -sa.sa_flags = SA_NOCLDWAIT;
              -int ret = sigaction(SIGCHLD, &sa, NULL);
              -
            -
          • -
          • - CONFIG_SYSTEM_TIME16: - The range of system time is, by default, 32-bits. - However, if the MCU supports type long long and CONFIG_SYSTEM_TIME16 is selected, - a 64-bit system timer will be supported instead. -
          • -
          • - CONFIG_START_YEAR, CONFIG_START_MONTH, CONFIG_START_DAY - - Used to initialize the internal time logic. -
          • -
          • - CONFIG_GREGORIAN_TIME: Enables Gregorian time conversions. - You would only need this if you are concerned about accurate time conversions in - the recent past or in the distant future. -
          • -
          • - CONFIG_JULIAN_TIME: Enables Julian time conversions. - You would only need this if you are concerned about accurate time conversion in the distand past. - You must also define CONFIG_GREGORIAN_TIME in order to use Julian time. -
          • -
          • - CONFIG_DEV_CONSOLE: Set if architecture-specific logic provides /dev/console. - Enables stdout, stderr, and stdin. - This implies the "normal" serial driver provides the console unless another console device is specified - (See CONFIG_DEV_LOWCONSOLE). -
          • -
          • - CONFIG_MUTEX_TYPES: Set to enable support for recursive and - errorcheck mutexes. Enables pthread_mutexattr_settype(). -
          • -
          • - CONFIG_PRIORITY_INHERITANCE: Set to enable support for - priority inheritance on mutexes and semaphores. - Priority inheritance is a strategy of addressing - priority inversion. - Details of the NuttX implementation of priority inheritance is - discussed elsewhere. -
          • -
          • - CONFIG_SEM_PREALLOCHOLDERS: This setting is only used - if priority inheritance is enabled. - It defines the maximum number of different threads (minus one) that - can take counts on a semaphore with priority inheritance support. - This may be set to zero if priority inheritance is disabled OR if you - are only using semaphores as mutexes (only one holder) OR if no more - than two threads participate using a counting semaphore. - If defined, then this should be a relatively large number because this - is the total number of counts on the total number of semaphores (like - 64 or 100). -
          • -
          • - CONFIG_SEM_NNESTPRIO: If priority inheritance is enabled, - then this setting is the maximum number of higher priority threads (minus - 1) than can be waiting for another thread to release a count on a semaphore. - This value may be set to zero if no more than one thread is expected to - wait for a semaphore. - If defined, then this should be a relatively small number because this the - number of maximumum of waiters on one semaphore (like 4 or 8). -
          • -
          • - CONFIG_FDCLONE_DISABLE: Disable cloning of all file descriptors - by task_create() when a new task is started. - If set, all files/drivers will appear to be closed in the new task. -
          • -
          • - CONFIG_FDCLONE_STDIO: Disable cloning of all but the first - three file descriptors (stdin, stdout, stderr) by task_create() - when a new task is started. - If set, all files/drivers will appear to be closed in the new task except - for stdin, stdout, and stderr. -
          • -
          • - CONFIG_SDCLONE_DISABLE: Disable cloning of all socket - desciptors by task_create() when a new task is started. - If set, all sockets will appear to be closed in the new task. -
          • -
          • - CONFIG_SCHED_WORKQUEUE: Create a dedicated "worker" thread to - handle delayed processing from interrupt handlers. This feature - is required for some drivers but, if there are not complaints, - can be safely disabled. The worker thread also performs - garbage collection -- completing any delayed memory deallocations - from interrupt handlers. If the worker thread is disabled, - then that clean will be performed by the IDLE thread instead - (which runs at the lowest of priority and may not be appropriate - if memory reclamation is of high priority). If CONFIG_SCHED_WORKQUEUE - is enabled, then the following options can also be used: -
          • -
          • - CONFIG_SCHED_WORKPRIORITY: The execution priority of the worker - thread. Default: 50 -
          • -
          • - CONFIG_SCHED_WORKPERIOD: How often the worker thread checks for - work in units of microseconds. Default: 50*1000 (50 MS). -
          • -
          • - CONFIG_SCHED_WORKSTACKSIZE: The stack size allocated for the worker - thread. Default: CONFIG_IDLETHREAD_STACKSIZE. -
          • -
          • - CONFIG_SIG_SIGWORK: The signal number that will be used to wake-up - the worker thread. Default: 17 -
          • -
          • - CONFIG_SCHED_LPWORK: If CONFIG_SCHED_WORKQUEUE is defined, then a single work queue is created by default. - If CONFIG_SCHED_LPWORK is also defined then an additional, lower-priority work queue will also be created. - This lower priority work queue is better suited for more extended processing (such as file system clean-up operations) -
          • -
          • - CONFIG_SCHED_LPWORKPRIORITY: The execution priority of the lower priority worker thread. Default: 50 -
          • -
          • - CONFIG_SCHED_LPWORKPERIOD: How often the lower priority worker thread checks for work in units of microseconds. Default: 50*1000 (50 MS). -
          • -
          • - CONFIG_SCHED_LPWORKSTACKSIZE: The stack size allocated for the lower priority worker thread. Default: CONFIG_IDLETHREAD_STACKSIZE. -
          • -
          • - CONFIG_SCHED_WAITPID: Enables the waitpid() interface in a default, non-standard mode (non-standard in the sense that the waited for PID need not be child of the caller). - If SCHED_HAVE_PARENT is also defined, then this setting will modify the behavior or waitpid() (making more spec compliant) and will enable the waitid() and waitp() interfaces as well. -
          • -
          • - CONFIG_SCHED_ATEXIT: Enables the atexit() API -
          • -
          • - CONFIG_SCHED_ATEXIT_MAX: By default if CONFIG_SCHED_ATEXIT is selected, only a single atexit() function is supported. - That number can be increased by defined this setting to the number that you require. -
          • -
          • - CONFIG_SCHED_ONEXIT: Enables the on_exit() API -
          • -
          • - CONFIG_SCHED_ONEXIT_MAX: By default if CONFIG_SCHED_ONEXIT is selected, only a single on_exit() function is supported. - That number can be increased by defined this setting to the number that you require. -
          • -
          • - CONFIG_USER_ENTRYPOINT: The name of the entry point for user - applications. - For the example applications this is of the form app_main - where app is the application name. - If not defined, CONFIG_USER_ENTRYPOINT defaults to - user_start. -
          • -
          -

          - Signal Numbers: -

          -
            -
          • - CONFIG_SIG_SIGUSR1: - Value of standard user signal 1 (SIGUSR1). Default: 1 -
          • -
          • - CONFIG_SIG_SIGUSR2: - Value of standard user signal 2 (SIGUSR2). Default: 2 -
          • -
          • - CONFIG_SIG_SIGALARM: - Default the standard signal used with POSIX timers (SIGALRM). Default: 3 -
          • -
          • - CONFIG_SIG_SIGCHLD: - The SIGCHLD signal is sent to the parent of a child process when it exits, is interrupted (stopped), or resumes after being interrupted. - Default: 4 -
          • -
          • - CONFIG_SIG_SIGCONDTIMEDOUT: - This non-standard signal number is used in the implementation of pthread_cond_timedwait(). - Default 16. -
          • -
          • - CONFIG_SIG_SIGWORK: - SIGWORK is a non-standard signal used to wake up the internal NuttX worker thread. - Default: 17. -
          • -
          - -

          - Binary Loaders: -

          -
            -
          • - CONFIG_BINFMT_DISABLE: By default, support for loadable binary formats is built. - This logic may be suppressed be defining this setting. -
          • -
          • - CONFIG_BINFMT_EXEPATH: Use the contents of the PATH environment variable to locate executable files. Default: n -
          • -
          • - CONFIG_PATH_INITIAL: The initial value of the PATH variable. This is the colon-separated list of absolute paths. E.g., "/bin:/usr/bin:/sbin" -
          • -
          • - CONFIG_BINFMT_CONSTRUCTORS: Build in support for C++ constructors in loaded modules. -
          • -
          • - CONFIG_SYMTAB_ORDEREDBYNAME: Symbol tables are order by name (rather than value). -
          • -
          • - CONFIG_NXFLAT: Enable support for the NXFLAT binary format. - This format will support execution of NuttX binaries located - in a ROMFS file system (see apps/examples/nxflat). -
          • -
          • - CONFIG_ELF: Enable support for the ELF binary format. - This format will support execution of ELF binaries copied from a file system and relocated into RAM (see apps/examples/elf). -
          • -

            - If CONFIG_ELF is selected, then these additional options are available: -

            -
          • - CONFIG_ELF_ALIGN_LOG2: Align all sections to this Log2 value: 0->1, 1->2, 2->4, etc. -
          • -
          • - CONFIG_ELF_STACKSIZE: This is the default stack size that will will be used when starting ELF binaries. -
          • -
          • - CONFIG_ELF_BUFFERSIZE: This is an I/O buffer that is used to access the ELF file. Variable length items will need to be read (such as symbol names). - This is really just this initial size of the buffer; it will be reallocated as necessary to hold large symbol names). - Default: 128 -
          • -
          • - CONFIG_ELF_BUFFERINCR: This is an I/O buffer that is used to access the ELF file. Variable length items will need to be read (such as symbol names). - This value specifies the size increment to use each time the buffer is reallocated. - Default: 32 -
          • -
          • - CONFIG_ELF_DUMPBUFFER: Dump various ELF buffers for debug purposes. - This option requires CONFIG_DEBUG and CONFIG_DEBUG_VERBOSE. -
          • -
          - -

          - System Logging: -

          -
            -
          • - CONFIG_SYSLOG: Enables general system logging support. -
          • - CONFIG_SYSLOG_DEVPATH: The full path to the system logging device. - Default "/dev/ramlog" (RAMLOG) or "dev/ttyS1; (CHARDEV). -

            - At present, there are two system loggins devices available. - If CONFIG_SYSLOG is selected, then these options are also available. -

            -

            - First, any a generic character device that may be used as the SYSLOG. -

            -
          • - CONFIG_SYSLOG_CHAR: - Enable the generic character device for the SYSLOG. - A disadvantage of using the generic character device for the SYSLOG is that it cannot handle debug output generated from interrupt level handlers. - NOTE: No more than one SYSLOG device should be configured. -

            - Alternatively, a circular buffer in RAM can be used as the SYSLOGing device. - The contents of this RAM buffer can be dumped using the NSH dmesg command. -

            -
          • - CONFIG_RAMLOG: Enables the RAM logging feature -
          • -
          • - CONFIG_RAMLOG_CONSOLE: Use the RAM logging device as a system console. - If this feature is enabled (along with CONFIG_DEV_CONSOLE), then all - console output will be re-directed to a circular buffer in RAM. This - is useful, for example, if the only console is a Telnet console. Then - in that case, console output from non-Telnet threads will go to the - circular buffer and can be viewed using the NSH 'dmesg' command. -
          • -
          • - CONFIG_RAMLOG_SYSLOG: - Use the RAM logging device for the syslogging interface. - If this feature is enabled (along with CONFIG_SYSLOG), then all debug output (only) will be re-directed to the circular buffer in RAM. - This RAM log can be view from NSH using the dmesg command. - NOTE: Unlike the limited, generic character driver SYSLOG device, the RAMLOG can be used to generate debug output from interrupt level handlers. -
          • -
          • - CONFIG_RAMLOG_NPOLLWAITERS: The number of threads than can be waiting - for this driver on poll(). Default: 4 -
          • -

            - If CONFIG_RAMLOG_CONSOLE or CONFIG_RAMLOG_SYSLOG is selected, then the - following may also be provided: -

            - -
          • - CONFIG_RAMLOG_CONSOLE_BUFSIZE: Size of the console RAM log. Default: 1024 -
          • -
          - -

          - Kernel build options: -

          -
            -
          • - CONFIG_NUTTX_KERNEL: Builds NuttX as a separately compiled kernel. -
          • - CONFIG_SYS_RESERVED: Reserved system call values for use by architecture-specific logic. - -
          - -

          - OS setup related to on-demand paging: -

          -
          - -

          - If CONFIG_PAGING is selected, then you will probabaly need CONFIG_BUILD_2PASS to correctly position - the code and the following configuration options also apply: -

          -
            -
          • - CONFIG_PAGING_PAGESIZE: - The size of one managed page. - This must be a value supported by the processor's memory management unit. -
          • -
          • - CONFIG_PAGING_NLOCKED: - This is the number of locked pages in the memory map. - The locked address region will then be from CONFIG_RAM_VSTART through - (CONFIG_RAM_VSTART + CONFIG_PAGING_PAGESIZE*CONFIG_PAGING_NLOCKED) -
          • -
          • - CONFIG_PAGING_LOCKED_PBASE and CONFIG_PAGING_LOCKED_VBASE: - These may be defined to determine the base address of the locked page regions. - If neither are defined, the logic will be set the bases to CONFIG_RAM_START - and CONFIG_RAM_VSTART (i.e., it assumes that the base address of the locked - region is at the beginning of RAM). - NOTE: - In some architectures, it may be necessary to take some memory from the beginning - of this region for vectors or for a page table. - In such cases, CONFIG_PAGING_LOCKED_P/VBASE should take that into consideration - to prevent overlapping the locked memory region and the system data at the beginning of SRAM. -
          • -
          • - CONFIG_PAGING_NPPAGED: - This is the number of physical pages available to support the paged text region. - This paged region begins at - (CONFIG_PAGING_LOCKED_PBASE + CONFIG_PAGING_PAGESIZE*CONFIG_PAGING_NPPAGED) - and continues until - (CONFIG_PAGING_LOCKED_PBASE + CONFIG_PAGING_PAGESIZE*(CONFIG_PAGING_NLOCKED + - CONFIG_PAGING_NPPAGED) -
          • -
          • - CONFIG_PAGING_NVPAGED: - This actual size of the paged text region (in pages). - This is also the number of virtual pages required to support the entire paged region. - The on-demand paging feature is intended to support only the case where the virtual paged text - area is much larger the available physical pages. - Otherwise, why would you enable on-demand paging? -
          • -
          • - CONFIG_PAGING_NDATA: - This is the number of data pages in the memory map. - The data region will extend to the end of RAM unless overridden by a setting in the configuration file. - NOTE: - In some architectures, it may be necessary to take some memory from the end of RAM for page tables - or other system usage. - The configuration settings and linker directives must be cognizant of that: - CONFIG_PAGING_NDATA should be defined to prevent the data region from extending all the way to the end of memory. -
          • -
          • - CONFIG_PAGING_DEFPRIO: - The default, minimum priority of the page fill worker thread. - The priority of the page fill work thread will be boosted boosted dynmically so that it matches the - priority of the task on behalf of which it peforms the fill. - This defines the minimum priority that will be used. Default: 50. -
          • -
          • - CONFIG_PAGING_STACKSIZE: - Defines the size of the allocated stack for the page fill worker thread. Default: 1024. -
          • -
          • - CONFIG_PAGING_BLOCKINGFILL: - The architecture specific up_fillpage() function may be blocking or non-blocking. - If defined, this setting indicates that the up_fillpage() implementation will block until the - transfer is completed. Default: Undefined (non-blocking). -
          • -
          • - CONFIG_PAGING_WORKPERIOD: - The page fill worker thread will wake periodically even if there is no mapping to do. - This selection controls that wake-up period (in microseconds). - This wake-up a failsafe that will handle any cases where a single is lost (that would - really be a bug and shouldn't happen!) - and also supports timeouts for case of non-blocking, asynchronous fills (see CONFIG_PAGING_TIMEOUT_TICKS). -
          • -
          • - CONFIG_PAGING_TIMEOUT_TICKS: - If defined, the implementation will monitor the (asynchronous) page fill logic. - If the fill takes longer than this number if microseconds, then a fatal error will be declared. - Default: No timeouts monitored. -
          • -

            - Some architecture-specific settings. - Defaults are architecture specific. - If you don't know what you are doing, it is best to leave these undefined and try the system defaults: -

            -
          • - CONFIG_PAGING_VECPPAGE: - This the physical address of the page in memory to be mapped to the vector address. -
          • -
          • - CONFIG_PAGING_VECL2PADDR: - This is the physical address of the L2 page table entry to use for the vector mapping. -
          • -
          • - CONFIG_PAGING_VECL2VADDR: - This is the virtual address of the L2 page table entry to use for the vector mapping. -
          • -
          • - CONFIG_PAGING_BINPATH: - If CONFIG_PAGING_BINPATH is defined, then it is the full path to a file on a mounted file system that contains a binary image of the NuttX executable. - Pages will be filled by reading from offsets into this file that correspond to virtual fault addresses. -
          • -
          • - CONFIG_PAGING_MOUNTPT: - If CONFIG_PAGING_BINPATH is defined, additional options may be provided to control the initialization of underlying devices. - CONFIG_PAGING_MOUNTPT identifies the mountpoint to be used if a device is mounted. -
          • -
          • - CONFIG_PAGING_MINOR: - Some mount operations require a "minor" number to identify the specific device instance. - Default: 0 -
          • -
          • - CONFIG_PAGING_SDSLOT: - If CONFIG_PAGING_BINPATH is defined, additional options may be provided to control the initialization of underlying devices. - CONFIG_PAGING_SDSLOT identifies the slot number of the SD device to initialize. - This must be undefined if SD is not being used. - This should be defined to be zero for the typical device that has only a single slot (See CONFIG_MMCSD_NSLOTS). - If defined, CONFIG_PAGING_SDSLOT will instruct certain board-specific logic to initialize the media in this SD slot. -
          • -
          • - CONFIG_PAGING_M25PX: - Use the m25px.c FLASH driver. - If this is selected, then the MTD interface to the M25Px device will be used to support paging. -
          • -
          • - CONFIG_PAGING_AT45DB: - Use the at45db.c FLASH driver. - If this is selected, then the MTD interface to the Atmel AT45DB device will be used to support paging. -
          • -
          • - CONFIG_PAGING_BINOFFSET: - If CONFIG_PAGING_M25PX or CONFIG_PAGING_AT45DB is defined then CONFIG_PAGING_BINOFFSET will be used to specify the offset in bytes into the FLASH device where the NuttX binary image is located. - Default: 0 -
          • -
          • - CONFIG_PAGING_SPIPORT: - If CONFIG_PAGING_M25PX or CONFIG_PAGING_AT45DB is defined and the device has multiple SPI busses (ports), then this configuration should be set to indicate which SPI port the device is connected. - Default: 0 -
          • -
          -

          - Disabling OS Features. - The following can be used to disable categories of APIs supported - by the OS. If the compiler supports weak functions, then it - should not be necessary to disable functions unless you want to - restrict usage of those APIs. + The current NuttX configuration variables are also documented in separate, auto-generated configuration variable document. + That configuration variable document is generated using the kconfig2html tool that can be found in the nuttx/tools directory. + That tool analyzes the NuttX Kconfig files and generates excruciatingly boring HTML document.

          - There are certain dependency relationships in these features. -

          -
            -
          • - mq_notify() logic depends on signals to awaken tasks - waiting for queues to become full or empty. -
          • -
          • - pthread_condtimedwait() depends on signals to wake - up waiting tasks. -
          • -
          - -
            - CONFIG_DISABLE_CLOCK, CONFI_DISABLE_POSIX_TIMERS, - CONFIG_DISABLE_PTHREAD, CONFIG_DISABLE_SIGNALS, - CONFIG_DISABLE_MQUEUE, CONFIG_DISABLE_MOUNTPOUNT -
          - -

          Miscellaneous libc settings

          - -
            -
          • - CONFIG_NOPRINTF_FIELDWIDTH: sprintf-related logic is a - little smaller if we do not support fieldwidthes -
          • -
          • - CONFIG_LIBC_FLOATINGPOINT: By default, floating point - support in printf, sscanf, etc. is disabled. -
          • -
          • - CONFIG_LIBC_STRERROR: - strerror() is useful because it decodes errno values into a human readable strings. - But it can also require a lot of memory to store the strings. - If this option is selected, strerror() will still exist in the build but it will not decode error values. - This option should be used by other logic to decide if it should use strerror() or not. - For example, the NSH application will not use strerror() if this option is not selected; - perror() will not use strerror() is this option is not selected (see also CONFIG_NSH_STRERROR). -
          • -
          • - CONFIG_LIBC_STRERROR_SHORT: - If this option is selected, then strerror() will use a shortened string when it decodes the error. - Specifically, strerror() is simply use the string that is the common name for the error. - For example, the errno value of 2 will produce the string "No such file or directory" if CONFIG_LIBC_STRERROR_SHORT is not defined but the string "ENOENT" if CONFIG_LIBC_STRERROR_SHORT is defined. -
          • -
          • - CONFIG_LIBC_PERROR_STDOUT: - POSIX requires that perror() provide its output on stderr. - This option may be defined, however, to provide perror() output that is serialized with other stdout messages. -
          • -
          - -

          Allow for architecture optimized implementations

          - -
            -
          • - The architecture can provide optimized versions of the following to improve system performance. -
          • -

              - CONFIG_ARCH_MEMCPY, CONFIG_ARCH_MEMCMP, CONFIG_ARCH_MEMMOVE, - CONFIG_ARCH_MEMSET, CONFIG_ARCH_STRCMP, CONFIG_ARCH_STRCPY, - CONFIG_ARCH_STRNCPY, CONFIG_ARCH_STRLEN, CONFIG_ARCH_STRNLEN, - CONFIG_ARCH_BZERO -

            - -

          • - If CONFIG_ARCH_MEMCPY is not selected, then you make also select Daniel - Vik's optimized implementation of memcpy(): -

            -
            • - CONFIG_MEMCPY_VIK: - Select this option to use the optimized memcpy() function by Daniel Vik. - Select this option for improved performance at the expense of increased size. - See licensing information in the top-level COPYING file. - Default: n. -
            - + The latest boring configuration variable documentation can be regenerated at any time using that tool or, more appropriately, the wrapper script at nuttx/tools/mkconfigvars.sh. + That script will generate the file nuttx/Documentation/NuttXConfigVariables.html.

            - And if CONFIG_MEMCPY_VIK is selected, the following tuning options are available: + The version of NuttXConfigVariables.html for the last released version of NuttX can also be found online.

            -
            • - CONFIG_MEMCPY_PRE_INC_PTRS: - Use pre-increment of pointers. - Default is post increment of pointers. -
            • -
            • - CONFIG_MEMCPY_INDEXED_COPY - Copying data using array indexing. - Using this option, disables the CONFIG_MEMCPY_PRE_INC_PTRS option. -
            • -
            • - CONFIG_MEMCPY_64BIT: - Compiles memcpy() for 64 bit architectures -
            - -

          • - If CONFIG_ARCH_MEMSET is not selected, then the following option is also available: -

            -
            • - CONFIG_MEMSET_OPTSPEED: - Select this option to use a version of memset() optimized for speed. - Default: memset() is optimized for size. -
            - -

            - And if CONFIG_MEMSET_OPTSPEED is selected, the following tuning option is available: -

            -
            • - CONFIG_MEMSET_64BIT: - Compiles memset() for 64 bit architectures -
            - -
          • -

            - The architecture may provide custom versions of certain standard header files: -

            -
              -
            • CONFIG_ARCH_STDBOOL_H. -

              - The stdbool.h header file can be found at nuttx/include/stdbool.h. - However, that header includes logic to redirect the inclusion of an architecture specific header file like: -

              -
                -#ifdef CONFIG_ARCH_STDBOOL_H
                -#  include <arch/stdbool.h>
                -#else
                -...
                -#endif
                -      
              -

              - Recall that that include path, include/arch, is a symbolic link and will refer to a version of stdbool.h at nuttx/arch/<architecture>/include/stdbool.h. -

              -
            • -
            • CONFIG_ARCH_STDINT_H. -

              - Similar logic exists for the stdint.h header file can also be found at nuttx/include/stdint.h. -

                -#ifdef CONFIG_ARCH_STDBOOL_H
                -#  include <arch/stdinit.h>
                -#else
                -...
                -#endif
                -        
              -

              -
            • -
            • CONFIG_ARCH_MATH_H. -

              - There is also a re-directing version of math.h in the source tree. However, it resides out-of-the-way at include/nuttx/math.h because it conflicts too often with the system math.h. - If CONFIG_ARCH_MATH_H=y is defined, however, the top-level makefile will copy the redirecting math.h header file from include/nuttx/math.h to include/math.h. - math.h will then include the architecture-specific version of math.h that you must provide at nuttx/arch/<architecture>/include/math.h. -

              -
                -#ifdef CONFIG_ARCH_MATH_H
                -#  include <arch/math.h>
                -#endif
                -      
              -

              - So for the architectures that define CONFIG_ARCH_MATH_H=y, include/math.h will be the redirecting math.h header file; for the architectures that don't select CONFIG_ARCH_MATH_H, the redirecting math.h header file will stay out-of-the-way in include/nuttx/. -

              -
            • -
            • CONFIG_ARCH_FLOAT_H. -

              - If you enable the generic, built-in math library, then that math library will expect your toolchain to provide the standard float.h header file. - The float.h header file defines the properties of your floating point implementation. - It would always be best to use your toolchain's float.h header file but if none is avaiable, a default float.h header file will provided if this option is selected. - However, there is no assurance that the settings in this float.h are actually correct for your platform! -

              -
            • -
            • CONFIG_ARCH_STDARG_H. -

              - There is also a redirecting version of stdarg.h in the source tree as well. - It also resides out-of-the-way at include/nuttx/stdarg.h. - This is because you should normally use your toolchain's stdarg.h file. - But sometimes, your toolchain's stdarg.h file may have other header file dependencies and so may not be usable in the NuttX build environment. - In those cases, you may have to create a architecture-specific stdarg.h header file at nuttx/arch/<architecture>/include/stdarg.h -

              -

              - If CONFIG_ARCH_STDARG_H=y is defined, the top-level makefile will copy the re-directing stdarg.h header file from include/nuttx/stdarg.h to include/stdarg.h. - So for the architectures that cannot use their toolchain's stdarg.h file, they can use this alternative by defining CONFIG_ARCH_STDARG_H=y and providing. - If CONFIG_ARCH_STDARG_H, is not defined, then the stdarg.h header file will stay out-of-the-way in include/nuttx/. -

              -
            • -
            -
          • - -
          • -

            CONFIG_ARCH_ROMGETC: - There are cases where string data cannot be cannot be accessed by simply de-referencing a string pointer. - As examples: -

            -
              -
            • - In Harvard architectures, data accesses and instruction accesses occur on different busses, perhaps concurrently. - All data accesses are performed on the data bus unless special machine instructions are used to read data from the instruction address space. - Also, in the typical MCU, the available SRAM data memory is much smaller that the non-volatile FLASH instruction memory. - So if the application requires many constant strings, the only practical solution may be to store those constant strings in FLASH memory where they can only be accessed using architecture-specific machine instructions. -
            • -
            • - A similar case is where strings are retained in "external" memory such as EEPROM or serial FLASH. - This case is similar only in that again special operations are required to obtain the string data; - it cannot be accessed directly from a string pointer. -
            • -
            -

            - If CONFIG_ARCH_ROMGETC is defined, then the architecture-specific logic must export the function up_romgetc(). - up_romgetc() will simply read one byte of data from the instruction space. -

            -

            - If CONFIG_ARCH_ROMGETC, certain C stdio functions are effected: - (1) All format strings in printf, fprintf, sprintf, etc. are assumed to lie in FLASH - (string arguments for %s are still assumed to reside in SRAM). - And (2), the string argument to puts and fputs is assumed to reside in FLASH. - Clearly, these assumptions may have to modified for the particular needs of your environment. - There is no "one-size-fits-all" solution for this problem. -

            -
          - -

          Sizes of configurable things (0 disables)

          - -
            -
          • - CONFIG_MAX_TASKS: The maximum number of simultaneously - active tasks. This value must be a power of two. -
          • -
          • - CONFIG_NPTHREAD_KEYS: The number of items of thread- - specific data that can be retained -
          • -
          • - CONFIG_NFILE_DESCRIPTORS: The maximum number of file - descriptors (one for each open) -
          • -
          • - CONFIG_NFILE_STREAMS: The maximum number of streams that - can be fopen'ed -
          • -
          • - CONFIG_NAME_MAX: Maximum number of bytes in a filename (not including terminating null). - Default: 32 -
          • -
          • - CONFIG_PATH_MAX: Maximum number of bytes in a pathname, including the terminating null character. - Default: MIN(256,(4*CONFIG_NAME_MAX+1)) -
          • -
          • - CONFIG_STDIO_BUFFER_SIZE: Size of the buffer to allocate - on fopen. (Only if CONFIG_NFILE_STREAMS > 0) -
          • -
          • - CONFIG_STDIO_LINEBUFFER: - If standard C buffered I/O is enabled (CONFIG_STDIO_BUFFER_SIZE > 0), - then this option may be added to force automatic, line-oriented flushing the output buffer - for putc(), fputc(), putchar(), puts(), fputs(), - printf(), fprintf(), and vfprintf(). - When a newline character is encountered in the output string, the output buffer will be flushed. - This (slightly) increases the NuttX footprint but supports the kind of behavior that people expect for printf(). -
          • - CONFIG_NUNGET_CHARS: Number of characters that can be - buffered by ungetc() (Only if CONFIG_NFILE_STREAMS > 0) -
          • -
          • - CONFIG_PREALLOC_MQ_MSGS: The number of pre-allocated message - structures. The system manages a pool of preallocated - message structures to minimize dynamic allocations -
          • -
          • - CONFIG_MQ_MAXMSGSIZE: Message structures are allocated with - a fixed payload size given by this setting (does not include - other message structure overhead. -
          • -
          • - CONFIG_PREALLOC_WDOGS: The number of pre-allocated watchdog - structures. The system manages a pool of preallocated - watchdog structures to minimize dynamic allocations -
          • -
          • - CONFIG_PREALLOC_IGMPGROUPS: Pre-allocated IGMP groups are used - Only if needed from interrupt level group created (by the IGMP server). - Default: 4 -
          • -
          • - CONFIG_DEV_PIPE_SIZE: Size, in bytes, of the buffer to allocated - for pipe and FIFO support (default is 1024). -
          • -
          - -

          File Systems

          -
            -
          • - CONFIG_FS_FAT: Enable FAT file system support. -
          • -
          • - CONFIG_FAT_LCNAMES: Enable use of the NT-style upper/lower case 8.3 file name support. -
          • -
          • - CONFIG_FAT_LFN: Enable FAT long file names. - NOTE: Microsoft claims patents on FAT long file name technology. - Please read the disclaimer in the top-level COPYING file and only enable this feature if you understand these issues. -
          • -
          • - CONFIG_FAT_MAXFNAME: If CONFIG_FAT_LFN is defined, then the default, maximum long file name is 255 bytes. - This can eat up a lot of memory (especially stack space). - If you are willing to live with some non-standard, short long file names, then define this value. - A good choice would be the same value as selected for CONFIG_NAME_MAX which will limit the visibility of longer file names anyway. -
          • -
          • - CONFIG_FS_FATTIME: Support FAT date and time. - NOTE: There is not much sense in supporting FAT date and time unless you have a hardware RTC - or other way to get the time and date. -
          • -
          • - CONFIG_FS_NXFFS: Enable NuttX FLASH file system (NXFF) support. -
          • -
          • - CONFIG_NXFFS_ERASEDSTATE: The erased state of FLASH. - This must have one of the values of 0xff or 0x00. - Default: 0xff. -
          • -
          • - CONFIG_NXFFS_PACKTHRESHOLD: When packing flash file data, - don't both with file chunks smaller than this number of data bytes. - Default: 32. -
          • -
          • - CONFIG_NXFFS_MAXNAMLEN: The maximum size of an NXFFS file name. - Default: 255. -
          • -
          • - CONFIG_NXFFS_PACKTHRESHOLD: When packing flash file data, - don't both with file chunks smaller than this number of data bytes. - Default: 32. -
          • -
          • - CONFIG_NXFFS_TAILTHRESHOLD: clean-up can either mean - packing files together toward the end of the file or, if file are - deleted at the end of the file, clean up can simply mean erasing - the end of FLASH memory so that it can be re-used again. However, - doing this can also harm the life of the FLASH part because it can - mean that the tail end of the FLASH is re-used too often. This - threshold determines if/when it is worth erased the tail end of FLASH - and making it available for re-use (and possible over-wear). - Default: 8192. -
          • -
          • - CONFIG_FS_ROMFS: Enable ROMFS file system support -
          • -
          • - CONFIG_NFS: Enable Network File System (NFS) client file system support. - Provided support is version 3 using UDP. - In addition to common prerequisites for mount-able file systems in general, - this option requires UDP networking support; - this would include CONFIG_NET and CONFIG_NET_UDP at a minimum. -
          • -
          • - CONFIG_FS_RAMMAP: For file systems that do not support - XIP, this option will enable a limited form of memory mapping that is - implemented by copying whole files into memory. -
          • -
          - -

          Device Drivers

          -

          RTC

          -
            -
          • - CONFIG_RTC: - Enables general support for a hardware RTC. - Specific architectures may require other specific settings. -
          • -
          • - CONFIG_RTC_DATETIME: - There are two general types of RTC: (1) A simple battery backed counter that keeps the time when power - is down, and (2) A full date / time RTC the provides the date and time information, often in BCD format. - If CONFIG_RTC_DATETIME is selected, it specifies this second kind of RTC. - In this case, the RTC is used to "seed"" the normal NuttX timer and the NuttX system timer - provides for higher resoution time. -
          • -
          • - CONFIG_RTC_HIRES: - If CONFIG_RTC_DATETIME not selected, then the simple, battery backed counter is used. - There are two different implementations of such simple counters based on the time resolution of the counter: - The typical RTC keeps time to resolution of 1 second, usually supporting a 32-bit time_t value. - In this case, the RTC is used to "seed" the normal NuttX timer and the NuttX timer provides for higher resoution time. - If CONFIG_RTC_HIRES is enabled in the NuttX configuration, then the RTC provides higher resolution time and completely replaces the system timer for purpose of date and time. -
          • -
          • - CONFIG_RTC_FREQUENCY: - If CONFIG_RTC_HIRES is defined, then the frequency of the high resolution RTC must be provided. - If CONFIG_RTC_HIRES is not defined, CONFIG_RTC_FREQUENCY is assumed to be one. -
          • -
          • - CONFIG_RTC_ALARM: - Enable if the RTC hardware supports setting of an alarm. - A callback function will be executed when the alarm goes off -
          • -
          - -

          CAN driver

          -
            -
          • - CONFIG_CAN: Enables CAN support -
          • -
          • - CONFIG_CAN_FIFOSIZE: The size of the circular buffer of CAN messages. Default: 8 -
          • -
          • - CONFIG_CAN_NPENDINGRTR: The size of the list of pending RTR requests. Default: 4 -
          • -
          • - CONFIG_CAN_LOOPBACK: A CAN driver may or may not support a loopback mode for testing. - If the driver does support loopback mode, the setting will enable it. - (If the driver does not, this setting will have no effect). -
          • -
          - -

          SPI driver

          -
            -
          • - CONFIG_SPI_OWNBUS: Set if there is only one active device - on the SPI bus. No locking or SPI configuration will be performed. - It is not necessary for clients to lock, re-configure, etc.. -
          • -
          • - CONFIG_SPI_EXCHANGE: Driver supports a single exchange method - (vs a recvblock() and sndblock ()methods) -
          • -
          - -

          SPI-based MMC/SD driver

          -
            -
          • - CONFIG_MMCSD_NSLOTS: Number of MMC/SD slots supported by the driver. Default is one. -
          • -
          • - CONFIG_MMCSD_READONLY: Provide read-only access. Default is Read/Write -
          • -
          • - CONFIG_MMCSD_SPICLOCK: Maximum SPI clock to drive MMC/SD card. Default is 20MHz. -
          • -
          - -

          SDIO/SDHC driver

          -
            -
          • - CONFIG_SDIO_DMA: SDIO driver supports DMA -
          • -
          • - CONFIG_SDIO_MUXBUS: Set this SDIO interface if the SDIO interface - or hardware resources are shared with other drivers. -
          • -
          • - CONFIG_SDIO_WIDTH_D1_ONLY: Select 1-bit transfer mode. Default: - 4-bit transfer mode. -
          • -
          • - CONFIG_MMCSD_MULTIBLOCK_DISABLE: Use only the single block transfer method. - This setting is used to work around buggy SDIO drivers that cannot handle - multiple block transfers. -
          • -
          - -

          SDIO-based MMC/SD driver

          -
            -
          • - CONFIG_FS_READAHEAD: Enable read-ahead buffering -
          • -
          • - CONFIG_FS_WRITEBUFFER: Enable write buffering -
          • -
          • - CONFIG_SDIO_DMA: SDIO driver supports DMA -
          • -
          • - CONFIG_MMCSD_MMCSUPPORT: Enable support for MMC cards -
          • -
          • - CONFIG_MMCSD_HAVECARDDETECT: SDIO driver card detection is 100% accurate -
          • -
          - -

          RiT P14201 OLED driver

          -
            -
          • - CONFIG_LCD_P14201: Enable P14201 support -
          • -
          • - CONFIG_P14201_SPIMODE: Controls the SPI mode -
          • -
          • - CONFIG_P14201_FREQUENCY: Define to use a different bus frequency -
          • -
          • - CONFIG_P14201_NINTERFACES: - Specifies the number of physical P14201 devices that will be supported. -
          • -
          • - CONFIG_P14201_FRAMEBUFFER: - If defined, accesses will be performed using an in-memory copy of the OLEDs GDDRAM. - This cost of this buffer is 128 * 96 / 2 = 6K. - If this is defined, then the driver will be fully functional. - If not, then it will have the following limitations: -
              -
            • Reading graphics memory cannot be supported, and
            • -
            • All pixel writes must be aligned to byte boundaries.
            • -
            - The latter limitation effectively reduces the 128x96 disply to 64x96. -
          • -
          - -

          Nokia 6100 Configuration Settings:

          -
            -
          • - CONFIG_NOKIA6100_SPIMODE: Controls the SPI mode, -
          • -
          • - CONFIG_NOKIA6100_FREQUENCY: Define to use a different bus frequency. -
          • -
          • - CONFIG_NOKIA6100_NINTERFACES:Specifies the number of physical Nokia - 6100 devices that will be supported. -
          • -
          • - CONFIG_NOKIA6100_BPP: Device supports 8, 12, and 16 bits per pixel. -
          • -
          • - CONFIG_NOKIA6100_S1D15G10: Selects the Epson S1D15G10 display controller -
          • -
          • - CONFIG_NOKIA6100_PCF8833: Selects the Phillips PCF8833 display controller -
          • -
          • - CONFIG_NOKIA6100_BLINIT: Initial backlight setting -
          • -

            - The following may need to be tuned for your hardware: -

            -
          • - CONFIG_NOKIA6100_INVERT: Display inversion, 0 or 1, Default: 1 -
          • -
          • - CONFIG_NOKIA6100_MY: Display row direction, 0 or 1, Default: 0 -
          • -
          • - CONFIG_NOKIA6100_MX: Display column direction, 0 or 1, Default: 1 -
          • -
          • - CONFIG_NOKIA6100_V: Display address direction, 0 or 1, Default: 0 -
          • -
          • - CONFIG_NOKIA6100_ML: Display scan direction, 0 or 1, Default: 0 -
          • -
          • - CONFIG_NOKIA6100_RGBORD: Display RGB order, 0 or 1, Default: 0 -
          • -

            - Required LCD driver settings: -

            -
          • - CONFIG_LCD_NOKIA6100: Enable Nokia 6100 support -
          • -
          • - CONFIG_LCD_MAXCONTRAST: Must be 63 with the Epson controller and 127 with - the Phillips controller. -
          • -
          • - CONFIG_LCD_MAXPOWER:Maximum value of backlight setting. The backlight - control is managed outside of the 6100 driver so this value has no - meaning to the driver. Board-specific logic may place restrictions on - this value. -
          • -
          - -

          Input Devices

          -
            -
          • - CONFIG_INPUT: - Enables general support for input devices -
          • -
          • - CONFIG_INPUT_TSC2007: - If CONFIG_INPUT is selected, then this setting will enable building - of the TI TSC2007 touchscreen driver. -
          • -
          • - CONFIG_TSC2007_MULTIPLE: - Normally only a single TI TSC2007 touchscreen is used. But if - there are multiple TSC2007 touchscreens, this setting will enable - multiple touchscreens with the same driver. -
          • -
          • - CONFIG_INPUT_STMPE811: - Enables support for the STMPE811 driver (Needs CONFIG_INPUT) -
          • -
          • - CONFIG_STMPE811_SPI: - Enables support for the SPI interface (not currenly supported) -
          • -
          • - CONFIG_STMPE811_I2C: - Enables support for the I2C interface -
          • -
          • - CONFIG_STMPE811_MULTIPLE : - Can be defined to support multiple STMPE811 devices on board. -
          • -
          • - CONFIG_STMPE811_ACTIVELOW: - Interrupt is generated by an active low signal (or falling edge). -
          • -
          • - CONFIG_STMPE811_EDGE: - Interrupt is generated on an edge (vs. on the active level) -
          • -
          • - CONFIG_STMPE811_NPOLLWAITERS: - Maximum number of threads that can be waiting on poll() (ignored if - CONFIG_DISABLE_POLL is set). -
          • -
          • - CONFIG_STMPE811_TSC_DISABLE: - Disable driver touchscreen functionality. -
          • -
          • - CONFIG_STMPE811_ADC_DISABLE: - Disable driver ADC functionality. -
          • -
          • - CONFIG_STMPE811_GPIO_DISABLE: - Disable driver GPIO functionlaity. -
          • -
          • - CONFIG_STMPE811_GPIOINT_DISABLE: - Disable driver GPIO interrupt functionality (ignored if GPIO - functionality is disabled). -
          • -
          • - CONFIG_STMPE811_SWAPXY: - Reverse the meaning of X and Y to handle different LCD orientations. -
          • -
          • - CONFIG_STMPE811_TEMP_DISABLE: - Disable driver temperature sensor functionality. -
          • -
          • - CONFIG_STMPE811_REGDEBUG: - Enabled very low register-level debug output. Requires CONFIG_DEBUG. -
          • -
          • - CONFIG_STMPE811_THRESHX and CONFIG_STMPE811_THRESHY: - STMPE811 touchscreen data comes in a a very high rate. New touch positions - will only be reported when the X or Y data changes by these thresholds. - This trades reduces data rate for some loss in dragging accuracy. The - STMPE811 is configure for 12-bit values so the raw ranges are 0-4095. So - for example, if your display is 320x240, then THRESHX=13 and THRESHY=17 - would correspond to one pixel. Default: 12 -
          • -
          - -

          Analog Devices

          -
            -
          • - CONFIG_DAC: - Enables general support for Digital-to-Analog conversion devices. -
          • -
          • - CONFIG_ADC: - Enables general support for Analog-to-Digital conversion devices. -
          • -
          • - CONFIG_ADC_ADS125X: - Adds support for the TI ADS 125x ADC. -
          • -
          - -

          ENC28J60 Ethernet Driver Configuration Settings

          -
            -
          • - CONFIG_ENC28J60: Enabled ENC28J60 support -
          • -
          • - CONFIG_ENC28J60_SPIMODE: Controls the SPI mode -
          • -
          • - CONFIG_ENC28J60_FREQUENCY: Define to use a different bus frequency -
          • -
          • - CONFIG_ENC28J60_NINTERFACES: - Specifies the number of physical ENC28J60 devices that will be supported. -
          • -
          • - CONFIG_ENC28J60_STATS: Collect network statistics -
          • -
          • - CONFIG_ENC28J60_HALFDUPPLEX: Default is full duplex -
          • -
          - -

          Network Support

          -

          TCP/IP and UDP support via uIP

          -
            -
          • - CONFIG_NET: Enable or disable all network features -
          • -
          • - CONFIG_NET_SLIP: Selects the Serial Line Internet Protocol (SLIP) data link layer. - (This selection is discussed further below). -
          • -
          • - CONFIG_NET_NOINTS: CONFIG_NET_NOINT indicates that uIP not called from the interrupt level. - If CONFIG_NET_NOINTS is defined, critical sections will be managed with semaphores; - Otherwise, it assumed that uIP will be called from interrupt level handling and critical sections will be managed by enabling and disabling interrupts. -
          • -
          • - CONFIG_NET_MULTIBUFFER: Traditionally, uIP has used a single buffer for all incoming and outgoing traffic. - If this configuration is selected, then the driver can manage multiple I/O buffers and can, for example, be filling one input buffer while sending another output buffer. - Or, as another example, the driver may support queuing of concurrent input/ouput and output transfers for better performance. -
          • -
          • - CONFIG_NET_IPv6: Build in support for IPv6 -
          • -
          • - CONFIG_NSOCKET_DESCRIPTORS: Maximum number of socket descriptors per task/thread. -
          • -
          • - CONFIG_NET_NACTIVESOCKETS: Maximum number of concurrent socket operations (recv, send, etc.). - Default: CONFIG_NET_TCP_CONNS+CONFIG_NET_UDP_CONNS. -
          • -
          • - CONFIG_NET_SOCKOPTS: Enable or disable support for socket options. -
          • -
          • - CONFIG_NET_BUFSIZE: uIP buffer size -
          • -
          • - CONFIG_NET_TCP: TCP support on or off -
          • -
          • - CONFIG_NET_TCP_CONNS: Maximum number of TCP connections (all tasks). -
          • -
          • - CONFIG_NET_TCPBACKLOG: - Incoming connections pend in a backlog until accept() is called. - The size of the backlog is selected when listen() is called. -
          • -
          • - CONFIG_NET_TCP_READAHEAD_BUFSIZE: Size of TCP read-ahead buffers -
          • -
          • - CONFIG_NET_NTCP_READAHEAD_BUFFERS: Number of TCP read-ahead buffers (may be zero to disable TCP/IP read-ahead buffering) -
          • -
          • - CONFIG_NET_TCP_RECVDELAY: Delay (in deciseconds) after a TCP/IP packet is received. - This delay may allow catching of additional packets when TCP/IP read-ahead is disabled. - Default: 0 -
          • -
          • - CONFIG_NET_MAX_LISTENPORTS: Maximum number of listening TCP ports (all tasks). -
          • -
          • - CONFIG_NET_TCPURGDATA: Determines if support for TCP urgent data - notification should be compiled in. Urgent data (out-of-band data) - is a rarely used TCP feature that is very seldom would be required. -
          • -
          • - CONFIG_NET_UDP: UDP support on or off -
          • -
          • - CONFIG_NET_UDP_CHECKSUMS: UDP checksums on or off -
          • -
          • - CONFIG_NET_UDP_CONNS: The maximum amount of concurrent UDP connections -
          • -
          • - CONFIG_NET_ICMP: Enable minimal ICMP support. Includes built-in support - for sending replies to received ECHO (ping) requests. -
          • -
          • - CONFIG_NET_ICMP_PING: Provide interfaces to support application level - support for sending ECHO (ping) requests and associating ECHO replies. -
          • -
          • - CONFIG_NET_IGMP: Enable IGMPv2 client support. -
          • -
          • - CONFIG_PREALLOC_IGMPGROUPS: Pre-allocated IGMP groups are used - Only if needed from interrupt level group created (by the IGMP server). - Default: 4 -
          • -
          • - CONFIG_NET_PINGADDRCONF: Use "ping" packet for setting IP address -
          • -
          • - CONFIG_NET_STATISTICS: uIP statistics on or off -
          • -
          • - CONFIG_NET_RECEIVE_WINDOW: The size of the advertised receiver's window -
          • -
          • - CONFIG_NET_ARPTAB_SIZE: The size of the ARP table -
          • -
          • - CONFIG_NET_ARP_IPIN: Harvest IP/MAC address mappings for the ARP table from incoming IP packets. -
          • -
          • - CONFIG_NET_BROADCAST: Incoming UDP broadcast support -
          • -
          • - CONFIG_NET_MULTICAST: Outgoing multi-cast address support -
          • -
          - -

          SLIP

          -

          - The NuttX SLIP driver supports point-to-point IP communications over a serial port. - The default data link layer for uIP is Ethernet. - If CONFIG_NET_SLIP is defined in the NuttX configuration file, then SLIP will be supported. - The basic differences between the SLIP and Ethernet configurations is that when SLIP is selected: -

            -
          • The link level header (that comes before the IP header) is omitted.
          • -
          • All MAC address processing is suppressed.
          • -
          • ARP is disabled.
          • -
          - If CONFIG_NET_SLIP is not selected, then Ethernet will be used - (there is no need to define anything special in the configuration file to use Ethernet -- it is the default). -

          -
            -
          • - CONFIG_NET_SLIP: Enables building of the SLIP driver. - SLIP requires at least one IP protocols selected and the following additional network settings: CONFIG_NET_NOINTS and CONFIG_NET_MULTIBUFFER. - CONFIG_NET_BUFSIZE must be set to 296. - Other optional configuration settings that affect the SLIP driver: CONFIG_NET_STATISTICS. - Default: Ethernet. -
          • -

            - If SLIP is selected, then the following SLIP options are available: -

            -
          • - CONFIG_CLIP_NINTERFACES: Selects the number of physical SLIP interfaces to support. Default: 1 -
          • -
          • - CONFIG_SLIP_STACKSIZE: Select the stack size of the SLIP RX and TX tasks. Default: 2048 -
          • -
          • - CONFIG_SLIP_DEFPRIO: The priority of the SLIP RX and TX tasks. Default: 128 -
          • - -
          - -

          UIP Network Utilities

          -
            -
          • - CONFIG_NET_DHCP_LIGHT: Reduces size of DHCP -
          • -
          • - CONFIG_NET_RESOLV_ENTRIES: Number of resolver entries -
          • -
          • - CONFIG_NET_RESOLV_MAXRESPONSE: - This setting determines the maximum size of response message that can be received by the DNS resolver. - The default is 96 but may need to be larger on enterprise networks (perhaps 176). -
          • -
          - -

          THTTPD

          -
            -
          • - CONFIG_THTTPD_PORT: THTTPD Server port number -
          • -
          • - CONFIG_THTTPD_IPADDR: Server IP address (no host name) -
          • -
          • - CONFIG_THTTPD_SERVER_ADDRESS: SERVER_ADDRESS: response -
          • -
          • - CONFIG_THTTPD_SERVER_SOFTWARE: SERVER_SOFTWARE: response -
          • -
          • - CONFIG_THTTPD_PATH: Server working directory. Default: /mnt/www. -
          • -
          • - CONFIG_THTTPD_CGI_PATH: Path to CGI executables. Default: /mnt/www/cgi-bin. -
          • -
          • - CONFIG_THTTPD_CGI_PATTERN: Only CGI programs whose expanded paths - match this pattern will be executed. In fact, if this value is not defined - then no CGI logic will be built. Default: /mnt/www/cgi-bin/*. -
          • -
          • - CONFIG_THTTPD_CGI_PRIORITY: Provides the priority of CGI child tasks -
          • -
          • - CONFIG_THTTPD_CGI_STACKSIZE: Provides the initial stack size of - CGI child task (will be overridden by the stack size in the NXFLAT - header) -
          • -
          • - CONFIG_THTTPD_CGI_BYTECOUNT: Byte output limit for CGI tasks. -
          • -
          • - CONFIG_THTTPD_CGI_TIMELIMIT: How many seconds to allow CGI programs - to run before killing them. -
          • -
          • - CONFIG_THTTPD_CHARSET: The default character set name to use with - text MIME types. -
          • -
          • - CONFIG_THTTPD_IOBUFFERSIZE: -
          • -
          • - CONFIG_THTTPD_INDEX_NAMES: A list of index filenames to check. The - files are searched for in this order. -
          • -
          • - CONFIG_AUTH_FILE: The file to use for authentication. If this is - defined then thttpd checks for this file in the local directory - before every fetch. If the file exists then authentication is done, - otherwise the fetch proceeds as usual. If you leave this undefined - then thttpd will not implement authentication at all and will not - check for auth files, which saves a bit of CPU time. A typical - value is ".htpasswd&quout; -
          • -
          • - CONFIG_THTTPD_LISTEN_BACKLOG: The listen() backlog queue length. -
          • -
          • - CONFIG_THTTPD_LINGER_MSEC: How many milliseconds to leave a connection - open while doing a lingering close. -
          • -
          • - CONFIG_THTTPD_OCCASIONAL_MSEC: How often to run the occasional - cleanup job. -
          • -
          • - CONFIG_THTTPD_IDLE_READ_LIMIT_SEC: How many seconds to allow for - reading the initial request on a new connection. -
          • -
          • - CONFIG_THTTPD_IDLE_SEND_LIMIT_SEC: How many seconds before an - idle connection gets closed. -
          • -
          • - CONFIG_THTTPD_TILDE_MAP1 and CONFIG_THTTPD_TILDE_MAP2: Tilde mapping. - Many URLs use ~username to indicate a user's home directory. thttpd - provides two options for mapping this construct to an actual filename. -
              -
            1. - Map ~username to <prefix>/username. This is the recommended choice. - Each user gets a subdirectory in the main web tree, and the tilde - construct points there. The prefix could be something like "users", - or it could be empty. -
            2. -
            3. - Map ~username to <user's homedir>/<postfix>. The postfix would be - the name of a subdirectory off of the user's actual home dir, - something like "public_html". -
            4. -
            - You can also leave both options undefined, and thttpd will not do - anything special about tildes. Enabling both options is an error. - Typical values, if they're defined, are "users" for - CONFIG_THTTPD_TILDE_MAP1 and "public_html" forCONFIG_THTTPD_TILDE_MAP2. -
          • -
          • - CONFIG_THTTPD_GENERATE_INDICES: -
          • -
          • - CONFIG_THTTPD_URLPATTERN: If defined, then it will be used to match - and verify referrers. -
          • -
          - -

          FTP Server

          -
            -
          • - CONFIG_FTPD_VENDORID: The vendor name to use in FTP communications. Default: "NuttX" -
          • -
          • - CONFIG_FTPD_SERVERID: The server name to use in FTP communications. Default: "NuttX FTP Server" -
          • -
          • - CONFIG_FTPD_CMDBUFFERSIZE: The maximum size of one command. Default: 128 bytes. -
          • -
          • - CONFIG_FTPD_DATABUFFERSIZE: The size of the I/O buffer for data transfers. Default: 512 bytes. -
          • -
          • - CONFIG_FTPD_WORKERSTACKSIZE: The stacksize to allocate for each FTP daemon worker thread. Default: 2048 bytes. -
          • -
          -

          - Other required FTPD configuration settings: Of course TCP networking support is required. But here are a couple that are less obvious: -

          -
            -
          • - CONFIG_DISABLE_PTHREAD=n: pthread support is required -
          • -
          • - CONFIG_DISABLE_POLL=n: poll() support is required -
          • -
          - -

          USB Device-Side Support

          -

          USB Device Controller Driver

          -
            -
          • - CONFIG_USBDEV: Enables USB device support -
          • -
          • - CONFIG_USBDEV_COMPOSITE: Enables USB composite device support -
          • -
          • - CONFIG_USBDEV_ISOCHRONOUS: Build in extra support for isochronous endpoints -
          • -
          • - CONFIG_USBDEV_DUALSPEED: Hardware handles high and full speed operation (USB 2.0) -
          • -
          • - CONFIG_USBDEV_SELFPOWERED: Will cause USB features to indicate that the device is self-powered -
          • -
          • - CONFIG_USBDEV_MAXPOWER: Maximum power consumption in mA -
          • -
          • - CONFIG_USBDEV_TRACE: Enables USB tracing for debug -
          • -
          • - CONFIG_USBDEV_TRACE_NRECORDS: Number of trace entries to remember -
          • -
          - -

          USB Serial Device Class Driver (Prolific PL2303 Emulation)

          -
            -
          • - CONFIG_PL2303: Enable compilation of the USB serial driver -
          • -
          • - CONFIG_PL2303_EPINTIN: The logical 7-bit address of a hardware endpoint that supports interrupt IN operation -
          • -
          • - CONFIG_PL2303_EPBULKOUT: The logical 7-bit address of a hardware endpoint that supports bulk OUT operation -
          • -
          • - CONFIG_PL2303_EPBULKIN: The logical 7-bit address of a hardware endpoint that supports bulk IN operation -
          • -
          • - CONFIG_PL2303_NWRREQS and CONFIG_PL2303_NRDREQS: The number of write/read requests that can be in flight -
          • -
          • - CONFIG_PL2303_VENDORID and CONFIG_PL2303_VENDORSTR: The vendor ID code/string -
          • -
          • - CONFIG_PL2303_PRODUCTID and CONFIG_PL2303_PRODUCTSTR: The product ID code/string -
          • -
          • - CONFIG_PL2303_RXBUFSIZE and CONFIG_PL2303_TXBUFSIZE: Size of the serial receive/transmit buffers -
          • -
          - -

          USB serial device class driver (Standard CDC ACM class)

          -
            -
          • - CONFIG_CDCACM: Enable compilation of the USB serial driver -
          • -
          • - CONFIG_CDCACM_COMPOSITE: - Configure the CDC serial driver as part of a composite driver - (only if CONFIG_USBDEV_COMPOSITE is also defined) -
          • -
          • - CONFIG_CDCACM_IFNOBASE: - If the CDC driver is part of a composite device, then this may need to - be defined to offset the CDC/ACM interface numbers so that they are - unique and contiguous. When used with the Mass Storage driver, the - correct value for this offset is zero. -
          • -
          • - CONFIG_CDCACM_STRBASE: - If the CDC driver is part of a composite device, then this may need to - be defined to offset the CDC/ACM string numbers so that they are - unique and contiguous. When used with the Mass Storage driver, the - correct value for this offset is four (this value actuallly only needs - to be defined if names are provided for the Notification interface, - CONFIG_CDCACM_NOTIFSTR, or the data interface, CONFIG_CDCACM_DATAIFSTR). -
          • -
          • - CONFIG_CDCACM_EP0MAXPACKET: Endpoint 0 max packet size. Default 64. -
          • -
          • - CONFIG_CDCACM_EPINTIN: The logical 7-bit address of a hardware endpoint that supports - interrupt IN operation. Default 2. -
          • -
          • - CONFIG_CDCACM_EPINTIN_FSSIZE: Max package size for the interrupt IN endpoint if full speed mode. Default 64. -
          • -
          • - CONFIG_CDCACM_EPINTIN_HSSIZE: Max package size for the interrupt IN endpoint if high speed mode. Default 64. -
          • -
          • - CONFIG_CDCACM_EPBULKOUT: The logical 7-bit address of a hardware endpoint that supports - bulk OUT operation. -
          • -
          • - CONFIG_CDCACM_EPBULKOUT_FSSIZE: Max package size for the bulk OUT endpoint if full speed mode. Default 64. -
          • -
          • - CONFIG_CDCACM_EPBULKOUT_HSSIZE: Max package size for the bulk OUT endpoint if high speed mode. Default 512. -
          • -
          • - CONFIG_CDCACM_EPBULKIN: The logical 7-bit address of a hardware endpoint that supports - bulk IN operation -
          • -
          • - CONFIG_CDCACM_EPBULKIN_FSSIZE: Max package size for the bulk IN endpoint if full speed mode. Default 64. -
          • -
          • - CONFIG_CDCACM_EPBULKIN_HSSIZE: Max package size for the bulk IN endpoint if high speed mode. Default 512. -
          • -
          • - CONFIG_CDCACM_NWRREQS and CONFIG_CDCACM_NRDREQS: The number of write/read requests that can be in flight. - CONFIG_CDCACM_NWRREQS includes write requests used for both the interrupt and bulk IN endpoints. - Default 4. -
          • -
          • - CONFIG_CDCACM_VENDORID and CONFIG_CDCACM_VENDORSTR: The vendor ID code/string. Default 0x0525 and "NuttX," - 0x0525 is the Netchip vendor and should not be used in any products. - This default VID was selected for compatibility with the Linux CDC ACM default VID. -
          • -
          • - CONFIG_CDCACM_PRODUCTID and CONFIG_CDCACM_PRODUCTSTR: The product ID code/string. Default 0xa4a7 and "CDC/ACM Serial" - 0xa4a7 was selected for compatibility with the Linux CDC ACM default PID. -
          • -
          • - CONFIG_CDCACM_RXBUFSIZE and CONFIG_CDCACM_TXBUFSIZE: Size of the serial receive/transmit buffers. Default 256. -
          - -

          USB Storage Device Configuration

          -
            -
          • - CONFIG_USBMSC: - Enable compilation of the USB storage driver -
          • -
          • - CONFIG_USBMSC_COMPOSITE: - Configure the mass storage driver as part of a composite driver - (only if CONFIG_USBDEV_COMPOSITE is also defined) -
          • -
          • - CONFIG_USBMSC_IFNOBASE: - If the CDC driver is part of a composite device, then this may need to - be defined to offset the mass storage interface number so that it is - unique and contiguous. When used with the CDC/ACM driver, the - correct value for this offset is two (because of the two CDC/ACM - interfaces that will precede it). -
          • -
          • - CONFIG_USBMSC_STRBASE: - If the CDC driver is part of a composite device, then this may need to - be defined to offset the mass storage string numbers so that they are - unique and contiguous. When used with the CDC/ACM driver, the - correct value for this offset is four (or perhaps 5 or 6, depending - on if CONFIG_CDCACM_NOTIFSTR or CONFIG_CDCACM_DATAIFSTR are defined). -
          • -
          • - CONFIG_USBMSC_EP0MAXPACKET: - Max packet size for endpoint 0 -
          • -
          • - CONFIG_USBMSCEPBULKOUT and CONFIG_USBMSC_EPBULKIN: - The logical 7-bit address of a hardware endpoints that support bulk OUT and IN operations -
          • -
          • - CONFIG_USBMSC_NWRREQS and CONFIG_USBMSC_NRDREQS: - The number of write/read requests that can be in flight -
          • -
          • - CONFIG_USBMSC_BULKINREQLEN and CONFIG_USBMSC_BULKOUTREQLEN: - The size of the buffer in each write/read request. - This value needs to be at least as large as the endpoint maxpacket and - ideally as large as a block device sector. -
          • -
          • - CONFIG_USBMSC_VENDORID and CONFIG_USBMSC_VENDORSTR: - The vendor ID code/string -
          • -
          • - CONFIG_USBMSC_PRODUCTID and CONFIG_USBMSC_PRODUCTSTR: - The product ID code/string -
          • -
          • - CONFIG_USBMSC_REMOVABLE: - Select if the media is removable -
          • -
          - -

          USB Composite Device Configuration

          -
            -
          • - CONFIG_USBDEV_COMPOSITE: - Enables USB composite device support -
          • -
          • - CONFIG_CDCACM_COMPOSITE: - Configure the CDC serial driver as part of a composite driver - (only if CONFIG_USBDEV_COMPOSITE is also defined) -
          • -
          • - CONFIG_UBMSC_COMPOSITE: - Configure the mass storage driver as part of a composite driver - (only if CONFIG_USBDEV_COMPOSITE is also defined) -
          • -
          • - CONFIG_COMPOSITE_IAD: - If one of the members of the composite has multiple interfaces - (such as CDC/ACM), then an Interface Association Descriptor (IAD) - will be necessary. Default: IAD will be used automatically if - needed. It should not be necessary to set this. -
          • -
          • - CONFIG_COMPOSITE_EP0MAXPACKET: - Max packet size for endpoint 0 -
          • -
          • - CONFIG_COMPOSITE_VENDORID and CONFIG_COMPOSITE_VENDORSTR: - The vendor ID code/string -
          • -
          • - CONFIG_COMPOSITE_PRODUCTID and CONFIG_COMPOSITE_PRODUCTSTR: - The product ID code/string -
          • -
          • - CONFIG_COMPOSITE_SERIALSTR: - Device serial number string -
          • -
          • - CONFIG_COMPOSITE_CONFIGSTR: - Configuration string -
          • -
          • - CONFIG_COMPOSITE_VERSIONNO: - Interface version number. -
          • -
          - -

          USB Host-Side Support

          -

          USB Host Controller Driver

          -
            -
          • - CONFIG_USBHOST: Enables USB host support -
          • -
          • - CONFIG_USBHOST_NPREALLOC: Number of pre-allocated class instances -
          • -
          • - CONFIG_USBHOST_BULK_DISABLE: On some architectures, selecting this setting will reduce driver size by disabling bulk endpoint support -
          • -
          • - CONFIG_USBHOST_INT_DISABLE: On some architectures, selecting this setting will reduce driver size by disabling interrupt endpoint support -
          • -
          • - CONFIG_USBHOST_ISOC_DISABLE: On some architectures, selecting this setting will reduce driver size by disabling isochronous endpoint support -
          • -
          -

          USB Host HID Class Driver

          -

          - Requires CONFIG_USBHOST=y, CONFIG_USBHOST_INT_DISABLE=n, CONFIG_NFILE_DESCRIPTORS > 0, - CONFIG_SCHED_WORKQUEUE=y, and CONFIG_DISABLE_SIGNALS=n. -

          -
            -
          • - CONFIG_HIDKBD_POLLUSEC: Device poll rate in microseconds. Default: 100 milliseconds. -
          • -
          • - CONFIG_HIDKBD_DEFPRIO: Priority of the polling thread. Default: 50. -
          • -
          • - CONFIG_HIDKBD_STACKSIZE: Stack size for polling thread. Default: 1024 -
          • -
          • - CONFIG_HIDKBD_BUFSIZE: Scancode buffer size. Default: 64. -
          • -
          • - CONFIG_HIDKBD_NPOLLWAITERS: If the poll() method is enabled, this defines the maximum number of threads that can be waiting for keyboard events. Default: 2. -
          • -
          • - CONFIG_HIDKBD_RAWSCANCODES: If set to y no conversion will be made on the raw keyboard scan codes. Default: ASCII conversion. -
          • -
          • - CONFIG_HIDKBD_ALLSCANCODES: If set to y all 231 possible scancodes will be converted to something. Default: 104 key US keyboard. -
          • -
          • - CONFIG_HIDKBD_NODEBOUNCE: If set to y normal debouncing is disabled. Default: Debounce/No repeat keys. -
          • -
          -

          USB Host HID Mass Storage Class Driver

          -

          - Requires CONFIG_USBHOST=y, CONFIG_USBHOST_BULK_DISABLE=n, CONFIG_NFILE_DESCRIPTORS > 0, - and CONFIG_SCHED_WORKQUEUE=y. -

          - -

          Graphics related configuration settings

          -
        • - CONFIG_NX: - Enables overall support for graphics library and NX -
        • -
        - -

        NX configuration setting

        -
          -
        • - CONFIG_NX_MULTIUSER: - Configures NX in multi-user mode. -
        • -
        • - CONFIG_NX_NPLANES: - Some YUV color formats requires support for multiple planes, - one for each color component. Unless you have such special - hardware, this value should be undefined or set to 1. -
        • -
        • - CONFIG_NX_WRITEONLY: - Define if the underlying graphics device does not support read operations. - Automatically defined if CONFIG_NX_LCDDRIVER and CONFIG_LCD_NOGETRUN - are defined. -
        • -
        • - CONFIG_NX_DISABLE_1BPP, CONFIG_NX_DISABLE_2BPP, - CONFIG_NX_DISABLE_4BPP, CONFIG_NX_DISABLE_8BPP - CONFIG_NX_DISABLE_16BPP, CONFIG_NX_DISABLE_24BPP, and - CONFIG_NX_DISABLE_32BPP: - NX supports a variety of pixel depths. You can save some - memory by disabling support for unused color depths. -
        • -
        • - CONFIG_NX_PACKEDMSFIRST: - If a pixel depth of less than 8-bits is used, then NX needs - to know if the pixels pack from the MS to LS or from LS to MS -
        • -
        • - CONFIG_NX_LCDDRIVER: - By default, NX builds to use a framebuffer driver (see include/nuttx/video/fb.h). - If this option is defined, NX will build to use an LCD driver (see include/nuttx/lcd/lcd.h). -
        • -
        • - CONFIG_LCD_MAXPOWER: - The full-on power setting for an LCD device. -
        • -
        • - CONFIG_LCD_MAXCONTRAST: - The maximum contrast value for an LCD device. -
        • -
        • - CONFIG_LCD_LANDSCAPE, CONFIG_LCD_PORTRAIT, - CONFIG_LCD_RLANDSCAPE, and CONFIG_LCD_RPORTRAIT: - Some LCD drivers may support these options to present the display in - landscape, portrait, reverse landscape, or reverse portrait orientations. - Check the README.txt file in each board configuration directory to - see if any of these are supported by the board LCD logic. -
        • -
        • - CONFIG_LCD_NOGETRUN: - NX components need to know if it can read from the LCD or not. - If reading from the LCD is supported, then NxConsole can do more efficient scrolling. - Default: Supported -
        • -
        • - CONFIG_NX_MOUSE: - Build in support for mouse input. -
        • -
        • - CONFIG_NX_KBD: - Build in support of keypad/keyboard input. -
        • -
        • - CONFIG_NXTK_BORDERWIDTH: - Specifies with with of the border (in pixels) used with - framed windows. The default is 4. -
        • -
        • - CONFIG_NXTK_BORDERCOLOR1 and CONFIG_NXTK_BORDERCOLOR2: - Specify the colors of the border used with framed windows. - CONFIG_NXTK_BORDERCOLOR2 is the shadow side color and so - is normally darker. The default is medium and dark grey, - respectively -
        • -
        • - CONFIG_NXTK_AUTORAISE: - If set, a window will be raised to the top if the mouse position - is over a visible portion of the window. Default: A mouse - button must be clicked over a visible portion of the window. -
        • -
        • - CONFIG_NXFONTS_CHARBITS: - The number of bits in the character set. Current options are - only 7 and 8. The default is 7. -
        • -
        • - CONFIG_NXFONT_SANS17X22: - This option enables support for a tiny, 17x22 san serif font - (font ID FONTID_SANS17X22 == 14). -
        • -
        • - CONFIG_NXFONT_SANS20X26: - This option enables support for a tiny, 20x26 san serif font - (font ID FONTID_SANS20X26 == 15). -
        • -
        • - CONFIG_NXFONT_SANS23X27: - This option enables support for a tiny, 23x27 san serif font - (font ID FONTID_SANS23X27 == 1). -
        • -
        • - CONFIG_NXFONT_SANS22X29: - This option enables support for a small, 22x29 san serif font - (font ID FONTID_SANS22X29 == 2). -
        • -
        • - CONFIG_NXFONT_SANS28X37: - This option enables support for a medium, 28x37 san serif font - (font ID FONTID_SANS28X37 == 3). -
        • -
        • - CONFIG_NXFONT_SANS39X48: - This option enables support for a large, 39x48 san serif font - (font ID FONTID_SANS39X48 == 4). -
        • -
        • - CONFIG_NXFONT_SANS17X23B: - This option enables support for a tiny, 17x23 san serif bold font - (font ID FONTID_SANS17X23B == 16). -
        • -
        • - CONFIG_NXFONT_SANS20X27B: - This option enables support for a tiny, 20x27 san serif bold font - (font ID FONTID_SANS20X27B == 17). -
        • -
        • - CONFIG_NXFONT_SANS22X29B: - This option enables support for a small, 22x29 san serif bold font - (font ID FONTID_SANS22X29B == 5). -
        • -
        • - CONFIG_NXFONT_SANS28X37B: - This option enables support for a medium, 28x37 san serif bold font - (font ID FONTID_SANS28X37B == 6). -
        • -
        • - CONFIG_NXFONT_SANS40X49B: - This option enables support for a large, 40x49 san serif bold font - (font ID FONTID_SANS40X49B == 7). -
        • -
        • - CONFIG_NXFONT_SERIF22X29: - This option enables support for a small, 22x29 font (with serifs) - (font ID FONTID_SERIF22X29 == 8). -
        • -
        • - CONFIG_NXFONT_SERIF29X37: - This option enables support for a medium, 29x37 font (with serifs) - (font ID FONTID_SERIF29X37 == 9). -
        • -
        • - CONFIG_NXFONT_SERIF38X48: - This option enables support for a large, 38x48 font (with serifs) - (font ID FONTID_SERIF38X48 == 10). -
        • -
        • - CONFIG_NXFONT_SERIF22X28B: - This option enables support for a small, 27x38 bold font (with serifs) - (font ID FONTID_SERIF22X28B == 11). -
        • -
        • - CONFIG_NXFONT_SERIF27X38B: - This option enables support for a medium, 27x38 bold font (with serifs) - (font ID FONTID_SERIF27X38B == 12). -
        • -
        • - CONFIG_NXFONT_SERIF38X49B: - This option enables support for a large, 38x49 bold font (with serifs) - (font ID FONTID_SERIF38X49B == 13). -
        • -
        - -

        NX Multi-user only options

        -
          -
        • - CONFIG_NX_BLOCKING - Open the client message queues in blocking mode. In this case, - nx_eventhandler() will not return until a message is received and processed. -
        • -
        • - CONFIG_NX_MXSERVERMSGS and CONFIG_NX_MXCLIENTMSGS - Specifies the maximum number of messages that can fit in - the message queues. No additional resources are allocated, but - this can be set to prevent flooding of the client or server with - too many messages (CONFIG_PREALLOC_MQ_MSGS controls how many - messages are pre-allocated). -
        • -
        - -

        Stack and heap information

        - -
          -
        • - CONFIG_BOOT_RUNFROMFLASH: Some configurations support XIP - operation from FLASH but must copy initialized .data sections to RAM. -
        • -
        • - CONFIG_BOOT_COPYTORAM: Some configurations boot in FLASH - but copy themselves entirely into RAM for better performance. -
        • -
        • - CONFIG_BOOT_RAMFUNCS: Other configurations may copy just - some functions into RAM, either for better performance or for errata workarounds. -
        • -
        • - CONFIG_STACK_ALIGNMENT: Set if the your application has specific - stack alignment requirements (may not be supported in all architectures). -
        • -
        • - CONFIG_IDLETHREAD_STACKSIZE: The size of the initial stack. - This is the thread that (1) performs the initial boot of the system up - to the point where CONFIG_USER_ENTRYPOINT() is spawned, - and (2) there after is the IDLE thread that executes only when there - is no other thread ready to run. -
        • -
        • - CONFIG_USERMAIN_STACKSIZE: The size of the stack to allocate - for the main user thread that begins at the CONFIG_USER_ENTRYPOINT() - entry point. -
        • -
        • - CONFIG_PTHREAD_STACK_MIN: Minimum pthread stack size -
        • -
        • - CONFIG_PTHREAD_STACK_DEFAULT: Default pthread stack size -
        • -
        From 54046a0775ed7048b6b4d16750fee71411fb53cb Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 28 Dec 2013 08:40:03 -0600 Subject: [PATCH 1208/1518] Move the NX components out of libc and into its own library, libnx --- Documentation/NXGraphicsSubsystem.html | 22 +++++++++++++++++++--- Documentation/README.html | 2 ++ 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/Documentation/NXGraphicsSubsystem.html b/Documentation/NXGraphicsSubsystem.html index 7da1c86f77..4aa754b6c6 100644 --- a/Documentation/NXGraphicsSubsystem.html +++ b/Documentation/NXGraphicsSubsystem.html @@ -12,7 +12,7 @@

        NX Graphics Subsystem

        -

        Last Updated: May 7, 2012

        +

        Last Updated: December 28, 2013

        @@ -3144,9 +3144,20 @@ int nxf_convert_32bpp(FAR uint32_t *dest, uint16_t height, +

        + The graphics capability consist both of components internal to the RTOS and of user-callable interfaces. + In the NuttX kernel mode build there are some components of the graphics subsystem are callable in user mode and other components that are internal to the RTOS. + The directory nuttx/graphics contains only those components that are internal to the RTOS. + + User callable functions must be part of a library that can be linked against user applications. + This user callable interfaces are provided in sub-directories under nuttx/libnx. +

          -
          graphics/nxglib +
          libnx/nx +
          Common callable interfaces that are, logically, part of both nxmu and nxsu. + +
          graphics/nxglib and libnx/nxglib
          The NuttX tiny graphics library. The directory contains generic utilities support operations on primitive graphics objects and logic to rasterize directly into a framebuffer or through an LCD driver interface. @@ -3168,7 +3179,12 @@ int nxf_convert_32bpp(FAR uint32_t *dest, uint16_t height, The single user front-end is selected when CONFIG_NX_MULTIUSER is not defined in the NuttX configuration file. -
          graphics/nxsu +
          + NOTE: There is no nxsu sub-directory in nuttx/libnx. + That is because this separation of interfaces is only required in the kernel build mode and only the multi-user interfaces can be used with the kernel build. +
          + +
          graphics/nxmu and libnx/nxmu
          This is the NX multi user front end. When combined with the generic back-end (nxbe), it implements a multi-threaded, multi-user windowing system. diff --git a/Documentation/README.html b/Documentation/README.html index 7ae3ab5056..cf0e210345 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -255,6 +255,8 @@ | | `- README.txt | |- libc/ | | `- README.txt + | |- libnx/ + | | `- README.txt | |- libxx/ | | `- README.txt | |- mm/ From 966c8bbd39d2f687d1483f77aeed01ded6e62035 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 28 Dec 2013 11:33:21 -0600 Subject: [PATCH 1209/1518] Move graphics/nxtk to libnx/nxtk --- Documentation/NXGraphicsSubsystem.html | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/Documentation/NXGraphicsSubsystem.html b/Documentation/NXGraphicsSubsystem.html index 4aa754b6c6..7446071544 100644 --- a/Documentation/NXGraphicsSubsystem.html +++ b/Documentation/NXGraphicsSubsystem.html @@ -3196,19 +3196,18 @@ int nxf_convert_32bpp(FAR uint32_t *dest, uint16_t height, The multi-user front-end is selected when CONFIG_NX_MULTIUSER is defined in the NuttX configuration file. -
          graphics/nxfonts +
          libnx/nxfonts
          This is where the NXFONTS implementation resides. This is a relatively low-level set of charset set/glyph management APIs. See include/nuttx/nx/nxfonts.h. -
          graphics/nxtk +
          libnx/nxtk
          This is where the NXTOOLKIT implementation resides. This toolkit is built on top of NX and works with either the single-user or multi-user NX version. See include/nuttx/nx/nxtk.h.
          nuttx/../nxwidgets -
          The NxWidgets code is provided as a separate package located outside of the - NuttX source tree (probably at this location). +
          The NxWidgets code is provided as a separate package located outside of the NuttX source tree (probably at this location).
          graphics/nxconsole
          The NxConsole driver is built on top of NX and works with either the single-user or multi-user NX version. From 3805abcde539339b87e3a9f8445413f25dd4c80b Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 29 Dec 2013 08:48:06 -0600 Subject: [PATCH 1210/1518] Move more files from graphics/nxmu to libnx/nxmu --- Documentation/NXGraphicsSubsystem.html | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/Documentation/NXGraphicsSubsystem.html b/Documentation/NXGraphicsSubsystem.html index 7446071544..7d9c2d64e9 100644 --- a/Documentation/NXGraphicsSubsystem.html +++ b/Documentation/NXGraphicsSubsystem.html @@ -3170,7 +3170,7 @@ int nxf_convert_32bpp(FAR uint32_t *dest, uint16_t height, It contains most of the important window management logic: clipping, window controls, window drawing, etc. -
          graphics/nxsu +
          graphics/nxsu1
          This is the NX single user front end. When combined with the generic back-end (nxbe), it implements a single threaded, single user windowing system. @@ -3179,11 +3179,6 @@ int nxf_convert_32bpp(FAR uint32_t *dest, uint16_t height, The single user front-end is selected when CONFIG_NX_MULTIUSER is not defined in the NuttX configuration file. -
          - NOTE: There is no nxsu sub-directory in nuttx/libnx. - That is because this separation of interfaces is only required in the kernel build mode and only the multi-user interfaces can be used with the kernel build. -
          -
          graphics/nxmu and libnx/nxmu
          This is the NX multi user front end. When combined with the generic back-end (nxbe), it implements a @@ -3213,6 +3208,10 @@ int nxf_convert_32bpp(FAR uint32_t *dest, uint16_t height,
          The NxConsole driver is built on top of NX and works with either the single-user or multi-user NX version. See include/nuttx/nx/nxconsole.h.
          +

          + 1There is no nxsu sub-directory in nuttx/libnx. + That is because this separation of interfaces is only required in the kernel build mode and only the multi-user interfaces can be used with the kernel build. +

        From 3bb8d74893a35ec2d1e095416862c8f9ceb16ad4 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 10 Jan 2014 15:23:26 -0600 Subject: [PATCH 1211/1518] NSH: Separate command line parsing from command execution. Add support for multiple, semicolone separated commands on each line --- Documentation/NuttShell.html | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index 63e2165762..78b4a84b32 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -8,7 +8,7 @@

        NuttShell (NSH)

        -

        Last Updated: December 5, 2013

        +

        Last Updated: January 10, 2014

        @@ -543,6 +543,11 @@ nsh> The default niceness is 10.

        +

        + Multiple commands per line. + NSH will accept multiple commands per command line with each command separated with the semi-colon character (;). +

        + + + + From f1225b3726a63b3c124636bbc2bdd1225fc2f668 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 11 Jan 2014 09:50:54 -0600 Subject: [PATCH 1212/1518] Back quoted NSH arguments now functional --- Documentation/NuttShell.html | 74 ++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index 78b4a84b32..c35cb371da 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -548,6 +548,37 @@ nsh> NSH will accept multiple commands per command line with each command separated with the semi-colon character (;).

        +

        + Optional Syntax Extensions + Because these features commit significant resources, it is disabled by default. +

        +
          +
        • + CONFIG_NSH_CMDPARMS. + If selected, then the output from commands, from file applications, and from NSH built-in commands can be used as arguments to other commands. + The entity to be executed is identified by enclosing the command line in back quotes. + For example, +

          +

            +set FOO `myprogram $BAR`
            +
          +

          + Will execute the program named myprogram passing it the value of the environment variable BAR. + The value of the environment variable FOO is then set output of myprogram on stdout. +

        • +
        • + CONFIG_NSH_ARGCAT. + Support concatenation of strings with environment variables or command output. For example: +
            +set FOO XYZ
            +set BAR 123
            +set FOOBAR ABC_${FOO}_${BAR}
            +
          + would set the environment variable FOO to XYZ, BAR to 123 and FOOBAR to ABC_XYZ_123. + If CONFIG_NSH_ARGCAT is not selected, then a slightly small FLASH footprint results but then also only simple environment variables like $FOO can be used on the command line. +
        • +
        +
        @@ -2650,6 +2655,13 @@ nsh> Default: 80
        CONFIG_NSH_DISABLE_SEMICOLON + By default, you can enter multiple NSH commands on a line with each command separated by a semicolon. + You can disable this feature to save a little memory on FLASH challenged platforms. + Default: n +
        CONFIG_NSH_NESTDEPTH
        + + + + + + + + + + + + + + + +
        @@ -2663,6 +2694,49 @@ nsh> Default: n
        CONFIG_NSH_CMDPARMS + If selected, then the output from commands, from file applications, and from NSH built-in commands can be used as arguments to other commands. + The entity to be executed is identified by enclosing the command line in back quotes. + For example, +
          +set FOO `myprogram $BAR
          +
        + will execute the program named myprogram passing it the value of the environment variable BAR. + The value of the environment variable FOO is then set output of myprogram on stdout. Because this feature commits significant resources, it is disabled by default. +
        CONFIG_NSH_TMPDIR + If CONFIG_NSH_CMDPARMS is selected, then function output will be retained + in a temporary file. In that case, this string must be provided to + specify the full path to a directory where temporary files can be + created. This would be a good application of RAM disk: To provide + temporary storage for function output. +
        CONFIG_NSH_MAXARGUMENTS + The maximum number of NSH command arguments. Default: 6 +
        CONFIG_NSH_ARGCAT + Support concatenation of strings with environment variables or command output. + For example: +
          +set FOO XYZ
          +set BAR 123
          +set FOOBAR ABC_${FOO}_${BAR}
          +
        + would set the environment variable FOO to XYZ, BAR to 123 and FOOBAR to ABC_XYZ_123. + If CONFIG_NSH_ARGCAT is not selected, then a slightly small FLASH footprint results but then also only simple environment variables like $FOO can be used on the command line. +
        CONFIG_NSH_NESTDEPTH From 63c95d9bdc136ec3189df0d871cdf4014d6a12a2 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 12 Jan 2014 17:59:38 -0600 Subject: [PATCH 1213/1518] Add support for the STM32VL-Discovery board. Contributed by Alan Carvalho de Assis --- Documentation/NuttX.html | 33 ++++++++++++++++++++++++++------- Documentation/README.html | 4 ++-- 2 files changed, 28 insertions(+), 9 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 2e5d026e1e..55192bc47e 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

        NuttX RTOS

        -

        Last Updated: December 7, 2013

        +

        Last Updated: January 12, 2014

        @@ -1197,7 +1197,7 @@
      • ARM926EJS (4)
      • ARM Cortex-A5 (1)
      • ARM Cortex-M0/M0+ (2)
      • -
      • ARM Cortex-M3 (24)
      • +
      • ARM Cortex-M3 (25)
      • ARM Cortex-M4 (10)
    • Atmel AVR @@ -2137,12 +2137,31 @@ nsh>

      STMicro STM32F100x (STM32 F1 "Value Line"Family). - Chip support for these STM32 "Value Line" family was contributed by Mike Smith and users have reported that they have successful brought up NuttX on there proprietary boards using this logic. - This logic was extended to support the high density STM32F100RC chips by Freddie Chopin - However, there is no specific board support for this chip families in the NuttX source tree. - There is, however, generic support for STM32F100RC boards. - Refer to the NuttX board README file for further information.

      +
        +
      • +

        + Proprietary Boards + Chip support for these STM32 "Value Line" family was contributed by Mike Smith and users have reported that they have successful brought up NuttX on their proprietary boards using this logic. +

        +
      • +
      • +

        + Generic Board Support + This logic was extended to support the high density STM32F100RC chips by Freddie Chopin + There is generic support for STM32F100RC boards. + Refer to the NuttX board README file for further information. +

        +
      • +
      • +

        + STM32VL-Discovery. + In NuttX-6.33, support for the STMicro STM32VL-Discovery board was contributed by Alan Carvalho de Assis. + The STM32VL-Discovery board features an STM32F100RB MCU. + Refer to the NuttX board README file for further information. +

        +
      • +

      diff --git a/Documentation/README.html b/Documentation/README.html index cf0e210345..4d46777ec8 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -190,10 +190,10 @@ | | | `- README.txt | | |- stm32f4discovery/ | | | `- README.txt - | | |- stm32ldiscovery/ - | | | `- README.txt | | |- stm32f429i-disco/ | | | `- README.txt + | | |- stm32vldiscovery/ + | | | `- README.txt | | |- sure-pic32mx/ | | | `- README.txt | | |- teensy/ From 726bd59fc2de62c510efb952b2c64106a27d0083 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 13 Jan 2014 13:55:51 -0600 Subject: [PATCH 1214/1518] Change how TCP read-ahead is selected to better integrate with TCP write buffering --- Documentation/NuttxUserGuide.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 621c65c939..621c4c8c18 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -13,7 +13,7 @@

      NuttX Operating System

      User's Manual

      by

      Gregory Nutt

      -

      Last Updated: September 28, 2013

      +

      Last Updated: January 13, 2014

      @@ -7986,6 +7986,7 @@ interface of the same name.
    • CONFIG_NET Defined for general network support
    • CONFIG_NET_TCP Defined for TCP/IP support
    • CONFIG_NSOCKET_DESCRIPTORS Defined to be greater than 0
    • +
    • CONFIG_NET_TCP_READAHEAD Define to enable read-ahead buffering
    • CONFIG_NET_NTCP_READAHEAD_BUFFERS Defined to be greater than zero

    From f656bb59f62d1eb9d8ce1ecff3cd2309f16e3213 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 16 Jan 2014 09:25:15 -0600 Subject: [PATCH 1215/1518] INI parser update --- Documentation/README.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/README.html b/Documentation/README.html index 4d46777ec8..705e2b91d2 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -8,7 +8,7 @@

    NuttX README Files

    -

    Last Updated: November 23, 2013

    +

    Last Updated: January 16, 2014

    @@ -291,6 +291,7 @@ | `- system/ | |- cdcacm/README.txt | |- i2c/README.txt + | |- inifile/README.txt | |- install/README.txt | |- nxplayer/README.txt | |- usbmsc/README.txt From 57ad71d6c3e7cc45b69e55d124918eba3ef9af84 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 17 Jan 2014 15:56:32 -0600 Subject: [PATCH 1216/1518] NSH: Add support for while-do-done and until-do-done loops --- Documentation/NuttShell.html | 45 ++++++++++++++++++++++++++++-------- 1 file changed, 36 insertions(+), 9 deletions(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index c35cb371da..603ae759d7 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -8,7 +8,7 @@

    NuttShell (NSH)

    -

    Last Updated: January 10, 2014

    +

    Last Updated: January 17, 2014

    @@ -52,25 +52,31 @@
    - 1.4 Built-In Variables + 1.4 Looping
    - 1.5 Current Working Directory + 1.5 Built-In Variables
    - 1.6 Environment Variables + 1.6 Current Working Directory
    - 1.7 NSH Start-Up Script + 1.7 Environment Variables + + + +
    + + 1.8 NSH Start-Up Script @@ -605,7 +611,28 @@ fi + +
    -

    1.4 Built-In Variables

    +

    1.4 Looping

    +
    + +

    + while-do-done and until-do-done looping constructs are also supported. + These works from the command line but are primarily intended for use within NSH scripts + (see the sh command). + The syntax is as follows: +

    +
      +
      while <test-cmd>; do <cmd-sequence>; done
      +
      Execute <cmd-sequence> as long as <test-cmd> has an exit status of zero.
      +
      until <test-cmd>; do <cmd-sequence>; done
      +
      Execute <cmd-sequence> as long as <test-cmd> has a non-zero exit status.
      +
    + + + +
    +

    1.5 Built-In Variables

    @@ -623,7 +650,7 @@ fi
    -

    1.5 Current Working Directory

    +

    1.6 Current Working Directory

    @@ -641,7 +668,7 @@ fi
    -

    1.6 Environment Variables

    +

    1.7 Environment Variables

    @@ -661,7 +688,7 @@ fi
    -

    1.7 NSH Start-Up Script

    +

    1.8 NSH Start-Up Script

    From b5c68e1d154ec109859fc2e066b025793a4b1a85 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 17 Jan 2014 18:03:23 -0600 Subject: [PATCH 1217/1518] NSH: Loosen up if-then-else-fi syntx so that a command can be on the same line as the 'then' and 'else' tokens. This allows, as an example, 'if true; then echo true; else echo false; fi' which is much more bash-like --- Documentation/NuttShell.html | 33 ++++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index 603ae759d7..2eeed4e678 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -618,15 +618,34 @@ fi

    while-do-done and until-do-done looping constructs are also supported. - These works from the command line but are primarily intended for use within NSH scripts + These work from the command line but are primarily intended for use within NSH scripts (see the sh command). - The syntax is as follows:

    -
      -
      while <test-cmd>; do <cmd-sequence>; done
      -
      Execute <cmd-sequence> as long as <test-cmd> has an exit status of zero.
      -
      until <test-cmd>; do <cmd-sequence>; done
      -
      Execute <cmd-sequence> as long as <test-cmd> has a non-zero exit status.
      +
        +
      • +

        while-do-done. + Execute [sequence of <cmd>] as long as <cmd> has an exit status of zero. + The syntax is as follows: +

          +while <cmd>
          +do
          +  [sequence of <cmd>]
          +done
          +
        +

        +
      • +
      • +

        until-do-done + Execute [sequence of <cmd>] as long as <cmd> has a non-zero exit status. + The syntax is as follows: +

          +while <cmd>
          +do
          +  [sequence of <cmd>]
          +done
          +
        +

        +
    From c2461030f0ac209cf539b91e0ccf8b676761af48 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 18 Jan 2014 09:39:16 -0600 Subject: [PATCH 1218/1518] NSH: Add a break command; if-then-else and looping behavior can not be configured out of the build for small systems that need minimal scripting capability --- Documentation/NuttShell.html | 49 ++++++++++++++++++++++++++++++------ 1 file changed, 42 insertions(+), 7 deletions(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index 2eeed4e678..0be5cf5a06 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -8,7 +8,7 @@

    NuttShell (NSH)

    -

    Last Updated: January 17, 2014

    +

    Last Updated: January 18, 2014

    @@ -616,7 +616,7 @@ fi -

    +

    Looping Constructs. while-do-done and until-do-done looping constructs are also supported. These work from the command line but are primarily intended for use within NSH scripts (see the sh command). @@ -646,7 +646,13 @@ done

    - + + +

    The break Command. + A break command is also supported. + The break command is only valid within the body of the a while or until loop, between the do and done tokens. + If the break command is executed within the body of a loop, the loop will immediately terminate and execution will continue with the next command immediately following the done token. +

    @@ -2799,6 +2805,20 @@ set FOOBAR ABC_${FOO}_${BAR} where a minimal footprint is a necessity and scripting is not. + + + + + + + +
    CONFIG_NSH_DISABLE_ITEF + If scripting is enabled, then then this option can be selected to suppress support for if-then-else-fi sequences in scripts. + This would only be set on systems where some minimal scripting is required but if-then-else-fi is not. +
    CONFIG_NSH_DISABLE_LOOPS + If scripting is enabled, then then this option can be selected suppress support for while-do-done and until-do-done sequences in scripts. + This would only be set on systems where some minimal scripting is required but looping is not. +
    CONFIG_NSH_DISABLEBG @@ -3979,7 +3999,7 @@ mount -t vfat /dev/ram1 /tmp
    - + - + From 9d280ecb720882237f068f34b7f5aaf34a8eb94f Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 18 Jan 2014 10:20:22 -0600 Subject: [PATCH 1219/1518] NSH: Improved documentation of the break command --- Documentation/NuttShell.html | 219 +++++++++++++++++++---------------- 1 file changed, 122 insertions(+), 97 deletions(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index 0be5cf5a06..9e7b1a77cb 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -113,277 +113,283 @@ + + + + @@ -639,7 +645,7 @@ done Execute [sequence of <cmd>] as long as <cmd> has a non-zero exit status. The syntax is as follows:
      -while <cmd>
      +until <cmd>
       do
         [sequence of <cmd>]
       done
      @@ -648,9 +654,9 @@ done
         
       
    -

    The break Command. - A break command is also supported. - The break command is only valid within the body of the a while or until loop, between the do and done tokens. +

    The break Command. + A break command is also supported. + The break command is only meaningful within the body of the a while or until loop, between the do and done tokens. If the break command is executed within the body of a loop, the loop will immediately terminate and execution will continue with the next command immediately following the done token.

    @@ -962,7 +968,26 @@ base64enc [-w] [-f] <string or filepath>

    +
    +
  • /etc/init.d/rcS
  • exec
  • exec_builtin()
  • @@ -4086,6 +4116,9 @@ mount -t vfat /dev/ram1 /tmp
  • mb
  • md5
  • mh
  • +
    +

    - 2.5 Concatenate Files (cat) + 2.5 Terminate a Loop (break)

    - 2.6 Change Current Working Directory (cd) + 2.6 Concatenate Files (cat)

    - 2.7 Compare Files (cmp) + 2.7 Change Current Working Directory (cd)

    - 2.8 Copy Files (cp) + 2.8 Compare Files (cmp)

    - 2.9 Show or set the date and time (date) + 2.9 Copy Files (cp)

    - 2.10 Copy and Convert Files (dd) + 2.10 Show or set the date and time (date)

    - 2.11 Delete a Routing Table Entry (delroute) + 2.11 Copy and Convert Files (dd)

    - 2.12 Show volume status (df) + 2.12 Delete a Routing Table Entry (delroute)

    - 2.13 Echo Strings and Variables (echo) + 2.13 Show volume status (df)

    - 2.14 Execute User Code (exec) + 2.14 Echo Strings and Variables (echo)

    - 2.15 Exit NSH (exit) + 2.15 Execute User Code (exec)

    - 2.16 Show Memory Manager Status (free) + 2.16 Exit NSH (exit)

    - 2.17 Get File Via TFTP (get) + 2.17 Show Memory Manager Status (free)

    - 2.18 Show Usage Command Usage (help) + 2.18 Get File Via TFTP (get)

    - 2.19 Hexadecimal Dump of File or Device (hexdump) + 2.19 Show Usage Command Usage (help)

    - 2.20 Manage Network Configuration (ifconfig) + 2.20 Hexadecimal Dump of File or Device (hexdump)

    - 2.21 Take a network down (ifdown) + 2.21 Manage Network Configuration (ifconfig)

    - 2.22 Bring a network up (ifup) + 2.22 Take a network down (ifdown)

    - 2.23 Send a signal to a task (kill) + 2.23 Bring a network up (ifup)

    - 2.24 Setup/teardown the Loop Device (losetup) + 2.24 Send a signal to a task (kill)

    - 2.25 List Directory Contents (ls) + 2.25 Setup/teardown the Loop Device (losetup)

    - 2.26 Calculate MD5 (md5) + 2.26 List Directory Contents (ls)

    - 2.27 Access Memory (mb, mh, and mw) + 2.27 Calculate MD5 (md5)

    - 2.28 Show Current Tasks and Threads (ps) + 2.28 Access Memory (mb, mh, and mw)

    - 2.29 Create a Directory (mkdir) + 2.29 Show Current Tasks and Threads (ps)

    - 2.30 Create a FAT Filesystem (mkfatfs) + 2.30 Create a Directory (mkdir)

    - 2.31 Create a FIFO (mkfifo) + 2.31 Create a FAT Filesystem (mkfatfs)

    - 2.32 Create a RAMDISK (mkrd) + 2.32 Create a FIFO (mkfifo)

    - 2.33 Mount a File System (mount) + 2.33 Create a RAMDISK (mkrd)

    - 2.34 Rename a File (mv) + 2.34 Mount a File System (mount)

    - 2.35 Mount an NFS file system (nfsmount) + 2.35 Rename a File (mv)

    - 2.36 Check Network Peer (ping) + 2.36 Mount an NFS file system (nfsmount)

    - 2.37 Send File Via TFTP (put) + 2.37 Check Network Peer (ping)

    - 2.38 Show Current Working Directory (pwd) + 2.38 Send File Via TFTP (put)

    - 2.39 Remove a File (rm) + 2.39 Show Current Working Directory (pwd)

    - 2.40 Remove a Directory (rmdir) + 2.40 Remove a File (rm)

    - 2.41 Set an Environment Variable (set) + 2.41 Remove a Directory (rmdir)

    - 2.42 Execute an NSH Script (sh) + 2.42 Set an Environment Variable (set)

    - 2.43 Wait for Seconds (sleep) + 2.43 Execute an NSH Script (sh)

    - 2.44 Unmount a File System (umount) + 2.44 Wait for Seconds (sleep)

    - 2.45 Unset an Environment Variable (unset) + 2.45 Unmount a File System (umount)

    - 2.46 URL Decode (urldecode) + 2.46 Unset an Environment Variable (unset)

    - 2.47 URL Encode (urlencode) + 2.47 URL Decode (urldecode)

    - 2.48 Wait for Microseconds (usleep) + 2.48 URL Encode (urlencode)

    - 2.49 Get File Via HTTP (wget) + 2.49 Wait for Microseconds (usleep)

    - 2.50 Hexadecimal Dump of Memory (xd) + 2.50 Get File Via HTTP (wget) +

    + 2.51 Hexadecimal Dump of Memory (xd)
    + +
    -

    2.5 Concatenate Files (cat)

    +

    2.5 Terminate a Loop (break)

    +
    + +

    Command Syntax:

    +
      +break
      +
    +

    + Synopsis. + The break command is only meaningful within the body of the a while or until loop, between the do and done tokens. + Outside of a loop, break command does nothing. + If the break command is executed within the body of a loop, the loop will immediately terminate and execution will continue with the next command immediately following the done token. +

    + + + +
    +

    2.6 Concatenate Files (cat)

    @@ -980,7 +1005,7 @@ cat <path> [<path> [<path> -

    2.6 Change Current Working Directory (cd)

    +

    2.7 Change Current Working Directory (cd)

    @@ -1022,7 +1047,7 @@ cd [<dir-path>|-|~|..]
    -

    2.7 Compare Files (cmp)

    +

    2.8 Compare Files (cmp)

    @@ -1039,7 +1064,7 @@ cmp <path1> <path2>
    -

    2.8 Copy Files (cp)

    +

    2.9 Copy Files (cp)

    @@ -1057,7 +1082,7 @@ cp <source-path> <dest-path>
    -

    2.9 Show or set the date and time (date)

    +

    2.10 Show or set the date and time (date)

    @@ -1084,7 +1109,7 @@ data -s "Sep 1 11:30:00 2011"
    -

    2.10 Copy and Convert Files (dd)

    +

    2.11 Copy and Convert Files (dd)

    @@ -1142,7 +1167,7 @@ nsh> dd if=/dev/ram0 of=/dev/null
    -

    2.11 Delete a Routing Table Entry (delroute)

    +

    2.12 Delete a Routing Table Entry (delroute)

    @@ -1165,7 +1190,7 @@ nsh> delroute 1.1.1.1 2.2.2.2
    -

    2.12 Show Volument Status (df)

    +

    2.13 Show Volument Status (df)

    @@ -1197,7 +1222,7 @@ nsh>
    -

    2.13 Echo Strings and Variables (echo)

    +

    2.14 Echo Strings and Variables (echo)

    @@ -1215,7 +1240,7 @@ echo [<string|$name> [<string|$name>...]]
    -

    2.14 Execute User Code (exec)

    +

    2.15 Execute User Code (exec)

    @@ -1234,7 +1259,7 @@ exec <hex-address>
    -

    2.15 Exit NSH (exit)

    +

    2.16 Exit NSH (exit)

    @@ -1253,7 +1278,7 @@ exit
    -

    2.16 Show Memory Manager Status (free)

    +

    2.17 Show Memory Manager Status (free)

    @@ -1295,7 +1320,7 @@ nsh>
    -

    2.17 Get File Via TFTP (get)

    +

    2.18 Get File Via TFTP (get)

    @@ -1330,7 +1355,7 @@ get [-b|-n] [-f <local-path>] -h <ip-address> <remote-path>
    -

    2.18 Show Usage Command Usage (help)

    +

    2.19 Show Usage Command Usage (help)

    @@ -1362,7 +1387,7 @@ help [-v] [<cmd>]
    -

    2.19 Hexadecimal Dump of File or Device (hexdump)

    +

    2.20 Hexadecimal Dump of File or Device (hexdump)

    @@ -1386,7 +1411,7 @@ hexdump <file or device>
    -

    2.20 Manage Network Configuration (ifconfig)

    +

    2.21 Manage Network Configuration (ifconfig)

    @@ -1440,7 +1465,7 @@ ifconfig nic_name ip_address
    -

    2.21 Take a network down (ifdown)

    +

    2.22 Take a network down (ifdown)

    @@ -1463,7 +1488,7 @@ ifdown eth0
    -

    2.22 Bring a network up (ifup)

    +

    2.23 Bring a network up (ifup)

    @@ -1486,7 +1511,7 @@ ifup eth0
    -

    2.23 Send a signal to a task (kill)

    +

    2.24 Send a signal to a task (kill)

    @@ -1527,7 +1552,7 @@ nsh>
    -

    2.24 Setup/teardown the Loop Device (losetup)

    +

    2.25 Setup/teardown the Loop Device (losetup)

    @@ -1580,7 +1605,7 @@ losetup d <dev-path>
    -

    2.25 List Directory Contents (ls)

    +

    2.26 List Directory Contents (ls)

    @@ -1617,7 +1642,7 @@ ls [-lRs] <dir-path>
    -

    2.26 Calculate MD5 (md5)

    +

    2.27 Calculate MD5 (md5)

    @@ -1634,7 +1659,7 @@ md5 [-f] <string or filepath>
    -

    2.27 Access Memory (mb, mh, and mw)

    +

    2.28 Access Memory (mb, mh, and mw)

    @@ -1688,7 +1713,7 @@ nsh>
    -

    2.28 Show Current Tasks and Threads (ps)

    +

    2.29 Show Current Tasks and Threads (ps)

    @@ -1714,7 +1739,7 @@ nsh>
    -

    2.29 Create a Directory (mkdir)

    +

    2.30 Create a Directory (mkdir)

    @@ -1749,7 +1774,7 @@ nsh>
    -

    2.30 Create a FAT Filesystem (mkfatfs)

    +

    2.31 Create a FAT Filesystem (mkfatfs)

    @@ -1774,7 +1799,7 @@ mkfatfs [-F <fatsize>] <block-driver>
    -

    2.31 Create a FIFO (mkfifo)

    +

    2.32 Create a FIFO (mkfifo)

    @@ -1812,7 +1837,7 @@ nsh>
    -

    2.32 Create a RAMDISK (mkrd)

    +

    2.33 Create a RAMDISK (mkrd)

    @@ -1863,7 +1888,7 @@ nsh>
    -

    2.33 Mount a File System (mount)

    +

    2.34 Mount a File System (mount)

    @@ -1942,7 +1967,7 @@ nsh> mount
    -

    2.34 Rename a File (mv)

    +

    2.35 Rename a File (mv)

    @@ -1960,7 +1985,7 @@ mv <old-path> <new-path>
    -

    2.35 Mount an NFS file system (nfsmount)

    +

    2.36 Mount an NFS file system (nfsmount)

    @@ -1979,7 +2004,7 @@ nfsmount <server-address> <mount-point> <remote-path>
    -

    2.36 Check Network Peer (ping)

    +

    2.37 Check Network Peer (ping)

    @@ -2012,7 +2037,7 @@ nsh>
    -

    2.37 Send File Via TFTP (put)

    +

    2.38 Send File Via TFTP (put)

    @@ -2047,7 +2072,7 @@ put [-b|-n] [-f <remote-path>] -h <ip-address> <local-path>
    -

    2.38 Show Current Working Directory (pwd)

    +

    2.39 Show Current Working Directory (pwd)

    @@ -2077,7 +2102,7 @@ nsh>
    -

    2.39 Remove a File (rm)

    +

    2.40 Remove a File (rm)

    @@ -2111,7 +2136,7 @@ nsh>
    -

    2.40 Remove a Directory (rmdir)

    +

    2.41 Remove a Directory (rmdir)

    @@ -2146,7 +2171,7 @@ nsh>
    -

    2.41 Set an Environment Variable (set)

    +

    2.42 Set an Environment Variable (set)

    @@ -2172,7 +2197,7 @@ nsh>
    -

    2.42 Execute an NSH Script (sh)

    +

    2.43 Execute an NSH Script (sh)

    @@ -2190,7 +2215,7 @@ sh <script-path>
    -

    2.43 Wait for Seconds (sleep)

    +

    2.44 Wait for Seconds (sleep)

    @@ -2207,7 +2232,7 @@ sleep <sec>
    -

    2.44 Unmount a File System (umount)

    +

    2.45 Unmount a File System (umount)

    @@ -2237,7 +2262,7 @@ nsh>
    -

    2.45 Unset an Environment Variable (unset)

    +

    2.46 Unset an Environment Variable (unset)

    @@ -2263,7 +2288,7 @@ nsh>
    -

    2.46 URL Decode (urldecode)

    +

    2.47 URL Decode (urldecode)

    @@ -2280,7 +2305,7 @@ urldecode [-f] <string or filepath>
    -

    2.47 URL Encode (urlencode)

    +

    2.48 URL Encode (urlencode)

    @@ -2297,7 +2322,7 @@ urlencode [-f] <string or filepath>
    -

    2.48 Wait for Microseconds (usleep)

    +

    2.49 Wait for Microseconds (usleep)

    @@ -2314,7 +2339,7 @@ usleep <usec>
    - 2.49 Get File Via HTTP (wget) + 2.50 Get File Via HTTP (wget)
    @@ -2341,7 +2366,7 @@ wget [-o <local-path>] <url>
    -

    2.50 Hexadecimal Dump of Memory (xd)

    +

    2.51 Hexadecimal Dump of Memory (xd)

    @@ -4011,7 +4036,7 @@ mount -t vfat /dev/ram1 /tmp
  • Background commands
  • Background command priority
  • binfs
  • -
  • break
  • +
  • break
  • Built-In applications
  • Built-In application start-up main()
  • Built-in variables
  • From cc2f78b6ed021a45f37441e9eaaee2231e0481d5 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 18 Jan 2014 10:26:12 -0600 Subject: [PATCH 1220/1518] NSH: More break documentation --- Documentation/NuttShell.html | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index 9e7b1a77cb..8e3497552f 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -2449,6 +2449,11 @@ nsh> CONFIG_NETUTILS_CODECS && CONFIG_CODECS_BASE64 CONFIG_NSH_DISABLE_BASE64ENC + + break + !CONFIG_NSH_DISABLESCRIPT && !CONFIG_NSH_DISABLE_LOOPS +   + cat CONFIG_NFILE_DESCRIPTORS > 0 From 58e3d09c9611aeb8dbf2b8f6c5533cc747bff629 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 20 Jan 2014 13:10:30 -0600 Subject: [PATCH 1221/1518] Minor documentation updates and other cosmetic changes --- Documentation/NuttX.html | 1 - Documentation/NuttxPortingGuide.html | 4 +--- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 55192bc47e..ff565f2b8c 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -2598,7 +2598,6 @@ nsh> This board is based on the NXP LPC1769. The initial release was included NuttX-6.26. The Nuttx Buildroot toolchain is used by default. - This is still a port under development. Verifed configurations include the "Hello, World!" example application and a THTTPD demonstration. Refer to the NuttX board README file for further information.

    diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 7da6aafd40..8c67c28ada 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -832,7 +832,6 @@
  • configs/lpcxpresso-lpc1768: Embedded Artists base board with NXP LPCExpresso LPC1768. This board is based on the NXP LPC1768. The Code Red toolchain is used by default. - STATUS: Under development.
  • configs/m68322evb: @@ -870,8 +869,7 @@
  • configs/ne64badge: Future Electronics Group NE64 /PoE Badge board based on the MC9S12NE64 hcs12 cpu. This port uses the m9s12x GCC toolchain. - STATUS: Under development. The port is code-complete but has - not yet been fully tested. + STATUS: The port is code-complete but was never fully tested.
  • configs/ntosd-dm320: From 039d07ed9c395d0982d56a1bcd9566d6bd413dc5 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 22 Jan 2014 11:50:37 -0600 Subject: [PATCH 1222/1518] configs/16z: Add support for 16z board --- Documentation/README.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/README.html b/Documentation/README.html index 705e2b91d2..900cf5a49f 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -48,6 +48,8 @@ | |- audio/ | | `- README.txt | |- configs/ + | | |- 16z/ + | | | `- README.txt | | |- amber/ | | | `- README.txt | | |- arduino-due/ From 0eb222231eb37f9f79aedbe019eca8548ed64fd5 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 24 Jan 2014 14:28:49 -0600 Subject: [PATCH 1223/1518] rename up_led*() functions to board_led_*() --- Documentation/NuttxPortingGuide.html | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 8c67c28ada..57f1383884 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -2679,13 +2679,13 @@ else /* Defined in board/up_leds.c */ #ifdef CONFIG_ARCH_LEDS -extern void up_ledinit(void); -extern void up_ledon(int led); -extern void up_ledoff(int led); +extern void board_led_initialize(void); +extern void board_led_on(int led); +extern void board_led_off(int led); #else -# define up_ledinit() -# define up_ledon(led) -# define up_ledoff(led) +# define board_led_initialize() +# define board_led_on(led) +# define board_led_off(led) #endif

    @@ -2693,14 +2693,14 @@ extern void up_ledoff(int led);

    • - void up_ledinit(void) is called early in power-up initialization to initialize the LED hardware. + void board_led_initialize(void) is called early in power-up initialization to initialize the LED hardware.
    • - up_ledon(int led) is called to instantiate the LED presentation of the event. + board_led_on(int led) is called to instantiate the LED presentation of the event. The led argument is one of the definitions provided in <board-name>/include/board.h.
    • - up_ledoff(int ledis called to terminate the LED presentation of the event. + board_led_off(int ledis called to terminate the LED presentation of the event. The led argument is one of the definitions provided in <board-name>/include/board.h. Note that only LED_INIRQ, LED_SIGNAL, LED_ASSERTION, and LED_PANIC indications are terminated. From 98b8e3dcef3d5b4951fa8b8f806c41054234ed4f Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 25 Jan 2014 08:56:40 -0600 Subject: [PATCH 1224/1518] Improve documentation of naming conventions --- Documentation/NuttxPortingGuide.html | 223 ++++++++++++++++----------- 1 file changed, 134 insertions(+), 89 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 57f1383884..04f122858c 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

      NuttX RTOS Porting Guide

      -

      Last Updated: September 28, 2013

      +

      Last Updated: January 25, 2013

      @@ -72,44 +72,45 @@
    4.0 Architecture APIs 5.0 NuttX File System
    @@ -1631,8 +1632,52 @@ The system can be re-made subsequently by just typing make. other header files.

    -

    4.1 APIs Exported by Architecture-Specific Logic to NuttX

    -

    4.1.1 up_initialize()

    +

    4.1 Naming and Header File Conventions

    + +
      +
    • +

      + Common Microprocessor Interfaces. + Any interface that is common to all microprocessors should be prefixed with up_ and prototyped in include/nuttx/arch.h. + The definitions in that header file provide the common interface between NuttX and the architecture-specific implementation in arch/. +

      +
      + up_ is supposed to stand for microprocessor; the u is like the Greek letter micron: µ. So it would be µP which is a common shortening of the word microprocessor. I don't like that name very much. I wish I would have used a more obvious prefix like arch_ instead -- then I would not have to answer this question so often. +
      +
    • +
    • +

      + Microprocessor-Specific Interfaces. + An interface which is unique to a certain microprocessor should be prefixed with the name of the microprocessor, for example stm32_, and be prototyped in some header file in the arch/ directories. +

      +

      + There is also a arch//include//chip.h header file that can be used to communicate other microprocessor-specific information between the board logic and even application logic. + Application logic may, for example, need to know specific capabilities of the chip. + Prototypes in that chip.h header file should follow the microprocessor-specific naming convention. +

      +
    • +
    • +

      + Common Board Interfaces. + Any interface that is common to all boards should be prefixed with board_ and should also be prototyped in include/nuttx/arch.h. + These board_ definitions provide the interface between the board-level logic and the architecture-specific logic. +

      +

      + There is also a configs//include/board.h header file that can be used to communicate other board-specific information between the architecture logic and even application logic. + Any definitions which are common between a single architecture and several boards should go in this board.h header file; + include/nuttx/arch.his reserved for board-related definitions common to all architectures. +

      +
    • +

      + Board-Specific Interfaces. + Any interface which is unique to a board should be prefixed with the board name, for example stm32f4discovery_. + Sometimes the board name is too long so stm32_ would be okay too. + These should be prototyped in configs//src/.h and should not be used outside of that directory since board-specific definitions have no meaning outside of the board directory. +

    • +
    + +

    4.2 APIs Exported by Architecture-Specific Logic to NuttX

    +

    4.2.1 up_initialize()

    Prototype: void up_initialize(void);

    @@ -1653,7 +1698,7 @@ The system can be re-made subsequently by just typing make. services are available.

    -

    4.1.2 up_idle()

    +

    4.2.2 up_idle()

    Prototype: void up_idle(void);

    Description. @@ -1667,7 +1712,7 @@ The system can be re-made subsequently by just typing make. this is where power management operations might be performed.

    -

    4.1.3 up_initial_state()

    +

    4.2.3 up_initial_state()

    Prototype: void up_initial_state(FAR struct tcb_s *tcb);

    Description. @@ -1690,7 +1735,7 @@ The system can be re-made subsequently by just typing make. then all threads should have kernel-mode privileges.

    -

    4.1.4 up_create_stack()

    +

    4.2.4 up_create_stack()

    Prototype: STATUS up_create_stack(FAR struct tcb_s *tcb, size_t stack_size, uint8_t ttype);

    Description. @@ -1742,7 +1787,7 @@ The system can be re-made subsequently by just typing make.

  • -

    4.1.5 up_use_stack()

    +

    4.2.5 up_use_stack()

    Prototype: STATUS up_use_stack(FAR struct tcb_s *tcb, FAR void *stack, size_t stack_size);

    @@ -1781,7 +1826,7 @@ The system can be re-made subsequently by just typing make.

    -

    4.1.6 up_stack_frame()

    +

    4.2.6 up_stack_frame()

    Prototype: FAR void *up_stack_frame(FAR struct tcb_s *tcb, size_t frame_size);

    @@ -1831,7 +1876,7 @@ The system can be re-made subsequently by just typing make. The alignment of the returned value is the same as the alignment of the stack itself

    -

    4.1.7 up_release_stack()

    +

    4.2.7 up_release_stack()

    Prototype: void up_release_stack(FAR struct tcb_s *dtcb);

    Description. @@ -1870,7 +1915,7 @@ The system can be re-made subsequently by just typing make. -

    4.1.8 up_unblock_task()

    +

    4.2.8 up_unblock_task()

    Prototype: void up_unblock_task(FAR struct tcb_s *tcb);

    Description. @@ -1893,7 +1938,7 @@ The system can be re-made subsequently by just typing make. -

    4.1.9 up_block_task()

    +

    4.2.9 up_block_task()

    Prototype: void up_block_task(FAR struct tcb_s *tcb, tstate_t task_state);

    Description. @@ -1919,7 +1964,7 @@ The system can be re-made subsequently by just typing make. -

    4.1.10 up_release_pending()

    +

    4.2.10 up_release_pending()

    Prototype: void up_release_pending(void);

    Description. @@ -1936,7 +1981,7 @@ The system can be re-made subsequently by just typing make. function is called.

    -

    4.1.11 up_reprioritize_rtr()

    +

    4.2.11 up_reprioritize_rtr()

    Prototype: void up_reprioritize_rtr(FAR struct tcb_s *tcb, uint8_t priority);

    Description. @@ -1971,7 +2016,7 @@ The system can be re-made subsequently by just typing make. -

    4.1.12 _exit()

    +

    4.2.12 _exit()

    Prototype: void _exit(int status) noreturn_function;

    Description. @@ -1985,7 +2030,7 @@ The system can be re-made subsequently by just typing make. before performing scheduling operations.

    -

    4.1.13 up_assert()

    +

    4.2.13 up_assert()

    Prototype:
    void up_assert(FAR const uint8_t *filename, int linenum);

    @@ -1994,7 +2039,7 @@ The system can be re-made subsequently by just typing make. Assertions may be handled in an architecture-specific way.

    -

    4.1.14 up_schedule_sigaction()

    +

    4.2.14 up_schedule_sigaction()

    Prototype: void up_schedule_sigaction(FAR struct tcb_s *tcb, sig_deliver_t sigdeliver);

    @@ -2041,7 +2086,7 @@ The system can be re-made subsequently by just typing make. is defined.

    -

    4.1.15 up_allocate_heap()

    +

    4.2.15 up_allocate_heap()

    Prototype: void up_allocate_heap(FAR void **heap_start, size_t *heap_size);

    Description. @@ -2052,14 +2097,14 @@ The system can be re-made subsequently by just typing make. If a protected kernel-space heap is provided, the kernel heap must be allocated (and protected) by an analogous up_allocate_kheap().

    -

    4.1.16 up_interrupt_context()

    +

    4.2.16 up_interrupt_context()

    Prototype: bool up_interrupt_context(void)

    Description. Return true if we are currently executing in the interrupt handler context.

    -

    4.1.17 up_disable_irq()

    +

    4.2.17 up_disable_irq()

    Prototype:

    -

    4.3.3 Common LED interfaces

    +

    4.5.3 Common LED interfaces

    The <arch-name>/src/common/up_internal.h probably has definitions @@ -2679,9 +2724,9 @@ else /* Defined in board/up_leds.c */ #ifdef CONFIG_ARCH_LEDS -extern void board_led_initialize(void); -extern void board_led_on(int led); -extern void board_led_off(int led); +void board_led_initialize(void); +void board_led_on(int led); +void board_led_off(int led); #else # define board_led_initialize() # define board_led_on(led) From 2d075f15466830df6247f599794eb74a5ed963a5 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 27 Jan 2014 07:16:26 -0600 Subject: [PATCH 1225/1518] Correct document date --- Documentation/NuttxPortingGuide.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 04f122858c..797f18aa5a 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

    NuttX RTOS Porting Guide

    -

    Last Updated: January 25, 2013

    +

    Last Updated: January 25, 2014

    From 29515aa1d08be52279d700d07e11353c6f35d254 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 30 Jan 2014 09:45:01 -0600 Subject: [PATCH 1226/1518] Final prep for 6.33 release --- Documentation/NuttX.html | 182 +++++++++++++++++++++++++++------------ 1 file changed, 128 insertions(+), 54 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index ff565f2b8c..a1d3c9898b 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

    NuttX RTOS

    -

    Last Updated: January 12, 2014

    +

    Last Updated: January 30, 2014

    @@ -1130,13 +1130,13 @@

    Released Versions

    In addition to the ever-changing GIT repository, there are frozen released versions of NuttX available. - The current release is NuttX 6.32. - NuttX 6.32 is the 99th release of NuttX. - It was released on December 7, 2013, and is available for download from the + The current release is NuttX 6.33. + NuttX 6.33 is the 100th release of NuttX. + It was released on January 30, 2014, and is available for download from the SourceForge website. - Note that the release consists of two tarballs: nuttx-6.32.tar.gz and apps-6.32.tar.gz. + Note that the release consists of two tarballs: nuttx-6.33.tar.gz and apps-6.33.tar.gz. Both may be needed (see the top-level nuttx/README.txt file for build information). - Release notes for NuttX 6.32 are available here. + Release notes for NuttX 6.33 are available here. The change log associated with the release is available here. Unreleased changes after this release are available in GIT (see below).

    @@ -1171,7 +1171,6 @@ - - + + + + + + + + + @@ -3585,25 +3643,41 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1); From b4861687ff924beb849441a66401052d643cf076 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 1 Feb 2014 16:44:21 -0600 Subject: [PATCH 1227/1518] Remove some old, unused images --- Documentation/NuttXCommercial.html | 15 --------------- Documentation/NuttXDocumentation.html | 15 --------------- Documentation/NuttXLinks.html | 16 ---------------- Documentation/NuttXRelated.html | 15 --------------- Documentation/award2_151_50.png | Bin 10757 -> 0 bytes Documentation/editor_pick_2.png | Bin 4951 -> 0 bytes Documentation/rss.gif | Bin 451 -> 0 bytes 7 files changed, 61 deletions(-) delete mode 100644 Documentation/award2_151_50.png delete mode 100644 Documentation/editor_pick_2.png delete mode 100644 Documentation/rss.gif diff --git a/Documentation/NuttXCommercial.html b/Documentation/NuttXCommercial.html index 9161df40d2..27ce21a8d9 100644 --- a/Documentation/NuttXCommercial.html +++ b/Documentation/NuttXCommercial.html @@ -55,21 +55,6 @@
  • ISOTEL Research
  • DSPWorks
  • - - - - - -
    @@ -1196,6 +1195,7 @@
  • ARM920T (1)
  • ARM926EJS (4)
  • ARM Cortex-A5 (1)
  • +
  • ARM Cortex-A8 (1)
  • ARM Cortex-M0/M0+ (2)
  • ARM Cortex-M3 (25)
  • ARM Cortex-M4 (10)
  • @@ -1224,17 +1224,17 @@
  • PIC32MX (MIPS) (4)
  • -
  • Renesas/Hitachi:
  • +
  • ZiLOG
  • +
  • Allwinner +
      +
    • A10 (Cortex-A8)
    • +
    +
  • Atmel
  • + ARM Cortex-A8. +

    +

    + Allwinner A10. + These following boards are based on the Allwinner A10 have are supported by NuttX: +

    +
      +
    • +

      + pcDuino v1. + A port of NuttX to the pcDuino v1 board was first released in NuttX-6.33. + See http://www.pcduino.com/ for information about pcDuino Lite, v1, and v2 boards. + These boards are based around the Allwinner A10 Cortex-A8 CPU. + This port was developed on the v1 board, but the others may be compatible: +

      +

      + Refer to the NuttX board README file for further information. +

      +

      + STATUS. + This port was an experiment was was not completely developed. + This configuration builds and runs an NuttShell (NSH), but only if a patch to work around some issues is applied. + While not ready for "prime time", the pcDuino port is functional and could the basis for a more extensive development. + There is, at present, no work in progress to extend this port, however. +

      +
    • +
    +
    @@ -2248,7 +2289,7 @@ nsh> see the NuttX board README file for further information about the NuttX port.

    - Intially Spark support was introduced in NuttX 6.31 and completed in NuttX 6.32. + Initially Spark support was introduced in NuttX 6.31 and completed in NuttX 6.32. Most of this work is the result of the effort of David Sidrane.

    @@ -2335,43 +2376,60 @@ nsh> Chip support for the STM32 F1 "Connectivity Line" family has been present in NuttX for some time and users have reported that they have successful brought up NuttX on there proprietary boards using this logic.

      -
    • - Olimex STM32-P107 - Support for the Olimex STM32-P107 was contributed by Max Holtzberg and first appeared in NuttX-6.21. That port features the STMicro STM32F107VC MCU. -

        +
      • +

        + Olimex STM32-P107 + Support for the Olimex STM32-P107 was contributed by Max Holtzberg and first appeared in NuttX-6.21. That port features the STMicro STM32F107VC MCU. +

        +

        STATUS: Configurations for the basic OS test and NSH are available and verified. Networking is functional. Support for an external ENCX24J600 network was added in NuttX 6.30. -

      -

    • -
    • - Shenzhou IV - A port of NuttX to the Shenzhou IV development board (See www.armjishu.com) featuring the STMicro STM32F107VCT MCU was added in NuttX-6.22. -

        -

        - STATUS: - In progress. - The following have been verified: - (1) Basic Cortex-M3 port, - (2) Ethernet, - (3) On-board LEDs. - Refer to the NuttX board README file for further information. -

        -
      -

    • -
    • - ViewTool STM32F103/F107 - Support for the Viewtool STM32F103/F107 board was added in NuttX-6.32. That port features the STMicro STM32F107VCT6 MCU. -

        -

        - STATUS: - A basic NuttShell (NSH) configuration is available. - Because of commonality with other STM32 F107 boards, this basic configuration could easily to extended to support things like USB or networking. - Refer to the SViewtool STM32F103/F107 README file for further information. -

        -
      -

    • +

      + +
    • +

      + Shenzhou IV + A port of NuttX to the Shenzhou IV development board (See www.armjishu.com) featuring the STMicro STM32F107VCT MCU was added in NuttX-6.22. +

      +

      + STATUS: + In progress. + The following have been verified: + (1) Basic Cortex-M3 port, + (2) Ethernet, + (3) On-board LEDs. + Refer to the NuttX board README file for further information. +

      +
    • +
    • +

      + ViewTool STM32F103/F107 + Support for the Viewtool STM32F103/F107 board was added in NuttX-6.32. That board features the STMicro STM32F107VCT6 MCU. + Networking, LCD, and touchscreen support were added in NuttX-6.33. +

      +

      + Three configurations are available: +

      +
        +
      1. + A standard NuttShell (NSH) configuration that will work with either the STM32F103 or STM32F107 part. +
      2. +
      3. + A network-enabled NuttShell (NSH) configuration that will work only with the STM32F107 part. +
      4. +
      5. + The configuration that was used to verify the Nuttx high-priority, nested interrupt feature. +
      6. +
      +

      + STATUS: + Networking and touchscreen support are well test. + But, at present, neither USB nor LCD functionality have been verified. + Refer to the SViewtool STM32F103/F107 README file for further information. +

      +
    - Zilog Z16F. + Zilog ZNEO Z16F.

    -

    - Zilog z16f Microcontroller. - This port use the Zilog z16f2800100zcog development kit and the Zilog - ZDS-II Windows command line tools. - The development environment is either Windows native or Cygwin under Windows. -

    -
      +
        +
      • +

        + Zilog z16f2800100zcog development kit. + This port use the Zilog z16f2800100zcog development kit and the Zilog + ZDS-II Windows command line tools. + The development environment is either Windows native or Cygwin under Windows. +

        STATUS: The initial release of support for the z16f was made available in NuttX version 0.3.7. + A working NuttShell (NSH) configuration as added in NuttX-6.33 (although a patch is required to work around an issue with a ZDS-II 5.0.1 tool problem). Refer to the NuttX board README file for further information.

        -
      + +
    • +

      + Toyaga 16z. + This port if for the Toyaga 16z board that also use the Zilog ZNEOZ16F2811AL20EG microntroller with the Zilog ZDS-II Windows command line tools. + The development environment is either Windows native or Cygwin under Windows. +

      +

      + STATUS: + The initial release of support for the 16z board was made available in NuttX version 6.33. + Both the 16z board and the NuttX port are works in progress and are not ready for usage as of NuttX-6.33. + Refer to the NuttX board README file for further information. +

      +
    • +
    - - NuttX - -
    - - NuttX - NuttX - -
    diff --git a/Documentation/NuttXDocumentation.html b/Documentation/NuttXDocumentation.html index e344945759..396e93c93d 100644 --- a/Documentation/NuttXDocumentation.html +++ b/Documentation/NuttXDocumentation.html @@ -65,21 +65,6 @@ Commercial Sites - - - - NuttX - - - - - - - NuttX - NuttX - - - diff --git a/Documentation/NuttXLinks.html b/Documentation/NuttXLinks.html index a7f7a15bb9..f278d8376b 100644 --- a/Documentation/NuttXLinks.html +++ b/Documentation/NuttXLinks.html @@ -29,7 +29,6 @@
  • Toolchains
  • Browse GIT
  • Free Ports
  • -
  • @@ -62,21 +61,6 @@ Commercial Sites - - - - NuttX - - - - - - - NuttX - NuttX - - - diff --git a/Documentation/NuttXRelated.html b/Documentation/NuttXRelated.html index 9d26a98957..bd1bc83621 100644 --- a/Documentation/NuttXRelated.html +++ b/Documentation/NuttXRelated.html @@ -53,21 +53,6 @@ Commercial Sites - - - - NuttX - - - - - - - NuttX - NuttX - - - diff --git a/Documentation/award2_151_50.png b/Documentation/award2_151_50.png deleted file mode 100644 index 219cb6d8025625e585e6a5f2d19bd4b7e9c31bd4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10757 zcmV+gD*DxlP)NklUyXyX^o`@a*)Sk6F@Abn> zcXd^D*SEgESOsyz9j^=le%`K+5P$%YKcUZwvNE|NSH^Jv=KhGHFU7w_aham~EB&6f zA4P5AaeqlU&mSHi<@r^AcTcFY3+3gMDk|&#F1f$FOi>+P_vYGAWo_pBp+KtAe&yOz z%KJB90rh~7|Bz2HFv2^)AUJrHJk@m=IsENiNkvJ6gSp9MN4oPoMGMJ3>-@?;WzSw zylk}L2vfiGVipm~102HRobq6)azK=^8&qJd>FV%8P#HkW$Id7_uT&`$=h>vJ0%3rX zWdIXpY**B`+`uDBftzC^p~`?Nrk*bbemR4BVO4p9*?K$p$;9Cn^?N#2jbJq_2YVdp z#6ehyw4ik|!dFJW$6cvg={B!H3d3W@2#@hp1u)4!4j@ozff$zrOvz1yzvG0xi2b~y!iX?c40wvO3WGe8IIPHsvjmo4 zdJ*K+cO{BIBc_&B9->rvh(0gzD9Xi}^1wnRx$5<<f^q4ZEKviItN(M#6vcj9yJb!zMN$<9ItotM_ zfq^OKUmZQ4Z}fb-h)q-;Y&)*_G%bMv?t1g%?2O#Pjw?SyOVFc^Q|I!HXaDD{n8Z^D ztgJG5D~)-Pth_~IQBmWs4X&^nVL{6xM6eEJIVeA%43I)ItWv0eLWL9r6^o1$)TyyD z{YbopmIbr23WS$6TR{vLTcN_sm=JHRn`O72JNK157@r=vd=~Xi_pD<2hAVd4!(#Vj zbx|b3-)82jQ)8Hcxw;c(F_o7oyFS2D1k5DWGUffQgqJuIQyIn6+AC+Ra>ZUu1(xAq zF^UTMT3#=zEFSMV^htIe+33Cl zj-EG#O>RBoE^a;JE?vhPA9Gnu6xgstKQB}Er+61cDVr6$5>zGUnJi+%a%NPO!DZrb zjd+sl=l8R)$w6iIqQ)akPR`-^$xHa9`Y3T~P77QPCXbA*VC~_@F&DRDq%9nuso6_p zAuTY*1jd-b#Kat)<5IFSx!pWG^vzB`A2#miq9s|XtD=xOfr=jI=)_{~l^%~a%I?5K1$WR-N(mwDQvB4UCt^OAK zG*z|djCI_AiUyo3n*F+~t*SAldOWg;d_oKb_{rEg-7c}@i@%)>G0{;YMz`GEB# z>n}J9YN9wIfwE(Wxe1mI9pqE}w=en3{% z9^h+hzfDV^pLI=7v2xBq4o$2ArC8UziaQsD(DP z*jyWWgoX5-wrI4m_^rB`U%oz0Ez*2sa_#6+K@72Inr)Pnk zArG*A%_3-NMF!#!7)1pKkWE?CLWjC}quh|$Il~K|*{~`B78Q&OL78J$lsIz_O|E9= zu@C0&ZqB(Vgy342wVob&7co0jvAc)HSF$s5OQ8-A7sWKD?#$sTF&ny@S(hw;iwRaQ zYC;4eQ^S4Sz#GvT>=S)B0}^MXic~bnnl-;fD&q zENBcu;j=8QuqoHHQ&r>>CJev?Kbf~41`-ZS%;N|%ryyJSEr(`fz$H;*cC(@^PG<@Q zrVlWYascI=DEMF8Y7N6-_S02pU!1^Oi7#iVVx}r~YZ!u--~eAZ<9mdxm@5_!v0?rL zF0exMPObt(Ue|hc^n4CYtS%YHmg*tCu=YoJK&`CnWy9i!^T6sIUon+QsiX_4%3+KW zJ@()4Tg)p@NmWJP@GvX04oDq57KQ~>p)zqu2uKS0nU5-}#1MiiOOVXUnZ=iQlP2E? z!pK=M+L^ji_EN8+jM4CxKs#s$Q4@U-tU+ZDfQSPD{f<%~l7gY^{C{U+(X2JuDU)Ht z{QKE3|Nbe(?&|$?Ui@uXr~$WY=v|&wZdmjX8(jZax!)_64gIHdMdat@DbdJZPMFBP zmoa1*kpi*;QbCMU77UxbJbpgMSX{!q^J;u7uCHcpaOT8{OMK7avm7v0{t$kHX5S!Z z8+&Hw#`bV091zRc`^J74dIK>!peKS2VnQH>4CJWABj)=mP`dDT%1&uVfl-OIDAlzD zZdpOhspa8;>q|p6(F^#-Yn?pY|2`0c4GSM2WW|WtA)X$(qSRs$5OYGV^;lHL$a#F@ zg>Uiju?>}3t31>trZZG3=~?BT`nTZck{CQ;U&PYq9^i_z>al8rNZW^qSEB|^`bXyT zEBnL52o(X#Pkq2bDrgA$5CTTx*|PbqJ5?=Goa28D!z_L%1%^SbNOCT(@^tnJ&5Bd> z7d7ph=r{oK*|pqu z@GIPQ@GGTOmn=NjdX{jDGAhH%CKKDkq+fEKpOMFD)g)&=)*Jwr(#*0 zvPLiVKSzUq!gZb&J0?w(VX{&jVu?J;QD@m{htY&k%&i*4?;Jrz4Wgqh#HnFKHS(l+ z4ZCXIJxd4h?7-|9kDN7d-2pKaNLX2WkaNQ?X>j$ux70a{tc-@d3#=%RTn-NP*A#jl zE{(GGr#P(ARPhK`^T@>20DQ{#W3IpaM$Q|0maFzW#2?ZhAsqDO8LRLdI-XS@un@p- zJd5KNFmbrD=FbHDDHjbz18qo921|^?T&P~)XmZ(U>yKxc`+0xWJs5_-F%5n;{so>h zE}x#xy^;nidJc`s85y3Lv{MF+9+FsPB?Z6AKq$hWK% zNGXw0l9iHxAqiQ6gl)5-uAADb38dA4s9A-Yc&Xqi7B*NRutKad_j6gzQ~W7*W0}vX z5)LFA0)OP4!RK^1NoDEFEN09I>y)0E{4>*eCGu?>MW?iDL%8~eCO-oV;etk>gdnRF zS*ZsvB^9;=!yT5SBT=$2I$2v`OQlnpl|mp;N|JW;wZftOGt%Af?I!OG=575?e_eX>d^}!a23Cp)5bhaR@Ynvk=lJ zz_38s;PZiKL=fYe(1Y}(-$}o{U`DcdXW$ubuKhL2s@6{>v-D>dF(KKx^9FvD-STNe0=+<$&UJEb&O4TJ!{0accP z$t=J%DeD+F=R^7!1Xp6N{uURfKgcjkd0_Bjlrk`Ja2yRPDJ3XL+%~8);=I4%R|Ko$ zND%}lg_1)U^VTE#e+FhPR4qnefKd(R0v3q_TwixDzZl&_cAC_iGphG z8l>lap8?>`-fQ{%i(e+~0&4er{+_mmgZcZSnGl_Cevr;Lb*N|4^84Ac=5AVR`T>Z< zT3B)49XV%VsR%QmH8e!;EuRHo$D7x%dDmw_!S>6yvuRB?J6>;R^PfKr3Ld@Tf78Bb z4?Fg~o6V1Z3KaC-`d?|S8)C)J|Cva%k=8lG^nUuk>H1z>&*q2!E}t{M?aF)Ea%rg# zZAZ`LZ2r@SIk)97yElKQQl+UkQ^BIuZkElHt z0`tHh#AsL#PA^Iw$Eco*sA=S?h9`M<-J=!zwW|7cJ~QuoGzW(ffhI5}z|4>`t2w3S z<1+-7DKK3t&QV}1Euy}8(KlH)|7red_h(u4Z#&uY{ALb~XIb>GKPPnOJ$!f1O#pmn z&rKM2?xg--f5pj!!(c*kP0Lex;9S}K3TbC*_P~YRKceBjokX*>YnGoXchiLd+7d_Ec)28ZlEYskRrbDzZcrAavXIOjVTjvZG5)K+80JJaO3qZIk zPHWu|k?|%X<4wB0GhWd3rD|wjy5Fa+}WpL#jr1b%d0ed0o^f7RBOiTn;;a~D) zZkqc;u5Ne=>DY{?1!)^%Sp!=tuB?BOYZu*(^w*$F0X`f2K2S$dseKrYAHZmM7pOjz zJc6iRfCyiO(bz$CFu=y9pL5xqKTqk`#kEiK`IhgnJaiBdS^;JXCC0&LFd&;bk!c{B zmh{K7^iE{hH1it8KSjrh_r)d|n**Zku1L`LVb>7r+7Z5WyA8+1coMkQe7{8)w%^k){3$_$}o z+_f5Fh?=trF1nQuEcrDbUT_D?tNSojh8iQm)!}YFwDL}TfqERX3S~)@WkX;AqUobx z*ceTpz-as=R4v0;_I<>hbx8XSl&K)NoVu!EZe8#rZfd%lRW%1`t9yyhEV_-)Ecibx zt~r7TT>zFJsZOAL7RnMFNH+1n@esR?$9Vo^g1y5jddD*KPuh$pB?IvwJwwX@_|1mz zv1#pN1qH$dkf*m>LEGFzw9W0MXJiH41Lx`iTk@2recoErPkYl#^o*^d>*N*mM0Koi z%bL5{cFvuI{V@+ytMH?3Zm(|Z)C#)$&e3fxe@2U>$z~!G&4jDsv^7R(Yt%sM>b*G6 zUO8~}4C-fXYd%6-^AUOmm(qRoEM4E4-4%Tc9cT6sO$FKU(&ZHa*wd#YHSH@8%pCqH zWh@OWrO-~%WQa*S3u@dgV}MGcs#oD}`Y>0m8sLj(ewQz;{w{yNrjw7H^;@cHny{@o zV7X?7>7bl_DAkWqe*?m|5D_>B5xNYSd>9$~1v0i1C;2D@*C4{}%ne5ASnw0RwB(=o z%%X3zq48IQYqA*i?clFPI(v2fJ_CI4dc2vwSb(eq<@$39_P#zgKJ;aJhL_X6Xb;=h z|CC3s|2E;O_>2ZX`}|k+ARb*u*U@!EGa=errZU&=_Ak*OANUI&!HNjSCB+G0$F&hiPB5hsZ<|U573y5{bjQ+_AGj zDcYCp)Ab#=h^_+{xuWs)DeZ21_r0jEZ>DYjF)sY+RwB`P75f+&)z`v-#O%P8W2~?X zEU6TxfU%Upa5{{#kCu6)(;DEF1IndJSct%dC{uzJ2YCpUeGU;g10(zaszOUxP#0z19EqsC3{ig*SORH3hqBTr zzonO|`QT7u0ZL4t2pE}Y;=;SX&E_XRP0w(v2H6!mW(3!!)jA7d`z5zCy79w={V^>X zTV5$?=)&$F(mi-Stu_5@T7JK_`XqF|v5|&9+{2Du9V6U+(GO{BI8?@5dLrc8y6ne{ ze&kldRWU6ZU4ZqRYSj!`J4jn&gzgjXp!@jQMAJ32FWyW0;=LvM)~0iw(Dhw&7o%VN zBH`+|7LChF0k-w=o7wvK&3Y27d&E23=pL;Nr?iMq1S>M2;Ux;C3oLE!vcIT;-(~Jys_q9Kubs_T2YRAi3*V=aV z@26Z12NFE`iQ5SW5_JCMYNE+t#W`#g1Iv*L$B{TLs2r&QW+3T{H4@MEfzaR*MlraG z4omAl`nw5M2CNwPvfxvQ>IEnls}^B-TRMAERUOt|`rSzTT17v7(s}+s?TY^}*{Hy?LXy7N7n{dPY`GVXls) zPrGfMn-6mLoN6U9sln8-{22`pm%SnrO++S|TsOt?0{C6#>RA0kLI27r;{!{Hj5QLj zPSCNYXG$Eh^Oz{cNvg3iBOJyl2)Z*lRd-|mms z2dtnYrFMiWS>$b3C@INGFv#)`7k9FD)wh7cS?ev~`~Y6PXCpvF*Y0@Nf*#`Iq` z4l0>X>_N-{9M?GTWBRW}sR?9eCy2SsxMHP3>e2W1-pJM$K3TMIwJZ3PYJ11P*#7b++hm z41_X}lM;K#M#cs))JaeaAe+@??9xLhcY~Fb!f-V471ud5Sx;o5#Ulftf|5RE5L6lP ziWB-|X?~X%3&^sdvh)~OSv=EaeWvMn)KKQJZ4q6JOqxk8p!+0{wKrBsqteKC*o};QZlV>l1iAtwPzVady z2aaPjH&Aze9lkjRGV3y!EDWGw2~r0ghM%^{OjHqQkuNx%)Wr6Q@{w z!+gwYfs-xBWMP6cDCxW3#Ao3&KneYiSfozY6Ii%{ z;TQUtmpxAH#R8eu<@#cC=}*k{NUob{(<&(0S`HrYh~sQMOB9o)J6-r&w>o zLrj;rHH1etYOy%RJ7KH*w<=n$uPEqQUi+&eT*g#WpV2E1QB|fhLn;_fDu&_?ed9^? z_D%Bgv2ot$kI_GtWIUcBm9a5|!-yT^@PGpQgmx|o17%Alj-J9;bScZf_!U-sd>QEz zV~p*Yz!0u@baf{o1&LmVjBH}X7d}tREoZajy&)3)28knX^rcAGGEG4uVh}%Ivixrw zS@yYG2%fv1Q*UN5T#>1=f&=3VOI9R#>K_X4!?SGBi!a&jZyJ$Xu9uZJRH9Q=7$oHd z8c~qUr^Q0k`T2zRrI}WrSKJ~%cwV-SjHEaf&oCOxP-{tQL>7U>Q39zXN+>raR*`Zn zUO3Xk`iu5s1Q#P5g%B40mc>LPZxTPa8{!I6C`8tAcdl`DFEkhozd+h)lE;n^Xr3f- z$_7JV`2-@X5DxkME|ecc27H#njwzByBTODWNNB!=uyvl{cs9rz6N}xMrKaxZrC|3* zT4`$z6g<(p2HAFbv+HQBSbS==h}2eh;0{!3H!B0y7k3TI$w#h z{qjaOojHeV9_XX{L_+^QtB$SDouc!lQMQ~PX4|EWtoY?2?!I<0ZB5l|eypDzdqzPi zMn88Z-N#~V{Npipe{?0Sb$%Lt@LI`cBipW=&z4Jc#%?5DqrP50EXFEnwR< zONc~MtoWCgw2!XZVD#&kmOj&KLu}sp2GN9Fwr8utc7`81^QXrHA zN}^nMgpyhpd-mi?oY-!igC#*pgZi~+Q8VAqk)Pki@vdG1^J=JTorB50#ihNgB?S1e(A}6j_7PKqd@=O@h!uN#Fg09QnoXFr3{qp5wzw z8ekg?C&KhZS4<-zl$&beAin!5;-6op^SKjrKChR+Z+`eN*clgeeKh>|HNt*_E$7!m zItfw|O*@F&_91TDN9T+EAZ;D$xhKMf_e5x$=V!~=AzeP3()HQ43#d5ajtCnc>!*Ew z6^~xi2dyqCQbXo0MWEV`@(9- zrfFYTO=LVnWHe4Lt##YFCc)dC`xPTf&e65>}zj~GSRbd|e^tt*zI|Gib z_W)4}qtw3xamVD8?PuIEk&Z-2TYK%5!c;bU#}_j`_&V69fGSj0Vg+hgeBBi^uRDu* z7tE*S>NBuvYmh0xF~K&$Hc%N8;WJqHE+66LCo!BiX+A&A{C9$qCMumPtILxzz%*#O z80M}WXYPstmaYfOCr}v;t|PH#dgIOBqOTlnc1FMaOezl$vT6Nda^I6N?G=xVLMonr zQ6yuKjzKz}2M(DOVWD4mWF)4`rxK7(=LbR$a+5b?od3^VubjK;V5qA2Q=$_^X+B(b2VDZ$J9qo^>74c5Lzw{B5fPP z6i6wwpVed2VC8_Q5`@n*01M@Sbjzk3A5RRQjjhZwaag8|Dn+>3L~Xf9GtTW#YaoFh zjFdb3uUgKwtCrJqa*VE*A`qJZ=@72AP+!$4Ef@auxjZ}U{;>9XcRn4V^NB+`AaD7= z9{`{G0Mf}bS~RA^HLcZ>wx%GFu_PoWT=#`TPu~RX%fmzlhUw{_pnY*Ik)ax*$t*iw zJi_)H*3#Z$60WxBIXVo<32+?3RaI<#_;t45cn+J^*6aG5tiG;tlVeh+4lQaRTx}7J zr(9-si1fvXCbNXA1Y{C)oT<}kx?Va;Yn_jd^A-@c(vWuFt7Aht0k%zaLbGgZok`E3 zxZYO5^n+GUe#h zPY3KQ1)1C9(VO!ISa*B5lz{M zZ#;td+VAN(bgTfb>Ve5T8h%em%j?JSVzZfP*z_E!YGl;ML8u8U%({tcR9$Xjx z;8A)`jMA~DiEw5dCPpAWrWq_Z%cZ01PmI$V(yzOx_c)P}nAWx8V-Sl%e4MZ!qKP!b z$LV_c2(94&9c$*&b9{vES9Lsc%cXkYyI(t~`zLKsiXD%?Lf6Yj*s^|wW)?dGu~Beb zaK*`ucZ)ekG%LoVkn!S?aF1WIgnuOE@ ztzoT?_8d5-nLU%pi`E%eiaHpiL=}@(Et6Iqj$v^myMVvjc`5XNA0z!N0zVib1U~KT zlpq{52poa1WdSUXR@y~YL0T*2I7NqD;mA2x-E!%ykAFJS!Em)a4qu2`j+A~B)CRIK~h89G)q z(6M#_U9TP`(l>)@c=sB!&?b{YL(7pFCkt4^5 z3{TL$dOqFzj}ke0T!T_N`r#52Y`)_m!T}%QV3qD;JX+{~O7|-|I!f2e$LKg`fi`mN zB-?H{i*V4-jwklfzH%4hKUZ^t~odH$o^e724BEe5OBEo|uoD`gcz zKuS&%Vi6U+QBzz*!2ZM{ww=6@dq*x|#yx7qwWt z`BJvsd@0d*lFdK;lLm>Dgo9P6+cs$t_|R@$kE?TaJ%5<)OIESvn)B#-@lAUAC&8c5 z(FUMnO(W{-?fTyC*Vy`p7eGlmAABC1EL+}lKHJ`RKG8&)t@rJw^YMLPXX)P4OEi%t z9IVnzn~KrBrjtL!Yk-K&SzNa|-`j z#m;K+mvP^NlrD1$-A?X3m_8RUdJ^PVk4(D2w7I{+bnn#(mwK_W?E=4OHcCh9f~LD5 z*|fkHC?ss=mYL}luP)Qcg5H)*LDqJk#l2>@{me}=(?@P=2K+&&3V|>1@7pR|AsBON zc_F@rS6*L5jm{ZND zUBieS;%H_ry{Tpnrss1o)y$|JBBOj{v5NBBRUvR*vi-Iwb@1guXSo9+HLI3;@};Bm z(xd{@bk|ing@Me~ZCd(V?tc>HfNWa&1?L8?ct;$=(1*)hP5y7)8$9^8fxuY5VT+ z|7{=ojI_vL5ldEaBsmX8Dy;k{XBUKbs!MK9iIRQejY6hCxpx@lv9q5lJh)-$95ERv z%=p}kb$ojEDF`e7CQ^|FxKpb$RT!Rm?j19h8fhAy>vIOFhY_ z*%+mn3&n9mTv3*bnVCg3U5oOP(q@EDjY>~(+ntX;kaS$3%xvUH66u?jtBXpTH_iQq^ z_n6deJ1(o|VyTW@*iFZAT+mY_qI1mYvb$BSC!guV0><7pfT{9rugmwDuaN5D^4=S*~oM2S~bLF>)_WmlUVz$`yl{-VUD zjK0}&nI+HCW&uo&QspcDF;$T;hCf(^3N%A{WMj{{#r%* zMPSL&w4dCve_WkQW<}m2m$pj;hJGK0%l4LEVOsn@Wzsm->w?v300000NkvXXu0mjf DRNKU` diff --git a/Documentation/editor_pick_2.png b/Documentation/editor_pick_2.png deleted file mode 100644 index 81e6e76a9260de08983bf371fb6d4c6aa5c772eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4951 zcmV-d6R7NoP)002n{0{{R3jauDR0004iP)t-s|NsC0 z|NjMPmnp{L2av4r@$slMAQNt{B!R9Nc%~zazw&S@0d22Az1kL7coBD~7jt^&oH{%^ zINydmeZZj*WU0BLYaLKj;-6~`Ep9f)zM)vy#L|_?fl;(RV@Vup3$jMsm~mQw(Sgc&Fk}TuFOJ@v+YYIB5aTMnMnDmPzY<8hPBHol*o~) zwG`&?_xbtpO^_>wvJOvf!nU-400001bW%=J06^y0W&i*Yg-Jv~RCwC0+Kpcl+tvs0 z1~2y_26;R^`Gypl9Yw2iI_gC+xNv<*NF{@qoW`MqG!23|lmij`>-V?z-t&TB<@r2I z1&2}R>)Ly-*)y9P>2zo%?TGJh1$it}1V>UHM~ry-Z?T^YE{op`{`~PSf;T8GTt6Qd zh*gRmigm;-ij#hEiwFG>es*<-{T}^+YaH&nz%HN3>rzFd(H^BB{te-Efu_$)pOY88 z9G8eYChAYIsLK$hG^1u6F>T0cJk<<5rc17xel>7U*>h!d zU5~h2rBupL_DU|DevR)lbe2Cu$6L<>AI@pe=stcg>%JN zE*aLo1)a68p`)>sGez^95D*P1zddhyDgernN<^-_T~I1=ttMA0vZkx}o9y4v<@HEy zT{&+WZTu1SLa$x0+pY2xT|Nj5A?ZxiD+-6$CVmTI+<;xY`QWbMO_6#5@! zaDC^@C=pPW385@B{ir7889N>iWuuVN=dJApuvyla;Yxy zc*c&d8;(E+TXCu&A%hiB0I!)6BQQ#Vp3@XArFvVY0Y=?C$pihu8d19t$V;j5lxYA1B) zC?$$aUKK>ImzZ8Je@QOaT9pd>sgo1!maN}eujxAsxN5XymU^+s55Cen`_(Na> zAM{9{=)DmRL}kcO=hd{aTP-_@4Z5Y-lMggH3@;B)ABvua;Ogtu>qomNdW>!GNI|Br>* zQK9?zyjMpb;m$RLCU8%A>x>b4SQH=F65p~WT<+byNt%ezF%aKED zIZ}u%M+$k#a~9*?Chp=f-5SMf7W5rMGNB+24xU6SDP_s_HQGwMVMkk8a1t!8t63G-6+qz=Jiy-B!I6TjPIz%c>H=~e=@@GgU!N`H z+KfqLKoVNOM*p}xQXJ#t=Z49JyJZ5+^jW;mU11uD$b|k}GQDg98;ze3M*l_%JBtfp z4zzuY_qk7SA&5-q_Y?33z8+zB3V#TUD)cI`Q7dsrp_d`$ENa-Mj!OD+( zrm$R&Tu$NY>Y&~xVM^E2R{-;hvj4S7Ksx5k*vxyA_r=Mxkr*sPGr!N!Pp<%23rjrS z#;SO1RkZ*}izO+bwZxt(iep5h@4^Or!%eoMs%4PCQfp+-HP8Nr+U{2l<9TKK>(hA- zJUsmU0x? z4l34;%!S?>IahSzy1`Gzd&*%vzq0*x>kpj)4+;438S`1XFJqgJACEnrn0WSh0=!9- z#F^(W9?sB69_e8Vb&X2QjlDu9n|rZNvFZo^;pI& zh2wE3;u_KN^Vk=UUn+;f=WTP~&=7zhpZzX;;B9U`{`PHi^V{acv*U>`A3jV%`0Mi* z40!mY!!oEY<4PL=O$vd0XzdJ+*7kVtG#^TaLU@*g>0~k#h9wDXGM>wqBq<-Kz@Nw? zn%aCmPh`gc$*-KkSBWs-A;t#*KR)|xw(ZzA5u1=sy!t>w^4)znGh_op$y_d1uN#sS zsw0l2YKnlVPzYIx(LU@-rRk@d_?aAld4H!GMVk4FXbq9{b3Jj~P(#KC$@r=>9LSKK#Oby})@B z$e#&VcLG()UoIzrV!%++h!iWaZFe1;Hc<4xo8CsbTp-~4nRo95kc5vPZ;IrZG5zZ+ z;RBFPC!&dw87RyQ)>WxhCrHi$)-|b>%mJFC7djZPXJ=;^wu=Io&vzD^*jCx5?YsB2 z@W;(cqfrhJaBpVK212-LCr`wqU&wd&E(g9hfoG$Bd{YlG;OO~iSkgE!S6{UIU@Ye! zRYsAj9Dq&aZj?Py%Jf*hlQ^e+CJ+UXwQu8(n^AA05MV$B34Hhab4xg8CU2TPrm-=7 zU--7~F8+JX2A;D7(kQOianXwkBQh9zOKp#5jBGWRLpj6<_Y2^;B%N_!SW-LZ=k$vv z5Cu@=?V)~ z0XR(~d6VMXr)lQfMx4G}dyVPqP{(;DnU~EIM>}L@FvEbM(DE`L22xAUS-@ixn6C1j zVZRBa{>OY%NT4r}ax>ffE)#G`n`fsD5~{mJ2bjT7D)2i9Aq1JSoO&T4Y`6lm!@XVLgGnAPXu&Ir?@BeN-eY%AN z24=f}pU0lRG2;<6@aE?9G@e=hwplE`V`n@L1SiM(V4YwzitPyD#1f(>k7t>e8LEY- z(PmI-CSW{Ib(#em)$o;(KO`^`@db_!vK)v8#;NR=j}9S#(>&ngywkbZ=PqD~RS-Dp zbyf$tjRG(TLm`i+?O~@IzX+U2{B(Bf@IgU!MhNNL!hDp!rxCT~F3o0(2O@*G2AP~3 z`*>Rj|NQgK!nElV%?sbX*artN7-WZL84Q`3qtqeV2u~`s?D2Zr%jqNs=HmFs;S`*s z0?4}@zUlS_xG!AIRwc~@(nOzSPze7d;Umju=I`F=(xd>=d@zXqMKBb(P%6X|mrDJn z{6@MqWFC(PTV4-@yqW!qA9IByrqWR6*$gnwvPp5?$*;@_pSKz=7kt&0Rz2`>ASDnd zTMXid+=n3HKb^jN_ZCec%?E>Qi6NLm>GDv%JgIgjQ^Qu9&$7L3ad`|Oh`7$eRyv8f zDu~HAp8>L5QeX?dS@KQkjiZ(t@D-(Mwde$XxQ}5B;h!QNQU10azNPzS6OURmYE_FV zOOdM7_Udfv>~6*y4LMvTB8tcYE{`kpf27lcgJ~r_xSnR$Of=h9=z(TkY2m#>WD`NZ6RWagU+Y-qAO>np-nZ9NDOkS^vX*=+ySo#$_u z(8)7>uRdJLpo&p~sj`*=kWRYjh^bUd(mdGJCLdb|^Wgfq_vS(u(DqGv^@?vpQfD>o zpjg}}4ruID$FG)N(QNt-olG9SaPTbOD?age0I7iBgiq5Mnn|;A6Pk~Ou#0>_8reY- zUInz~SEdgwpf-FPs@kd^6ssG%l@r$|BzCNBn3s{ZCVweUPIRI&H z&!*K>4q5kX#gcW5-H-{qd|_-Q(9yoAf3q9%{?Ue1WWEBsv#>Yg1Ww$+_}I3Emd|eC zOM|3N7aaH;_4~!?gzq{==}WR(BD;7Es`m_uk{_gi`mV3bRCf6$RYY&p81a(+(v z`vbm$9Lc)f;jsJo=m-hi-BQKvHz)85BoJ;3VVBQp;X|ImGj{s-Ga#l}&)M`^Q%gbY zVsq%2p97bal;hsaj^aol3gDio&r^ks-hHWyy@i3A?< z464FMK)+jZ|K`uJ3tDZy z#X?Cup0Ir3Ftu;^IJ`R!-$B9E1AMo}=QNy1#+P$;{d4*VxWa%*R_HM2^DrR;;qo|V z2W<%@B`GMd$eNWCi z{y0tXaP%M*x#ggklj0IsA+-qF0`P<<5L+rohkVl9l*M2gIm7pZ;>`=|%8r#l zv~TBY8NR8hh!Oe6)WAl#%z(SaLeF~f3}1q92<o-(LyJATunBDzePqw3B8! z>)k(?q|!|Fq-QOW`k(M^X{~Sx>Dy5ESpt217IL~4NiGSk^a-B;=Bepu!6|AMVo#L4 z9f`rv=jba6;h^Pnj1U+33jex!G6mpKOD=}Bns1lo&)0XQiG;L1_g^#q?Fj2dK7wf( zf@N@>uX3zQF7e^9@|FUL1EUXq!vML)V0ZWE!N8U4#q0*j z%5{P@@y_~p-u)Ks|L!;V^5gq@rd%%js;$7RHd}4Aio2Gt|C=iKO|YNFt+0DN$l&$g zKgfNNS}jlu1d5W1Yow!U@o4v`pRWs;Ph2bL?%oA|56D&Tz!dMnTz9@TFV1|KTCFxq zQIy=-BOVXN<5vOc1eIiSk^-lc#EOz1FVtin*=)8b9pf>3 zaPVL}7wm~u{vOsFH>8%^eSCa&tvEh*yIazY>qM(LGU6ZK3K?=qLuBc*Dyg{q$nNf+ zwZ8YOBn%&4E5g_I-MCTOn;V}(*BER!BIQ|@!mO6f&IShdOW*%nxR3zxTG48?r0W91 z^ILJYzJ%_!x`XNZKX|-&QEL6@cZqntxHb>rZr0h&%6NPa=ZlNEId)ZcdfNP+?|-?2 Vobws^ST_Iw002ovPDHLkV1ipwxgG!j diff --git a/Documentation/rss.gif b/Documentation/rss.gif deleted file mode 100644 index c81ac37573dd930467aae63f60e52fa6eeff10c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 451 zcmV;!0X+UkNk%w1VI%+!0M!5h|7HOH|NlQ40sqLPeKP|8npfpk0O6Z=#zX+{T>#Z~ zME{RO`(yy{&Ab14BIsBE_+kM6_3r=R%*s#^@uheB^X~tJGx55a*@9KwQUKIf5&zb^ z|8NoX+RXjInca_O{@~2%pm+bHX8*W|{I-b7MgZ4iBLA&-+hro>VG-6%0Op@}|LfiV znN{R>F723R?RhinmuCOw)t^BF*mp!B4gvi0?&!3c>{|fzUjY5|?)sKh&Rrq^00000 z00000A^8LV00000EC2ui03-ko000KyK-pkOEEtJzTSQ+zm70xtk7uu^;)2M>FFe}QpUPGSfK6aj%^7%2%4C@kjw2B|JO&$MASVD2qhh6}n{#S3B@i4T9b*&#v$bNkt%(5$4FNX^01gZW8V3Ol z2FA$B%)L#D4mJTX01+fD3m%Rt+T7j;D$)Ro06PH{Fll2K69(>L@S0C@PY4K2I0z*< tCKM=`fFJ_{009RUJa`Y$6(0gA1ZdpIv7^V29%}>v06VhAx-kF% From 2af9a07fdfdd052b44cae4c0a05854dfe482247c Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 3 Feb 2014 10:56:52 -0600 Subject: [PATCH 1228/1518] Update documentation, mostly related to the command line editor --- Documentation/NuttShell.html | 132 ++++++++++++++++++++++++++++++++--- 1 file changed, 122 insertions(+), 10 deletions(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index 8e3497552f..de80660ad4 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -459,10 +459,11 @@

    + The NSH Library. The apps/nshlib sub-directory contains the NuttShell (NSH) library. - This library can easily to linked to produce a NSH application (See as an example apps/nshlib). - NSH is a simple shell application for NuttX. + This library can easily to linked to produce a NSH application (See as an example apps/examples/nsh). + The NSH Library provides a simple shell application for NuttX.

    @@ -474,17 +475,104 @@

    - Using settings in the configuration file, NSH may be configured to - use either the serial stdin/out or a telnet connection as the console - or BOTH. When NSH is started, you will see the following welcome on - either console: + NSH Consoles. + Using settings in the configuration file, NSH may be configured to use + (1) the serial stdin/out, + (2) a USB serial device (such as CDC/ACM), or + (3) a telnet connection as the console. + Or, perhaps even all at once since or BOTH. + An indefinite number of telnet sessions are supported. +

    +

    + Start-Up prompt. + When NSH is started, you will see the a welcome message such the following on the selected console:

       NuttShell (NSH)
       nsh>
       
    - nsh> is the NSH prompt and indicates that you may enter a command - from the console. + The greating may also include NuttX versioning information if you are using a versioned copy of NuttX. + nsh> is the NSH prompt and indicates that you may enter a command from the console.

    +

    + Extended Command Line Editing. + By default, NuttX uses a simple command line editor that allows command entry after the nsh> and supports only the backspace key for editing. + However, a more complete command line editor can be selected by setting CONFIG_NSH_CLE=y in the NuttX configuration file. + When that option is selected, the following EMACS-like line editing commands are supported: +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + Key Binding + + Editor Action +
    + ^A + + Move cursor to start of the line +
    + ^B + + Move left one character +
    + ^D or Del + + Delete a single character at the cursor position +
    + ^E + + Move cursor to end of current line +
    + ^F + + Move right one character +
    + ^H or Backspace + + Delete character, left (backspace) +
    + ^K + + Delete to the end of the line +
    + ^U + + Delete the entire line +
    @@ -2736,6 +2824,25 @@ nsh> + + + + + + + + +
    Configuration Description
    CONFIG_NSH_READLINE + Selects the minimal implementation of readline(). + This minimal implementation provides on backspace for command line editing. + It expects some minimal VT100 command support from the terminal. +
    CONFIG_NSH_CLE + Selects the more extensive, EMACS-like command line editor. + Select this option only if + (1) you don't mind a modest increase in the FLASH footprint, and + (2) you work with a terminal that supports extensive VT100 editing commands. + Selecting this option will add probably 1.5-2KB to the FLASH footprint. +
    CONFIG_NSH_BUILTIN_APPS @@ -4054,6 +4161,7 @@ mount -t vfat /dev/ram1 /tmp
  • cat
  • cd
  • cmp
  • +
  • Command Line Editing
  • Command summaries
  • Command table
  • Conditional command execution
  • @@ -4065,6 +4173,7 @@ mount -t vfat /dev/ram1 /tmp
  • CONFIG_NSH_ARGCAT
  • CONFIG_NSH_BUILTIN_APPS
  • CONFIG_NSH_BUILTIN_APPS
  • +
  • CONFIG_NSH_CLE
  • CONFIG_NSH_CMDPARMS
  • CONFIG_NSH_CONSOLE
  • CONFIG_NSH_DHCPC
  • @@ -4090,6 +4199,7 @@ mount -t vfat /dev/ram1 /tmp

    NuttShell (NSH)

    -

    Last Updated: January 18, 2014

    +

    Last Updated: February 3, 2014

    From 10ed104c0304c759d3ccd1ce9db899af32dac18c Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 6 Feb 2014 13:48:07 -0600 Subject: [PATCH 1230/1518] Add a coding standards document --- Documentation/NuttXCCodingStandard.html | 2564 +++++++++++++++++++++++ 1 file changed, 2564 insertions(+) create mode 100755 Documentation/NuttXCCodingStandard.html diff --git a/Documentation/NuttXCCodingStandard.html b/Documentation/NuttXCCodingStandard.html new file mode 100755 index 0000000000..946c63763d --- /dev/null +++ b/Documentation/NuttXCCodingStandard.html @@ -0,0 +1,2564 @@ + + +NuttX C Coding Standard + + + + +

    + + + + +
    +

    + NuttX C Coding Standard +

    +

    Last Updated: February 6, 2014

    +
    +

    + + + + + +
    +

    Table of Contents

    +
    + + + + + + + +
    +

    1.0 General Organization

    +
    + +

    1.1 File Organization

    + +

    + File Extensions + Use the .h extension for C header files and .c for C source files. +

    +

    + File header. + Every C, C++, make file, or script begins with a file header. + That file header is enclosed with a block comment (see below). + Within the block comment, the following must appear: +

    +
      +
    • + The relative path to the file from the top-level directory. +
    • +
    • + An optional, one-line description of the file contents. +
    • +
    • + A blank line +
    • +
    • + A copyright notice indented two additional spaces +
    • +
    • + A line identifying the author and contact information with the same indentation as the copyright notice. +
    • +
    • + A blank line
    • +
    • + Standard (modified) BSD licensing information. +
    • +
    +

    + Sample File Headers. + Sample file headers are provided in an Appendix to this document. + No software may be included in the NuttX source tree that does not have licensing information included in the file. + No software may be included in the NuttX source tree that does not have a (modified) BSD license or compatible license (such as the MIT license). + If the file does not following BSD licensing, then the appropriate license information should be provided in the header rather than the (modified) BSD licensing information and a NOTE should be included in the top-level COPYING file to indicate any variations from (modified) BSD licensing. +

    +

    + Grouping. + All like components in a C source or header file are grouped together. + Definitions do not appear arbitrarily through the file, rather, like definitions are grouped together and preceded by a block comment identifying the grouping. +

    +

    + Block Comments. + Each grouping in the file is separated with a block comment. + The block comment consists of: +

    +
      +
    • + A line that consists of the opening C comment (/*) followed by a series of asterisks extending to the length of the line (usually to column 78). +
    • +
    • + The name of the grouping, starting at column 4. + An asterisk preceives the name of the grouping in column 1. +
    • +
    • + A line that consists of the closing C comment (*/) at the end of the line (usually column 78) preceded by a series of asterisks extending to column 1. +
    • +
    +

    + Examples of Block Comments. + See Appendix A for examples of block comments. +

    +

    + Order of Groupings. + The following groupings should appear in all C source files in the following order: +

    +
      +
    1. + Included Files +
    2. +
    3. + Pre-processor Definitions +
    4. +
    5. + Private Types +
    6. +
    7. + Private Function Prototypes +
    8. +
    9. + Private Data (definitions) +
    10. +
    11. + Public Data (definitions) +
    12. +
    13. + Private Functions (definitions) +
    14. +
    15. + Public Functions (definitions) +
    16. +
    +

    + The following groupings should appear in all C header files in the following order: +

    +
      +
    1. + Included Files +
    2. +
    3. + Pre-processor Definitions +
    4. +
    5. + Public Types +
    6. +
    7. + Public Data (declarations) +
    8. +
    9. + Inline Functions (definitions) +
    10. +
    11. + Public Function Prototypes (declarations) +
    12. +
    +

    + Large vs. Small Files. + In larger files, block comments should be included for all groupings, even if they are empty; + the empty grouping provides important information in itself. + Smaller files may omit some of the block comments; + it is awkard if the block comments are larger than the file content! +

    +

    + Header File Idempotence. + C header file must protect against multipleinclusion through the use of macros that "guard" against multiple definitions if the header file is included multiple times. +

    +
      +
    • +

      + Each header file must contain the following pre-processor commands near the beginning of the header file: Between the file header and the "Included Files" block comment. + For example, +

      +
        +#ifndef __INCLUDE_NUTTX_ARCH_H
        +#define __INCLUDE_NUTTX_ARCH_H
        +
      +

      + Notice that the definitions within of the header do not follow the usually rules: + The presence of the conditional test at the top of the file does not cause the + remaining definitions within the file to be indented. +

      +
    • +
    • +

      + Then conditional compilation is closed at the fine line of the header file with: +

      +
        +#endif /* __INCLUDE_NUTTX_ARCH_H */
        +
      +
    • +
    +

    + Forming Guard Names. + Then pre-processor macro name used in the guard is formed from the full, relative path to the header for from the top-level, controlled directory. + That pat is preceded by __ and _ replaces each character that would otherwise be invalid in a macro name. + So, for example, __INCLUDE_NUTTX_ARCH_H corresponds to the header file include/nuttx/arch.h +

    + +

    + Deoxygen Information. + NuttX does not use Deoxygen for documentation and no file should contain Doxygen tags. +

    + +

    + Sample File Formats. + C source and header file templates are provided in an Appendix to this document. +

    + +

    1.2 Lines

    +

    + Line Endings. + Files should be formatted with \n as the line ending (Unix line endings), not \r\n (Windows line endings). + There should be no extra whitespace at the end of the line. + In addition, all text files should end in a single newline (\n). This avoids the "No newline at end of file" warning generated by certain tools. +

    + +

    + Line Width. + Text should not extend past column 78 in the typical C source or header file. + Sometimes the nature of the content of a file may require that the lines exceed this limit. + This often occurs in header files with naturally long definitions. + If the line width must extend 78 lines, then some wider line width may be used in the file provided that it is used consistently. +

    + +

    + Line Wrapping. +

    +
    + + +
    +

    Incorrect

    +
      +  struct some_long_struct_name_s
      +  {
      +    struct some_long_struct_name_s *flink;  /* The forward link to the next instance of struct some_long_struct_name_s in a singly linked list */
      +    int short_name1;   /* Short comment 1 */
      +    int short_name2;   /* This is a very long comment describing subtle aspects of the short_name2 field */
      +  };
      +
      +  struct some_medium_name_s *ptr = (struct some_medium_name_s *)malloc(sizeof(some_medium_name_s);
      +
      +  struct some_long_struct_name_s *ptr = (struct some_long_struct_name_s *)malloc(sizeof(some_long_struct_name_s);
      +
      +  ret = some_function_with_many parameters(long_parameter_name_1, long_parameter_name_2, long_parameter_name_3, long_parameter_name_4, long_parameter_name_5, long_parameter_name_6, long_parameter_name_7, long_parameter_name_8);
      +
      +  ret = some_function_with_many parameters(long_parameter_name_1,
      +    long_parameter_name_2,
      +    long_parameter_name_3
      +    long_parameter_name_4,
      +    long_parameter_name_5,
      +    long_parameter_name_6,
      +    long_parameter_name_7,
      +    long_parameter_name_8);
      +
    +
    +

    Correct

    +
      +  struct some_long_struct_name_s
      +  {
      +    /*  The forward link to the next instance of struct
      +     * some_long_struct_name_s in a singly linked list
      +     */
      +  
      +    struct some_long_struct_name_s *flink;
      +    int short_name1;   /* Short comment 1 */
      +    int short_name2;   /* This is a very long comment describing subtle
      +                        * aspects of the short_name2 field */
      +  };
      +
      +  FAR struct some_medium_name_s *ptr = (FAR struct some_medium_name_s *)
      +    malloc(sizeof(some_medium_name_s);
      +
      +  FAR struct some_medium_name_s *ptr =
      +    (FAR struct some_medium_name_s *)malloc(sizeof(some_medium_name_s);
      +
      +  FAR struct some_long_struct_name_s *ptr =
      +    (FAR struct some_long_struct_name_s *)
      +      malloc(sizeof(some_long_struct_name_s);
      +
      +  ret = some_function_with_many parameters(long_parameter_name_1,
      +                                           long_parameter_name_2,
      +                                           long_parameter_name_3,
      +                                           long_parameter_name_4,
      +                                           long_parameter_name_5,
      +                                           long_parameter_name_6,
      +                                           long_parameter_name_7,
      +                                           long_parameter_name_8);
      +
    +
    + +

    + NOTE: + See the discussion of pointers for information about the FAR qualifier used above. +

    + +

    + Double Spacing. + A single blank line may be use to separate logical groupings as the designer feels fit. + Single blank lines are also required in certain contexts as defined in this standard. + Additional blanks lines (two or more) are prohibited. +

    + +

    + Columnar Organization. + Similar things should be aligned on the same column unless doing so would cause the line width to be exceeded. +

    +
    + + +
    +

    Acceptable

    +
      +  dog = cat;
      +  monkey = oxen;
      +  aardvark = macaque;
      +
    +
    +

    Preferred

    +
      +  dog      = cat;
      +  monkey   = oxen;
      +  aardvark = macaque;
      +
    +
    + +

    + Block Comments + The final asterisk (*) should occur at column 78 (or the line width of files with longer lines). + Note that the final comment delimiter of the block comment is an exception an lies at column 79. +

    + +

    1.3 Comments

    + +

    + Line Spacing + A single blank line should precede and follow each comment. + The only exception is for the file header block comment that begins on line one; + there is no preceding blank line in that case. +

    +
    + + +
    +

    Incorrect

    +
      +  /* Set a equal to b */
      +  a = b;
      +  /* Set b equal to c */
      +  b = c;
      +
    +
    +

    Correct

    +
      +
      +  /* Set a equal to b */
      +
      +  a = b;
      +
      +  /* Set b equal to c */
      +
      +  b = c;
      +
      +
    +
    + +

    + Indentation + Comments should, typically, be placed before the code section to which they apply. + The comment identation should be the same as the follow identation rules as the following code (if applicable). +

    + +

    + Short, Single line comments. + Short comments must lie on a single line. + The comment delimiters must lie on the same line. +

    +
    + + +
    +

    Incorrect

    +
      +  /*
      +   * This is a single line comment
      +   */
      +
    +
    +

    Correct

    +
      +  /* This is a single line comment */
      +
    +
    + +

    + Multi-line comments. + If the comment is too long to fit on a single, it must be broken into a multi-line comment. + The comment must be begin on the first line of the multi-line comment with the opening comment delimiter (/*). + The following lines of the multi-line comment must be with an asterisk (*) aligned in the same column as the asterisk in the preceding line. + The closing comment delimiter must lie on a separate line with the asterisk (*) aligned in the same column as the asterisk in the preceding line. +

    +
    + + +
    +

    Incorrect

    +
      +  /*
      +     This is the first line of a multi-line comment.
      +     This is the second line of a multi-line comment.
      +     This is the third line of a multi-line comment. */
      +
      +  /* This is the first line of another multi-line comment.  */
      +  /* This is the second line of another multi-line comment. */
      +  /* This is the third line of another multi-line comment.  */
      +
      +
    +
    +

    Correct

    +
      +  /* This is the first line of a multi-line comment.
      +   * This is the second line of a multi-line comment.
      +   * This is the third line of a multi-line comment.
      +   */
      +
      +
    +
    + +

    + Comments to the Right of Statements. + Comments to the right of statements in C source files are discouraged + If such comments are used, they should at least be aligned so that the comment begins in the same comment on each line. +

    +
    + + + +
    +

    Incorrect

    +
      +  dog = cat; /* Make the dog be a cat */
      +  monkey = oxen; /* Make the monkey be an oxen */
      +  aardvark = macaque; /* Make the aardvark be a macaque */
      +
    +
    +

    Acceptable

    +
      +  dog      = cat;     /* Make the dog be a cat */
      +  monkey   = oxen;    /* Make the monkey be an oxen */
      +  aardvark = macaque; /* Make the aardvark be a macaque */
      +
    +
    +

    Preferred

    +
      +  /* Make the dog be a cat */
      +
      +  dog      = cat;
      +
      +  /* Make the monkey be an oxen */
      +
      +  monkey   = oxen;
      +
      +  /* Make the aardvark be a macaque */
      +
      +  aardvark = macaque;
      +
    +
    + +

    + Comments to the Right of Data Definitions. + Comments to the right of a declaration with an enumeration or structure, on the other hand, are encourage. + Columnar alignment of comments is very desireable (but often cannot be achieved without violating the line width). +

    +
    + + + +
    +

    Incorrect

    +
      +struct animals_s
      +{
      +  int dog; /* This is a dog */
      +  int cat; /* This is a cat */
      +  double monkey; /* This is a monkey */
      +  double oxen; /* This is an oxen */
      +  bool aardvark; /* This is an aardvark */
      +  bool macaque; /* This is a macaque */
      +};
      +
    +
    +

    Acceptable

    +
      +struct animals_s
      +{
      +  int dog;       /* This is a dog */
      +  int cat;       /* This is a cat */
      +  double monkey; /* This is a monkey */
      +  double oxen;   /* This is an oxen */
      +  bool aardvark; /* This is an aardvark */
      +  bool macaque;  /* This is a macaque */
      +};
      +
    +
    +

    Preferred

    +
      +struct animals_s
      +{
      +  int    dog;      /* This is a dog */
      +  int    cat;      /* This is a cat */
      +  double monkey;   /* This is a monkey */
      +  double oxen;     /* This is an oxen */
      +  bool   aardvark; /* This is an aardvark */
      +  bool   macaque;  /* This is a macaque */
      +};
      +
    +
    + +

    + Block comments. + Block comments are only used to delimit groupings with the overall file organization and should not be used unless the usage is consistent with delimiting logical groupings in the program. +

    + +

    + C Style Comments. + C99/C11/C++ style comments (beginning wih //) should not be used with NuttX. + NuttX generally follows C89 and all code outside of architecture specific directories must be compatible with C89. +

    +
    + + +
    +

    Incorrect

    +
      +// This is a structure of animals
      +struct animals_s
      +{
      +  int    dog;      // This is a dog
      +  int    cat;      // This is a cat
      +  double monkey;   // This is a monkey
      +  double oxen;     // This is an oxen
      +  bool   aardvark; // This is an aardvark
      +  bool   macaque;  // This is a macaque
      +};
      +
    +
    +

    Correct

    +
      +/* This is a structure of animals */
      +
      +struct animals_s
      +{
      +  int    dog;      /* This is a dog */
      +  int    cat;      /* This is a cat */
      +  double monkey;   /* This is a monkey */
      +  double oxen;     /* This is an oxen */
      +  bool   aardvark; /* This is an aardvark */
      +  bool   macaque;  /* This is a macaque */
      +};
      +
    +
    + +

    + "Commenting Out" Large Code Blocks. + Do not use C or C++ comments to disable compilation of large blocks of code. + Instead, use #if 0 to do that. + Make sure there is a comment before the #if 0 to explain why the code is not compiled. +

    +
    + + +
    +

    Incorrect

    +
      +void some_function(void)
      +{
      +  ... compiled code ...
      +
      +  /*
      +  ... disabled code ..
      +   */
      +
      +  ... compiled code ...
      +}
      +
      +void some_function(void)
      +{
      +  ... compiled code ...
      +
      +  //
      +  // ... disabled code ..
      +  //
      +
      +  ... compiled code ...
      +}
      +
    +
    +

    Correct

    +
      +void some_function(void)
      +{
      +  ... compiled code ...
      +
      +  /* The following code is disabled because it is no longer needed */
      +
      +#if 0
      +  ... disabled code ..
      +#endif
      +
      +  ... compiled code ...
      +}
      +
    +
    + +

    1.4 Braces

    + +

    Coding Standard:

    +
      +
    • + Always on Separate Lines. + Braces always appear on a separate line containing nothing else other that white space. +
    • +
    • + Never Comments on Braces. + Do not put comments on the same line as braces. +
    • +
    • + Special Indentation Rules. + Special indentation rules apply to braces. +
    • +
    + +
    + + +
    +

    Incorrect

    +
      +while (true)
      +  {
      +    if (valid)
      +      {
      +      ...
      +      } /* if valid */
      +    else
      +      {
      +      ...
      +      } /* not valid */
      +  } /* end forever */
      +
    +
    +

    Correct

    +
      +while (true)
      +  {
      +    if (valid)
      +      {
      +      ...
      +      }
      +    else
      +      {
      +      ...
      +      }
      +  }
      +
    +
    + +

    + Exceptions. + The exception is braces that following structure, enumeration, union, and function declarations. + There is no additional indentation for those braces; + those braces align with the beginning of the definition +

    +
    + + +
    +

    Incorrect

    +
      +enum kinds_of_dogs_e
      +  {
      +  ...
      +  };
      +
      +struct dogs_s {
      +  ...
      +  union {
      +  ...
      +  } u;
      +  ...
      +};
      +
      +struct cats_s
      +  {
      +  ...
      +    union
      +     {
      +     ...
      +     } u;
      +  ...
      +  };
      +
      +int animals(int animal)
      +  {
      +  ...
      +  }
      +
    +
    +

    Correct

    +
      +enum kinds_of_dogs_e
      +{
      +  ...
      +};
      +
      +struct dogs_s
      +{
      +  ...
      +  union
      +  {
      +  ...
      +  } u;
      +  ...
      +};
      +
      +struct cats_s
      +{
      +  ...
      +  union
      +  {
      +  ...
      +  } u;
      +  ...
      +};
      +
      +int animals(int animal)
      +{
      +  ...
      +}
      +
    +
    + +

    1.5 Indentation

    + +

    + Indentation Unit + Indentation is in units of two spaces; Each indentation level is twos spaces further to the right than the preceding identation levels. + The use of TAB characters for indentation is prohibited in C source and header files (they may be appropriate in make files and some scripts, however). +

    +
    + + +
    +

    Incorrect

    +
      +	if (x == y) {
      +		dosomething(x);
      +	}
      +
      +    if (x == y) {
      +        dosomething(x);
      +    }
      +
    +
    +

    Correct

    +
      +  if (x == y)
      +    {
      +      dosomething(x);
      +    }
      +
    +
    + +

    + Alignment of Braces. + Note that since braces must be on a separate line (see above), this indentation by two spaces has an interesting property: + All C statements (and case selectors) like on lines that are odd multiples of 2 spaces: 2, 6, 10, ... (2*n + 1). + A braces lie on a separate line indented by an even multple of 2 spaces: 4, 8, 12, ... 2*n. +

    + +

    + Indentation of Pre-Processor Lines. + C Pre-processor commands following any conditional computation are also indented following basically the indentation same rules, differing in that the # always remains in column 1. +

    + +
    + + +
    +

    Incorrect

    +
      +#ifdef CONFIG_ABC
      +#define ABC_THING1 1
      +#define ABC_THING2 2
      +#define ABC_THING3 3
      +#endif
      +
      +#ifdef CONFIG_ABC
      +  #define ABC_THING1 1
      +  #define ABC_THING2 2
      +  #define ABC_THING3 3
      +#endif
      +
    +
    +

    Correct

    +
      +#ifdef CONFIG_ABC
      +#  define ABC_THING1 1
      +#  define ABC_THING2 2
      +#  define ABC_THING3 3
      +#endif
      +
      +#ifdef CONFIG_ABC
      +#  define ABC_THING1 1
      +#  define ABC_THING2 2
      +#  define ABC_THING3 3
      +#endif
      +
    +
    + +

    + Exception. + Each header file includes idempotence definitions at the beginning of the header file. + This conditional compilation does not cause any change to the indentation. +

    +
    + + +
    +

    Incorrect

    +
      +#ifndef __INCLUDE_SOMEHEADER_H
      +#  define __INCLUDE_SOMEHEADER_H
      +...
      +#  define THING1 1
      +#  define THING2 2
      +#  define THING3 3
      +...
      +#endif /* __INCLUDE_SOMEHEADER_H */
      +
    +
    +

    Correct

    +
      +#ifndef __INCLUDE_SOMEHEADER_H
      +#define __INCLUDE_SOMEHEADER_H
      +...
      +#define THING1 1
      +#define THING2 2
      +#define THING3 3
      +...
      +#endif /* __INCLUDE_SOMEHEADER_H */
      +
    +
    + +

    1.6 Parentheses

    + +

    Coding Standard:

    +
      +
    • + Space after key words. + Do not put a left parenthesis (() immediately after any C keywords (for, switch, while, do, return, etc.). + Put a space before the left parenthesis in these cases. +
    • +
    • + Otherwise, no space before left parentheses. + Otherwise, there should be no space before the left parentheses +
    • +
    • + No space betwen function name and argument list. + There should be no space between a function name and an argument list. +
    • +
    • + Never space before the right parentheses. + There should never be space before a right parenthesis ()). +
    • +
    • + No parentheses around returned values. + Returned values should never be enclosed in parentheses unless the parentheses are required to force the correct order of operations in a computed return value. +
    • +
    +
    + + +
    +

    Incorrect

    +
      +int do_foobar ( void )
      +{
      +  int ret = 0;
      +  int i;
      +
      +  for( i = 0; ( ( i < 5 ) || ( ret < 10 ) ); i++ )
      +    {
      +      ret = foobar ( i );
      +    }
      +
      +  return ( ret );
      +}
      +
    +
    +

    Correct

    +
      +int do_foobar(void)
      +{
      +  int ret = 0;
      +  int i;
      +
      +  for (i = 0; i < 5 || ret < 10; i++)
      +    {
      +      ret = foobar(i);
      +    }
      +
      +  return ret;
      +}
      +
    +
    + +

    + NOTE: + Many people do not trust their understanding of the precedence of operators and so use lots of parentheses in expressions to force the order of evaluation even though the parentheses may have no effect. + This will certainly avoid errors due to an unexpected order of evaluation, but can also make the code ugly and overly complex (as in the above example). + In general, NuttX does not use unnecessary parentheses to force order of operations. + There is no particular policy in this regard. + However, you are are advised to check your C Programming Language book if necessary and avoid unnecessary parenthesis when possible. +

    + + + + + +
    +

    2.0 Data and Type Definitions

    +
    + +

    2.1 One Definition/Declaration Per Line

    + +
    + + +
    +

    Incorrect

    +
      +  extern long time, money;
      +  char **ach, *bch;
      +  int i, j, k;
      +
    +
    +

    Correct

    +
      +  extern long time;
      +  extern long money;
      +  FAR char **ach;
      +  FAR char *bch;
      +  int i;
      +  int j;
      +  int k;
      +
    +
    + +

    + NOTE: + See the discussion of pointers for information about the FAR qualifier used above. +

    + +

    2.2 Global Variables

    + +

    Coding Standard:

    +
      +
    • + Short global variable names. + Names should be terse, but generally descriptive of what the variable is for. + Try to say something with the variable name, but don't try to say too much. + For example, the variable name of g_filelen is preferable to something like g_lengthoffile. +
    • +
    • + Global variable prefix. + All global variables begin with the prefix g_ to indicate the scope of variable. +
    • +
    • + Module name prefix + If a global variable belongs in a module with a name of, say xyz, then that module should be included as part of the prefix like: g_xyz_. +
    • +
    • + Lowercase, + Use all lower case letters. +
    • +
    • + Minimal use of '_'. + Preferably there are no '_' separators within the name. + Long variable names might require some delimitation using '_'. + Long variable names, however, are discouraged. +
    • +
    • + Use structures. + If possible, wrap all global variables within a structure to minimize the liklihood of name collisions. +
    • +
    • + Avoid global variables when possible. + Use of global variables, in general, is discourage unless there is no other reasonable solution. +
    • +
    +
    + + + +
    +

    Incorrect

    +
      +extern int someint;
      +uint32_t dwA32BitInt;
      +uint32_t gAGlobalVariable;
      +
    +
    +

    Acceptable

    +
      +extern int g_someint;
      +uint32_t g_a32bitint;
      +uint32_t g_aglobal;
      +
    +
    +

    Preferred

    +
      +struct my_variables_s
      +{
      +  uint32_t a32bitint;
      +  uint32_t aglobal;
      +};
      +
      +extern int g_someint;
      +struct my_variables_s g_myvariables;
      +
    +
    + +

    2.3 Parameters and Local Variables

    + +

    Coding Standard:

    +
      +
    • + Common naming standard. + Naming for function parameters and local variables is the same. +
    • +
    • + Short variable names. + Names should be terse, but generally descriptive of what the variable is for. + Try to say something with the variable name, but don't try to say too much. + For example, the variable name of len is preferable to something like lengthofiobuffer. +
    • +
    • + No special ornamentation. + There is no special ornamentation of the name to indication that the variable is a local variable. + The prefix p or pp may be used on names of pointers (or pointer to pointers) if it helps to distinguish the variable from some other local variable with a similar name. + Even this convention is discouraged when not necessary. +
    • +
    • + Lowercase + Use all lower case letters. +
    • +
    • + Minimal use of single character variable names. + Short variable names are preferred. + However, single character variable names should be avoided. + Exceptions to this include i, j, and k which are reserved only for use as loop indices + (part of our Fortran legacy). +
    • +
    • + Minimal use of '_'. + Preferably there are no '_' separators within the name. + Long variable names might require some delimitation using '_'. + Long variable names, however, are discouraged. +
    • +
    +
    + + +
    +

    Incorrect

    +
      +uint32_t somefunction(int a, uint32_t dwBValue)
      +{
      +  uint32_t this_is_a_long_variable_name = 1;
      +  int i;
      +
      +  for (i = 0; i < a; i++)
      +    {
      +      this_is_a_long_variable_name *= dwBValue--;
      +    }
      +
      +  return this_is_a_long_variable_name;
      +}
      +
    +
    +

    Correct

    +
      +uint32_t somefunction(int limit, uint32_t value)
      +{
      +  uint32_t ret = 1;
      +  int i;
      +
      +  for (i = 0; i < limit; i++)
      +    {
      +      ret *= value--;
      +    }
      +
      +  return ret;
      +}
      +
    +
    + +

    + NOTE: + You will see the local variable named ret is frequently used in the code base for the name of a local variable whose value will be returned or to received the returned value from a called function. +

    + +

    2.4 Type Definitions

    + +

    Coding Standard:

    +
      +
    • + Short type names. + Type names should be terse, but generally descriptive of what the type is for. + Try to say something with the type name, but don't try to say too much. + For example, the type name of fhandle_t is preferable to something like openfilehandle_t. +
    • +
    • + Type name suffix. + All typedef'ed names end with the suffix _t. +
    • +
    • + Module name prefix + If a type belongs in a module with a name of, say xyz, then that module should be included as a prefix to the type name like: xyz_. +
    • +
    • + Lowercase. + Use all lower case letters. +
    • +
    • + Minimal use of '_'. + Preferably there are few '_' separators within the type name. + Long type names might require some delimitation using '_'. + Long type names, however, are discouraged. +
    • +
    +
    + + +
    +

    Incorrect

    +
      +typedef void *myhandle;
      +typedef int myInteger;
      +
    +
    +

    Correct

    +
      +typedef FAR void *myhandle_t;
      +typedef int myinteger_t;
      +
    +
    + +

    + NOTE: + See the discussion of pointers for information about the FAR qualifier used above. +

    + +

    2.5 Structures

    + +

    Structure Naming

    +
      +
    • + No un-named structures. + All structures must be named, even if they are part of a type definition. + The exception to this rule is for structures that are defined within another union or structure. In those cases, the structure name should always be omitted. +
    • +
    • + No structure definitions within Type Definition. + The practice of defining a structure within a type definition is discouraged. + It is preferred that the structure definition and the type definition be separate definitions. + In general, the NuttX coding style discourages any typdef-ing of structures; + normally the full structure name is used as types throughout the code. +
    • +
    • + Short structure names. + Structure names should be terse, but generally descriptive of what the structure contains. + Try to say something with the structure name, but don't try to say too much. + For example, the structure name of xyz_info_s is preferable to something like xyz_datainputstatusinformation_s. +
    • +
    • + Structure name suffix. + All structure names end with the suffix _s. +
    • +
    • + Module name prefix + If a structure belongs to a module with a name of, say xyz, then that module should be included as a prefix to the structure name like: xyz_. +
    • +
    • + Lowercase. + Use all lower case letters. +
    • +
    • + Minimal use of '_'. + Preferably there are few '_' separators within the structure name. + Long variable names might require some delimitation using '_'. + Long variable names, however, are discouraged. +
    • +
    + +

    Structure Field Naming

    +
      +
    • + Common variable naming. + Structure field naming is generally the same as for local variables. +
    • +
    • + One definition per line. + The one definition per line rule applies to structure fields, + including bit field definitions. +
    • +
    • + Each field should be commented. + Each structure field should be commented. + Commenting should follow the standard conventions. +
    • +
    • + Optional structure field prefix. + It make be helpful to add a two-letter prefix to each field name so that is is clear which structure the field belongs to. + Although a good practice, that convention has not been used consistently in NuttX. +
    • +
    • + Lowercase. + Use all lower case letters. +
    • +
    • + Minimal use of '_'. + Preferably there are few '_' separators within the field name. + Long variable names might require some delimitation using '_'. + Long variable names, however, are discouraged. +
    • +
    +

    + Other Applicable Coding Standards. + See sections related to line formatting, use of braces, indentation, and comments. +

    +

    + Size Optimizations. + When declaring fields in structures, order the declarations in such a way as to minimize memory waste due of data alignment. + This essentially means that that fields should be organized by data size, not by functionality: + Put all pointers togeter, all uint8_t's together, all uint32_t's together. + Data types withi well known like uint8_t and uint32_t should also be place in either ascending or descending size order. +

    +
    + + +
    +

    Incorrect

    +
      +typedef struct
      +{
      +  ...
      +  int val1, val2, val3; /* Values 1-3 */
      +  ...
      +} xzy_info_t;
      +
      +struct xyz_information
      +{
      +  ...
      +  uint8_t bita : 1,  /* Bit A */
      +          bitb : 1,  /* Bit B */
      +          bitc : 1;  /* Bit C */
      +  ...
      +};
      +
    +
    +

    Correct

    +
      +struct xyz_info_s
      +{
      +  ...
      +  int val1; /* Value 1 */
      +  int val2; /* Value 2 */
      +  int val3; /* Value 3 */
      +  ...
      +};
      +
      +
      +typdef struct xyz_info_s xzy_info_t;
      +
      +

      (The use of typedef'ed structures is acceptable but discouraged)

      +
      +struct xyz_info_s
      +{
      +  ...
      +  uint8_t bita : 1,  /* Bit A */
      +  uint8_t bitb : 1,  /* Bit B */
      +  uint8_t bitc : 1,  /* Bit C */
      +  ...
      +};
      +
    +
    + +

    2.6 Unions

    +

    + Union and Field Names. + Naming of unions and fields within unions follow the same naming rules as for structures and structure fields. + The only difference is that the suffix _u is used to identify unions. +

    +

    + Other Applicable Coding Standards. + See sections related to line formatting, use of braces, indentation, and comments. +

    +
    + +
    +

    Example

    +
      +union xyz_union_u
      +{
      +  uint8_t  b[4]; /* Byte values */
      +  uint16_t h[2]; /* Half word values */
      +  uint32_t w;    /* Word Value */
      +};
      +
      +struct xyz_info_s
      +{
      +  ...
      +  union
      +  {
      +    uint8_t  b[4]; /* Byte values */
      +    uint16_t h[2]; /* Half word values */
      +    uint32_t w;    /* Word Value */
      +  } u;
      +  ...
      +};
      +
    +
    +

    + NOTE: + Note that the union name u is used often. + This is another exception to the prohibition against using single character variable and field names. + The short field name u clearly identifies a union field and prevents the full name to the union value from being excessively long. +

    + +

    2.7 Enumerations

    +

    + Enumeration Naming. + Naming of enumeratinos follow the same naming rules as for structure and union naming. + The only difference is that the suffix _e is used to identify an enumeration. +

    +

    + Enumeration Value Naming. + Enumeration values, however, following a naming convention more similar to macros. +

    +
      +
    • + Uppercase. + Enumeration values are always in upper case. +
    • +
    • + Use of '_' encouraged. + Unlike other naming, use of the underscore character _ to break up enumeration names is encouraged. +
    • +
    • + Prefix. + Each value in the enumeration should begin with an upper-case prefix that identifies the value as a member of the enumeration. + This prefix should, ideally, derive from the name of the enumeration. +
    • +
    • + No dangling commas. + There should be no dangling comma on the final value of the enumeration. + The most commonly used tool chain are tolerant of such dangling commas, but others will not. +
    • +
    +

    + Other Applicable Coding Standards. + See sections related to line formatting, use of braces, indentation, and comments. +

    +
    + +
    +

    Example

    +
      +enum xyz_state_e
      +{
      +  XYZ_STATE_UNINITIALIZED = 0, /* Uninitialized state */
      +  XYZ_STATE_WAITING,           /* Waiting for input state */
      +  XYZ_STATE_BUSY,              /* Busy processing input state */
      +  XYZ_STATE_ERROR,             /* Halted due to an error */
      +  XYZ_STATE_TERMINATING,       /* Terminating stated */
      +  XYZ_STATE_TERMINATED         /* Terminating stated */
      +};
      +
    +
    + +

    2.8 C Pre-processor Macros

    + +

    Coding Standard:

    + +

    + Macro Naming. + Macro naming following a naming convention similar to the naming of enumeration values. +

    +
      +
    • + Uppercase. + Macro names are always in upper case. +
    • +
    • + Lowercase Exceptions. + There are3 a few lower case values in NuttX macro names. Such as a lower-case p for a period or decimal point (such as VOLTAGE_3p3V). + I have also used lower-case v for a version number (such as CONFIG_NET_IPv6). + However, these are exceptions to the rule rather than illustrating a rule. +
    • +
    • + Macros that could be functions. + Lower-case macro names are also acceptable if the macro is a substitute for a function name that might be used in some other context. + In that case, normal function naming applies. +
    • +
    • + Use of '_' encouraged. + Unlike other naming, use of the underscore character _ to break up macro names is encouraged. +
    • +
    • + Prefix. + Each related macro value should begin with an upper-case prefix that identifies the value as part of a set of values (and also to mimimize the likelihood of naming collisions). +
    • +
    • + Single space after #define. + A single space character should separate the #define from the macro name. + Tabs are never used. +
    • +
    • + Normal commenting rules. + Normal commenting rules apply. +
    • +
    • + Line continuations. + Macro definitions may be continued on the next line by terminating the line with the \ character just before the newline character. + There should be a single space before the \ character. + Aligned \ characters on multiple line continuations are discouraged because they are a maintenance problem. +
    • +
    • + Parentheses around macro argument expansions. + Macros may have argument lists. + In the macros expansion, each argument should be enclosed in parentheses. +
    • +
    • + Real statements. + If a macro functions as a statement, then the macro expansion should be wrapped in do { ... } while (0) to assume that the macros is, indeed, a statement. +
    • +
    • + Magic numbers are prohibited in code. + Any numeric value is not intuitively obvious, must be properly named and provided as either a pre-processor macro or an enumeration value. +
    • +
    • + Side effects. + Be careful of side effects. +
    • +
    +

    + Other Applicable Coding Standards. + See sections related to line formatting, indentation, and comments. +

    +
    + + +
    +

    Incorrect

    +
      +#define max(a,b) a > b ? a : b
      +
      +#define ADD(x,y) x + y
      +
      +#ifdef HAVE_SOMEFUNCTION
      +int somefunction(struct somestruct_s* psomething);
      +#else
      +#define SOMEFUNCTION() (0)
      +#endif
      +
      +#	define	IS_A_CAT(c)		((c) == A_CAT)
      +
      +#define LONG_MACRO(a,b)                                  \
      +  {                                                      \
      +    int value;                                           \
      +    value = b-1;                                         \
      +    a = b*value;                                         \
      +  }
      +
      +#define DO_ASSIGN(a,b) a = b
      +
    +
    +

    Correct

    +
      +#define MAX(a,b) (((a) > (b)) ? (a) : (b))
      +
      +#define ADD(x,y) ((x) + (y))
      +
      +#ifdef HAVE_SOMEFUNCTION
      +int somefunction(struct somestruct_s* psomething);
      +#else
      +#  define somefunction(p) (0)
      +#endif
      +
      +# define IS_A_CAT(c)  ((c) == A_CAT)
      +
      +#define LONG_MACRO(a,b) \
      +  { \
      +    int value; \
      +    value = (b)-1; \
      +    (a) = (b)*value; \
      +  }
      +
      +#define DO_ASSIGN(a,b) do { (a) = (b); } while (0)
      +
    +
    + +

    2.9 Pointer Variables

    +

    + Pointer Naming. + Pointers following same naming conventions as for other variable types. + A pointer (or pointer-to-a-pointer) variable may be prefaced with p (or pp) with no intervening underscore character _ in order to identify that variable is a pointer. + That convention is not encouraged, however, and is only appropriate if there is some reason to be concerned that there might otherwise be confusion with another variable that differs only in not being a pointer. +

    + White Space. + The asterisk used in the declaration of a pointer variable or to dereference a pointer variable should be placed immediately before the variable name with no intervening spaces. + A space should precede the asterisk in a cast to a pointer type. +

    +
    + + +
    +

    Incorrect

    +
      +int somefunction(struct somestruct_s* psomething);
      +
      +ptr = (struct somestruct_s*)value;
      +
    +
    +

    Correct

    +
      +int somefunction(FAR struct somestruct_s *something);
      +
      +ptr = (FAR struct somestruct_s *)value;
      +
    +
    + +

    + FAR, NEAR, DSEG and CODE pointers. + Some architectures require a qualifier on pointers to identify the address space into which the pointer refers. + The macros FAR, NEAR, DSEG and CODE are defined in include/nuttx/compiler.h to provide meaning for this qualifiers when needed. + For portability, the general rule is that pointers to data that may lie in the stack, heap, .bss, or .data should be prefaced by the qualifier FAR; pointers to functions probably lie in a code address space and should have the qualifier CODE. + The typical effect of these macros on architectures where they have meaning to determine the size of the pointer (size in the sense of the width of the pointer value in bits). +

    + +

    2.10 Initializers

    +

    + Applicable Coding Standards. + See the section related to parentheses. +

    +

    + C89 Compatibility. + All common NuttX code must conform to ANSII C89 requirements. + Newer C standards permit more flexible initialization with named initializers and array initializers. + However, these are not backward compatible with C89 and cannot be used in common code. + Newer C99 features may be included in architecture-specific sub-directories where there is no possibility of the use of such older toolchains. + C11 is included in NuttX, but has not been verified and, hence, it not encourage anywhere. +

    + + + + + +
    +

    3.0 Functions

    +
    + +

    3.1 Function Headers

    + +

    Coding Standard:

    +
      +
    • + Function headers. + Each function is preceded by a function header. The function header is a block comment that provides information about the function. + The block comment consists of the following: +

        +
      • + The block comment begins with a line that consists of the opening C comment in column 1 (/*) followed by a series of asterisks extending to the length of the line (usually to column 78). +
      • +
      • + The block comment ends with a line that consists of series of asterisks beginning at column 2 and extending to the near the end line (usually to column 77) followed by the closing C comment in (usually at column 78 for a total length of 79 characters). +
      • +
      • + Information about the function is included in lines between the first and final lines. + Each of these begin with a space in column 1, an sterisk (*) in column 2, and a space in column 3. +
      • +

      +
    • +
    • + Function header preceded by one blank line. + Exactly one blank line precedes each function header. +
    • +
    • + Function header followed by one blank line. + Exactly one blank line is placed after function header and before the function definition. +
    • +
    • + Function header sections. + Within the function header, the following data sections must be provided: +

        +
      • + * Name: followed by the name of the function on the same line. +
      • +
      • + * Description: followed by a description of the function beginning on the second line. + Each line of the function description is indented by two additional spaces. +
      • +
      • + * Input Parameters: followed by a description of the of each input parameter beginning on the second line. + Each input parameter begins on a separator line indented by two additional spaces. + The description needs to include (1) the name of the input paramters, and (2) a short description of the input parameter. +
      • +
      • + * Returned Value: followed by a description of the of returned value(s) beginning on the second line. + The description of the returned value should identify all error values returned by the function. +
      • +
      • + * Assumptions/Limitations: followed by a any additional information that is needed to use the function correctly. + This section is optional and may be omitted with there is no such special information required for use of the function. +
      • +

      + Each of these data sections is separated by a single line like " * ". +
    • +
    +

    + Function header template. + Refer to Appendix A for the template for a function header. +

    + +

    3.2 Function Naming

    + +

    Coding Standard:

    +
      +
    • + Short function names. + Function names should be terse, but generally descriptive of what the function is for. + Try to say something with the function name, but don't try to say too much. + For example, the variable name of xyz_putvalue is preferable to something like xyz_savethenewvalueinthebuffer. +
    • +
    • + Lowercase. + Use all lower case letters. +
    • +
    • + Module prefix. + All functions in the same module, or sub-system, or within the same file should have a name beginning with a common prefix separated from the remainder of the function name with the underscore, '_', character. + For example, for a module called xyz, all of the functions should begin with xyz_. +
    • +
    • + Extended prefix. + Other larger functional grouping should have another level in the naming convention. + For example, if module xyz contains a set of functions that manage a set of I/O buffers (IOB), then those functions all should get naming beginning with a common prefix like xyz_iob_. +
    • +
    • + Use of '_' discouraged. + Further use of the '_' separators is discouraged in function naming. + Long function names might require some additional elimitation using '_'. + Long function names, however, are also discouraged. +
    • +
    • + Verbs and Objects. + The remainder of the function name should be either in the form of verb-object or object-verb. + It does not matter which as long as the usage is consistent within the module. + Common verbs include get and set (or put) for operations that retrieve or store data, respectively. + The verb is is reserved for functions that perform some test and return a boolean value to indicate the result of the test. + In this case, the object should indicate what is testing and the return value of true should be consistent with result of the test being true. +
    • +
    + +

    3.3 Parameter Lists

    + +

    + Coding Standards. + See general rules for parameter naming. + See also the sections related to the use of parentheses. +

    +

    + Use of const Parameters. + Use of the const storage class is encouraged. + This is appropriate to indicate that the function will not modify the object. +

    + +

    3.4 Function Body

    + +

    Coding Standard:

    +
      +
    • + Single compound statement. + The function body consists of a single compound statement. +
    • +
    • + Braces in column 1 + The opening and close braces of the compound statement mst be placed in column one. +
    • +
    • + First definition or statement in column 3. + The first data definitions or statements in the function body are idented by two spaces. + Standards for statements are covered in the following paragaraph +
    • +
    • + Long functions are discouraged. + As a rule of thumb, the length of a function should be limited so that it would fit on a single page (if you were to print the source code). +
    • +
    + +

    Returned Values

    + +

    + OS Internal Functions. + In general, OS internal functions return a type int to indicate success or failure conditions. + Non-negative values indicate success. + The return value of zero is the typical success return value, but other successful return can be represented with other positive values. + Errors are always reported with negative values. + These negative values must be a well-defined errno as defined in the file nuttx/include/errno.h. +

    + +

    + Application/OS Interface. + All but a few OS interfaces conform to documented standards that have precedence over the coding standards of this document. +

    + +

    + Checking Return Values. + Callers of internal OS functions should always check return values for an error. + At a minimum, a debug statement should indicate that an error has occurred. + The calling logic intentionally ignores the returned value, then the function return value should be explicitly cast to (void) to indicate that the return value is intentionally ignored. + An exception of for standard functions for which people have historically ignored the returned values, such as printf() or close. + All calls to malloc or realloc must be checked for failures to allocate memory. +

    + + + + + +
    +

    4.0 Statements

    +
    + +

    4.1 One Statement Per Line

    + +

    Coding Standard:

    +
      +
    • + One statement per line. + There should never be more than one statement on a line. +
    • +
    • + No more than one assignment per statement. + Related to this, there should never be multiple assignments in the same statement. +
    • +
    • + Statements should never be on the same line as any keyword. + Statements should never be on the same line as case selectors or any C keyword. +
    • +
    +

    + Other Applicable Coding Standards. + See the section related to the use of braces. +

    + +
    + + +
    +

    Incorrect

    +
      +  if (var1 < var2) var1 = var2;
      +
      +  case 5: var1 = var2; break;
      +
      +  var1 = 5; var2 = 6; var3 = 7;
      +
      +  var1 = var2 = var3 = 0;
      +
    +
    +

    Correct

    +
      +  if (var1 < var2)
      +    {
      +      var1 = var2;
      +    }
      +
      +  case 5:
      +    {
      +      var1 = var2;
      +    }
      +    break;
      +
      +  var1 = 5;
      +  var2 = 6;
      +  var3 = 7;
      +
      +  var1 = 0;
      +  var2 = 0;
      +  var3 = 0;
      +
    +
    + +

    4.2 Casts

    + +

    Coding Standard:

    +
      +
    • + No space in cast. + There should be no space between a cast and the value being cast. +
    • +
    +
    + + +
    +

    Incorrect

    +
      +struct something_s *x = (struct something_s*) y;
      +
    +
    +

    Correct

    +
      +struct something_s *x = (struct something_s *)y;
      +
    +
    + +

    4.3 Operators

    +

    + Spaces before and after binary operators. + All binary operators (operators that come between two values), such as +, -, =, !=, ==, >, etc. should have a space before and after the operator, for readability. As examples: +

    +
    + + +
    +

    Incorrect

    +
      +for=bar;
      +if(a==b)
      +for(i=0;i>5;i++)
      +
    +
    +

    Correct

    +
      +for = bar;
      +if (a == b)
      +for (i = 0; i > 5; i++)
      +
    +
    + +

    + No space separating unary operators. + Unary operators (operators that operate on only one value), such as ++, should not have a space between the operator and the variable or number they are operating on. +

    +
    + + +
    +

    Incorrect

    +
      +x ++;
      +
    +
    +

    Correct

    +
      +x++;
      +
    +
    + +

    +

    4.4 if then else Statement

    + +

    Coding Standard:

    +
      +
    • + Keywords on separate lines. + if <condition> and else must lie on separate lines with nothing else present on the line. +
    • +
    • + Indentation and parentheses. + if <condition> follows the standard indentation and parentheses rules. +
    • +
    • + Alignment. + The if in the if <condition> line and the else must be aligned at the same column. +
    • +
    • + Statement(s) always enclosed in braces. + Statement(s) following the if <condition> and else lines must always be enclosed in braces. + Braces must follow the if <condition> and else lines even in the case where these is no contained statement! +
    • +
    • + Braces and indentation. + The placement of braces and statements must follow the standard rules for braces and indentation. +
    • +
    • + Followed by a single blank line. + The final right brace must be followed by a blank line. +
    • +
    +

    + Other Applicable Coding Standards. + See sections related to use of braces and indentation. +

    + +
    + + +
    +

    Incorrect

    +
      +  if(var1 < var2) var1 = var2;
      +
      +  if(var > 0)
      +    var--;
      +  else
      +    var = 0;
      +
      +  if (var1 > 0) {
      +    var1--;
      +  } else {
      +    var1 = 0;
      +  }
      +  var2 = var1;
      +
    +
    +

    Correct

    +
      +  if (var1 < var2
      +    {
      +      var1 = var2;
      +    }
      +
      +  if (var > 0)
      +    {
      +      var--;
      +    }
      +  else
      +    {
      +      var = 0;
      +    }
      +
      +  if (var1 > 0)
      +    {
      +      var1--;
      +    }
      +  else
      +    {
      +      var1 = 0;
      +    }
      +
      +  var2 = var1;
      +
    +
    + +

    + <condition> ? <then> : <else> +

    +
      +
    • + Only if the expression is short. + Use of this form is only appropriate if the entire sequence is short and fits neatly on the line. +
    • +
    • + Multiple lines forbidden. + This form is forbidden if it extends to more than one line. +
    • +
    • + Use of parentheses. + The condition and the entire sequence are often enclosed in parentheses. + These are, however, not required if the expressions evaluate properly without them. +
    • +
    +

    + Other Applicable Coding Standards. + See sections related to parentheses. +

    +
    + +
    +

    Example

    +
      +  int arg1 = arg2 > arg3 ? arg2 : arg3;
      +  int arg1 = ((arg2 > arg3) ? arg2 : arg3);
      +
    +
    + +

    4.5 switch Statement

    + +

    Coding Standard:

    +
      +
    • + Falling through. + Falling through a case statement into the next case statement is be permitted as long as a comment is included. +
    • +
    • + default case. + The default case should always be present and trigger an error if it is reached when it should not be. +
    • +
    • + Case logic in braces. + It is preferable that all case logic (except for the break) be enclosed in braces. + If you need to instantiate local variables in case logic, then that logic must be surrounded with braces. +
    • +
    • + break outside of braces. + break statements are normally indented by two spaces. + When used conditionally with case logic, the placement of the break statement follows normal indentation rules. +
    • +
    +

    + Other Applicable Coding Standards. + See sections related to use of braces, indentation, and comments. +

    +
    + +
    +

    Example

    +
      +  switch (...)
      +    {
      +      case 1:  /* Example of a comment following a case selector */
      +      ...
      +
      +      /* Example of a comment preceding a case selector */
      +
      +      case 2:
      +        {
      +          /* Example of comment following the case selector */
      +
      +          int value;
      +          ...
      +        }
      +        break;
      +
      +      default:
      +        break;
      +    }
      +
    +
    + +

    4.6 while Statement

    +

    Coding Standard:

    +
      +
    • + Keywords on separate lines. + while <condition> must lie on a separate line with nothing else present on the line. +
    • +
    • + Indentation and parentheses. + while <condition> follows the standard indentation and parentheses rules. +
    • +
    • + Statements enclosed in braces + Statement(s) following the while <condition> must always be enclosed in braces, even if only a single statement follows. +
    • +
    • + No braces on null statements. + No braces are required if no statements follow the while <condition>. + The single semicolon (null statement) is sufficient; +
    • +
    • + Braces and indentation. + The placement of braces and statements must follow the standard rules for braces and indentation. +
    • +
    • + Followed by a single blank line. + The final right brace must be followed by a blank line. +
    • +
    +

    + Other Applicable Coding Standards. + See sections related to use of braces, indentation, and comments. +

    +
    + + +
    +

    Incorrect

    +
      +  while( notready() )
      +    {
      +    }
      +  ready = true;
      +
      +  while (*ptr != '\0') ptr++;
      +
    +
    +

    Correct

    +
      +  while (notready());
      +
      +  ready = true;
      +
      +  while (*ptr != '\0')
      +    {
      +      ptr++;
      +    }
      + 
      +
    +
    + +

    4.7 do while Statement

    +

    Coding Standard:

    +
      +
    • + Keywords on separate lines. + do and while <condition> must lie on separate lines with nothing else present on the line. +
    • +
    • + Indentation and parentheses. + do .. while <condition> follows the standard indentation and parentheses rules. +
    • +
    • + Statements enclosed in braces + Statement(s) following the do must always be enclosed in braces, even if only a single statement follows. +
    • +
    • + Braces and indentation. + The placement of braces and statements must follow the standard rules for braces and indentation. +
    • +
    • + Followed by a single blank line. + The final right brace must be followed by a blank line. +
    • +
    +

    + Other Applicable Coding Standards. + See sections related to use of braces, indentation, and comments. +

    +
    + + +
    +

    Incorrect

    +
      +  do {
      +    ready = !notready();
      +  } while (!ready);
      +  senddata();
      +
      +  do ptr++; while (*ptr != '\0');
      +
    +
    +

    Correct

    +
      +  do
      +    {
      +      ready = !notready();
      +    }
      +  while (!ready);
      +
      +  senddata();
      +
      +  do
      +    {
      +      ptr++;
      +    }
      +  while (*ptr != '\0');
      +
    +
    + +

    4.8 Use of goto

    +

    Coding Standard:

    +
      +
    • + Limited Usage of goto. + All use of the goto statement is prohibited except for one usage: + for handling error conditions in complex, nested logic. + A simple goto in those conditions can greatly improve the readability and complexity of the code. +
    • +
    • + Label Naming. + Labels must all lower case. + The underscore character _ is permitted to break up long labels. +
    • +
    • + Error Exit Labels. + The error exit label is normally called errout. + Multiple error labels are often to required to unwind to recover resources committe in logic prior to the error to otherwise undo preceding operations. + Naming for these other labels would be some like errout_with_allocation, errout_with_openfile, etc. +
    • +
    • + Label Positioning. + Labels are never indented. + Labels must always begin in column 1. +
    • +
    +
    + +
    +

    Example

    +
      +   FAR struct some_struct_s *ptr;
      +   int fd;
      +   int ret;
      +   ...
      +
      +   if (arg == NULL)
      +     {
      +       ret = -EINVAL;
      +       goto errout;
      +     }
      +   ...
      +   ptr = (FAR struct some_struct_s *)malloc(sizeof(struct some_struct_s));
      +   if (!ptr)
      +     {
      +       ret = -ENOMEM;
      +       goto errout;
      +     }
      +   ...
      +   fd = open(filename, O_RDONLY);
      +   if (fd < 0)
      +     {
      +       errcode = -errno;
      +       DEBUGASSERT(errcode > 0);
      +       goto errotout_with_alloc;
      +     }
      +   ...
      +   ret = readfile(fd);
      +   if (ret < 0)
      +     {
      +       goto errout_with_openfile;
      +     }
      +   ...
      +errout_with_openfile:
      +  close(fd);
      +
      +errout_with_alloc:
      +  free(ptr);
      +
      +error:
      +  return ret;
      +
    +
    +

    + NOTE: + See the discussion of pointers for information about the FAR qualifier used above. +

    + + + + + +
    +

    Appendix A

    +
    + +

    A.1 C Source File Structure

    +
    +/****************************************************************************
    + * <Relative path to the file>
    + * <Optional one line file description>
    + *
    + *   Copyright (C) <Year> <Copyright holder's name>. All rights reserved.
    + *   Author: <Author's name> <Contact e-mail>
    + *
    + * Redistribution and use in source and binary forms, with or without
    + * modification, are permitted provided that the following conditions
    + * are met:
    + *
    + * 1. Redistributions of source code must retain the above copyright
    + *    notice, this list of conditions and the following disclaimer.
    + * 2. Redistributions in binary form must reproduce the above copyright
    + *    notice, this list of conditions and the following disclaimer in
    + *    the documentation and/or other materials provided with the
    + *    distribution.
    + * 3. Neither the name NuttX nor the names of its contributors may be
    + *    used to endorse or promote products derived from this software
    + *    without specific prior written permission.
    + *
    + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
    + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
    + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
    + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
    + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
    + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
    + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
    + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
    + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
    + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
    + * POSSIBILITY OF SUCH DAMAGE.
    + *
    + ****************************************************************************/
    +
    +/****************************************************************************
    + * Included Files
    + ****************************************************************************/
    +
    +

    All header files are included here.

    +
    +/****************************************************************************
    + * Pre-processor Definitions
    + ****************************************************************************/
    +
    +

    All C pre-processor macros are defined here.

    +
    +/****************************************************************************
    + * Private Types
    + ****************************************************************************/
    +
    +

    Any types, enumerations, structures or unions used by the file are defined here.

    +
    +/****************************************************************************
    + * Private Function Prototypes
    + ****************************************************************************/
    +
    +

    Prototypes of all static functions in the file are provided here.

    +
    +/****************************************************************************
    + * Private Data
    + ****************************************************************************/
    +
    +

    All static data definitions appear here.

    +
    +/****************************************************************************
    + * Public Data
    + ****************************************************************************/
    +
    +

    All data definitions with global scope appear here.

    +
    +/****************************************************************************
    + * Private Functions
    + ****************************************************************************/
    +
    +/****************************************************************************
    + * Name: <Static function name>
    + *
    + * Description:
    + *   Description of the operation of the static function.
    + *
    + * Input Parameters:
    + *   A list of input parameters, one-per-line, appears here along with a
    + *   description of each input parameter.
    + *
    + * Returned Value:
    + *   Description of the value returned by this function (if any),
    + *   including an enumeration of all possible error values.
    + *
    + * Assumptions/Limitations:
    + *   Anything else that one might need to know to use this function.
    + *
    + ****************************************************************************/
    +
    +

    All static functions in the file are defined in this grouping. +Each is preceded by a function header similar to the above.

    +
    +/****************************************************************************
    + * Public Functions
    + ****************************************************************************/
    +
    +/****************************************************************************
    + * Name: <Global function name>
    + *
    + * Description:
    + *   Description of the operation of the function.
    + *
    + * Input Parameters:
    + *   A list of input parameters, one-per-line, appears here along with a
    + *   description of each input parameter.
    + *
    + * Returned Value:
    + *   Description of the value returned by this function (if any),
    + *   including an enumeration of all possible error values.
    + *
    + * Assumptions/Limitations:
    + *   Anything else that one might need to know to use this function.
    + *
    + ****************************************************************************/
    +
    +

    All global functions in the file are defined here.

    + +

    A.2 C Header File Structure

    + +
    +/****************************************************************************
    + * <Relative path to the file>
    + * <Optional one line file description>
    + *
    + *   Copyright (C) <Year> <Copyright holder's name>. All rights reserved.
    + *   Author: <Author's name> <Contact e-mail>
    + *
    + * Redistribution and use in source and binary forms, with or without
    + * modification, are permitted provided that the following conditions
    + * are met:
    + *
    + * 1. Redistributions of source code must retain the above copyright
    + *    notice, this list of conditions and the following disclaimer.
    + * 2. Redistributions in binary form must reproduce the above copyright
    + *    notice, this list of conditions and the following disclaimer in
    + *    the documentation and/or other materials provided with the
    + *    distribution.
    + * 3. Neither the name NuttX nor the names of its contributors may be
    + *    used to endorse or promote products derived from this software
    + *    without specific prior written permission.
    + *
    + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
    + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
    + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
    + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
    + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
    + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
    + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
    + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
    + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
    + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
    + * POSSIBILITY OF SUCH DAMAGE.
    + *
    + ****************************************************************************/
    +
    +

    Header file idempotence definitions go here

    +
    +/****************************************************************************
    + * Included Files
    + ****************************************************************************/
    +
    +

    All header files are included here.

    +
    +/****************************************************************************
    + * Pre-processor Definitions
    + ****************************************************************************/
    +
    +

    All C pre-processor macros are defined here.

    +
    +/****************************************************************************
    + * Public Types
    + ****************************************************************************/
    +
    +#ifndef __ASSEMBLY__
    +
    +

    Any types, enumerations, structures or unions are defined here.

    +
    +/****************************************************************************
    + * Public Data
    + ****************************************************************************/
    +
    +#ifdef __cplusplus
    +#define EXTERN extern "C"
    +extern "C"
    +{
    +#else
    +#define EXTERN extern
    +#endif
    +
    +
    +

    All data declarations with global scope appear here, preceded by the definition EXTERN.

    +
    +/****************************************************************************
    + * Inline Functions
    + ****************************************************************************/
    +
    +/****************************************************************************
    + * Name: <Inline function name>
    + *
    + * Description:
    + *   Description of the operation of the inline function.
    + *
    + * Input Parameters:
    + *   A list of input parameters, one-per-line, appears here along with a
    + *   description of each input parameter.
    + *
    + * Returned Value:
    + *   Description of the value returned by this function (if any),
    + *   including an enumeration of all possible error values.
    + *
    + * Assumptions/Limitations:
    + *   Anything else that one might need to know to use this function.
    + *
    + ****************************************************************************/
    +
    +

    Any static inline functions may be defined in this grouping. +Each is preceded by a function header similar to the above.

    +
    +/****************************************************************************
    + * Public Function Prototypes
    + ****************************************************************************/
    +
    +/****************************************************************************
    + * Name: <Global function name>
    + *
    + * Description:
    + *   Description of the operation of the function.
    + *
    + * Input Parameters:
    + *   A list of input parameters, one-per-line, appears here along with a
    + *   description of each input parameter.
    + *
    + * Returned Value:
    + *   Description of the value returned by this function (if any),
    + *   including an enumeration of all possible error values.
    + *
    + * Assumptions/Limitations:
    + *   Anything else that one might need to know to use this function.
    + *
    + ****************************************************************************/
    +
    +

    All global functions in the file are prototyped here. The keyword extern or the definition EXTERN are never used with function prototypes.

    +
    +#undef EXTERN
    +#ifdef __cplusplus
    +}
    +#endif
    +
    +#endif /* __INCLUDE_ASSERT_H */
    +
    +

    Ending with the header file idempotence #endif.

    + + + From ecdc00abea9cd23257e03fe9ce146a10d4ba3e53 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 7 Feb 2014 09:52:09 -0600 Subject: [PATCH 1231/1518] Use xcopy, mot mklink in link.bat; No an error if directory does not exist in unlink.bat --- Documentation/NuttShell.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index 10b4ea5839..e3078d732c 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -1712,7 +1712,7 @@ ls [-lRs] <dir-path>
      - From fa68c5cc9dae03f614be521795f5cbbf979221f5 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 8 Feb 2014 10:46:29 -0600 Subject: [PATCH 1232/1518] Fix some typos in some documents --- Documentation/NXGraphicsSubsystem.html | 16 ++++++++-------- Documentation/NuttxUserGuide.html | 8 ++++---- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/Documentation/NXGraphicsSubsystem.html b/Documentation/NXGraphicsSubsystem.html index 7d9c2d64e9..7aa8ab03cd 100644 --- a/Documentation/NXGraphicsSubsystem.html +++ b/Documentation/NXGraphicsSubsystem.html @@ -356,14 +356,14 @@

      1NXMU and NXSU are interchangeable other than (1) certain start-up - and initializeation APIs (as described below), and (2) timing. With NXSU, NX APIs + and initialization APIs (as described below), and (2) timing. With NXSU, NX APIs execute immediately; with NXMU, NX APIs defer and serialize the operations and, hence, introduce different timing and potential race conditions that you would not experience with NXSU.

      NXNULL? - At one time, I also envisoned a NULL front-end that did not support windowing + At one time, I also envisioned a NULL front-end that did not support windowing at all but, rather, simply provided the entire framebuffer or LCD memory as one dumb window. This has the advantage that the same NX APIs can be used on the one dumb window as for the other NX windows. @@ -765,7 +765,7 @@ int nxgl_splitline(FAR struct nxgl_vector_s *vector, FAR struct nxgl_trapezoid_s

      Description: In the general case, a line with width can be represented as a parallelogram with a triangle at the top and bottom. - Triangles and parallelograms are both degenerate versions of a trapeziod. + Triangles and parallelograms are both degenerate versions of a trapezoid. This function breaks a wide line into triangles and trapezoids. This function also detects other degenerate cases:

      @@ -777,7 +777,7 @@ int nxgl_splitline(FAR struct nxgl_vector_s *vector, FAR struct nxgl_trapezoid_s If x1 == x2 then the line is vertical and also better represented as a rectangle.
    • - If the width of the line is 1, then there are no triangles at the top and bottome + If the width of the line is 1, then there are no triangles at the top and bottom (this may also be the case if the width is narrow and the line is near vertical).
    • @@ -1321,7 +1321,7 @@ int nx_eventnotify(NXHANDLE handle, int signo); the client must observe the rules for using mq_notifiy():
      • - Only one event is signaled. Upon receipt of the signal, if the client + Only one event is signalled. Upon receipt of the signal, if the client wishes further notifications, it must call nx_eventnotify() again.
      • @@ -1425,7 +1425,7 @@ int nx_requestbkgd(NXHANDLE handle,
        • If you want to implement a windowless solution. The single screen - can be used to creat a truly simple graphic environment. In this + can be used to create a truly simple graphic environment. In this case, you should probably also de-select CONFIG_NX_MULTIUSER as well.
        • @@ -3430,7 +3430,7 @@ int nxf_convert_32bpp(FAR uint32_t *dest, uint16_t height, That interface may be driven by window callback functions so that keyboard input only goes to the top window.
          CONFIG__NXCONSOLE_KBDBUFSIZE:
          If CONFIG_NXCONSOLE_NXKBDIN is enabled, then this value may be used to - define the size of the per-window keyboar input buffer. Default: 16 + define the size of the per-window keyboard input buffer. Default: 16
          CONFIG_NXCONSOLE_NPOLLWAITERS:
          The number of threads that can be waiting for read data available. Default: 4 @@ -3473,7 +3473,7 @@ int nxf_convert_32bpp(FAR uint32_t *dest, uint16_t height,
        • Use the bdf-converter program to convert the BDF font to the NuttX font format. - This will result in a C header file containing defintions. + This will result in a C header file containing definitions. That header file should be installed at, for example, graphics/nxfonts/nxfonts_myfont.h.

        • diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 621c4c8c18..9c8b5adb04 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -723,7 +723,7 @@ int execv(FAR const char *path, FAR char *const argv[]);

          Note the inefficiency when execv() or execl() is called in the normal, two-step process: (1) first call vfork() to create a new thread, then (2) call execv() or execl() to replace the new thread with a program from the file system. - Since the new thread will be terminated by the execv() or execl() call, it really served no purpose other than to support Unix compatility. + Since the new thread will be terminated by the execv() or execl() call, it really served no purpose other than to support Unix compatibility.

          The non-standard binfmt function exec() needs to have (1) a symbol table that provides the list of symbols exported by the base code, and (2) the number of symbols in that table. @@ -1000,7 +1000,7 @@ int posix_spawn_file_actions_destroy(FAR posix_spawn_file_actions_t *file_action

        Description: - The posix_spawn_file_actions_destroy() function destroys the object referenced by file_actions which was previously initializeed by posix_spawn_file_actions_init(), returning any resources obtained at the time of initialization to the system for subsequent reuse. + The posix_spawn_file_actions_destroy() function destroys the object referenced by file_actions which was previously initialized by posix_spawn_file_actions_init(), returning any resources obtained at the time of initialization to the system for subsequent reuse. A posix_spawn_file_actions_t may be reinitialized after having been destroyed, but must not be reused after destruction, unless it has been reinitialized.

        @@ -1931,8 +1931,8 @@ interface of the same name.

        Description: - sched_rr_get_interval() writes the timeslice interval - for task identified by pid into the timespec structure + sched_rr_get_interval() writes the timeslice interval + for task identified by pid into the timespec structure pointed to by interval. If pid is zero, the timeslice for the calling process is written into 'interval. The identified process should be running under the SCHED_RR From a00847204737d8ff3c13023eee2042f3f09a6c46 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 10 Feb 2014 13:52:03 -0600 Subject: [PATCH 1233/1518] Release script no longer tries to keep copies of the ChangeLog and TODO list in the Documentation directory --- Documentation/NuttX.html | 33 ++++++++++++++------------- Documentation/NuttXDocumentation.html | 3 +-- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index a1d3c9898b..e487325c43 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -74,7 +74,7 @@ Release Notes What has changed in the last release of NuttX? What has changed in previous releases of NuttX? - Are there any unreleased changes. + Are there any unreleased changes.

    • @@ -1136,37 +1136,43 @@ SourceForge website. Note that the release consists of two tarballs: nuttx-6.33.tar.gz and apps-6.33.tar.gz. Both may be needed (see the top-level nuttx/README.txt file for build information). - Release notes for NuttX 6.33 are available here. - The change log associated with the release is available here. - Unreleased changes after this release are available in GIT (see below).

      -

      Unreleased Changes:

      +

      Release Notes and Change Logs:

      • nuttx.

          - The ChangeLog for the not-yet-released version of NuttX is available at the bottom of the ChangeLog file that can viewed in the SourceForge GIT. + Release notes for NuttX 6.33 are available here; + release notes for all released versions on NuttX are available in the SourceForge GIT + The ChangeLog for all releases of NuttX is available at the bottom of the ChangeLog file that can viewed in the SourceForge GIT.

      • apps.

          - The ChangeLog for the not-yet-released version of apps is available at the bottom of the ChangeLog file that can viewed in the SourceForge GIT. + Release notes for NuttX 6.33 are available here; + release notes for all released versions on NuttX are available in the SourceForge GIT + The ChangeLog for the all releases of apps is available at the bottom of the ChangeLog file that can viewed in the SourceForge GIT.

      • NxWidgets.

          - The ChangeLog for the not-yet-released version of NxWidgets is available at the bottom of the ChangeLog file that can viewed in the SourceForge GIT. + Release notes for NxWidgets 1.11 are available here; + release notes for all released versions on NxWidgets are available in the SourceForge GIT + The ChangeLog for all releases of NxWidgets is available at the bottom of the ChangeLog file that can viewed in the SourceForge GIT.

      • pascal.

          - The ChangeLog for the not-yet-released version of pascal is available at the bottom of the ChangeLog file that can viewed in the SourceForge GIT. + Release notes for all released versions on pascal are available in the SourceForge GIT + The ChangeLog for all releases of pascal is available at the bottom of the ChangeLog file that can viewed in the SourceForge GIT.

      • buildroot.

          - The ChangeLog for the not-yet-released version of buildroot is available at the bottom of the ChangeLog file that can viewed in the SourceForge GIT. + Release notes for buildroot 1.13 are available here; + release notes for all released versions on buildroot are available in the SourceForge GIT + The ChangeLog for all releases of buildroot is available at the bottom of the ChangeLog file that can viewed in the SourceForge GIT.

      @@ -4139,7 +4145,6 @@ if [ -x "$WINELOADER" ]; then exec "$WINELOADER" "$appname" "$@"; fi

        The current list of NuttX Things-To-Do in GIT here. - A snapshot of the To-Do list associated with the current release are available here.

      -RShow the constents of specified directory and all of its + Show the contents of specified directory and all of its sub-directories.
      @@ -4197,11 +4202,7 @@ if [ -x "$WINELOADER" ]; then exec "$WINELOADER" "$appname" "$@"; fi - - - - - + diff --git a/Documentation/NuttXDocumentation.html b/Documentation/NuttXDocumentation.html index 396e93c93d..1e04e4e97b 100644 --- a/Documentation/NuttXDocumentation.html +++ b/Documentation/NuttXDocumentation.html @@ -41,8 +41,7 @@
    • Demand Paging
    • USB Trace
    • README Files
    • -
    • Change Log
    • -
    • To-Do List
    • +
    • To-Do List
    • From 18bd24936e9d09752ca5547981c27474719c1a39 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 10 Feb 2014 13:58:08 -0600 Subject: [PATCH 1234/1518] Update comments in file headers --- Documentation/NuttX.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index e487325c43..78864a2cc7 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@
      Change Log
      To-Do ListNuttX To-Do List

      NuttX RTOS

      -

      Last Updated: January 30, 2014

      +

      Last Updated: February 10, 2014

      From ef19cd1100838bf646c272b988bd97417023c568 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 12 Feb 2014 17:50:58 -0600 Subject: [PATCH 1235/1518] Add initial support for the Atmel SAMD20 Xplained Pro board --- Documentation/README.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/README.html b/Documentation/README.html index 900cf5a49f..3f6aefbd00 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -163,6 +163,8 @@ | | | `- README.txt | | |- sama5d3x-ek/ | | | `- README.txt + | | |- samd20-xplained/ + | | | `- README.txt | | |- sam3u-ek/ | | | `- README.txt | | |- sam4l-xplained/ From c8202795485592abdecabe12592ea685a9c6051d Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 16 Feb 2014 07:54:23 -0600 Subject: [PATCH 1236/1518] Remove the unusable m68332evb configuration --- Documentation/NuttxPortingGuide.html | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 797f18aa5a..2b9362af52 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -548,10 +548,6 @@ This is a work in progress. -
    • arch/m68322 - A work in progress. -
    • -
    • arch/8051: 8051 Microcontroller. This port is not quite ready for prime time.
    • @@ -835,12 +831,6 @@ is based on the NXP LPC1768. The Code Red toolchain is used by default. -
    • configs/m68322evb: - This is a partial port for the venerable m68322evb board from Motorola. - This port was never completed and there are no plans to complete. - It will probably just be removed from the source tree at some point. -
    • -
    • configs/mbed: The configurations in this directory support the mbed board (http://mbed.org) that features the NXP LPC1768 microcontroller. This OS is also built From b9a653007577b6bc4f0fa087b024024a1bc15a4f Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 18 Feb 2014 16:19:14 -0600 Subject: [PATCH 1237/1518] Documentation update --- Documentation/NuttX.html | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 78864a2cc7..95050becc0 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

      NuttX RTOS

      -

      Last Updated: February 10, 2014

      +

      Last Updated: February 28, 2014

      @@ -1202,7 +1202,7 @@
    • ARM926EJS (4)
    • ARM Cortex-A5 (1)
    • ARM Cortex-A8 (1)
    • -
    • ARM Cortex-M0/M0+ (2)
    • +
    • ARM Cortex-M0/M0+ (3)
    • ARM Cortex-M3 (25)
    • ARM Cortex-M4 (10)
    @@ -1270,6 +1270,7 @@
  • AVR ATMega128 (8-bit AVR)
  • AVR AT90USB64x and AT90USB6128x (8-bit AVR)
  • AVR32 AT32UC3BXXX (32-bit AVR32)
  • +
  • Atmel SAMD20 (ARM Cortex-M0+)
  • Atmel SAM3U (ARM Cortex-M3)
  • Atmel SAM3X (ARM Cortex-M3)
  • Atmel SAM4L (ARM Cortex-M4)
  • @@ -1882,7 +1883,7 @@ - ARM Cortex-M0. + ARM Cortex-M0/M0+. @@ -1965,6 +1966,30 @@ nsh> + +
    +
    + + +
    + +

    + Atmel SAMD20. + The port of NuttX to the Atmel SAMD20-Xplained Pro development board. + This board features the ATSAMD20J18A MCU (Cortex-M0+ with 256KB of FLASH and 32KB of SRAM). +

    +
      +

      + This is a work-in-progress. + As of this writing (2014-2-18), there is a functional NuttShell (NSH) configuration. + An SPI driver to support the the added on OLED1 and I/O1 modules is in-work. + STATUS. + Refer to the SAMD20 Explained Pro board README file for further information. +

      +
    + + + From a94192d9ed718d2ce5d770007db1ce92d6ab702d Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 19 Feb 2014 10:01:26 -0600 Subject: [PATCH 1238/1518] rmdir now may be used to remove empty nodes from the pseudo-filesystem --- Documentation/NuttShell.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index e3078d732c..4130294cc4 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -8,7 +8,7 @@

    NuttShell (NSH)

    -

    Last Updated: February 3, 2014

    +

    Last Updated: February 19, 2014

    @@ -2727,7 +2727,7 @@ nsh> rmdir - !CONFIG_DISABLE_MOUNTPOINT && CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_FS_WRITABLE4 + CONFIG_NFILE_DESCRIPTORS > 0 CONFIG_NSH_DISABLE_RMDIR From 6764e945094339d86a41c181da332f25d6cb175e Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 20 Feb 2014 18:14:02 -0600 Subject: [PATCH 1239/1518] unlink/rm can now be used on nodes in the pseudo-filesystem. There is new configuration option to suppress these costly and mostly useless operations on the pseudo-filesystem --- Documentation/NfsHowto.html | 6 ++-- Documentation/NuttShell.html | 58 ++++++++++++++++++------------------ 2 files changed, 32 insertions(+), 32 deletions(-) diff --git a/Documentation/NfsHowto.html b/Documentation/NfsHowto.html index 3eb986bb6a..ed5e6793b8 100644 --- a/Documentation/NfsHowto.html +++ b/Documentation/NfsHowto.html @@ -302,7 +302,7 @@ This is a test # sudo mkdir /export

    - It is important that /export directory allow access to everyone (777 permissions) as we will be accessing the NFS share from the client with no authentication. + It is important that /export directory allow access to everyone (777 permissions) as we will be accessing the NFS share from the client with no authentication.

       # sudo chmod 777 /export
      @@ -327,7 +327,7 @@ directory machine1(option11,option12)
         In our case we are using all the default options except for the ro that we replaced with rw  so that our client will have read and write access to the directory that we are exporting.
       

      - After we do all the require configurations, we are ready to start the server with the next command: + After we do all the require configurations, we are ready to start the server with the next command:

         # sudo /etc/init.d/nfs-kernel-server start
        @@ -337,7 +337,7 @@ directory machine1(option11,option12)
         or run command exportfs.
         

          -# sudo /etc/init.d/nfs-kernel-server start 
          +# sudo /etc/init.d/nfs-kernel-server start
           

        Or

          diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html
          index 4130294cc4..0f90e76109 100644
          --- a/Documentation/NuttShell.html
          +++ b/Documentation/NuttShell.html
          @@ -8,7 +8,7 @@
             
               
                 

          NuttShell (NSH)

          -

          Last Updated: February 19, 2014

          +

          Last Updated: February 20, 2014

          @@ -1301,7 +1301,7 @@ nsh> df Size Blocks Used Available Mounted on 64 6 6 0 /etc 512 985 2 983 /tmp -nsh> +nsh>

        If CONFIG_NSH_CMDOPT_DF_H is defined in the NuttX configuration, then the df will also support an option -h which may be used to show the volume information in human readable format. @@ -1653,7 +1653,7 @@ losetup [-o ] [-r] <dev-path> <file-path> Synopsis. Setup the loop device at <dev-path> to access the file at <file-path> as a block device. In the following example a 256K file is created (dd) and losetup is - used to make the file accessible as a block device. + used to make the file accessible as a block device. A FAT file system is created (mkfatfs) and mounted (mount). Files can then be managed on the loop-mounted file.

          @@ -2488,7 +2488,7 @@ nsh>
           
           

          The availability of the above commands depends upon features that - may or may not be enabled in the NuttX configuration file. The + may or may not be enabled in the NuttX configuration file. The following table indicates the dependency of each command on NuttX configuration settings. General configuration settings are discussed in the NuttX Porting Guide. @@ -2664,7 +2664,7 @@ nsh> mkdir - !CONFIG_DISABLE_MOUNTPOINT && CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_FS_WRITABLE4 + (((!CONFIG_DISABLE_MOUNTPOINT && CONFIG_FS_WRITABLE) || !CONFIG_DISABLE_PSEUDOFS_OPERATIONS) && CONFIG_NFILE_DESCRIPTORS > 0)4 CONFIG_NSH_DISABLE_MKDIR @@ -2689,7 +2689,7 @@ nsh> mv - !CONFIG_DISABLE_MOUNTPOINT && CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_FS_WRITABLE3 + (((!CONFIG_DISABLE_MOUNTPOINT && CONFIG_FS_WRITABLE) || !CONFIG_DISABLE_PSEUDOFS_OPERATIONS) && CONFIG_NFILE_DESCRIPTORS > 0)4 CONFIG_NSH_DISABLE_MV @@ -2722,12 +2722,12 @@ nsh> rm - !CONFIG_DISABLE_MOUNTPOINT && CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_FS_WRITABLE4 + (((!CONFIG_DISABLE_MOUNTPOINT && CONFIG_FS_WRITABLE) || !CONFIG_DISABLE_PSEUDOFS_OPERATIONS) && CONFIG_NFILE_DESCRIPTORS > 0)4 CONFIG_NSH_DISABLE_RM rmdir - CONFIG_NFILE_DESCRIPTORS > 0 + (((!CONFIG_DISABLE_MOUNTPOINT && CONFIG_FS_WRITABLE) || !CONFIG_DISABLE_PSEUDOFS_OPERATIONS) && CONFIG_NFILE_DESCRIPTORS > 0)4 CONFIG_NSH_DISABLE_RMDIR @@ -3007,7 +3007,7 @@ set FOOBAR ABC_${FOO}_${BAR}

        • CONFIG_NSH_USBCONSOLE. If defined, then the an arbitrary USB device may be used to as the NSH console. - In this case, CONFIG_NSH_CONDEV must be defined to indicate which USB device to use as the console. + In this case, CONFIG_NSH_CONDEV must be defined to indicate which USB device to use as the console. The advantage of using a device other that /dev/console is that normal debug output can not use /dev/console while NSH uses CONFIG_NSH_USBCONDEV.

          CONFIG_NSH_USBCONDEV. @@ -3365,7 +3365,7 @@ set FOOBAR ABC_${FOO}_${BAR}

          4.1.1 NSH Initialization sequence

          - The NSH start-up sequence is very simple. + The NSH start-up sequence is very simple. As an example, the code at apps/examples/nsh/nsh_main.c illustrates how to start NSH. It simple does the following:

          @@ -3469,7 +3469,7 @@ mount -t vfat /dev/ram1 /tmp

        • - Mount the FAT filesystem at a configured mountpoint, /tmp. + Mount the FAT filesystem at a configured mountpoint, /tmp.

        @@ -3502,7 +3502,7 @@ mount -t vfat /dev/ram1 /tmp Overview. NSH supports a variety of commands as part of the NSH program. All of the NSH commands are listed in the NSH documentation above. - Not all of these commands may be available at any time, however. + Not all of these commands may be available at any time, however. Many commands depend upon certain NuttX configuration options. You can enter the help command at the NSH prompt to see the commands actual available:

        @@ -3619,7 +3619,7 @@ struct cmdmap_s

        Overview. In addition to these commands that are a part of NSH, external programs can also be executed as NSH commands. - These external programs are called "Built-In" Applications for historic reasons. + These external programs are called "Built-In" Applications for historic reasons. That terminology is somewhat confusing because the actual NSH commands as described above are truly "built-into" NSH whereas these applications are really external to NuttX.

        @@ -3716,7 +3716,7 @@ Builtin Apps: The NuttX build occurs in several phases as different build targets are executed: (1) context when the configuration is established, (2) depend when target dependencies are generated, and - (3) default (all) when the normal compilation and link operations are performed. + (3) default (all) when the normal compilation and link operations are performed. Built-in application information is collected during the make context build phase.

        @@ -3912,7 +3912,7 @@ CONFIGURED_APPS += examples/hello
      • You replace the sample code at apps/examples/nsh/nsh_main.c with whatever start-up logic that you want. - NSH is a library at apps/nshlib. + NSH is a library at apps/nshlib. apps.examplex/nsh is just a tiny, example start-up function (CONFIG_USER_ENTRYPOINT()) that that runs immediately and illustrates how to start NSH If you want something else to run immediately then you can write your write your own custom CONFIG_USER_ENTRYPOINT() function and then start other tasks from your custom CONFIG_USER_ENTRYPOINT().

        @@ -3938,7 +3938,7 @@ CONFIGURED_APPS += examples/hello NSH supports options to provide a start up script for NSH. The start-up script contains any command support by NSH (i.e., that you see when you enter 'nsh> help'). In general this capability is enabled with CONFIG_NSH_ROMFSETC=y, but has several other related configuration options as described with the NSH-specific configuration settings paragraph. - This capability also depends on: + This capability also depends on:

          @@ -3962,26 +3962,26 @@ CONFIGURED_APPS += examples/hello

          Default Start-Up Behavior. The implementation that is provided is intended to provide great flexibility for the use of Start-Up files. - This paragraph will discuss the general behavior when all of the configuration options are set to the default values. + This paragraph will discuss the general behavior when all of the configuration options are set to the default values.

          - In this default case, enabling CONFIG_NSH_ROMFSETC will cause NSH to behave as follows at NSH start-up time: + In this default case, enabling CONFIG_NSH_ROMFSETC will cause NSH to behave as follows at NSH start-up time:

          • - NSH will create a read-only RAM disk (a ROM disk), containing a tiny ROMFS filesystem containing the following: + NSH will create a read-only RAM disk (a ROM disk), containing a tiny ROMFS filesystem containing the following:

               `--init.d/
                   `-- rcS
               

            - Where rcS is the NSH start-up script. + Where rcS is the NSH start-up script.

          • - NSH will then mount the ROMFS filesystem at /etc, resulting in: + NSH will then mount the ROMFS filesystem at /etc, resulting in:

               |--dev/
              @@ -3992,7 +3992,7 @@ CONFIGURED_APPS += examples/hello
               
          • - By default, the contents of rcS script are: + By default, the contents of rcS script are:

               # Create a RAMDISK and mount it at /tmp
              @@ -4004,7 +4004,7 @@ mount -t vfat /dev/ram1 /tmp
                 
            • NSH will execute the script at /etc/init.d/rcS at start-up (before the first NSH prompt). - After execution of the script, the root FS will look like: + After execution of the script, the root FS will look like:

                 |--dev/
                @@ -4048,7 +4048,7 @@ mount -t vfat /dev/ram1 /tmp
                 

                Modifying the ROMFS Image. The contents of the /etc directory are retained in the file apps/nshlib/nsh_romfsimg.h OR, if CONFIG_NSH_ARCHROMFS is defined, include/arch/board/rcs.template. - In order to modify the start-up behavior, there are three things to study: + In order to modify the start-up behavior, there are three things to study:

                  @@ -4062,15 +4062,15 @@ mount -t vfat /dev/ram1 /tmp tools/mkromfsimg.sh Script. The script tools/mkromfsimg.sh creates nsh_romfsimg.h. It is not automatically executed. - If you want to change the configuration settings associated with creating and mounting the /tmp directory, then it will be necessary to re-generate this header file using the tools/mkromfsimg.sh script. + If you want to change the configuration settings associated with creating and mounting the /tmp directory, then it will be necessary to re-generate this header file using the tools/mkromfsimg.sh script.

                  - The behavior of this script depends upon several things: + The behavior of this script depends upon several things:

                  1. - The configuration settings then installed configuration. + The configuration settings then installed configuration.

                  2. @@ -4089,7 +4089,7 @@ mount -t vfat /dev/ram1 /tmp

                  3. rcS.template. - The file apps/nshlib/rcS.template contains the general form of the rcS file; configured values are plugged into this template file to produce the final rcS file. + The file apps/nshlib/rcS.template contains the general form of the rcS file; configured values are plugged into this template file to produce the final rcS file.

                  @@ -4273,7 +4273,7 @@ mount -t vfat /dev/ram1 /tmp
                1. NSH library (nshlib)
                2. NSH library (nshlib)
                3. nsh_archinitialize()
                4. -
                5. nsh_consolemain()
                6. +
                7. nsh_consolemain()
                8. nsh_initialize()
                9. nsh_main()
                10. nsh_main.c
                11. From bc5c1eb9bd5fcfb973d4b4c9cb252af6293a0333 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 25 Feb 2014 10:56:23 -0600 Subject: [PATCH 1240/1518] SAM4E: Update SAM3/4 TC and DMAC register definition header files --- Documentation/NuttX.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 95050becc0..28a3badf7a 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1980,10 +1980,10 @@ nsh>

                    - This is a work-in-progress. - As of this writing (2014-2-18), there is a functional NuttShell (NSH) configuration. - An SPI driver to support the the added on OLED1 and I/O1 modules is in-work. STATUS. + The initial SAMD20 Xplained Pro release (NuttX 6.34) included a functional NuttShell (NSH) configuration. + An SPI driver was also included to support the OLED1 and I/O1 modules. + That SPI driver, however, was not completed verified due to higher priority tasks that came up (I hope to get back to this later). Refer to the SAMD20 Explained Pro board README file for further information.

                  From bfecc6d1465a5526667cc6c89544900a1979c612 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 28 Feb 2014 19:19:11 -0600 Subject: [PATCH 1241/1518] Removed almost all ostest configurations --- Documentation/NuttX.html | 50 ++++++++++++++++------------------------ 1 file changed, 20 insertions(+), 30 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 28a3badf7a..c980d0e52b 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1725,9 +1725,6 @@ There are simple test configurations that run out of internal SRAM and extended configurations that run out of the on-board NOR FLASH:

                    -
                  • - An OS test configuration that verifies the correct port of NuttX to the part and -
                  • A barebones NuttShell (NSH) configuration that can be used as the basis for further application development.
                  • @@ -1898,8 +1895,7 @@ STATUS. Initial support for the NUC120 was released in NuttX-6.26. This initial support is very minimal: - There is an OS test configuration that verifies the correct port of NuttX to the part and - a NuttShell (NSH) configuration that might be the basis for an application development. + There is a NuttShell (NSH) configuration that might be the basis for an application development. As of this writing, more device drivers are needed to make this a more complete port. Refer to the NuttX board README file for further information.

                    @@ -1957,7 +1953,7 @@ nsh> STATUS. This is the work of Alan Carvalho de Assis. Verified, initial, minimal support for the Freedom KL25Z is in place in NuttX 6.27 and 6.28: - There is a working OS test configuration that verifies the correct port of NuttX to the part and a working NuttShell (NSH) configuration that might be the basis for an application development. + There is a working NuttShell (NSH) configuration that might be the basis for an application development. As of NuttX-6.28 more device driver development would be needed to make this a complete port, particularly to support USB OTG. A TSI and a SPI driver were added in NuttX-6.29. Alan contributed a PWM driver in NuttX-6.32. @@ -2016,7 +2012,7 @@ nsh>

                    TI/Stellaris LM3S6432S2E. This port uses Serial-to-Ethernet Reference Design Kit (RDK-S2E) and has similar support as for the other Stellaris family members. - Configurations are available for the OS test and for the NuttShell (NSH) + A configuration is available for the NuttShell (NSH) (see the NSH User Guide). The NSH configuration including networking support with a Telnet NSH console. This port was contributed by Mike Smith. @@ -2047,7 +2043,7 @@ nsh> STATUS: The initial, release of this port was included in NuttX version 0.4.6. The current port includes timer, serial console, Ethernet, SSI, and microSD support. - There are working configurations the NuttX OS test, to run the NuttShell + There are working configurations to run the NuttShell (NSH), the NuttX networking test, and the uIP web server. Refer to the NuttX board README file for further information.

                    @@ -2340,7 +2336,7 @@ nsh> logic, interrupt driven serial console, and system timer interrupts. The 0.4.13 release added support for SPI, serial FLASH, and USB device.; The 4.14 release added support for buttons and SDIO-based MMC/SD and verifed DMA support. - Verified configurations are available for NuttX OS test, the NuttShell (NSH) example, + Verified configurations are available for the NuttShell (NSH) example, the USB serial device class, and the USB mass storage device class example.

                    @@ -2414,7 +2410,7 @@ nsh>

                    STATUS: - Configurations for the basic OS test and NSH are available and verified. + A configuration for the NuttShell (NSH) is available and verified. Networking is functional. Support for an external ENCX24J600 network was added in NuttX 6.30.

                    @@ -2546,7 +2542,7 @@ nsh>

                      STATUS: - As of this writing, the basic port is code complete and fully verified configurations exist for the basic NuttX OS test and for the NuttShell NSH). + As of this writing, the basic port is code complete and a fully verified configuration exists for the NuttShell NSH). The first fully functional Arduino Due port was released in NuttX-6.29. Refer to the NuttX board README file for further information.

                      @@ -2634,9 +2630,6 @@ nsh>

                    -

                    - This port includes a NuttX OS test configuration (see apps/examples/ostest). -

                  • Olimex LPC1766-STK

                    @@ -2662,8 +2655,7 @@ nsh>

                  - Verified configurations are now available for the NuttX OS test, - for the NuttShell with networking and microSD support(NSH, see the NSH User Guide), + Verified configurations are now available for the NuttShell with networking and microSD support(NSH, see the NSH User Guide), for the NuttX network test, for the THTTPD webserver, for USB serial deive and USB storage devices examples, and for the USB host HID keyboard driver. Support for the USB host mass storage device can optionally be configured for the NSH example. @@ -2676,7 +2668,7 @@ nsh>

                  An fully verified board configuration is included in NuttX-6.2. The Code Red toolchain is supported under either Linux or Windows. - Verifed configurations include DHCPD, the NuttShell (NSH), NuttX graphis (NX), the NuttX OS test, THTTPD, and USB mass storage device. + Verifed configurations include DHCPD, the NuttShell (NSH), NuttX graphis (NX), THTTPD, and USB mass storage device. Refer to the NuttX board README file for further information.

                  @@ -2972,7 +2964,7 @@ nsh>
                12. NuttX-6.20 The basic port is complete. - The OS test configuration and the basic NSH configurations are present and fully verified. + The basic NuttShell (NSH) configuration is present and fully verified. This includes verified support for: SYSTICK system time, pin and GPIO configuration, and a serial console.

                  @@ -3021,7 +3013,7 @@ nsh>

                    STATUS: - As of this writing, the basic port is code complete and fully verified configurations exist for the basic NuttX OS test and for the NuttShell NSH). + As of this writing, the basic port is code complete and a fully verified configuration exists for the NuttShell NSH). The first fully functional LM4F120 LaunchPad port was released in NuttX-6.27.

                  @@ -3042,7 +3034,7 @@ nsh>

                    STATUS: - As of this writing, the basic port is code complete and fully verified configurations exist for the basic NuttX OS test and for the NuttShell NSH). + As of this writing, the basic port is code complete and a fully verified configuration exists for the NuttShell NSH). The first fully functional SAM4L Xplained Pro port was released in NuttX-6.28. Support for the SAM4L Xplained modules was added in NuttX-6.29:

                    @@ -3107,7 +3099,7 @@ Mem: 29232 5920 23312 23312

                      STATUS: - As of this writing, the basic port is code complete and fully verified configurations exist for the basic NuttX OS test and for the NuttShell NSH). + As of this writing, the basic port is code complete and a fully verified configuration exists for the the NuttShell NSH). The first fully functional SAM4S Xplained port was released in NuttX-6.28. Support for the on-board 1MB SRAM was added in NuttX-6.29. Refer to the NuttX board README file for further information. @@ -3307,7 +3299,7 @@ Mem: 29232 5920 23312 23312

                    - The basic, port (including the verified apps/examples/ostest configuration) was be released in NuttX-5.13. + The basic, port was be released in NuttX-5.13. A complete port will include drivers for additional AVR32 UC3 devices -- like SPI and USB --- and will be available in a later release, time permitting. Refer to the NuttX board README file for further information. @@ -3452,9 +3444,8 @@ Mem: 29232 5920 23312 23312

                    STATUS: The basic port is code complete. - Two configurations are available: - (1) An OS test configuration and a (2) configuration that support the NuttShell (NSH). The OS test configuration is fully functional and proves that we have a basically healthy NuttX port to the Mirtoo. + A configuration is available for the NuttShell (NSH). The NSH configuration includes support for a serial console and for the SST25 serial FLASH and the PGA117 amplifier/multiplexer on board the module. The NSH configuration is set up to use the NuttX wear-leveling FLASH file system (NXFFS). The PGA117, however, is not yet fully integrated to support ADC sampling. @@ -3490,7 +3481,7 @@ Mem: 29232 5920 23312 23312 This NuttX port is code complete and has considerable test testing. The port for this board was completed in NuttX 6.11, but still required a few bug fixes before it will be ready for prime time. The fully verified port first appeared in NuttX 6.13. - Available configurations include the OS test and the NuttShell (NSH - see the NSH User Guide). + Available configurations include the NuttShell (NSH - see the NSH User Guide). An untested USB device-side driver is available in the source tree. A more complete port would include support of the USB OTG port and of the LCD display on this board. Those drivers are not yet available as of this writing. @@ -3509,7 +3500,7 @@ Mem: 29232 5920 23312 23312

                    STATUS: The basic port is code complete and fully verified in NuttX 6.13. - Available configurations include the OS test and the NuttShell (NSH - see the NSH User Guide). + Available configurations include the NuttShell (NSH - see the NSH User Guide). Refer to the NuttX board README file for further information.

                  • UBW32 Board from Sparkfun @@ -3521,7 +3512,7 @@ Mem: 29232 5920 23312 23312

                    STATUS: The basic port is code complete and fully verified in NuttX 6.18. - Available configurations include the OS test and the NuttShell (NSH - see the NSH User Guide). + Available configurations include the the NuttShell (NSH - see the NSH User Guide). USB has not yet been fully tested but on first pass appears to be functional. Refer to the NuttX board README file for further information.

                    @@ -3551,7 +3542,7 @@ Mem: 29232 5920 23312 23312 The basic Starter Kit (even with the Multimedia Expansion Board, MEB, DM320005)) has no serial port and most NuttX test configurations depend heavily on console output.

                    - Verified configurations for the OS test and the NuttShel (NSH) appeared in NuttX-6.16. + A verified configuration is available for the NuttShel (NSH) appeared in NuttX-6.16. Board support includes a verified USB (device-side) driver. Also included are a a verified Ethernet driver, a partially verified USB device controller driver, and an unverifed SPI driver. Refer to the NuttX board README file for further information. @@ -3562,8 +3553,7 @@ Mem: 29232 5920 23312 23312

                  • STATUS: - Two verified configurations are available: - (1) The basic OS test configuration that verfies the correctness port of NuttX, and (2) an extensive NuttShell (NSH) configuration. + A verified configuration is available for an extensive NuttShell (NSH) configuration. The NSH configuration includes: (1) Full network support, (2) Verified SPI driver, From 083c2af576d5917ee44787d4b136df33d58156c0 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 6 Mar 2014 13:00:50 -0600 Subject: [PATCH 1242/1518] Support for the older, manual configurations has been completely removed from the NuttX build system --- Documentation/NuttShell.html | 32 ++-------------------------- Documentation/NuttxPortingGuide.html | 27 ++--------------------- 2 files changed, 4 insertions(+), 55 deletions(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index 0f90e76109..21facc51ac 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -8,7 +8,7 @@

                    NuttShell (NSH)

                    -

                    Last Updated: February 20, 2014

                    +

                    Last Updated: March 6, 2014

                    @@ -3863,32 +3863,6 @@ CONFIG_SCHED_WAITPID=y Of course, even with CONFIG_SCHED_WAITPID=y defined, specific applications can still be forced to run asynchronously by adding the ampersand (&) after the NSH command.

                    -

                    4.3.3 Application Configuration File

                    - -

                    - The appconfig File. - A special configuration file is used to configure which applications are to be included in the build. - The source for this file is saved at configs/<board>/<configuration>/appconfig. - The existence of the appconfig file in the board configuration directory is sufficient to enable building of applications. -

                    - -

                    - The appconfig file is copied into the apps/ directory as .config when NuttX is configured. - .config is included by the top-level apps/Makefile. - As a minimum, this configuration file must define files to add to the CONFIGURED_APPS list like: -

                    -
                      -CONFIGURED_APPS += examples/hello
                      -
                    - -

                    - Changes in the Works. - There are changes in the works that will obsolete the appconfig file. - These changes will implement an automated configuration system for NuttX. - One consequence of this new configuration system is that the appconfig file will become obsolete and will be replaced by a new mechanism for selecting applications. - This new mechanism is not yet available, but is dicussed here: http://tech.groups.yahoo.com/group/nuttx/message/1604. -

                    -
                    @@ -4142,8 +4116,6 @@ mount -t vfat /dev/ram1 /tmp
                  • [
                  • Adding NSH commands
                  • addroute
                  • -
                  • appconfig
                  • -
                  • Application configuration file (appconfig)
                  • Autogenerated header files
                  • Background commands
                  • Background command priority
                  • @@ -4196,10 +4168,10 @@ mount -t vfat /dev/ram1 /tmp
                  • CONFIG_NSH_NESTDEPTH
                  • CONFIG_NSH_NETMASK
                  • CONFIG_NSH_NOMAC
                  • +
                  • CONFIG_NSH_READLINE
                    • -
                    • CONFIG_NSH_READLINE
                    • CONFIG_NSH_ROMFSDEVNO
                    • CONFIG_NSH_ROMFSETC
                    • CONFIG_NSH_ROMFSETC
                    • diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 2b9362af52..1f45613255 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -645,20 +645,14 @@ |-- <config1-dir> | |-- Make.defs | |-- defconfig -| |-- appconfig1 | `-- setenv.sh |-- <config2-dir> | |-- Make.defs | |-- defconfig -| |-- appconfig1 | `-- setenv.sh | ... `-- (other board-specific configuration sub-directories)/ - -

                      - 1Optional -

                      -
                    +

                    2.4.2 Summary of Files

                    2.4.2.1 Board Specific Logic

                    @@ -744,13 +738,6 @@ most C files in the system.

                    -
                  • -

                    - appconfig: This is another configuration file that is specific to the - application. This file is copied into the application build directory - when NuttX is configured. See ../apps/README.txt for further details. -

                    -
                  • setenv.sh: This is a script that you can include that will be installed at @@ -1461,15 +1448,6 @@ netutils/

                  • Copy configs/<board-name>/[<config-dir>/]defconfig to ${TOPDIR}/.config
                  • -

                    - And if configs/<board-name>/[<config-dir>/appconfig exists in the board configuration directory: -

                    -
                      -
                    • Copy configs/<board-name>/[<config-dir>/appconfig to <app-dir>/.config
                    • -
                    • echo "APPS_LOC=\"<app-dir>\"" >> "${TOPDIR}/.config"
                    • -
                    - -

                    Where <board-name> is the name of one of the sub-directories of the NuttX configs/ directory. @@ -1500,8 +1478,7 @@ netutils/

                    - If configs/<board-name>/[<config-dir>]/appconfig - exists and your application directory is not in the standard loction (../apps), + If your application directory is not in the standard loction (../apps or ../apps-<version>), then you should also specify the location of the application directory on the command line like:

                      
                      From e208b50b633117426ee314758df0e8f32ed682f8 Mon Sep 17 00:00:00 2001
                      From: Gregory Nutt 
                      Date: Thu, 6 Mar 2014 17:47:07 -0600
                      Subject: [PATCH 1243/1518] Update NuttShell.html per recommendations from Max
                       Kriegleder
                      
                      ---
                       Documentation/NuttShell.html | 6 +++++-
                       1 file changed, 5 insertions(+), 1 deletion(-)
                      
                      diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html
                      index 21facc51ac..8931890964 100644
                      --- a/Documentation/NuttShell.html
                      +++ b/Documentation/NuttShell.html
                      @@ -4021,7 +4021,7 @@ mount -t vfat /dev/ram1 /tmp
                       
                       

                      Modifying the ROMFS Image. - The contents of the /etc directory are retained in the file apps/nshlib/nsh_romfsimg.h OR, if CONFIG_NSH_ARCHROMFS is defined, include/arch/board/rcs.template. + The contents of the /etc directory are retained in the file apps/nshlib/nsh_romfsimg.h OR, if CONFIG_NSH_ARCHROMFS is defined, include/arch/board/nsh_romfsimg.h. In order to modify the start-up behavior, there are three things to study:

                      @@ -4065,6 +4065,10 @@ mount -t vfat /dev/ram1 /tmp rcS.template. The file apps/nshlib/rcS.template contains the general form of the rcS file; configured values are plugged into this template file to produce the final rcS file.

                      +

                      + To generate a custom rcS file a copy of rcS.template needs to be placed at tools/ and changed according to the desired start-up behaviour. + Running tools/mkromfsimg.h creates nsh_romfsimg.h which needs to be copied to apps/nhslib OR if CONFIG_NSH_ARCHROMFS is defined to configs/<board>/include. +

                      From ff13e4b75aed925edb996ea376d114af1262edd1 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 10 Mar 2014 08:12:35 -0600 Subject: [PATCH 1244/1518] Add support for TM4C GPIOs --- Documentation/NuttXCCodingStandard.html | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttXCCodingStandard.html b/Documentation/NuttXCCodingStandard.html index 946c63763d..0693efc50f 100755 --- a/Documentation/NuttXCCodingStandard.html +++ b/Documentation/NuttXCCodingStandard.html @@ -12,7 +12,7 @@

                      NuttX C Coding Standard

                      -

                      Last Updated: February 6, 2014

                      +

                      Last Updated: March 9, 2014

                    @@ -1747,17 +1747,26 @@ ptr = (FAR struct somestruct_s *)value;
                  • Braces in column 1 - The opening and close braces of the compound statement mst be placed in column one. + The opening and close braces of the compound statement must be placed in column one.
                  • First definition or statement in column 3. The first data definitions or statements in the function body are idented by two spaces. Standards for statements are covered in the following paragaraph
                  • +
                  • + Local variables first. + Because NuttX conforms to the older C89 standard, all variables that have scope over the entire compound statement must be defined at the beginning of the compound statement. + A single blank line must follow the local variable definitions. +
                  • Long functions are discouraged. As a rule of thumb, the length of a function should be limited so that it would fit on a single page (if you were to print the source code).
                  • +
                  • + Space after the function boady + A one (and only one) blank line must follow the closing right brace of the function body. +

                  Returned Values

                  From c526f0d9f5a2e439df062e42dab48ff4b4e2cdb0 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 10 Mar 2014 11:25:06 -0600 Subject: [PATCH 1245/1518] Add basic board support for the TM4C123G Launchpad --- Documentation/README.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/README.html b/Documentation/README.html index 3f6aefbd00..c0dcdb3836 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -8,7 +8,7 @@

                  NuttX README Files

                  -

                  Last Updated: January 16, 2014

                  +

                  Last Updated: March 10, 2014

                  @@ -202,6 +202,8 @@ | | | `- README.txt | | |- teensy/ | | | `- README.txt + | | |- tm4c123g-launchpad/ + | | | `- README.txt | | |- twr-k60n512/ | | | `- README.txt | | |- ubw32/ From bb87d5b30ccc0834283b99de42932b3d32c41c01 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 10 Mar 2014 15:18:46 -0600 Subject: [PATCH 1246/1518] SAM4E-EK: Add basic board support --- Documentation/README.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/README.html b/Documentation/README.html index c0dcdb3836..e1b0ff1831 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -167,6 +167,8 @@ | | | `- README.txt | | |- sam3u-ek/ | | | `- README.txt + | | |- sam4e-ek/ + | | | `- README.txt | | |- sam4l-xplained/ | | | `- README.txt | | |- sam4s-xplained/ From fd93b1057ebd30535c9e11a25a9c050fe6a25fd1 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 12 Mar 2014 16:03:03 -0600 Subject: [PATCH 1247/1518] Documentation update --- Documentation/NuttX.html | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index c980d0e52b..b5aaf4ccaa 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                  NuttX RTOS

                  -

                  Last Updated: February 28, 2014

                  +

                  Last Updated: March 12, 2014

                  @@ -3117,8 +3117,17 @@ Mem: 29232 5920 23312 23312

                  Atmel SAM4E. General architectural support was provided for the SAM4E family in NuttX 6.32. - This is architecture-only support, meaning that support for the boards with these chips is available, but not support for any publicly available boards is included.. - This support was contributed by Mitko. + This is architecture-only support, meaning that support for the boards with these chips is available, but not support for any publicly available boards is included. + This support was contributed in part by Mitko. +

                  +

                  + Atmel SAM4E-EK. + Board support was added for the SAM4E-EK development board in NuttX 6.33. + A fully functional NuttShell (NSH) configuration is avaiable + (see the NSH User Guide). + This is very much a work in progress. + An Ethernet MAC driver is in place and under test now. + Refer to the NuttX board README file for further information.

                  From 144bff115ff3568060989de8adb8870b275f3200 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 13 Mar 2014 09:03:03 -0600 Subject: [PATCH 1248/1518] SAM4E: Fix EMAC pin configuration. Driver is basically functionaly now. SAM4E-EK NSH configuration now has networking enabled by default --- Documentation/NuttX.html | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index b5aaf4ccaa..7cb69176ae 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -3123,12 +3123,16 @@ Mem: 29232 5920 23312 23312

                  Atmel SAM4E-EK. Board support was added for the SAM4E-EK development board in NuttX 6.33. - A fully functional NuttShell (NSH) configuration is avaiable + A fully functional NuttShell (NSH) configuration is available (see the NSH User Guide). - This is very much a work in progress. - An Ethernet MAC driver is in place and under test now. - Refer to the NuttX board README file for further information.

                  +
                    + STATUS. + This is very much a work in progress. + The SAM4E-EK should be compatible with most of the other SAM3/4 drivers (like SPI, HSMCI, DMAC, etc.) but those have not be verified on the SAM4E-EK as of this writing. + A new Ethernet MAC driver has been developed and is functional, although it has not yet received a lot of testing. + Refer to the NuttX board README file for further information. +
                  From 1c3b44393a6bf6a147dcc1c59221612969c4e7f5 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 15 Mar 2014 10:05:18 -0600 Subject: [PATCH 1249/1518] Prep for NuttX 7.1 release --- Documentation/NuttX.html | 87 +++++++++++++++++++++++++++++++--------- 1 file changed, 69 insertions(+), 18 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 7cb69176ae..d2563513de 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                  NuttX RTOS

                  -

                  Last Updated: March 12, 2014

                  +

                  Last Updated: March 15, 2014

                  @@ -371,6 +371,14 @@

                  + +
                  + +

                  +

                13. Built-in, per-thread CPU load measurments.
                14. +

                  + +
                  @@ -795,7 +803,7 @@

                  -

                15. Device-dependent USB class drivers available for USB mass storage and HID keyboard.
                16. +
                17. Device-dependent USB class drivers available for USB mass storage, HID keyboard, and HID mouse.
                18. @@ -1130,27 +1138,38 @@

                  Released Versions

                  In addition to the ever-changing GIT repository, there are frozen released versions of NuttX available. - The current release is NuttX 6.33. - NuttX 6.33 is the 100th release of NuttX. - It was released on January 30, 2014, and is available for download from the + The current release is NuttX 7.1. + NuttX 7.1 is the 101st release of NuttX. + It was released on March 15, 2014, and is available for download from the SourceForge website. - Note that the release consists of two tarballs: nuttx-6.33.tar.gz and apps-6.33.tar.gz. + Note that the release consists of two tarballs: nuttx-7.1.tar.gz and apps-7.1.tar.gz. Both may be needed (see the top-level nuttx/README.txt file for build information).

                  +

                  + The previous NuttX version was 6.33. + The NuttX minor version number is incremented on each release, but the major version number is incremented only when an incompatibility with previous versions is included in the release. + In this case, the legacy, manual configuration is no longer supported by the NuttX build system beginning with NuttX 7.1. + Only the newer configurations generated by the kconfig-frontends tools will generate + viable NuttX configurations. +

                  +

                  + All board configurations in the NuttX source tree have been converted to use the newer configuration, but if you have some older style configurations for you board, you will need to convert those configurations to use the kconfig-frontends tools before taking any new code from the repository. + There are Conversion Guidelines available on the NuttX Wiki +

                  Release Notes and Change Logs:

                  • nuttx.

                      - Release notes for NuttX 6.33 are available here; + Release notes for NuttX 7.1 are available here; release notes for all released versions on NuttX are available in the SourceForge GIT The ChangeLog for all releases of NuttX is available at the bottom of the ChangeLog file that can viewed in the SourceForge GIT.

                  • apps.

                      - Release notes for NuttX 6.33 are available here; + Release notes for NuttX 7.1 are available here; release notes for all released versions on NuttX are available in the SourceForge GIT The ChangeLog for the all releases of apps is available at the bottom of the ChangeLog file that can viewed in the SourceForge GIT.

                      @@ -1170,7 +1189,7 @@
                  • buildroot.
                  • Atmel AVR
                  • ZiLOG @@ -1512,7 +1532,8 @@ This port boots and passes the OS test (apps/examples/ostest) and includes a working implementation of the NuttShell (NSH). The port is complete and verified. - As of NuttX 5.3, the port includes only basic timer interrupts and serial console support. + As of NuttX 5.3, the port included only basic timer interrupts and serial console support. + In NuttX 7.1, Lizhuoyi contributed additional I2C and SPI drivers. Refer to the NuttX board README file for further information.

                    @@ -1977,7 +1998,7 @@ nsh>

                      STATUS. - The initial SAMD20 Xplained Pro release (NuttX 6.34) included a functional NuttShell (NSH) configuration. + The initial SAMD20 Xplained Pro release (NuttX 7.1) included a functional NuttShell (NSH) configuration. An SPI driver was also included to support the OLED1 and I/O1 modules. That SPI driver, however, was not completed verified due to higher priority tasks that came up (I hope to get back to this later). Refer to the SAMD20 Explained Pro board README file for further information. @@ -2647,7 +2668,7 @@ nsh> The NuttX-5.16 release added a functional USB host controller driver and USB host mass storage class driver.

                    • - The NuttX-5.17 released added support for low-speed USB devicers, interrupt endpoints, and a USB host HID keyboard class driver. + The NuttX-5.17 released added support for low-speed USB devices, interrupt endpoints, and a USB host HID keyboard class driver.
                    • Refer to the NuttX board README file for further information. @@ -3023,6 +3044,32 @@ nsh>

                      + +
                      + +

                      + TI Tiva TM4C123G. + This port uses the TI Tiva TM4C123G LaunchPad. +

                      +
                        +

                        + STATUS: + This is very much a work in progress. + As of this writing, full architectural support for the TI Tiva TM4C123G has been implemented and was released in NuttX 7.1. + Basic board support is in place for the TM4C123G LaunchPad but is completely untested and possibly imcomplete. + This partial logic is also included int he NuttX 7.1 release. + This basic board supprted includes an (un-verified) configuration for the NuttShell NSH). + A fully verified port to the TM4C123G LaunchPad is expected in NuttX-7.2. + The first fully functional LM4F120 LaunchPad port was released in NuttX-6.27. + Refer to the TM4C123G LaunchPad board README file for more detailed information about this port. +

                        +
                      + + + +
                      +
                      +
                      @@ -3117,20 +3164,22 @@ Mem: 29232 5920 23312 23312

                      Atmel SAM4E. General architectural support was provided for the SAM4E family in NuttX 6.32. - This is architecture-only support, meaning that support for the boards with these chips is available, but not support for any publicly available boards is included. + This was architecture-only support, meaning that support for the boards with these chips is available, but no support for any publicly available boards was included. This support was contributed in part by Mitko.

                      Atmel SAM4E-EK. - Board support was added for the SAM4E-EK development board in NuttX 6.33. + Board support was added for the SAM4E-EK development board in NuttX 7.1. A fully functional NuttShell (NSH) configuration is available (see the NSH User Guide). + That NSH configuration includes networking support and support for an AT25 Serial FLASH file system.

                        STATUS. This is very much a work in progress. - The SAM4E-EK should be compatible with most of the other SAM3/4 drivers (like SPI, HSMCI, DMAC, etc.) but those have not be verified on the SAM4E-EK as of this writing. - A new Ethernet MAC driver has been developed and is functional, although it has not yet received a lot of testing. + A new Ethernet MAC driver has been developed and is functional in the NSH configuration. + A DMA-base SPI driver is supported and has been verified with the AT25 Serial FLASH. + The SAM4E-EK should be compatible with most of the other SAM3/4 drivers (like HSMCI, DMAC, etc.) but those have not be verified on the SAM4E-EK as of this writing. Refer to the NuttX board README file for further information.
                      @@ -3404,6 +3453,7 @@ Mem: 29232 5920 23312 23312 The basic port was code-complete in NuttX-5.19 and verifed in NuttX-6.0. The port was verified using the OS and NuttShell (NSH) examples under QEMU. The port is reported to be functional on the Bifferboard as well. + In NuttX 7.1, Lizhuoyi contributed additional keyboard and VGA drivers. This is a great, stable starting point for anyone interest in fleshing out the x86 port! Refer to the NuttX README file for further information.

                      @@ -3572,7 +3622,8 @@ Mem: 29232 5920 23312 23312 (2) Verified SPI driver, (3) SPI-based SD Card support, (4) USB device support (including configuration options for the USB mass storage device and the CDC/ACM serial class), and - (5) Support for the MIO873QT2 LCD on the PIC32MX7 MMB. + (5) Support for the MIO283QT2 LCD on the PIC32MX7 MMB. + (6) Support for the MIO283QT9A LCD used on later boards (NuttX 7.1).

                      The PIC32MX7 MMB's touchscreen is connected directly to the MCU via ADC pins. From e74812260edc6ab265caf21a1f5036b809128e0a Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 18 Mar 2014 07:41:16 -0600 Subject: [PATCH 1250/1518] Typo fixes to NuttX porting guide from Vijay Kumar --- Documentation/NuttxPortingGuide.html | 92 ++++++++++++++-------------- 1 file changed, 46 insertions(+), 46 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 1f45613255..5155294c5b 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -715,7 +715,7 @@

                      The included tools/Config.mk file contains additional definitions that may - be overriden in the architecture-specific Make.defs file as necessary: + be overridden in the architecture-specific Make.defs file as necessary:

                      • COMPILE, ASSEMBLE, ARCHIVE, CLEAN, and MKDEP macros
                      • @@ -774,7 +774,7 @@
                      • configs/demo9s12ne64: - Feescale DMO9S12NE64 board based on the MC9S12NE64 hcs12 cpu. This + Freescale DMO9S12NE64 board based on the MC9S12NE64 hcs12 cpu. This port uses the m9s12x GCC toolchain. STATUS: (Still) under development; it is code complete but has not yet been verified.
                      • @@ -899,7 +899,7 @@
                      • configs/qemu-i486: Port of NuttX to QEMU in i486 mode. This port will also run on real i486 - hardwared (Google the Bifferboard). + hardware (Google the Bifferboard).
                      • configs/rgmp: @@ -1073,7 +1073,7 @@ source "configs/myboard/Kconfig" endif

              - This includes additional, board-specific configuration variabled defintion in configs/myboard/Kconfig. + This includes additional, board-specific configuration variable definitions in configs/myboard/Kconfig.

              2.5 nuttx/drivers

              @@ -1454,7 +1454,7 @@ netutils/ This sub-directory name corresponds to one of the supported boards identified above. <config-dir> is the optional, specific configuration directory for the board. - And <app-dir> is the location of the optonal application directory. + And <app-dir> is the location of the optional application directory.

              Automated Configuration. @@ -1467,7 +1467,7 @@ netutils/

            - There is an alternative Windows batch file, configure.bat, that can be used insteach of configure.sh in the windows native enironment like: + There is an alternative Windows batch file, configure.bat, that can be used instead of configure.sh in the windows native environment like:

                 cd tools
              @@ -1478,7 +1478,7 @@ netutils/
               

              - If your application directory is not in the standard loction (../apps or ../apps-<version>), + If your application directory is not in the standard location (../apps or ../apps-<version>), then you should also specify the location of the application directory on the command line like:

                @@ -2242,12 +2242,12 @@ else
                      is down, and (2) A full date / time RTC the provides the date and time information, often in BCD format.
                      If CONFIG_RTC_DATETIME is selected, it specifies this second kind of RTC.
                      In this case, the RTC is used to "seed"" the normal NuttX timer and the NuttX system timer
                -     provides for higher resoution time.
                +     provides for higher resolution time.
                   
                CONFIG_RTC_HIRES
                If CONFIG_RTC_DATETIME not selected, then the simple, battery backed counter is used. There are two different implementations of such simple counters based on the time resolution of the counter: The typical RTC keeps time to resolution of 1 second, usually supporting a 32-bit time_t value. - In this case, the RTC is used to "seed" the normal NuttX timer and the NuttX timer provides for higher resoution time. + In this case, the RTC is used to "seed" the normal NuttX timer and the NuttX timer provides for higher resolution time. If CONFIG_RTC_HIRES is enabled in the NuttX configuration, then the RTC provides higher resolution time and completely replaces the system timer for purpose of date and time.
                CONFIG_RTC_FREQUENCY
                If CONFIG_RTC_HIRES is defined, then the frequency of the high resolution RTC must be provided. @@ -2267,12 +2267,12 @@ else
              • up_rtc_time(). Get the current time in seconds. This is similar to the standard time() function. This interface is only required if the low-resolution RTC/counter hardware implementation selected. - It is only used by the RTOS during initializeation to set up the system time when CONFIG_RTC is set + It is only used by the RTOS during initialization to set up the system time when CONFIG_RTC is set but neither CONFIG_RTC_HIRES nor CONFIG_RTC_DATETIME are set.
              • up_rtc_gettime(). Get the current time from the high resolution RTC clock/counter. - This interface is only supported by the hight-resolution RTC/counter hardware implementation. + This interface is only supported by the high-resolution RTC/counter hardware implementation. It is used to replace the system timer (g_system_tick).
              • up_rtc_settime(). @@ -2297,8 +2297,8 @@ else

                If hardware RTC is present (CONFIG_RTC) and and high-resolution timing is enabled (CONFIG_RTC_HIRES), then after successful - initiliazation variables are overriden by calls to up_rtc_gettime() which is - running continously even in power-down modes. + initialization variables are overridden by calls to up_rtc_gettime() which is + running continuously even in power-down modes.

                In the case of CONFIG_RTC_HIRES is set the g_system_timer @@ -2311,7 +2311,7 @@ else

                CPUs that support memory management units (MMUs) may provide address environments within which tasks and their child threads execute. - The configuration indicates the CPUs ability to support address environments by setting the configuration varabile CONFIG_ADDRENV=y. + The configuration indicates the CPUs ability to support address environments by setting the configuration variable CONFIG_ADDRENV=y. These address environments are created only when tasks are created via exec() or exec_module() (see include/nuttx/binfmt/binfmt.h).

                @@ -2448,7 +2448,7 @@ else

              Description:

                - After an address environment has been temporarilty instantiated by up_addrenv_select, + After an address environment has been temporarily instantiated by up_addrenv_select, this function may be called to to restore the original address environment.

              Input Parameters:

              @@ -2504,7 +2504,7 @@ else

            Description:

              - This function is called from the core scheduler logic when a thread is created that needs to share the address ennvironment of its parent task. + This function is called from the core scheduler logic when a thread is created that needs to share the address environment of its parent task. In this case, the parent's address environment needs to be "cloned" for the child thread.

            Input Parameters:

            @@ -2525,7 +2525,7 @@ else

            Description:

              This function is called when a task or thread exits in order to release its reference to an address environment. - When there are no furtherreferences to an address environment, that address environment should + When there are no further references to an address environment, that address environment should be destroyed.

            Input Parameters:

            @@ -2577,9 +2577,9 @@ else

            The NuttX On-Demand Paging feature permits embedded MCUs with some limited RAM space to execute large programs from some non-random access media. - If the platform meets certiain requirements, then NuttX can provide on-demand paging: + If the platform meets certain requirements, then NuttX can provide on-demand paging: It can copy .text from the large program in non-volatile media into RAM as needed to execute a huge program from the small RAM. - Design and porting issues for this feature are discussed in a sepate document. + Design and porting issues for this feature are discussed in a separate document. Please see the NuttX Demand Paging design document for further information.

            @@ -3157,7 +3157,7 @@ void board_led_off(int led);

            include/nuttx/lcd/lcd.h. Structures and APIs needed to work with LCD drivers are provided in this header file. - This header file also depends on some of the same definitions used for the frame buffer driver as privided in include/nuttx/video/fb.h. + This header file also depends on some of the same definitions used for the frame buffer driver as provided in include/nuttx/video/fb.h.

          • @@ -3305,7 +3305,7 @@ void board_led_off(int led);
          • MTDIOC_BULKERASE: Erase the entire device

          - is provided via a sinble ioctl method (see include/nuttx/fs/ioctl.h): + is provided via a single ioctl method (see include/nuttx/fs/ioctl.h):

            int (*ioctl)(FAR struct mtd_dev_s *dev, int cmd, unsigned long arg);

            @@ -3345,7 +3345,7 @@ void board_led_off(int led);
          • struct sdio_dev_s. - Each SDIOI device driver must implement an instance of struct sdio_dev_s. + Each SDIO device driver must implement an instance of struct sdio_dev_s. That structure defines a call table with the following methods:

            @@ -3439,7 +3439,7 @@ void board_led_off(int led); struct usbhost_driver_s and struct usbhost_connection_s. Each USB host controller driver must implement an instance of struct usbhost_driver_s and struct usbhost_connection_s: struct usbhost_driver_s provides the interface between the USB host driver and the USB class driver; - struct usbhost_connection_s provides the interface between the USB host driver and platform-specific connection management and device enumeration logoc. + struct usbhost_connection_s provides the interface between the USB host driver and platform-specific connection management and device enumeration logic. These structures are defined in include/nuttx/usb/usbhost.h.

            @@ -3466,7 +3466,7 @@ void board_led_off(int led); USB Host Class Driver Registry. The NuttX USB host infrastructure includes a registry. During its initialization, each USB host class driver must call the interface, usbhost_registerclass() - in order add its interface to the registery. + in order add its interface to the registry. Later, when a USB device is connected, the USB host controller will look up the USB host class driver that is needed to support the connected device in this registry.

            @@ -3521,7 +3521,7 @@ void board_led_off(int led);

            1. - Each USB host class driver includes an initializeation entry point that is called from the + Each USB host class driver includes an initialization entry point that is called from the application at initialization time. This driver calls usbhost_registerclass() during this initialization in order to makes itself available in the event the device that it supports is connected.

              @@ -3609,7 +3609,7 @@ void board_led_off(int led);
              1. - Each USB device class driver includes an initializeation entry point that is called from the + Each USB device class driver includes an initialization entry point that is called from the application at initialization time.

                @@ -3632,14 +3632,14 @@ void board_led_off(int led);

                6.3.11 Analog (ADC/DAC) Drivers

                - The NuttX PWM driver is split into two parts: + The NuttX analog drivers are split into two parts:

                1. - An "upper half", generic driver that provides the comman PWM interface to application level code, and + An "upper half", generic driver that provides the common analog interface to application level code, and
                2. - A "lower half", platform-specific driver that implements the low-level timer controls to implement the PWM functionality. + A "lower half", platform-specific driver that implements the low-level controls to implement the analog functionality.
                  @@ -3716,7 +3716,7 @@ void board_led_off(int led);

                  1. - An "upper half", generic driver that provides the comman PWM interface to application level code, and + An "upper half", generic driver that provides the common PWM interface to application level code, and
                  2. A "lower half", platform-specific driver that implements the low-level timer controls to implement the PWM functionality. @@ -3749,7 +3749,7 @@ void board_led_off(int led);

                    1. - An "upper half", generic driver that provides the comman CAN interface to application level code, and + An "upper half", generic driver that provides the common CAN interface to application level code, and
                    2. A "lower half", platform-specific driver that implements the low-level timer controls to implement the CAN functionality. @@ -3778,7 +3778,7 @@ void board_led_off(int led);

                      1. - An "upper half", generic driver that provides the comman Quadrature Encoder interface to application level code, and + An "upper half", generic driver that provides the common Quadrature Encoder interface to application level code, and
                      2. A "lower half", platform-specific driver that implements the low-level timer controls to implement the Quadrature Encoder functionality. @@ -3807,7 +3807,7 @@ void board_led_off(int led);

                        1. - An "upper half", generic driver that provides the comman watchdog timer interface to application level code, and + An "upper half", generic driver that provides the common watchdog timer interface to application level code, and
                        2. A "lower half", platform-specific driver that implements the low-level timer controls to implement the watchdog timer functionality. @@ -3839,7 +3839,7 @@ void board_led_off(int led);

                          Special Commands. In NuttX, a keyboard/keypad driver is simply a character driver that may have an (optional) encoding/decoding layer on the data returned by the character driver. - A keyboard may return simple text data (alphabetic, numeric, and punctuaction) or control characters (enter, control-C, etc.) when a key is pressed. + A keyboard may return simple text data (alphabetic, numeric, and punctuation) or control characters (enter, control-C, etc.) when a key is pressed. We can think about this the "normal" keyboard data stream. However, in addition, most keyboards support actions that cannot be represented as text or control data. Such actions include things like cursor controls (home, up arrow, page down, etc.), editing functions (insert, delete, etc.), volume controls, (mute, volume up, etc.) and other special functions. @@ -3878,7 +3878,7 @@ void kbd_press(int ch, FAR struct lib_outstream_s *stream); Indicates a normal key press event. Put one byte of normal keyboard data into the output stream.

                -

                Input Pameters:

                +

                Input Parameters:

                • ch: The character to be added to the output stream. @@ -3906,10 +3906,10 @@ void kbd_release(uint8_t ch, FAR struct lib_outstream_s *stream);
                    Encode the release of a normal key.
                  -

                  Input Pameters:

                  +

                  Input Parameters:

                  • - ch: The character associated with the key that was releared. + ch: The character associated with the key that was released.
                  • stream: An instance of lib_outstream_s to perform the actual low-level put operation. @@ -3935,7 +3935,7 @@ void kbd_specpress(enum kbd_keycode_e keycode, FAR struct lib_outstream_s *strea Denotes a special key press event. Put one special keyboard command into the output stream.
                  -

                  Input Pameters:

                  +

                  Input Parameters:

                  • keycode: The command to be added to the output stream. @@ -3965,7 +3965,7 @@ void kbd_specrel(enum kbd_keycode_e keycode, FAR struct lib_outstream_s *stream) Denotes a special key release event. Put one special keyboard command into the output stream.
                  -

                  Input Pameters:

                  +

                  Input Parameters:

                  • keycode: The command to be added to the output stream. @@ -4002,7 +4002,7 @@ int kbd_decode(FAR struct lib_instream_s *stream, FAR struct kbd_getstate_s *sta
                      Get one byte of data or special command from the driver provided input buffer.
                    -

                    Input Pameters:

                    +

                    Input Parameters:

                    • stream: An instance of lib_instream_s to perform the actual low-level get operation. @@ -4059,7 +4059,7 @@ int kbd_decode(FAR struct lib_instream_s *stream, FAR struct kbd_getstate_s *sta

                      6.4.1 Overview

                      - NuttX supports a simple power managment (PM) sub-system. This sub-system: + NuttX supports a simple power management (PM) sub-system. This sub-system:

                      • @@ -4144,7 +4144,7 @@ void pm_initialize(void);

      Description: This function is called by MCU-specific one-time at power on reset in order to initialize the power management capabilities. -This function must be called very early in the initializeation sequence before any other device drivers are initialize (since they may attempt to register with the power management subsystem). +This function must be called very early in the initialization sequence before any other device drivers are initialize (since they may attempt to register with the power management subsystem).

      Input Parameters: None @@ -4170,7 +4170,7 @@ int pm_register(FAR struct pm_callback_s *callbacks);

      Returned Value: -Zero (OK) on success; otherwise a negater errno value is returned. +Zero (OK) on success; otherwise a negated errno value is returned.

      6.4.2.3 pm_activity()

      @@ -4181,7 +4181,7 @@ void pm_activity(int priority);

    Description: This function is called by a device driver to indicate that it is performing meaningful activities (non-idle). - This increment an activty count and/or will restart a idle timer and prevent entering reduced power states. + This increment an activity count and/or will restart a idle timer and prevent entering reduced power states.

    Input Parameters:

    @@ -4277,7 +4277,7 @@ int (*prepare)(FAR struct pm_callback_s *cb, enum pm_state_e pmstate);
    cb
    Returned to the driver. - The driver version of the callback strucure may include additional, driver-specific state data at the end of the structure. + The driver version of the callback structure may include additional, driver-specific state data at the end of the structure.
    pmstate
    Identifies the new PM state
    @@ -4304,7 +4304,7 @@ void (*notify)(FAR struct pm_callback_s *cb, enum pm_state_e pmstate);
    cb
    Returned to the driver. - The driver version of the callback strucure may include additional, driver-specific state data at the end of the structure. + The driver version of the callback structure may include additional, driver-specific state data at the end of the structure.
    pmstate
    Identifies the new PM state
    From d6595bb88e56e26f18d8a68dcbb19bda7961a90e Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 28 Mar 2014 15:20:26 -0600 Subject: [PATCH 1251/1518] Add basic board support framework for the Atmel SAMA5D3 Xplained board (not finished) --- Documentation/NuttX.html | 291 ++++++++++++++++++++------------------ Documentation/README.html | 4 +- 2 files changed, 158 insertions(+), 137 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index d2563513de..c41fc66bcd 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1217,10 +1217,10 @@
  • ARM
    • ARM7TDMI (5)
    • -
    • ARM920T (1)
    • -
    • ARM926EJS (4)
    • -
    • ARM Cortex-A5 (1)
    • -
    • ARM Cortex-A8 (1)
    • +
    • ARM920T (1)
    • +
    • ARM926EJS (4)
    • +
    • ARM Cortex-A5 (2)
    • +
    • ARM Cortex-A8 (1)
    • ARM Cortex-M0/M0+ (3)
    • ARM Cortex-M3 (25)
    • ARM Cortex-M4 (11)
    • @@ -1724,141 +1724,160 @@

      Atmel SAMA5D3. - This is the port of NuttX to the Atmel SAMA5D3x-EK development boards (where x=1,3,4, or 5). - These boards feature the Atmel SAMA5D3x microprocessors. - Four different SAMA5D3x-EK kits are available -

      + There are ports to two Atmel SAMA5D3 boards: +

        -
      • SAMA5D31-EK with the ATSAMA5D31
      • -
      • SAMA5D33-EK with the ATSAMA5D33
      • -
      • SAMA5D34-EK with the ATSAMA5D34
      • -
      • SAMA5D35-EK with the ATSAMA5D35
      • +
      • Atmel SAMA5D3x-EK development boards + This is the port of NuttX to the Atmel SAMA5D3x-EK development boards (where x=1,3,4, or 5). + These boards feature the Atmel SAMA5D3x microprocessors. + Four different SAMA5D3x-EK kits are available +

        + +

        + The each kit consist of an identical base board with different plug-in modules for each CPU. + All four boards are supported by NuttX with a simple reconfiguration of the processor type. +

        +
          +

          + STATUS. + Initial support for the SAMA5D3x-EK was released in NuttX-6.29. + That initial support was minimal: + There are simple test configurations that run out of internal SRAM and extended configurations that run out of the on-board NOR FLASH: +

          +
            +
          • + A barebones NuttShell (NSH) configuration that can be used as the basis for further application development. +
          • +
          • + A full-loaded NuttShell (NSH) configuration that demonstrates all of the SAMA5D3x features. +
          • +
          +

          + The following support was added in Nuttx 6.30: +

          +
            +
          • + DMA support, and +
          • +
          • + PIO interrupts, +
          • +
          +

          + And drivers for +

          +
            +
          • + SPI (with DMA support), +
          • +
          • + AT25 Serial Flash, +
          • +
          • + Two Wire Interface (TWI), and +
          • +
          • + HSMCI memory cards. +
          • +
          +

          + NuttX-6.30 also introduces full USB support: +

          +
            +
          • + High speed device controller driver, +
          • +
          • + OHCI (low- and full-speed) and +
          • +
          • + EHCI (high-speed) host controller driver support. +
          • +
          +

          + With NuttX-6.31, these additional drivers were added: +

          +
            +
          • + A 10/100Base-T Ethernet (EMAC) driver, +
          • +
          • + A 1000Base-T Ethernet (GMAC) driver, +
          • +
          • + A Real Time Clock (RTC) driver and integrated with the NuttX system time logic +
          • +
          • + /dev/random using the SAMA5D3x True Random Number Generator (TRNG), +
          • +
          • + A Watchdog Timer (WDT) driver, +
          • +
          • + A Timer/Counter (TC) library with interface that make be used by other drivers that need timer support, +
          • +
          • + An ADC driver that can collect multiple samples using the sequencer, can be trigger by a timer/counter, and supports DMA data transfers, +
          • +
          • + A touchscreen driver based on the special features of the SAMA5D3 ADC peripheral, + An LCD controller (LCDC) frame buffer driver, and +
          • +
          • + A CAN driver (Testing of the CAN has been delayed because of cabling issues). +
          • +
          +

          + Additional board configurations were added to test and demonstrate these new drivers including new graphics and NxWM configurations. +

          +

          + These drivers were added in NuttX-6.32: +

          +
            +
          • + A PWM driver with DMA support +
          • +
          • + An SSC-based I2S driver +
          • +
          • + Support for Programmable clock outputs +
          • +
          • + NAND support including support for the PMECC hardware ECC and for DMA transfers. +
          • +
          +

          + Refer to the NuttX board README file for further information. +

          + +
        • +

          + Atmel SAMA5D3 Xplained development board + This is the port of NuttX to the Atmel SAMA5D3 Xplained development board. + The board features the Atmel SAMA5D36 microprocessors. + See the Atmel Website for additional information about this board. +

          +

          + STATUS. + This port is underway as of this writing and not ready for general use. + The basic port is expected to be simple because of the similarity to the SAMAD3x-EK boards and should be available in the NuttX 7.2 release. +

          +

          + Refer to the NuttX board README file for further information. +

          +
        +

      - The each kit consist of an identical base board with different plug-in modules for each CPU. - All four boards are supported by NuttX with a simple reconfiguration of the processor type. -

      -
        -

        - STATUS. - Initial support for the SAMA5D3x-EK was released in NuttX-6.29. - That initial support was minimal: - There are simple test configurations that run out of internal SRAM and extended configurations that run out of the on-board NOR FLASH: -

        -
          -
        • - A barebones NuttShell (NSH) configuration that can be used as the basis for further application development. -
        • -
        • - A full-loaded NuttShell (NSH) configuration that demonstrates all of the SAMA5D3x features. -
        • -
        -

        - The following support was added in Nuttx 6.30: -

        -
          -
        • - DMA support, and -
        • -
        • - PIO interrupts, -
        • -
        -

        - And drivers for -

        -
          -
        • - SPI (with DMA support), -
        • -
        • - AT25 Serial Flash, -
        • -
        • - Two Wire Interface (TWI), and -
        • -
        • - HSMCI memory cards. -
        • -
        -

        - NuttX-6.30 also introduces full USB support: -

        -
          -
        • - High speed device controller driver, -
        • -
        • - OHCI (low- and full-speed) and -
        • -
        • - EHCI (high-speed) host controller driver support. -
        • -
        -

        - With NuttX-6.31, these additional drivers were added: -

        -
          -
        • - A 10/100Base-T Ethernet (EMAC) driver, -
        • -
        • - A 1000Base-T Ethernet (GMAC) driver, -
        • -
        • - A Real Time Clock (RTC) driver and integrated with the NuttX system time logic -
        • -
        • - /dev/random using the SAMA5D3x True Random Number Generator (TRNG), -
        • -
        • - A Watchdog Timer (WDT) driver, -
        • -
        • - A Timer/Counter (TC) library with interface that make be used by other drivers that need timer support, -
        • -
        • - An ADC driver that can collect multiple samples using the sequencer, can be trigger by a timer/counter, and supports DMA data transfers, -
        • -
        • - A touchscreen driver based on the special features of the SAMA5D3 ADC peripheral, - An LCD controller (LCDC) frame buffer driver, and -
        • -
        • - A CAN driver (Testing of the CAN has been delayed because of cabling issues). -
        • -
        -

        - Additional board configurations were added to test and demonstrate these new drivers including new graphics and NxWM configurations. -

        -

        - These drivers were added in NuttX-6.32: -

        -
          -
        • - A PWM driver with DMA support -
        • -
        • - An SSC-based I2S driver -
        • -
        • - Support for Programmable clock outputs -
        • -
        • - NAND support including support for the PMECC hardware ECC and for DMA transfers. -
        • -
        -

        - Develop continues. - Work is underway to provide a Image Sensor Interface (ISI) camera interface. -

        -

        - Refer to the NuttX board README file for further information. -

        -

        - Development Environments: - 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS with Windows native toolchain, or 4) Native Windows. - All testing has been perfomed with the CodeSourcery toolchain (GCC version 4.7.3) in the Cygwin environment under Windows. + Development Environments: + 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS with Windows native toolchain, or 4) Native Windows. + All testing has been perfomed with the CodeSourcery toolchain (GCC version 4.7.3) in the Cygwin environment under Windows.

        diff --git a/Documentation/README.html b/Documentation/README.html index e1b0ff1831..d1b9e8536e 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -8,7 +8,7 @@

        NuttX README Files

        -

        Last Updated: March 10, 2014

        +

        Last Updated: March 28, 2014

        @@ -163,6 +163,8 @@ | | | `- README.txt | | |- sama5d3x-ek/ | | | `- README.txt + | | |- sama5d3-xplained/ + | | | `- README.txt | | |- samd20-xplained/ | | | `- README.txt | | |- sam3u-ek/ From 22e7c14e2e1c3048c797de0afdc3d42148e5fd91 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 4 Apr 2014 08:56:10 -0600 Subject: [PATCH 1252/1518] Fix a build error when only USB device tracing is enabled (from David Sidrane). Also an update to the USB tracing document --- Documentation/UsbTrace.html | 120 ++++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) diff --git a/Documentation/UsbTrace.html b/Documentation/UsbTrace.html index e85377756e..767b587369 100644 --- a/Documentation/UsbTrace.html +++ b/Documentation/UsbTrace.html @@ -328,5 +328,125 @@ static int pl2303_setup(FAR struct uart_dev_s *dev) And the interrupt returns
      +

      USB Monitor. + The USB monitor is an application in the apps/system/usbmonitor that provides a convenient way to get debug trace output. + If tracing is enabled, the USB device will save encoded trace output in in-memory buffer; + if the USB monitor is also enabled, that trace buffer will be periodically emptied and dumped to the + system logging device (the serial console in most configurations). + The following are some of the relevant configuration options: +

      +
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        + Device Drivers -> USB Device Driver Support +
        + CONFIG_USBDEV_TRACE=y + + Enable USB trace feature +
        + CONFIG_USBDEV_TRACE_NRECORDS=nnnn + + Buffer nnnn records in memory. + If you lose trace data, then you will need to increase the size of this buffer + (or increase the rate at which the trace buffer is emptied). +
        + CONFIG_USBDEV_TRACE_STRINGS=y + + Optionally, convert trace ID numbers to strings. + This feature may not be supported by all drivers. +
        + Application Configuration -> NSH LIbrary +
        + CONFIG_NSH_USBDEV_TRACE=n + + Make sure that any built-in tracing from NSH is disabled. +
        + CONFIG_NSH_ARCHINIT=y + + Enable this option only if your board-specific logic has logic to automatically start the USB monitor. + Otherwise the USB monitor can be started or stopped with the usbmon_start and usbmon_stop commands from the NSH console. +
        + Application Configuration -> System NSH Add-Ons +
        + CONFIG_SYSTEM_USBMONITOR=y + + Enable the USB monitor daemon +
        + CONFIG_SYSTEM_USBMONITOR_STACKSIZE=nnnn + + Sets the USB monitor daemon stack size to nnnn. + The default is 2KiB. +
        + CONFIG_SYSTEM_USBMONITOR_PRIORITY=50 + + Sets the USB monitor daemon priority to nnnn. + This priority should be low so that it does not interfere with other operations, but not so low that you cannot dump the buffered USB data sufficiently rapidly. + The default is 50. +
        + CONFIG_SYSTEM_USBMONITOR_INTERVAL=nnnn + + Dump the buffered USB data every nnnn seconds. + If you lose buffered USB trace data, then dropping this value will help by increasing the rate at which the USB trace buffer is emptied. +
        + CONFIG_SYSTEM_USBMONITOR_TRACEINIT=y
        + CONFIG_SYSTEM_USBMONITOR_TRACECLASS=y
        + CONFIG_SYSTEM_USBMONITOR_TRACETRANSFERS=y
        + CONFIG_SYSTEM_USBMONITOR_TRACECONTROLLER=y
        + CONFIG_SYSTEM_USBMONITOR_TRACEINTERRUPTS=y
        +
        + Selects which USB event(s) that you want to be traced. +
        +
      +

      + NOTE: If USB debug output is also enabled, both outputs will appear on the serial console. + However, the debug output will be asynchronous with the trace output and, hence, difficult to interpret. +

      From 948124a8220e32713aa107b00fa8b9c1ffe18b7c Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 10 Apr 2014 18:15:06 -0600 Subject: [PATCH 1253/1518] apps/netutils/ntpclient: Add a primitive NTP client. Initial checkin is untested and probably incomplete --- Documentation/NuttX.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index c41fc66bcd..57a8c8aae2 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -681,7 +681,8 @@

      -

    • Networking utilities (DHCP server and client, SMTP client, TELNET client, FTP server and client, TFTP client, HTTP server and client). Inheritable TELNET sessions (as "controlling terminal")
    • +
    • Networking utilities (DHCP server and client, SMTP client, TELNET client, FTP server and client, TFTP client, HTTP server and client, NTP client). + Inheritable TELNET sessions (as "controlling terminal")
    • From aaaf4f96b7e163637850f6a4e7d375eba3a2557a Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 13 Apr 2014 16:22:22 -0600 Subject: [PATCH 1254/1518] More trailing whilespace removal --- Documentation/NXGraphicsSubsystem.html | 26 ++++++++++++------------ Documentation/NXOrganization.gif | Bin 34880 -> 34879 bytes Documentation/NuttX2-a.png | Bin 1533 -> 1529 bytes Documentation/NuttXBinfmt.html | 6 +++--- Documentation/NuttXCCodingStandard.html | 6 +++--- Documentation/NuttXDemandPaging.html | 14 ++++++------- Documentation/NuttXNxFlat.html | 10 ++++----- Documentation/NuttxPortingGuide.html | 2 +- Documentation/UsbTrace.html | 2 +- Documentation/pm.png | Bin 32504 -> 32502 bytes 10 files changed, 33 insertions(+), 33 deletions(-) diff --git a/Documentation/NXGraphicsSubsystem.html b/Documentation/NXGraphicsSubsystem.html index 7aa8ab03cd..743e0368aa 100644 --- a/Documentation/NXGraphicsSubsystem.html +++ b/Documentation/NXGraphicsSubsystem.html @@ -326,7 +326,7 @@

      NX is organized into 6 (and perhaps someday 7 or 8) logical modules. These logical modules also correspond to the directory organization. - That NuttX directory organization is discussed in + That NuttX directory organization is discussed in Appendix B of this document. The logic modules are discussed in the following sub-paragraphs.

      @@ -622,7 +622,7 @@ void nxgl_rectunion(FAR struct nxgl_rect_s *dest,

    Description: - Given two rectanges, src1 and src2, return the larger rectangle that + Given two rectanges, src1 and src2, return the larger rectangle that contains both, dest.

    @@ -766,7 +766,7 @@ int nxgl_splitline(FAR struct nxgl_vector_s *vector, FAR struct nxgl_trapezoid_s Description: In the general case, a line with width can be represented as a parallelogram with a triangle at the top and bottom. Triangles and parallelograms are both degenerate versions of a trapezoid. - This function breaks a wide line into triangles and trapezoids. + This function breaks a wide line into triangles and trapezoids. This function also detects other degenerate cases:

      @@ -801,7 +801,7 @@ int nxgl_splitline(FAR struct nxgl_vector_s *vector, FAR struct nxgl_trapezoid_s

        - 0: Line successfully broken up into three trapezoids. + 0: Line successfully broken up into three trapezoids. Values in traps[0], traps[1], and traps[2] are valid.

        @@ -1551,7 +1551,7 @@ int nx_setposition(NXWINDOW hwnd, FAR struct nxgl_point_s *pos);

          hwnd
          The handle returned by nx_openwindow(). - This handle must not have been created by + This handle must not have been created by nx_requestbkgd().
          pos
          The new position of the window @@ -1579,7 +1579,7 @@ int nx_setsize(NXWINDOW hwnd, FAR struct nxgl_size_s *size);
            hwnd
            The handle returned by nx_openwindow(). - This handle must not have been created by + This handle must not have been created by nx_requestbkgd().
            size
            The new size of the window (in pixels). @@ -1607,7 +1607,7 @@ int nx_raise(NXWINDOW hwnd);
              hwnd
              The handle returned by nx_openwindow(). - This handle must not have been created by + This handle must not have been created by nx_requestbkgd().
              @@ -1635,7 +1635,7 @@ int nx_lower(NXWINDOW hwnd);
                hwnd
                The handle returned by nx_openwindow(). - This handle must not have been created by + This handle must not have been created by nx_requestbkgd().
                @@ -3132,7 +3132,7 @@ int nxf_convert_32bpp(FAR uint32_t *dest, uint16_t height,

                Building apps/examples/nx. Testing was performed using the Linux/Cygwin-based NuttX simulator. - Instructions are provided for building that simulation are provided in + Instructions are provided for building that simulation are provided in Appendix C of this document.

                @@ -3299,7 +3299,7 @@ int nxf_convert_32bpp(FAR uint32_t *dest, uint16_t height,
                Specify the colors of the border used with framed windows.
                CONFIG_NXTK_BORDERCOLOR2
                The shadow side color and so is normally darker. -
                CONFIG_NXTK_BORDERCOLOR3 +
                CONFIG_NXTK_BORDERCOLOR3
                The shiny side color and so is normally brighter. The default is medium, dark, and light grey, respectively
                CONFIG_NXTK_AUTORAISE: @@ -3426,7 +3426,7 @@ int nxf_convert_32bpp(FAR uint32_t *dest, uint16_t height,
                CONFIG_NXCONSOLE_NXKBDIN:
                Take input from the NX keyboard input callback. By default, keyboard input is taken from stdin (/dev/console). - If this option is set, then the interfacenxcon_kdbin() is enabled. + If this option is set, then the interfacenxcon_kdbin() is enabled. That interface may be driven by window callback functions so that keyboard input only goes to the top window.
                CONFIG__NXCONSOLE_KBDBUFSIZE:
                If CONFIG_NXCONSOLE_NXKBDIN is enabled, then this value may be used to @@ -3467,7 +3467,7 @@ int nxf_convert_32bpp(FAR uint32_t *dest, uint16_t height,

                Locate a font in BDF format. There are many good BDF bitmap fonts bundled with X-11. - See this link, as an example, + See this link, as an example,

              • @@ -3703,7 +3703,7 @@ sudo ln -s libXext.so.6.4.0 libXext.so This is because the sim target is based upon some assembly language setjmp/longjmp logic that only works on 32-bit systems.

                - NOTE: There is a workaround in this case: + NOTE: There is a workaround in this case: You can build for 32-bit execution on a 64-bit machine by adding -m3 to the CFLAGS and -m32 -m elf_i386 to the LDFLAGS. See the patch file 0001-Quick-hacks-to-build-sim-nsh-ostest-on-x86_64-as-32-.patch that can be found in NuttX files. diff --git a/Documentation/NXOrganization.gif b/Documentation/NXOrganization.gif index 6bae8e5529bbc177caf108e035f4e5c61ca4d2ec..1039d30bd896a31065789a693ae8906b513c2cb1 100644 GIT binary patch delta 14 WcmX>wfocB)rVZz7HeaYI;06FU3ZEj+!W(EL}6bb48 delta 33 ncmey#{g<1yGr-TCcO%PpMn;9nzZnyOWDJuMqr&DorfOyY!zBt) diff --git a/Documentation/NuttXBinfmt.html b/Documentation/NuttXBinfmt.html index 0dd5665871..3f3bdbc0aa 100644 --- a/Documentation/NuttXBinfmt.html +++ b/Documentation/NuttXBinfmt.html @@ -107,7 +107,7 @@

                2.1 Binary Loader Header Files

                - The interface to the binary loader is described in the header file + The interface to the binary loader is described in the header file include/nuttx/binfmt/binfmt.h. A brief summary of the data structurs and interfaces prototyped in that header file are listed below. @@ -457,7 +457,7 @@ void exepath_release(EXEPATH_HANDLE handle);

                3.1 Symbol Table Header Files

                - The interface to the symbol table logic is described in the header file + The interface to the symbol table logic is described in the header file include/nuttx/binfmt/symtab.h. A brief summary of the data structurs and interfaces prototyped in that header file are listed below. @@ -477,7 +477,7 @@ struct symtab_s

              - A symbol table is a fixed size array of struct symtab_s. + A symbol table is a fixed size array of struct symtab_s. The information is intentionally minimal and supports only:

                diff --git a/Documentation/NuttXCCodingStandard.html b/Documentation/NuttXCCodingStandard.html index 0693efc50f..4cb4a9517d 100755 --- a/Documentation/NuttXCCodingStandard.html +++ b/Documentation/NuttXCCodingStandard.html @@ -136,7 +136,7 @@

                • - A line that consists of the opening C comment (/*) followed by a series of asterisks extending to the length of the line (usually to column 78). + A line that consists of the opening C comment (/*) followed by a series of asterisks extending to the length of the line (usually to column 78).
                • The name of the grouping, starting at column 4. @@ -310,7 +310,7 @@ /* The forward link to the next instance of struct * some_long_struct_name_s in a singly linked list */ - + struct some_long_struct_name_s *flink; int short_name1; /* Short comment 1 */ int short_name2; /* This is a very long comment describing subtle @@ -2157,7 +2157,7 @@ x++; { ptr++; } - +
                diff --git a/Documentation/NuttXDemandPaging.html b/Documentation/NuttXDemandPaging.html index e1ef29b245..2e1ebaf3e1 100644 --- a/Documentation/NuttXDemandPaging.html +++ b/Documentation/NuttXDemandPaging.html @@ -243,7 +243,7 @@
              1. Boost the page fill worker thread priority. - Check the priority of the task at the head of the g_waitingforfill list. + Check the priority of the task at the head of the g_waitingforfill list. If the priority of that task is higher than the current priority of the page fill worker thread, then boost the priority of the page fill worker thread to that priority. Thus, the page fill worker thread will always run at the priority of the highest priority task that is waiting for a fill.
              2. @@ -370,7 +370,7 @@ The architecture-specific functions, up_checkmapping(), up_allocpage(tcb, &vpage) and up_fillpage(page, pg_callback) will be prototyped in include/nuttx/arch.h

                - +

                Fill Complete

                @@ -379,7 +379,7 @@

                For the non-blocking up_fillpage(), the architecture-specific driver call the pg_callback() that was provided to up_fillpage() when the fill completes. In this case, the pg_callback() will probably be called from driver interrupt-level logic. - The driver will provide the result of the fill as an argument to the callback function. + The driver will provide the result of the fill as an argument to the callback function. NOTE: pg_callback() must also be locked in memory.

                @@ -404,7 +404,7 @@

            - +

            Task Resumption

            @@ -600,7 +600,7 @@

          • In the first phase, create a partially linked objected containing all interrupt/exception handling logic, the page fill worker thread plus all parts of the IDLE thread (which must always be available for execution).
          • -
          • +
          • All of the .text and .rodata sections of this partial link should be collected into a single section.
          • @@ -625,7 +625,7 @@ The currently executing task at the head of the ready to run list must be stopped. Save its context and move it to the inactive list specified by task_state. This function is called by the on-demand paging logic in order to block the task that requires the - page fill, and to + page fill, and to
          • void up_unblock_task(FAR struct tcb_s *tcb); @@ -671,4 +671,4 @@
          - + diff --git a/Documentation/NuttXNxFlat.html b/Documentation/NuttXNxFlat.html index 55280ad44e..2036cc723e 100644 --- a/Documentation/NuttXNxFlat.html +++ b/Documentation/NuttXNxFlat.html @@ -229,7 +229,7 @@
        • Read-Only Data in RAM

            - With older GCC compilers (at least up to 4.3.3), read-only data must reside in RAM. + With older GCC compilers (at least up to 4.3.3), read-only data must reside in RAM. In code generated by GCC, all data references are indexed by the PIC2 base register (that is usually R10 or sl for the ARM processors). The includes read-only data (.rodata). Embedded firmware developers normally like to keep .rodata in FLASH with the code sections. @@ -304,7 +304,7 @@

            In order to use NXFLAT, you must use special NXFLAT tools to create the binary module in FLASH. To do this, you will need to download the buildroot package and build it on your Linux or Cygwin machine. - The buildroot can be downloaded from + The buildroot can be downloaded from Sourceforge. You will need version 0.1.7 or later.

            @@ -486,7 +486,7 @@ cat ../syscall/syscall.csv ../libc/lib.csv | sort >tmp.csv

            Target 1. This target links all of the module's object files together into one relocatable object. Two relocatable objects will be generated; this is the first one (hence, the suffic .r1). - In this "Hello, World!" case, there is only a single object file, hello.o, + In this "Hello, World!" case, there is only a single object file, hello.o, that is linked to produce the hello.r1 object.

            @@ -553,7 +553,7 @@ cat ../syscall/syscall.csv ../libc/lib.csv | sort >tmp.csv

            Relevant Header Files:

            • - The interface to the binary loader is described in the header file + The interface to the binary loader is described in the header file include/nuttx/binfmt/binfmt.h. A brief summary of the APIs prototyped in that header file are listed below. @@ -787,7 +787,7 @@ cat ../syscall/syscall.csv ../libc/lib.csv | sort >tmp.csv The PIC base register needs to point to the base of the .got and only addresses in the .got, .data, and .bss sections can be accessed as an offset from the PIC base register. - See also this + See also this XFLAT discussion.

              diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 5155294c5b..dad21f6cdf 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -1620,7 +1620,7 @@ The system can be re-made subsequently by just typing make.

              There is also a arch//include//chip.h header file that can be used to communicate other microprocessor-specific information between the board logic and even application logic. Application logic may, for example, need to know specific capabilities of the chip. - Prototypes in that chip.h header file should follow the microprocessor-specific naming convention. + Prototypes in that chip.h header file should follow the microprocessor-specific naming convention.

            • diff --git a/Documentation/UsbTrace.html b/Documentation/UsbTrace.html index 767b587369..7efb7ebccb 100644 --- a/Documentation/UsbTrace.html +++ b/Documentation/UsbTrace.html @@ -107,7 +107,7 @@

              • - For the USB serial and mass storage class, the 8-bit event data is provided in include/nuttx/usb/usbdev_trace.h. + For the USB serial and mass storage class, the 8-bit event data is provided in include/nuttx/usb/usbdev_trace.h.
              • For the USB device driver, that 8-bit event data is provided within the USB device driver itself. diff --git a/Documentation/pm.png b/Documentation/pm.png index d84d8642dc0fe7620c4243a06c0c84c0b7a4c892..febece0f56cac829a74fce20347aa567a5ba23c0 100644 GIT binary patch delta 20 ccmezIm+{+QMwZS1KlhESq28OLz2_PO0BJr5+yDRo delta 23 fcmezNm+{A6M%K;%KX=}ZETP_v3Y#On=Nbb5eO(C% From a60352b4c0387a1db5cf56f7a63115a4e23f230f Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 20 Apr 2014 13:42:23 -0600 Subject: [PATCH 1255/1518] Add support for the STM32F041RE and for the Nucleo-F401RE board. From Frank Bennett --- Documentation/README.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/README.html b/Documentation/README.html index d1b9e8536e..26f0b8212e 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -8,7 +8,7 @@

                NuttX README Files

                -

                Last Updated: March 28, 2014

                +

                Last Updated: April 20, 2014

                @@ -127,6 +127,8 @@ | | |- ntosd-dm320/ | | | |- doc/README.txt | | | `- README.txt + | | |- nucleo-f401re/ + | | | `- README.txt | | |- nucleus2g/ | | | `- README.txt | | |- nutiny-nuc120/ From 2c94527023fcf8e17ae334ea31c4b2cdf4bb239a Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 21 Apr 2014 17:34:05 -0600 Subject: [PATCH 1256/1518] Support for the Atmel SAM4S Xplaiend Board from Bob Doison --- Documentation/README.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/README.html b/Documentation/README.html index 26f0b8212e..1fe8757bf3 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -177,6 +177,8 @@ | | | `- README.txt | | |- sam4s-xplained/ | | | `- README.txt + | | |- sam4s-xplained-pro/ + | | | `- README.txt | | |- shenzhou/ | | | `- README.txt | | |- sim/ From d722b3ed0ffebced441e7be24c965d0e53f78037 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 28 Apr 2014 10:53:24 -0600 Subject: [PATCH 1257/1518] Final prep for NuttX-7.2 release --- Documentation/NuttX.html | 113 +++++++++++++++++++++++++++------------ 1 file changed, 80 insertions(+), 33 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 57a8c8aae2..f51c2aefa7 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                NuttX RTOS

                -

                Last Updated: March 15, 2014

                +

                Last Updated: April 29, 2014

                @@ -1139,38 +1139,27 @@

                Released Versions

                In addition to the ever-changing GIT repository, there are frozen released versions of NuttX available. - The current release is NuttX 7.1. - NuttX 7.1 is the 101st release of NuttX. - It was released on March 15, 2014, and is available for download from the + The current release is NuttX 7.2. + NuttX 7.2 is the 102nd release of NuttX. + It was released on April 29, 2014, and is available for download from the SourceForge website. - Note that the release consists of two tarballs: nuttx-7.1.tar.gz and apps-7.1.tar.gz. + Note that the release consists of two tarballs: nuttx-7.2.tar.gz and apps-7.2.tar.gz. Both may be needed (see the top-level nuttx/README.txt file for build information).

                -

                - The previous NuttX version was 6.33. - The NuttX minor version number is incremented on each release, but the major version number is incremented only when an incompatibility with previous versions is included in the release. - In this case, the legacy, manual configuration is no longer supported by the NuttX build system beginning with NuttX 7.1. - Only the newer configurations generated by the kconfig-frontends tools will generate - viable NuttX configurations. -

                -

                - All board configurations in the NuttX source tree have been converted to use the newer configuration, but if you have some older style configurations for you board, you will need to convert those configurations to use the kconfig-frontends tools before taking any new code from the repository. - There are Conversion Guidelines available on the NuttX Wiki -

                Release Notes and Change Logs:

              • Atmel SAMA5D3 Xplained development board This is the port of NuttX to the Atmel SAMA5D3 Xplained development board. - The board features the Atmel SAMA5D36 microprocessors. + The board features the Atmel SAMA5D36 microprocessor. See the Atmel Website for additional information about this board.

                STATUS. - This port is underway as of this writing and not ready for general use. - The basic port is expected to be simple because of the similarity to the SAMAD3x-EK boards and should be available in the NuttX 7.2 release. + This port is complete as of this writing and ready for general use. + The basic port is expected to be simple because of the similarity to the SAMAD3x-EK boards and is available in the NuttX 7.2 release. +

                +

                + Most of the drivers and capabilities of the SAMA5D3x-EK boards can be used with the SAMA5D3 Xplained board. + The primary difference between the ports is that the SAMA5D3x-EK supports NOR FLASH and NuttX can be configured to boot directly from NOR FLASH. + The SAMA5D3 Xplained board does not have NOR FLASH and, as a consequence NuttX must boot into SDRAM with the help of U-Boot.

                Refer to the NuttX board README file for further information.

                -

            @@ -2709,7 +2706,7 @@ nsh>

            An fully verified board configuration is included in NuttX-6.2. The Code Red toolchain is supported under either Linux or Windows. - Verifed configurations include DHCPD, the NuttShell (NSH), NuttX graphis (NX), THTTPD, and USB mass storage device. + Verified configurations include DHCPD, the NuttShell (NSH), NuttX graphis (NX), THTTPD, and USB mass storage device. Refer to the NuttX board README file for further information.

            @@ -2855,6 +2852,33 @@ nsh>

            + +
            + +

            + STMicro STM32401x (STM32 F4 family). +

              +

              + Nucleo F401RE. + This port uses the STMicro Nucleo F401RE board featuring the STM32F104RE MCU. + Refer to the STMicro web site for further information about this board. +

              +

              + STATUS: +

                +
              • NuttX-7.2 + The basic port for STMicro Nucleo F401RE board was contributed by Frank Bennett. +
              • + Refer to the NuttX board README file for further information. +
              • +
              +

              + + + +
              +
              +
              @@ -3160,17 +3184,39 @@ Mem: 29232 5920 23312 23312

              Atmel SAM4S. - This port uses the Atmel SAM4S Xplained development board. - This board features the ATSAM4S16C MCU running at 120MHz with 1MB of FLASH and 128KB of internal SRAM. + There are ports to two Atmel SAM4S board:

                +
              • - STATUS: - As of this writing, the basic port is code complete and a fully verified configuration exists for the the NuttShell NSH). - The first fully functional SAM4S Xplained port was released in NuttX-6.28. - Support for the on-board 1MB SRAM was added in NuttX-6.29. - Refer to the NuttX board README file for further information. + There is a port the Atmel SAM4S Xplained development board. + This board features the ATSAM4S16 MCU running at 120MHz with 1MB of FLASH and 128KB of internal SRAM.

                +
                  +

                  + STATUS: + As of this writing, the basic port is code complete and a fully verified configuration exists for the the NuttShell NSH). + The first fully functional SAM4S Xplained port was released in NuttX-6.28. + Support for the on-board 1MB SRAM was added in NuttX-6.29. + Refer to the NuttX board README file for further information. +

                  +
                +
              • +
              • +

                + There is also a port to the the Atmel SAM4S Xplained Pro development board. + This board features the ATSAM4S32C MCU running at 120MHz with 2MB of FLASH and 160KB of internal SRAM. +

                +
                  +

                  + STATUS: + As of this writing, the basic port is code complete and a fully verified configuration exists for the the NuttShell NSH). + The first fully functional SAM4S Xplained Pro port was released in NuttX-7.2. + This supported also added HSMCI, RTC, and watchdog and verified support for USB device. + Refer to the NuttX board README file for further information. +

                  +
                +
              @@ -3766,6 +3812,7 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1); STATUS: The initial release of support for the z16f was made available in NuttX version 0.3.7. A working NuttShell (NSH) configuration as added in NuttX-6.33 (although a patch is required to work around an issue with a ZDS-II 5.0.1 tool problem). + An ESPI driver was added in NuttX-7.2. Refer to the NuttX board README file for further information.

              @@ -3778,7 +3825,7 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1);

              STATUS: The initial release of support for the 16z board was made available in NuttX version 6.33. - Both the 16z board and the NuttX port are works in progress and are not ready for usage as of NuttX-6.33. + Both the 16z board and the NuttX port are works in progress and are not ready for usage as of NuttX-7.2. Refer to the NuttX board README file for further information.

              From caeece4f647236c4cf8d2bf4eac786e8d08221b0 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 5 May 2014 08:52:02 -0600 Subject: [PATCH 1258/1518] The alternate console device CONFIG_NSH_CONDEV must not be defined unconditionally. This causes errors when using Telnet sessions. This was solved by adding CONFIG_NSH_ALTCONDEV: CONFIG_NSH_ALTCONDEV enables or disables the feature then, if enabled, CONFIG_NSH_CONDEV provides the alternative console device name --- Documentation/NuttShell.html | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index 8931890964..071214af8f 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -3007,8 +3007,8 @@ set FOOBAR ABC_${FOO}_${BAR}
            • CONFIG_NSH_USBCONSOLE. If defined, then the an arbitrary USB device may be used to as the NSH console. - In this case, CONFIG_NSH_CONDEV must be defined to indicate which USB device to use as the console. - The advantage of using a device other that /dev/console is that normal debug output can not use /dev/console while NSH uses CONFIG_NSH_USBCONDEV. + In this case, CONFIG_NSH_USBCONDEV must be defined to indicate which USB device to use as the console. + The advantage of using a device other that /dev/console is that normal debug output can then use /dev/console while NSH uses CONFIG_NSH_USBCONDEV.

              CONFIG_NSH_USBCONDEV. If CONFIG_NSH_USBCONSOLE is set to 'y', then CONFIG_NSH_USBCONDEV must also be set to select the USB device used to support the NSH console. @@ -3053,20 +3053,29 @@ set FOOBAR ABC_${FOO}_${BAR} - CONFIG_NSH_CONDEV + CONFIG_NSH_ALTCONDEV and CONFIG_NSH_CONDEV - If CONFIG_NSH_CONSOLE is set to y, then CONFIG_NSH_CONDEV - may also be set to select the serial device used to support the NSH console. - This should be set to the quoted name of a readable/write-able character driver such as: + If CONFIG_NSH_CONSOLE is set to y, then CONFIG_NSH_ALTCONDEV + may also be selected to enable use of an alternate character device to support the NSH console. + If CONFIG_NSH_ALTCONDEV is selected, then CONFIG_NSH_CONDEV holds the quoted name of a readable/write-able character driver such as: CONFIG_NSH_CONDEV="/dev/ttyS1". This is useful, for example, to separate the NSH command line from the system console when the system console is used to provide debug output. Default: stdin and stdout (probably "/dev/console")

                - NOTE: When any other device other than /dev/console is used for a user interface, - (1) linefeeds (\n) will not be expanded to carriage return / linefeeds (\r\n). - You will need to configure your terminal program to account for this. - And (2) input is not automatically echoed so you will have to turn local echo on. +
              • + NOTE 1: + When any other device other than /dev/console is used for a user interface, + (1) linefeeds (\n) will not be expanded to carriage return / linefeeds (\r\n). + You will need to configure your terminal program to account for this. + And (2) input is not automatically echoed so you will have to turn local echo on. +
              • +
              • + NOTE 2: + This option forces the console of all sessions to use NSH_CONDEV. + Hence, this option only makes sense for a system that supports only a single session. + This option is, in particular, incompatible with Telnet sessions because each Telnet session must use a different console device. +
              From e8f6f93ab0a3540a8b81a2457e0654d7a6673b71 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 8 May 2014 09:00:33 -0600 Subject: [PATCH 1259/1518] Add serial method so that lower half driver can provide RX flow control information. From Jussi Kivilinna --- Documentation/NuttxPortingGuide.html | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index dad21f6cdf..ee79134471 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

              NuttX RTOS Porting Guide

              -

              Last Updated: January 25, 2014

              +

              Last Updated: May 8, 2014

              @@ -3059,6 +3059,9 @@ void board_led_off(int led); int receive(FAR struct uart_dev_s *dev, unsigned int *status);
              void rxint(FAR struct uart_dev_s *dev, bool enable);
              bool rxavailable(FAR struct uart_dev_s *dev);
              + #ifdef CONFIG_SERIAL_IFLOWCONTROL
              + bool rxflowcontrol(FAR struct uart_dev_s *dev);
              + #endif
              void send(FAR struct uart_dev_s *dev, int ch);
              void txint(FAR struct uart_dev_s *dev, bool enable);
              bool txready(FAR struct uart_dev_s *dev);
              From b9cb1724138f010e5f2cb9255ac4c2e9bf7ba11e Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 8 May 2014 11:08:01 -0600 Subject: [PATCH 1260/1518] Add a ROMFS file system for testing the P-Code binary format --- Documentation/README.html | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Documentation/README.html b/Documentation/README.html index 1fe8757bf3..d7775a2558 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -8,7 +8,7 @@

              NuttX README Files

              -

              Last Updated: April 20, 2014

              +

              Last Updated: May 8, 2014

              @@ -45,6 +45,9 @@ | | | |- README.txt | | | `- z180_mmu.txt | | `- README.txt + | |- binfmt/ + | | |- libpcode/ + | | `- README.txt | |- audio/ | | `- README.txt | |- configs/ From 9369c5813b58e8b480720d3216e74f817b19ac72 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 8 May 2014 16:58:10 -0600 Subject: [PATCH 1261/1518] P-code BINFMT: Add logic to pass information from the binfmt logic to the P-code interpreter. This includes some extension to the binfmt interfaces. --- Documentation/NuttXBinfmt.html | 2 +- Documentation/NuttXNxFlat.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttXBinfmt.html b/Documentation/NuttXBinfmt.html index 3f3bdbc0aa..2f4f6e4252 100644 --- a/Documentation/NuttXBinfmt.html +++ b/Documentation/NuttXBinfmt.html @@ -289,7 +289,7 @@ On failure, it returns -1 (ERROR) with errno set appro

              Function Prototype:

                 #include <:nuttx/binfmt/binfmt.h>
                -int unload_module(FAR const struct binary_s *bin);
                +int unload_module(FAR struct binary_s *bin);
                 

              Description:

                diff --git a/Documentation/NuttXNxFlat.html b/Documentation/NuttXNxFlat.html index 2036cc723e..41b2a19ee9 100644 --- a/Documentation/NuttXNxFlat.html +++ b/Documentation/NuttXNxFlat.html @@ -655,7 +655,7 @@ cat ../syscall/syscall.csv ../libc/lib.csv | sort >tmp.csv

              -

              int unload_module(FAR const struct binary_s *bin) +

              int unload_module(FAR struct binary_s *bin)

                Description: Unload a (non-executing) module from memory. If the module has From 90077a72d3f870e79fda52612a72c039f90339c0 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 3 Jun 2014 10:34:36 -0600 Subject: [PATCH 1262/1518] Add support for the Olimex STM32 h405. From Martin Lederhilger --- Documentation/README.html | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Documentation/README.html b/Documentation/README.html index d7775a2558..29b0f25c2b 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -8,7 +8,7 @@

                NuttX README Files

                -

                Last Updated: May 8, 2014

                +

                Last Updated: June 3, 2014

                @@ -142,6 +142,10 @@ | | | `- README.txt | | |- olimex-lpc-h3131/ | | | `- README.txt + | | |- olimex-stm32-h405/ + | | | `- README.txt + | | |- olimex-stm32-p107/ + | | | `- README.txt | | |- olimex-stm32-p207/ | | | `- README.txt | | |- olimex-strp711/ From d927f88ced4cee985779466b4f61b4f3e393d91a Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 6 Jun 2014 12:37:36 -0600 Subject: [PATCH 1263/1518] Add board support for the SAMA5D4-EK --- Documentation/README.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/README.html b/Documentation/README.html index 29b0f25c2b..87a27f4a68 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -8,7 +8,7 @@

                NuttX README Files

                -

                Last Updated: June 3, 2014

                +

                Last Updated: June 6, 2014

                @@ -174,6 +174,8 @@ | | | `- README.txt | | |- sama5d3-xplained/ | | | `- README.txt + | | |- sama5d4-ek/ + | | | `- README.txt | | |- samd20-xplained/ | | | `- README.txt | | |- sam3u-ek/ From dbb3bf43abfc612cb46452cb7ecec31f19c499f8 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 12 Jun 2014 12:33:54 -0600 Subject: [PATCH 1264/1518] Minor documentation update --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index f51c2aefa7..d864fc1d94 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -642,6 +642,7 @@

              • TCP/IP, UDP, ICMP, IGMPv2 (client) stacks.
              • +
              • Raw socket support
              • From a2e9779c27b921373b5823405a5de8a4643bb13d Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 24 Jun 2014 09:28:44 -0600 Subject: [PATCH 1265/1518] Move include/nuttx/net/uip/uip-arch.h to include/nuttx/net/netdev.h --- Documentation/NuttxPortingGuide.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index ee79134471..b156c11374 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -2924,7 +2924,7 @@ void board_led_off(int led);
                • - include/nuttx/net/uip/uip-arch.h. + include/nuttx/net/netdev.h. All structures and APIs needed to work with Ethernet drivers are provided in this header file. The structure struct uip_driver_s defines the interface and is passed to uIP via netdev_register(). From 20c91a54b96884daa9bbf86329d03bd74cde01a0 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 25 Jun 2014 14:09:41 -0600 Subject: [PATCH 1266/1518] Prep for NuttX-7.3 release --- Documentation/NuttX.html | 152 ++++++++++++++++++++++++++++++++++----- 1 file changed, 133 insertions(+), 19 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index d864fc1d94..3ad94d0935 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

                  NuttX RTOS

                  -

                  Last Updated: April 29, 2014

                  +

                  Last Updated: June 25, 2014

                  @@ -511,7 +511,12 @@

                  -

                • File transfers via TFTP and FTP (get and put), HTML (wget), and Zmodem (sz and rz).
                • +
                • + File transfers via TFTP and FTP (get and put), HTML (wget), and Zmodem (sz and rz). +
                • +
                • + Intel HEX file conversions. +
                • @@ -1134,17 +1139,17 @@

                  Git Repository

                  The working version of NuttX is available from the SourceForge GIT repository here. - That same page provides the URLS and instructions for cloning the GIT repository. + That same page provides the URLs and instructions for cloning the GIT repository.

                  Released Versions

                  In addition to the ever-changing GIT repository, there are frozen released versions of NuttX available. - The current release is NuttX 7.2. - NuttX 7.2 is the 102nd release of NuttX. - It was released on April 29, 2014, and is available for download from the + The current release is NuttX 7.3. + NuttX 7.3 is the 103rd release of NuttX. + It was released on June 25, 2014, and is available for download from the SourceForge website. - Note that the release consists of two tarballs: nuttx-7.2.tar.gz and apps-7.2.tar.gz. + Note that the release consists of two tarballs: nuttx-7.3.tar.gz and apps-7.3.tar.gz. Both may be needed (see the top-level nuttx/README.txt file for build information).

                  @@ -1153,16 +1158,18 @@
                  • nuttx.

                      - Release notes for NuttX 7.12 are available here; + Release notes for NuttX 7.3 are available here; release notes for all released versions on NuttX are available in the SourceForge GIT - The ChangeLog for all releases of NuttX is available at the bottom of the ChangeLog file that can viewed in the SourceForge GIT. + The ChangeLog for all releases of NuttX is available in the ChangeLog file that can viewed in the SourceForge GIT. + The ChangeLog for the current release is at the bottom of that file.

                  • apps.

                      - Release notes for NuttX 7.2 are available here; + Release notes for NuttX 7.3 are available here; release notes for all released versions on NuttX are available in the SourceForge GIT - The ChangeLog for the all releases of apps is available at the bottom of the ChangeLog file that can viewed in the SourceForge GIT. + The ChangeLog for the all releases of apps is available in the ChangeLog file that can viewed in the SourceForge GIT. + The ChangeLog for the current release is at the bottom of that file.

                  • NxWidgets. @@ -1213,8 +1220,8 @@
                  • ARM Cortex-A5 (2)
                  • ARM Cortex-A8 (1)
                  • ARM Cortex-M0/M0+ (3)
                  • -
                  • ARM Cortex-M3 (25)
                  • -
                  • ARM Cortex-M4 (13)
                  • +
                  • ARM Cortex-M3 (27)
                  • +
                  • ARM Cortex-M4 (15)
                • Atmel AVR
                • Freescale @@ -1344,6 +1353,7 @@
                  • STMicro STR71x (ARM7TDMI)
                  • STMicro STM32L152 (STM32 L "EnergyLite" Line, ARM Cortex-M3)
                  • +
                  • STMicro STM32L162 (STM32 L "EnergyLite" Medium+ Density, ARM Cortex-M3)
                  • STMicro STM32F100x (STM32 F1 "Value Line"Family, ARM Cortex-M3)
                  • STMicro STM32F103C4/C8 (STM32 F1 "Low- and Medium-Density Line" Family, ARM Cortex-M3)
                  • STMicro STM32F103x (STM32 F1 Family, ARM Cortex-M3)
                  • @@ -1688,7 +1698,7 @@ NXP LPC315x. Support for the NXP LPC315x family has been incorporated into the code base as of NuttX-6.4. - Support has added for the Embedded Artists EA3152 board in NuttX-6.11. + Support was added for the Embedded Artists EA3152 board in NuttX-6.11.

                      @@ -1873,6 +1883,41 @@

                    + + + +
                    +
                    + + +
                    + +

                    + Atmel SAMA5D4. + There is a port in progress on one Atmel SAMA5D4 board: +

                    +

                      +
                    • Atmel SAMA5D4-EK/MB development boards + This is the port of NuttX to the Atmel SAMA5D4-MB development board (which should be compatible witht he SAMA5D4-EK). + These boards feature the Atmel SAMA5D44 microprocessors with compatibility with most of the SAMA5D3 peripherals. +

                      +

                      STATUS. + At the time of the release of NuttX-7.3, the basic port for the SAMA5D4-MB was complete and undergoing test. + The board has some basic functionality. + There are, however, too many outstanding issues to claim full availability in NuttX-7.3. + Look for a stable SAMA5D4-EK release in NuttX-7.4! + Refer to the NuttX board README file for current status. +

                    • +
                    + + + +
                    +
                    + + +
                    +

                    Development Environments: 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS with Windows native toolchain, or 4) Native Windows. @@ -2234,7 +2279,20 @@ nsh>

                    - + +
                    +
                    + + +
                    + +

                    + STMicro STM32F152x/162x(STM32 F1 "EnergyLite" Medium+ Density Family). + Support for the STM32152 and STM32162 Medium+ density parts from Jussi Kivilinna and Sami Pelkonen was included in NuttX-7.3, extending the basic STM32F152x support. + This is architecture-only support, meaning that support for the boards with these chips is available, but not support for any publicly available boards is included. +

                    + +

                    @@ -2602,6 +2660,7 @@ nsh>

                    NXP LPC1766, LPC1768, and LPC1769. Drivers are available for CAN, DAC, Ethernet, GPIO, GPIO interrupts, I2C, UARTs, SPI, SSP, USB host, and USB device. + Additional drivers for the RTC, ADC, DAC, Timers, PWM and MCPWM were contributed by Max (himax) in NuttX-7.3. Verified LPC17xx onfigurations are available for three boards.

                    • @@ -2919,6 +2978,9 @@ nsh>
                    • NuttX-6.21 A USB OTG host controller driver was added in NuttX 6.21.
                    • +
                    • NuttX-7.3 + Support for the Olimex STM32 H405 board was added in NuttX-7.3. +
                    • Refer to the NuttX board README file for further information.
                    • @@ -2973,6 +3035,11 @@ nsh> All drivers for the STM32 F4 family may be used with this board as well.

                    +

                    + Olimex STM32 H405. + Support for the Olimex STM32 H405 development board was contributed by Martin Lederhilger and appeared in NuttX-7.3. + See the NuttX board README file for further information about the NuttX port. +

                    @@ -2986,7 +3053,7 @@ nsh> STMicro STM32 F427/437. General architectural support was provided for the F427/437 family in NuttX 6.27. Specific support includes the STM32F427I, STM32F427Z, and STM32F427V chips. - This is architecture-only support, meaning that support for the boards with these chips is available, but not support for any publically available boards is included.. + This is architecture-only support, meaning that support for the boards with these chips is available, but not support for any publicly available boards is included. This support was contributed by Mike Smith.

                    @@ -3180,6 +3247,52 @@ Mem: 29232 5920 23312 23312


                    + +
                    + +

                    + Atmel SAM4C. + General architectural support was provided for SAM4CM family in NuttX 7.3 + This was architecture-only support, meaning that support for the boards with these chips is available, but no support for any publicly available boards was included. + The SAM4CM port should be compatible with most of the SAM3/4 drivers (like HSMCI, DMAC, etc.) but those have not be verified on hardware as of this writing. + This support was contributed in part by Max Neklyudov. +

                    + + + +
                    +
                    + + +
                    + +

                    + Atmel SAM4E. + General architectural support was provided for the SAM4E family in NuttX 6.32. + This was architecture-only support, meaning that support for the boards with these chips is available, but no support for any publicly available boards was included. + This support was contributed in part by Mitko. +

                    +

                    + Atmel SAM4E-EK. + Board support was added for the SAM4E-EK development board in NuttX 7.1. + A fully functional NuttShell (NSH) configuration is available + (see the NSH User Guide). + That NSH configuration includes networking support and support for an AT25 Serial FLASH file system. +

                    +
                      + STATUS. + A new Ethernet MAC driver has been developed and is functional in the NSH configuration. + A DMA-base SPI driver is supported and has been verified with the AT25 Serial FLASH. + Touchscreen and LCD support was added in NuttX-7.3, but has not been fully integrated as of this writing. + The SAM4E-EK should be compatible with most of the other SAM3/4 drivers (like HSMCI, DMAC, etc.) but those have not be verified on the SAM4E-EK as of this writing. + Refer to the NuttX board README file for further information. +
                    + + + +
                    +
                    +
                    @@ -3199,6 +3312,8 @@ Mem: 29232 5920 23312 23312 As of this writing, the basic port is code complete and a fully verified configuration exists for the the NuttShell NSH). The first fully functional SAM4S Xplained port was released in NuttX-6.28. Support for the on-board 1MB SRAM was added in NuttX-6.29. + An RTT driver was Bob Doiron in NuttX-7.3. + Bob also added an high resolution RTC emulation using the RTT for the sub-second counter. Refer to the NuttX board README file for further information.

                  @@ -3909,8 +4024,7 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1);

                  P112. - The P112 is a hobbyist single board computer based on a 16MHz Z80182 with up to 1MB of memory, serial, -parallel and diskette IO, and realtime clock, in a 3.5-inch drive form factor.. + The P112 is a hobbyist single board computer based on a 16MHz Z80182 with up to 1MB of memory, serial, parallel and diskette IO, and realtime clock, in a 3.5-inch drive form factor. The P112 computer originated as a commercial product of "D-X Designs Pty Ltd"[ of Australia.

                  From 58bab6f0c87faaecaf172109bdeed6ef3ea1ceee Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 27 Jun 2014 08:14:07 -0600 Subject: [PATCH 1267/1518] Various changes associated with symbol tables. Most from Pelle Windestam --- Documentation/NuttXNxFlat.html | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttXNxFlat.html b/Documentation/NuttXNxFlat.html index 41b2a19ee9..89b415041b 100644 --- a/Documentation/NuttXNxFlat.html +++ b/Documentation/NuttXNxFlat.html @@ -407,7 +407,10 @@ any following arguments. nuttx/syscall/syscall.csv that describes the NuttX RTOS interface, and
                • - nuttx/libc/lib.csv that describes the NuttX C library interface. + nuttx/libc/libc.csv that describes the NuttX C library interface. +
                • +
                • + nuttx/libc/math.cvs that descirbes any math library.
      @@ -424,7 +427,7 @@ Where:
       

         cd nuttx/tools
        -cat ../syscall/syscall.csv ../libc/lib.csv | sort >tmp.csv
        +cat ../syscall/syscall.csv ../libc/libc.csv | sort >tmp.csv
         ./mksymtab.exe tmp.csv tmp.c
         
      From c9bd88a9a5a02cfe51e64bd5d6ace18e0d859eb4 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 27 Jun 2014 15:18:18 -0600 Subject: [PATCH 1268/1518] Add net/README.txt --- Documentation/README.html | 4 +++- Documentation/acronyms.txt | 43 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+), 1 deletion(-) create mode 100755 Documentation/acronyms.txt diff --git a/Documentation/README.html b/Documentation/README.html index 87a27f4a68..b2a8775d08 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -8,7 +8,7 @@

      NuttX README Files

      -

      Last Updated: June 6, 2014

      +

      Last Updated: June 27, 2014

      @@ -284,6 +284,8 @@ | | `- README.txt | |- mm/ | | `- README.txt + | |- net/ + | | `- README.txt | |- syscall/ | | `- README.txt | `- tools/ diff --git a/Documentation/acronyms.txt b/Documentation/acronyms.txt new file mode 100755 index 0000000000..eb78239cea --- /dev/null +++ b/Documentation/acronyms.txt @@ -0,0 +1,43 @@ +AIC Advanced Interrupt Controller (Atmel SAM) +ADC Analog to Digital Conversion +ARP Address Resolution Protocol (networking) +BCH Block to Character +CAN Controller Area Network +DEVIF Device Interface (networking) +DAC Digital to Analog Conversion +DEV Device +DRAM Dynamic RAM +FAT File Allocation Table +FTL FLASH Translation Layer +I2C Inter-Integrated Circuit +I2S Inter IC Sound +ICMP Internet Control Message Protocol (networking) +IOB I/O Buffer (networking) +LIBC The "C" Library +MM Memory Management/Manager +MMC Multi-Media Card +MMCSD See MMC and SD +MTD Memory Technology Device +NFS Network File System +NETDEV Network Device (networking) +NSH NuttShell +NX NuttX, the NuttX Graphics server (graphics) +NXFFS NuttX Flash File System +NXWM The NuttX Window Manager (graphics) +PID Peripheral ID (Atmel SAM) +PWM Pulse Width Modulation +PKT "Raw" Packet socket (networking) +RAM Random Access Memory +SAIC Secure Advanced Interrupt Controller (Atmel SAM) +SD Secure Digital +SPI Serial Periperhal Interface +TCP Transmission Control Protocol (networking) +TSC Touchscreen Controller +TWI Two-Wire Interface +UDP User Datagram Protocol (networking) +UART Universal Asynchronous Receiver/Transmitter +USB Universal Serial Bus +USART Universal Synchronous/Asynchronous Receiver/Transmitter +WDT Watchdog Timer + + From baa668f56cf0013951eedaff1e88f32853e3ff0c Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 27 Jun 2014 16:48:12 -0600 Subject: [PATCH 1269/1518] Rename uip_driver_s net_driver_s --- Documentation/NuttX.png | Bin 4961 -> 4960 bytes Documentation/NuttX2-b.png | Bin 1559 -> 1558 bytes Documentation/NuttX2.png | Bin 3441 -> 3440 bytes Documentation/NuttX320.png | Bin 4151 -> 4150 bytes Documentation/NuttXScreenShot.jpg | Bin 5872 -> 5870 bytes Documentation/NuttxPortingGuide.html | 4 +- Documentation/acronyms.txt | 86 +++++++++++++-------------- 7 files changed, 45 insertions(+), 45 deletions(-) diff --git a/Documentation/NuttX.png b/Documentation/NuttX.png index 360e657dd20f3c2326d8a06b1f96e974f9a5099d..93c8aa5860f0044cdbef593ed4feb29f2b722010 100644 GIT binary patch delta 13 UcmaE;_CSrLGr-S%BWsK>042`^r2qf` delta 14 VcmaE$_E3$rGr-TCcOy%TFaRl)1hN1C diff --git a/Documentation/NuttX2-b.png b/Documentation/NuttX2-b.png index 5bdab5c29de3f300e5178a7245cc4f13d5162766..8dc51072f8b2f72424b7dc11e87a974acc14ebc1 100644 GIT binary patch delta 13 UcmbQvGmVF(Gr-S%BdZV_02~4Xh5!Hn delta 14 VcmbQnGo6REGr-TCcO#1s8vq{w1Csy% diff --git a/Documentation/NuttX2.png b/Documentation/NuttX2.png index 422d1191fd21bbeafc908d5742a919a39e3d0211..4ce69ec5f49d1eaa245f8d4bf207e564337a3361 100644 GIT binary patch delta 13 Ucmew;^+AfIGr-S%BWn&X048Asw*UYD delta 14 Vcmew$^-+qoGr-TCcOy#$*V-q0Le133IJ1l2YCPh diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index b156c11374..f8f59cb82e 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -2926,13 +2926,13 @@ void board_led_off(int led);

      include/nuttx/net/netdev.h. All structures and APIs needed to work with Ethernet drivers are provided in this header file. - The structure struct uip_driver_s defines the interface and is passed to uIP via + The structure struct net_driver_s defines the interface and is passed to uIP via netdev_register().

    • - int netdev_register(FAR struct uip_driver_s *dev);. + int netdev_register(FAR struct net_driver_s *dev);. Each Ethernet driver registers itself by calling netdev_register().

    • diff --git a/Documentation/acronyms.txt b/Documentation/acronyms.txt index eb78239cea..31a95dfe9b 100755 --- a/Documentation/acronyms.txt +++ b/Documentation/acronyms.txt @@ -1,43 +1,43 @@ -AIC Advanced Interrupt Controller (Atmel SAM) -ADC Analog to Digital Conversion -ARP Address Resolution Protocol (networking) -BCH Block to Character -CAN Controller Area Network -DEVIF Device Interface (networking) -DAC Digital to Analog Conversion -DEV Device -DRAM Dynamic RAM -FAT File Allocation Table -FTL FLASH Translation Layer -I2C Inter-Integrated Circuit -I2S Inter IC Sound -ICMP Internet Control Message Protocol (networking) -IOB I/O Buffer (networking) -LIBC The "C" Library -MM Memory Management/Manager -MMC Multi-Media Card -MMCSD See MMC and SD -MTD Memory Technology Device -NFS Network File System -NETDEV Network Device (networking) -NSH NuttShell -NX NuttX, the NuttX Graphics server (graphics) -NXFFS NuttX Flash File System -NXWM The NuttX Window Manager (graphics) -PID Peripheral ID (Atmel SAM) -PWM Pulse Width Modulation -PKT "Raw" Packet socket (networking) -RAM Random Access Memory -SAIC Secure Advanced Interrupt Controller (Atmel SAM) -SD Secure Digital -SPI Serial Periperhal Interface -TCP Transmission Control Protocol (networking) -TSC Touchscreen Controller -TWI Two-Wire Interface -UDP User Datagram Protocol (networking) -UART Universal Asynchronous Receiver/Transmitter -USB Universal Serial Bus -USART Universal Synchronous/Asynchronous Receiver/Transmitter -WDT Watchdog Timer - - +AIC Advanced Interrupt Controller (Atmel SAM) +ADC Analog to Digital Conversion +ARP Address Resolution Protocol (networking) +BCH Block to Character +CAN Controller Area Network +DEVIF Device Interface (networking) +DAC Digital to Analog Conversion +DEV Device +DRAM Dynamic RAM +FAT File Allocation Table +FTL FLASH Translation Layer +I2C Inter-Integrated Circuit +I2S Inter IC Sound +ICMP Internet Control Message Protocol (networking) +IOB I/O Buffer (networking) +LIBC The "C" Library +MM Memory Management/Manager +MMC Multi-Media Card +MMCSD See MMC and SD +MTD Memory Technology Device +NFS Network File System +NETDEV Network Device (networking) +NSH NuttShell +NX NuttX, the NuttX Graphics server (graphics) +NXFFS NuttX Flash File System +NXWM The NuttX Window Manager (graphics) +PID Peripheral ID (Atmel SAM) +PWM Pulse Width Modulation +PKT "Raw" Packet socket (networking) +RAM Random Access Memory +SAIC Secure Advanced Interrupt Controller (Atmel SAM) +SD Secure Digital +SPI Serial Periperhal Interface +TCP Transmission Control Protocol (networking) +TSC Touchscreen Controller +TWI Two-Wire Interface +UDP User Datagram Protocol (networking) +UART Universal Asynchronous Receiver/Transmitter +USB Universal Serial Bus +USART Universal Synchronous/Asynchronous Receiver/Transmitter +WDT Watchdog Timer + + From ff5cb9410c7f529d47fd00ad9e0701811422a72f Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 28 Jun 2014 09:39:50 -0600 Subject: [PATCH 1270/1518] SAMA5D4-EK: Updates to get the at25boot configuration building correctly --- Documentation/acronyms.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Documentation/acronyms.txt b/Documentation/acronyms.txt index 31a95dfe9b..5eb6ee2f31 100755 --- a/Documentation/acronyms.txt +++ b/Documentation/acronyms.txt @@ -2,19 +2,23 @@ AIC Advanced Interrupt Controller (Atmel SAM) ADC Analog to Digital Conversion ARP Address Resolution Protocol (networking) BCH Block to Character +BINFMT Binary Format (Dynamic Loader) CAN Controller Area Network +CP15 Coprocessor 15 (ARM) DEVIF Device Interface (networking) DAC Digital to Analog Conversion DEV Device DRAM Dynamic RAM FAT File Allocation Table FTL FLASH Translation Layer +IRQ Interrupt Request I2C Inter-Integrated Circuit I2S Inter IC Sound ICMP Internet Control Message Protocol (networking) IOB I/O Buffer (networking) LIBC The "C" Library MM Memory Management/Manager +MMAP Memory Map MMC Multi-Media Card MMCSD See MMC and SD MTD Memory Technology Device From 4621a3b81fcb413a4c69adc16c26dde304574212 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 29 Jun 2014 08:43:46 -0600 Subject: [PATCH 1271/1518] SAMA5: Add configuration to assign an XDMAC channel to an HSMCI --- Documentation/acronyms.txt | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/Documentation/acronyms.txt b/Documentation/acronyms.txt index 5eb6ee2f31..00321607ba 100755 --- a/Documentation/acronyms.txt +++ b/Documentation/acronyms.txt @@ -8,15 +8,22 @@ CP15 Coprocessor 15 (ARM) DEVIF Device Interface (networking) DAC Digital to Analog Conversion DEV Device +DMA Direct Memory Access (hardware) +DMAC DMA Controller (hardware) DRAM Dynamic RAM -FAT File Allocation Table -FTL FLASH Translation Layer +FAT File Allocation Table (file systems) +FTL FLASH Translation Layer (MTD) +HSMCI High Speed Memory Card Interface (Atmel) +I/O Input/Output +IP Internet Protocol (version 4?) (networking) +IPv6 Internet Protocol Version 6 (networking) IRQ Interrupt Request I2C Inter-Integrated Circuit I2S Inter IC Sound ICMP Internet Control Message Protocol (networking) IOB I/O Buffer (networking) LIBC The "C" Library +MCI Memory Card Interface MM Memory Management/Manager MMAP Memory Map MMC Multi-Media Card @@ -32,8 +39,12 @@ PID Peripheral ID (Atmel SAM) PWM Pulse Width Modulation PKT "Raw" Packet socket (networking) RAM Random Access Memory +RTC Real Time Clock +RTCC Real Time Clock/Calendar SAIC Secure Advanced Interrupt Controller (Atmel SAM) SD Secure Digital +SDIO Secure Digital I/O +SMC Static Memory Controller (hardware) SPI Serial Periperhal Interface TCP Transmission Control Protocol (networking) TSC Touchscreen Controller @@ -43,5 +54,4 @@ UART Universal Asynchronous Receiver/Transmitter USB Universal Serial Bus USART Universal Synchronous/Asynchronous Receiver/Transmitter WDT Watchdog Timer - - +XDMAC Extended DMA Controller (Atmel) From 6fb9f5d4aebb8297fa29bf97f64b27adc4f0e79e Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 2 Jul 2014 16:04:25 -0600 Subject: [PATCH 1272/1518] NET: Rename uiplib/UIPLIB to netlib/NETLIB --- Documentation/NuttxPortingGuide.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index f8f59cb82e..d5de8016f5 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -1402,10 +1402,10 @@ netutils/ | |-- Kconfig | |-- Make.defs | `-- (thttpd HTTP server source files) -|-- uiplib/ +|-- netlib/ | |-- Kconfig | |-- Make.defs -| `-- (uiplib source files) +| `-- (netlib source files) |-- weblclient/ | |-- Kconfig | |-- Make.defs From 208985b8b74e4000f4fabc622777bb90b395eb66 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 2 Jul 2014 17:23:25 -0600 Subject: [PATCH 1273/1518] NET: Misc naming clean-up --- Documentation/NuttxPortingGuide.html | 86 +++++++++++++++++++++++++--- 1 file changed, 78 insertions(+), 8 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index d5de8016f5..0f54a3e871 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -184,9 +184,11 @@ . |- nuttx | |-- Makefile +| |-- Kconfig | |-- Documentation | | `-- (documentation files)/ | |-- arch/ +| | |-- Kconfig | | |-- <arch-name>/ | | | |-- include/ | | | | |--<chip-name>/ @@ -201,6 +203,7 @@ | | `-- <other-architecture directories>/ | |-- binfmt/ | | |-- Makefile +| | |-- Kconfig | | |-- (binfmt-specific sub-directories)/ | | | `-- (binfmt-specific source files) | | `-- (common binfmt source files) @@ -216,16 +219,19 @@ | | `-- <(other board directories)>/ | |-- drivers/ | | |-- Makefile +| | |-- Kconfig | | |-- (driver-specific sub-directories)/ | | | `-- (driver-specific source files) | | `-- (common driver source files) | |-- fs/ | | |-- Makefile +| | |-- Kconfig | | |-- (file system-specific sub-directories)/ | | | `-- (file system-specific source files) | | `-- (common file system source files) | |-- graphics/ | | |-- Makefile +| | |-- Kconfig | | |-- (feature-specific sub-directories)/ | | | `-- (feature-specific source files library source files) | | `-- (common graphics-related source files) @@ -237,43 +243,76 @@ | | `-- (non-standard header files) | |-- libc/ | | |-- Makefile +| | |-- Kconfig | | `-- (libc source files) | |-- libxx/ | | |-- Makefile +| | |-- Kconfig | | `-- (libxx management source files) | |-- mm/ | | |-- Makefile +| | |-- Kconfig | | `-- (memory management source files) | |-- net/ | | |-- Makefile -| | |-- uip/ -| | | `-- (uip source files) -| | `-- (BSD socket source files) +| | |-- Kconfig +| | |-- arp/ +| | | `-- (ARP source files) +| | |-- devif/ +| | | `-- (Ethernet device interface source files) +| | |-- icmp/ +| | | `-- (ICMP source files) +| | |-- igmp/ +| | | `-- (IGMP source files) +| | |-- iob/ +| | | `-- (I/O buffering source files) +| | |-- ipv6/ +| | | `-- (IPv6 source files) +| | |-- netdev/ +| | | `-- (Socket device interface source files) +| | |-- pkt/ +| | | `-- (Packet socket source files) +| | |-- route/ +| | | `-- (Routing table source files) +| | |-- socket/ +| | | `-- (BSD socket source files) +| | |-- tcp/ +| | | `-- (TCP source files) +| | |-- udp/ +| | | `-- (UDP source files) +| | `-- utils/ +| | `-- (Miscellaneous, utility source files) | |-- sched/ | | |-- Makefile +| | |-- Kconfig | | `-- (sched source files) | |-- syscall/ | | |-- Makefile +| | |-- Kconfig | | `-- (syscall source files) | `-- tools/ | `-- (miscellaneous scripts and programs) `- apps |-- netutils/ | |-- Makefile + | |-- Kconfig | |-- (network feature sub-directories)/ | | `-- (network feature source files) | `-- (netutils common files) |-- nshlib/ | |-- Makefile + | |-- Kconfig | `-- NuttShell (NSH) files |-- (Board-specific applications)/ | |-- Makefile + | |-- Kconfig | |-- (Board-specific application sub-directories)/ | | `-- (Board-specific application source files) | `-- (Board-specific common files) `-- examples/ `-- (example)/ |-- Makefile + |-- Kconfig `-- (example source files)
    @@ -1223,10 +1262,42 @@ include/ |-- netinet/ | `-- (Standard header files) |-- nuttx/ +| |-analog/ +| | `-- (Analog driver header files) +| |-audio/ +| | `-- (Audio driver header files) +| |-binfmt/ +| | `-- (Binary format header files) +| |-fs/ +| | `-- (File System header files) +| |-input/ +| | `-- (Input device driver header files) +| |-lcd/ +| | `-- (LCD driver header files) +| |-mtd/ +| | `-- (Memory technology device header files) +| |-serial/ +| | `-- (Serial driver header files) | |-net/ -| | `-- uip/ -| | `-- (uIP specific header files) -| `-- (NuttX specific header files) +| | `-- (Networking header files) +| |-nx/ +| | `-- (NX graphics header files) +| |-power/ +| | `-- (Power management header files) +| |-sensors/ +| | `-- (Sensor device driver header files) +| |-sercomm/ +| | `-- (SERCOMM driver header files) +| |-serial/ +| | `-- (Serial driver header files) +| |-spi/ +| | `-- (SPI driver header files) +| |-syslog/ +| | `-- (SYSLOG header files) +| |-usb/ +| | `-- (USB driver header files) +| `-wireless/ +| `-- (Wireless device driver header files) `- sys/ `-- (More standard header files) @@ -1292,8 +1363,7 @@ libc/

    2.12 nuttx/net

    - This directory contains the implementation of the NuttX internal socket APIs. - The subdirectory, uip contains the uIP port. + This directory contains the implementation of the NuttX networking layer including internal socket APIs.

    2.13 nuttx/sched

    From 79511f427f856b625222b7f72cf20434af4cd438 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 7 Jul 2014 15:54:37 -0600 Subject: [PATCH 1274/1518] Fix some cloned errors in SAM GPIO interrupt setup --- Documentation/NfsHowto.html | 2 +- Documentation/NuttShell.html | 2 +- Documentation/NuttXCCodingStandard.html | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Documentation/NfsHowto.html b/Documentation/NfsHowto.html index ed5e6793b8..a6e7d3fb2e 100644 --- a/Documentation/NfsHowto.html +++ b/Documentation/NfsHowto.html @@ -175,7 +175,7 @@ char *mountpoint; ret = mount(NULL, mountpoint, string "nfs", 0, (FAR void *)&data);

    - NOTE that: (1) the block driver paramter is NULL. + NOTE that: (1) the block driver parameter is NULL. The mount() is smart enough to know that no block driver is needed with the NFS file system. (2) The NFS file system is identified with the simple string "nfs" (3) A reference to struct nfs_args is passed as an NFS-specific argument. diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index 071214af8f..b73fd77c38 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -1988,7 +1988,7 @@ mount -t <fstype> <block-device> <dir-path>

    Synopsis. The mount command performs one of two different operations. - If no paramters are provided on the command line after the mount command, then the mount command will enumerate all of the current mountpoints on the console. + If no parameters are provided on the command line after the mount command, then the mount command will enumerate all of the current mountpoints on the console.

    If the mount parameters are provied on the command after the mount command, then the mount command will mount a file system in the NuttX pseudo-file system. diff --git a/Documentation/NuttXCCodingStandard.html b/Documentation/NuttXCCodingStandard.html index 4cb4a9517d..56eea5aafa 100755 --- a/Documentation/NuttXCCodingStandard.html +++ b/Documentation/NuttXCCodingStandard.html @@ -1665,7 +1665,7 @@ ptr = (FAR struct somestruct_s *)value;

  • * Input Parameters: followed by a description of the of each input parameter beginning on the second line. Each input parameter begins on a separator line indented by two additional spaces. - The description needs to include (1) the name of the input paramters, and (2) a short description of the input parameter. + The description needs to include (1) the name of the input parameters, and (2) a short description of the input parameter.
  • * Returned Value: followed by a description of the of returned value(s) beginning on the second line. From e02f1ba37a49b8c36cf693dc79625c7649cae8c5 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 8 Jul 2014 13:12:36 -0600 Subject: [PATCH 1275/1518] Fix some recurring typos: postion->position, *atino->*ation --- Documentation/NuttXCCodingStandard.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttXCCodingStandard.html b/Documentation/NuttXCCodingStandard.html index 56eea5aafa..7b17b054b9 100755 --- a/Documentation/NuttXCCodingStandard.html +++ b/Documentation/NuttXCCodingStandard.html @@ -1392,7 +1392,7 @@ struct xyz_info_s

    2.7 Enumerations

    Enumeration Naming. - Naming of enumeratinos follow the same naming rules as for structure and union naming. + Naming of enumerations follow the same naming rules as for structure and union naming. The only difference is that the suffix _e is used to identify an enumeration.

    From 2ed3bf98c7a5b56c2def60110b62e365231bd72f Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 11 Jul 2014 07:35:09 -0600 Subject: [PATCH 1276/1518] All PNG files in repository are corrupted... why? --- Documentation/NuttX.png | Bin 4960 -> 4961 bytes Documentation/NuttX2-a.png | Bin 1529 -> 1533 bytes Documentation/NuttX2-b.png | Bin 1558 -> 1559 bytes Documentation/NuttX2.png | Bin 3440 -> 3441 bytes Documentation/NuttX320.png | Bin 4150 -> 4151 bytes Documentation/pm.png | Bin 32502 -> 32504 bytes 6 files changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 Documentation/NuttX.png mode change 100644 => 100755 Documentation/NuttX2-a.png mode change 100644 => 100755 Documentation/NuttX2-b.png mode change 100644 => 100755 Documentation/NuttX2.png mode change 100644 => 100755 Documentation/NuttX320.png mode change 100644 => 100755 Documentation/pm.png diff --git a/Documentation/NuttX.png b/Documentation/NuttX.png old mode 100644 new mode 100755 index 93c8aa5860f0044cdbef593ed4feb29f2b722010..360e657dd20f3c2326d8a06b1f96e974f9a5099d GIT binary patch delta 14 VcmaE$_E3$rGr-TCcOy%TFaRl)1hN1C delta 13 UcmaE;_CSrLGr-S%BWsK>042`^r2qf` diff --git a/Documentation/NuttX2-a.png b/Documentation/NuttX2-a.png old mode 100644 new mode 100755 index f0b1abfd2af17c4d8e265306e1e4244aff62199b..20c2fd6e71ed034649f5c21e0facf4b724341879 GIT binary patch delta 33 ncmey#{g<1yGr-TCcO%PpMn;9nzZnyOWDJuMqr&DorfOyY!zBt) delta 26 icmey%{ga!eGr-S%BkOm@$$uFWC&x1>ZEj+!W(EL}6bb48 diff --git a/Documentation/NuttX2-b.png b/Documentation/NuttX2-b.png old mode 100644 new mode 100755 index 8dc51072f8b2f72424b7dc11e87a974acc14ebc1..5bdab5c29de3f300e5178a7245cc4f13d5162766 GIT binary patch delta 14 VcmbQnGo6REGr-TCcO#1s8vq{w1Csy% delta 13 UcmbQvGmVF(Gr-S%BdZV_02~4Xh5!Hn diff --git a/Documentation/NuttX2.png b/Documentation/NuttX2.png old mode 100644 new mode 100755 index 4ce69ec5f49d1eaa245f8d4bf207e564337a3361..422d1191fd21bbeafc908d5742a919a39e3d0211 GIT binary patch delta 14 Vcmew$^-+qoGr-TCcOy# Date: Sun, 13 Jul 2014 15:54:13 -0600 Subject: [PATCH 1277/1518] Documentation: Update all images. I think they were all damaged by a wild in place sed in some recent change --- Documentation/NXOrganization.gif | Bin 34879 -> 34880 bytes Documentation/NuttX.png | Bin Documentation/NuttX2-a.png | Bin Documentation/NuttX2-b.png | Bin Documentation/NuttX2.png | Bin Documentation/NuttX320.png | Bin Documentation/NuttXCCodingStandard.html | 0 Documentation/NuttXScreenShot.jpg | Bin 5870 -> 5872 bytes Documentation/acronyms.txt | 0 Documentation/pm.png | Bin 10 files changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 Documentation/NuttX.png mode change 100755 => 100644 Documentation/NuttX2-a.png mode change 100755 => 100644 Documentation/NuttX2-b.png mode change 100755 => 100644 Documentation/NuttX2.png mode change 100755 => 100644 Documentation/NuttX320.png mode change 100755 => 100644 Documentation/NuttXCCodingStandard.html mode change 100755 => 100644 Documentation/acronyms.txt mode change 100755 => 100644 Documentation/pm.png diff --git a/Documentation/NXOrganization.gif b/Documentation/NXOrganization.gif index 1039d30bd896a31065789a693ae8906b513c2cb1..6bae8e5529bbc177caf108e035f4e5c61ca4d2ec 100644 GIT binary patch delta 16 Ycmdl#f$6{mrVZz77!@|3uPNXL06_`|IRF3v delta 14 WcmX>wfocB)rVZz7HeaYI;06FU3$*V-q0Le133IJ1l2YCPh delta 15 XcmeyM`%ZVmD$&WSMbAvG5UT(HKhFnX diff --git a/Documentation/acronyms.txt b/Documentation/acronyms.txt old mode 100755 new mode 100644 diff --git a/Documentation/pm.png b/Documentation/pm.png old mode 100755 new mode 100644 From 5bad17c0323b4c69a4c1a79726e475d2480d7551 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 16 Jul 2014 16:31:31 -0600 Subject: [PATCH 1278/1518] Rename CONFIG_NX_MOUSE to CONFIG_NX_INPUT, then add CONFIG_NX_XYINPUT_MOUSE and CONFIG_XYINPUT_TOUCHSCREEN --- Documentation/NXGraphicsSubsystem.html | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Documentation/NXGraphicsSubsystem.html b/Documentation/NXGraphicsSubsystem.html index 743e0368aa..af7392f5de 100644 --- a/Documentation/NXGraphicsSubsystem.html +++ b/Documentation/NXGraphicsSubsystem.html @@ -923,7 +923,7 @@ struct nx_callback_s FAR const struct nxgl_point_s *pos, FAR const struct nxgl_rect_s *bounds, FAR void *arg); -#ifdef CONFIG_NX_MOUSE +#ifdef CONFIG_NX_XYINPUT void (*mousein)(NXWINDOW hwnd, FAR const struct nxgl_point_s *pos, uint8_t buttons, FAR void *arg); #endif @@ -1001,7 +1001,7 @@ void position(NXWINDOW hwnd, FAR const struct nxgl_size_s *size,

    2.3.3.3 mousein()

    Callback Function Prototype:

      -#ifdef CONFIG_NX_MOUSE
      +#ifdef CONFIG_NX_XYINPUT
       void mousein(NXWINDOW hwnd, FAR const struct nxgl_point_s *pos,
                    uint8_t buttons, FAR void *arg);
       #endif
      @@ -1987,7 +1987,7 @@ int nx_kbdin(NXHANDLE handle, uint8_t nch, FAR const uint8_t *ch);
       #include <nuttx/nx/nxglib.h>
       #include <nuttx/nx/nx.h>
       
      -#ifdef CONFIG_NX_MOUSE
      +#ifdef CONFIG_NX_XYINPUT
       int nx_mousein(NXHANDLE handle, nxgl_coord_t x, nxgl_coord_t y, uint8_t buttons);
       #endif
       
    @@ -3259,8 +3259,8 @@ int nxf_convert_32bpp(FAR uint32_t *dest, uint16_t height,
      -
      CONFIG_NX_MOUSE: -
      Build in support for mouse input. +
      CONFIG_NX_XYINPUT: +
      Build in support for an X/Y input such as a mouse or a touscreen.
      CONFIG_NX_KBD:
      Build in support of keypad/keyboard input.
      CONFIG_NX_WRITEONLY: From ed3f7857e2eb59cbdaf8629d780d5b980ca7c2a4 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 7 Aug 2014 12:35:24 -0600 Subject: [PATCH 1279/1518] Remove CONFIG_DISABLE_CLOCK --- Documentation/NuttShell.html | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index b73fd77c38..886ae053c9 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -8,7 +8,7 @@

      NuttShell (NSH)

      -

      Last Updated: March 6, 2014

      +

      Last Updated: August 7, 2014

      @@ -2564,7 +2564,7 @@ nsh> date - !CONFIG_DISABLE_CLOCK && CONFIG_RTC + CONFIG_RTC CONFIG_NSH_DISABLE_DATE @@ -2700,8 +2700,7 @@ nsh> ping CONFIG_NET && CONFIG_NET_ICMP && - CONFIG_NET_ICMP_PING && !CONFIG_DISABLE_CLOCK && - !CONFIG_DISABLE_SIGNALS + CONFIG_NET_ICMP_PING && !CONFIG_DISABLE_SIGNALS CONFIG_NSH_DISABLE_PING From baf2c2098e5cd7f2b4f982b1228bd8f03d2486c4 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 7 Aug 2014 13:42:47 -0600 Subject: [PATCH 1280/1518] Change CONFIG_MSEC_PER_TICK to CONFIG_USEC_PER_TICK. This gives more options for system timers in general, but more importantly, let's us realize higher resolution for the case of CONFIG_SCHED_TICKLESS=y -- of course, at the risk of some new interger overvflow problems --- Documentation/NuttxPortingGuide.html | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 0f54a3e871..8eb13e2970 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -2220,23 +2220,23 @@ The system can be re-made subsequently by just typing make.

      System Timer In most implementations, system time is provided by a timer interrupt. - That timer interrupt runs at rate determined by CONFIG_MSEC_PER_TICKS (default 10 or 100Hz). - The timer generates an interrupt each CONFIG_MSEC_PER_TICKS milliseconds and increments a counter called g_system_timer. - g_system_timer then provides a time-base for calculating up-time and elapsed time intervals in units of CONFIG_MSEC_PER_TICKS. + That timer interrupt runs at rate determined by CONFIG_USEC_PER_TICKS (default 10000 microseconds or 100Hz. If CONFIG_SCHED_TICKLESS is selected, the default is 100 microseconds). + The timer generates an interrupt each CONFIG_USEC_PER_TICKS microseconds and increments a counter called g_system_timer. + g_system_timer then provides a time-base for calculating up-time and elapsed time intervals in units of CONFIG_USEC_PER_TICKS. The range of g_system_timer is, by default, 32-bits. However, if the MCU supports type long long and CONFIG_SYSTEM_TIME16 is selected, a 64-bit system timer will be supported instead.

      System Timer Accuracy - On many system, the exact timer interval specified by CONFIG_MSEC_PER_TICKS cannot be achieved due to limitations in frequencies or in dividers. - As a result, the time interval specified by CONFIG_MSEC_PER_TICKS may only be approximate and there may be small errors in the apparent up-time time. + On many system, the exact timer interval specified by CONFIG_USEC_PER_TICKS cannot be achieved due to limitations in frequencies or in dividers. + As a result, the time interval specified by CONFIG_USEC_PER_TICKS may only be approximate and there may be small errors in the apparent up-time time. These small errors, however, will accumulate over time and after a long period of time may have an unacceptably large error in the apparent up-time of the MCU.

      - If the timer tick period generated by the hardware is not exactly CONFIG_MSEC_PER_TICKS and if there you require accurate up-time for the MCU, then there are measures that you can take: + If the timer tick period generated by the hardware is not exactly CONFIG_USEC_PER_TICKS and if there you require accurate up-time for the MCU, then there are measures that you can take:

      • - Perhaps you can adjust CONFIG_MSEC_PER_TICKS to a different value so that an exactly CONFIG_MSEC_PER_TICKS can be accomplished. + Perhaps you can adjust CONFIG_USEC_PER_TICKS to a different value so that an exactly CONFIG_USEC_PER_TICKS can be realized.
      • Or you can use a technique known as Delta-Sigma Modulation. (Suggested by Uros Platise). Consider the example below. @@ -2247,7 +2247,7 @@ The system can be re-made subsequently by just typing make. Consider this case: The system timer is a count-up timer driven at 32.768KHz. There are dividers that can be used, but a divider of one yields the highest accuracy. This counter counts up until the count equals a match value, then a timer interrupt is generated. - The desire frequency is 100Hz (CONFIG_MSEC_PER_TICKS is 10). + The desire frequency is 100Hz (CONFIG_USEC_PER_TICKS is 10000).

        This exact frequency of 100Hz cannot be obtained in this case. From 8743a1772e603862b771b013ac1b3859b1e25ba5 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 8 Aug 2014 09:17:25 -0600 Subject: [PATCH 1281/1518] Update porting guide --- Documentation/NuttxPortingGuide.html | 340 +++++++++++++++++++++++---- 1 file changed, 295 insertions(+), 45 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 8eb13e2970..e603400e00 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

        NuttX RTOS Porting Guide

        -

        Last Updated: May 8, 2014

        +

        Last Updated: August 8, 2014

        @@ -95,22 +95,39 @@ 4.2.18 up_enable_irq()
        4.2.19 up_prioritize_irq()
        4.2.20 up_putc()
        - 4.2.21 System Time and Clock
        - 4.2.22 Address Environments
      - 4.3 APIs Exported by NuttX to Architecture-Specific Logic + 4.3 System Time and Clock - 4.4 On-Demand Paging
      - 4.5 LED Support + 4.4 Address Environments + 4.5 APIs Exported by NuttX to Architecture-Specific Logic + + 4.6 On-Demand Paging
      + 4.7 LED Support +
    5.0 NuttX File System
    @@ -779,7 +796,7 @@
  • - setenv.sh: This is a script that you can include that will be installed at + setenv.sh: This is a script that can be included that will be installed at the top level of the directory structure and can be sourced to set any necessary environment variables. You will most likely have to customize the default setenv.sh script in order @@ -2214,9 +2231,9 @@ The system can be re-made subsequently by just typing make. Output one character on the console

    -

    4.2.21 System Time and Clock

    +

    4.3 System Time and Clock

    -

    4.2.21.1 Basic System Timer

    +

    4.3.1 Basic System Timer

    System Timer In most implementations, system time is provided by a timer interrupt. @@ -2299,7 +2316,7 @@ else In this way, the timer interval is controlled from interrupt-to-interrupt to produce an average frequency of exactly 100Hz.

    -

    4.2.21.2 Hardware

    +

    4.3.2 Hardware

    To enable hardware module use the following configuration options:

    @@ -2354,7 +2371,7 @@ else

  • -

    4.2.21.3 System Tick and Time

    +

    4.3.3 System Tick and Time

    The system tick is represented by::

    @@ -2377,8 +2394,218 @@ else To retrieve that variable use:

    -

    4.2.22 Address Environments

    +

    4.3.4 Tickless OS

    +

    4.3.4.1 Tickless Overview

    +

    + Default System Timer. + By default, a NuttX configuration uses a periodic timer interrupt that drives all system timing. The timer is provided by architecture-specific code that calls into NuttX at a rate controlled by CONFIG_USEC_PER_TICK. The default value of CONFIG_USEC_PER_TICK is 10000 microseconds which corresponds to a timer interrupt rate of 100 Hz. +

    +

    + On each timer interrupt, NuttX does these things: +

    +

      +
    • Increments a counter. This counter is the system time and has a resolution of CONFIG_USEC_PER_TICK microseconds. +
    • Checks if it is time to perform time-slice operations on tasks that have select round-robin scheduling. +
    • Checks for expiration of timed events. +
    +

    + What is wrong with this default system timer? Nothing really. It is reliable and uses only a small fraction of the CPU band width. But we can do better. Some limitations of default system timer are, in increasing order of importance: +

    +
      +
    • + Overhead: + Although the CPU usage of the system timer interrupt at 100Hz is really very low, it is still mostly wasted processing time. One most timer interrupts, there is really nothing that needs be done other than incrementing the counter. +
    • +
    • + Resolution: + Resolution of all system timing is also determined by CONFIG_USEC_PER_TICK. So nothing that be time with resolution finer than 10 milliseconds be default. To increase this resolution, CONFIG_USEC_PER_TICK an be reduced. However, then the system timer interrupts use more of the CPU bandwidth processing useless interrupts. +
    • +
    • + Power Usage: + But the biggest issue is power usage. When the system is IDLE, it enters a light, low-power mode (for ARMs, this mode is entered with the wfi or wfe instructions for example). But each interrupt awakens the system from this low power mode. Therefore, higher rates of interrupts cause greater power consumption. +
    • +
    +

    + Tickless OS. + The so-called Tickless OS provides one solution to issue. The basic concept here is that the periodic, timer interrupt is eliminated and replaced with a one-shot, interval timer. It becomes event driven instead of polled: The default system timer is a polled design. On each interrupt, the NuttX logic checks if it needs to do anything and, if so, it does it. +

    +

    + Using an interval timer, one can anticipate when the next interesting OS event will occur, program the interval time and wait for it to fire. When the interval time fires, then the scheduled activity is performed. +

    + +

    4.3.4.2 Tickless Platform Support

    + +In order to use the Tickless OS, one must provide special support from the platform-specific code. Just as with the default system timer, the platform-specific code must provide the timer resources to support the OS behavior. + +Currently these timer resources are only provided by the NuttX simulation. An example implementaion is for the simulation is at nuttx/arch/sim/src/up_tickless.c. These paragraphs will explain how to provide the Tickless OS support to any platform. + +

    4.3.4.3 Tickless Configuration Options

    +
      +
    • +

      + CONFIG_ARCH_HAVE_TICKLESS: + If the platform provides support for the Tickless OS, then this setting should be selected in the Kconfig file for the board. Here is what the selection looks in the arch/Kconfig file for the simulated platform: +

      +
        +config ARCH_SIM
        +   bool "Simulation"
        +   select ARCH_HAVE_TICKLESS
        +   ---help---
        +       Linux/Cywgin user-mode simulation.
        +
      +

      + When the simulation platform is selected, ARCH_HAVE_TICKLESS is automatically selected, informing the configuration system that Tickless OS options can be selected. +

      +
    • +
    • +

      + CONFIG_SCHED_TICKLESS: + If CONFIG_ARCH_HAVE_TICKLESS is selected, then it will enable the Tickless OS features in NuttX. +

      +
    • +
    • +

      + CONFIG_USEC_PER_TICK: + This option is not unique to Tickless OS operation, but changes its relevance when the Tickless OS is selected. + In the default configuration where system time is provided by a periodic timer interrupt, the default system timer is configure the timer for 100Hz or CONFIG_USEC_PER_TICK=10000. If CONFIG_SCHED_TICKLESS is selected, then there are no system timer interrupt. In this case, CONFIG_USEC_PER_TICK does not control any timer rates. Rather, it only determines the resolution of time reported by clock_systimer() and the resolution of times that can be set for certain delays including watchdog timers and delayed work. +

      +

      + In this case there is still a trade-off: It is better to have the CONFIG_USEC_PER_TICK as low as possible for higher timing resolution. However, the the time is currently held in unsigned int. On some systems, this may be 16-bits in width but on most contemporary systems it will be 32-bits. In either case, smaller values of CONFIG_USEC_PER_TICK will reduce the range of values that delays that can be represented. So the trade-off is between range and resolution (you could also modify the code to use a 64-bit value if you really want both). +

      +

      + The default, 100 microseconds, will provide for a range of delays up to 120 hours. +

      +

      + This value should never be less than the underlying resolution of the timer. Errors may ensue. +

      +
    • +
    + +

    4.3.4.4 Tickless Imported Intefaces

    +

    + The interfaces that must be provided by the platform specified code are defined in include/nuttx/arch.h, listed below, and summarized in the following paragraphs: +

    + +

    + In addition, the RTOS will export the following interfaces for use by the platform-specific interval timer implementation: +

    + + +
    4.3.4.4.1 up_timer_initialize()
    +

    Prototype:

    +
      +#include <nuttx/arch.h>
      +void up_timer_initialize(void);
      +
    +

    Description:

    +
      + Initializes all platform-specific timer facilities. This function is called early in the initialization sequence by up_intialize(). On return, the current up-time should be available from up_timer_gettime() and the interval timer is ready for use (but not actively timing). +
    +

    Input Parameters:

    +
      + None +
    +

    Returned Value:

    +
      + Zero (OK) on success; a negated errno value on failure. +
    +

    Assumptions:

    +
      + Called early in the initialization sequence before any special concurrency protections are required. +
    + +
    4.3.4.4.2 up_timer_gettime()
    +

    Prototype:

    +

      +#include <nuttx/arch.h>
      +int up_timer_gettime(FAR struct timespec *ts);
      +
    +

    Description:

    + Return the elapsed time since power-up (or, more correctly, since up_timer_initialize() was called). This function is functionally equivalent to clock_gettime() for the clock ID CLOCK_MONOTONIC. This function provides the basis for reporting the current time and also is used to eliminate error build-up from small errors in interval time calculations. +
      +
    +

    Input Parameters:

    +
      +
    • ts: Provides the location in which to return the up-time.
    • +
    +

    Returned Value:

    +
      + Zero (OK) on success; a negated errno value on failure. +
    +

    Assumptions:

    +
      + Called from the the normal tasking context. The implementation must provide whatever mutual exclusion is necessary for correct operation. This can include disabling interrupts in order to assure atomic register operations. +
    + +
    4.3.4.4.3 up_timer_cancel()
    +

    Prototype:

    +

      +#include <nuttx/arch.h>
      +int up_timer_cancel(FAR struct timespec *ts);
      +
    +

    Description:

    + Cancel the interval timer and return the time remaining on the timer. These two steps need to be as nearly atomic as possible. up_timer_expiration() will not be called unless the timer is restarted with up_timer_start(). If, as a race condition, the timer has already expired when this function is called, then that pending interrupt must be cleared so that up_timer_expiration() is not called spuriously and the remaining time of zero should be returned. +
      +
    +

    Input Parameters:

    +
      +
    • ts: Location to return the remaining time. Zero should be returned if the timer is not active.
    • +
    +

    Returned Value:

    +
      + Zero (OK) on success; a negated errno value on failure. +
    +

    Assumptions:

    +
      + May be called from interrupt level handling or from the normal tasking level. iterrupts may need to be disabled internally to assure non-reentrancy. +
    + +
    4.3.4.4.4 up_timer_start()
    +

    Prototype:

    +

      +#include <nuttx/arch.h>
      +int up_timer_start(FAR const struct timespec *ts);
      +
    +

    Description:

    + Start the interval timer. up_timer_expiration() will be called at the completion of the timeout (unless up_timer_cancel() is called to stop the timing). +
      +
    +

    Input Parameters:

    +
      +
    • ts: Provides the time interval until up_timer_expiration() is called.
    • +
    +

    Returned Value:

    +
      + Zero (OK) on success; a negated errno value on failure. +
    +

    Assumptions:

    +
      + May be called from interrupt level handling or from the normal tasking level. Interrupts may need to be disabled internally to assure non-reentrancy. +
    + +

    4.4 Address Environments

    CPUs that support memory management units (MMUs) may provide address environments within which tasks and their child threads execute. The configuration indicates the CPUs ability to support address environments by setting the configuration variable CONFIG_ADDRENV=y. @@ -2401,27 +2628,27 @@ else

    @@ -2434,12 +2661,12 @@ else

    @@ -2447,7 +2674,7 @@ else -

    4.2.22.1 up_addrenv_create()

    +

    4.4.1 up_addrenv_create()

    Prototype:

      int up_addrenv_create(size_t envsize, FAR task_addrenv_t *addrenv); @@ -2467,7 +2694,7 @@ else Zero (OK) on success; a negated errno value on failure.
    -

    4.2.22.2 up_addrenv_vaddr()

    +

    4.4.2 up_addrenv_vaddr()

    Prototype:

      int up_addrenv_vaddr(FAR task_addrenv_t addrenv, FAR void **vaddr); @@ -2487,7 +2714,7 @@ else Zero (OK) on success; a negated errno value on failure.
    -

    4.2.22.3 up_addrenv_select()

    +

    4.4.3 up_addrenv_select()

    Prototype:

      int up_addrenv_select(task_addrenv_t addrenv, hw_addrenv_t *oldenv); @@ -2511,7 +2738,7 @@ else Zero (OK) on success; a negated errno value on failure.
    -

    4.2.22.4 up_addrenv_restore()

    +

    4.4.4 up_addrenv_restore()

    Prototype:

      int up_addrenv_restore(hw_addrenv_t oldenv); @@ -2530,7 +2757,7 @@ else Zero (OK) on success; a negated errno value on failure.
    -

    4.2.22.5 up_addrenv_destroy()

    +

    4.4.5 up_addrenv_destroy()

    Prototype:

      int up_addrenv_destroy(task_addrenv_t addrenv); @@ -2548,7 +2775,7 @@ else Zero (OK) on success; a negated errno value on failure.
    -

    4.2.22.6 up_addrenv_assign()

    +

    4.4.6 up_addrenv_assign()

    Prototype:

      int up_addrenv_assign(task_addrenv_t addrenv, FAR struct tcb_s *tcb); @@ -2567,7 +2794,7 @@ else Zero (OK) on success; a negated errno value on failure.
    -

    4.2.22.7 up_addrenv_share()

    +

    4.4.7 up_addrenv_share()

    Prototype:

      int up_addrenv_share(FAR const struct tcb_s *ptcb, FAR struct tcb_s *ctcb); @@ -2587,7 +2814,7 @@ else Zero (OK) on success; a negated errno value on failure.
    -

    4.2.22.8 up_addrenv_release()

    +

    4.4.8 up_addrenv_release()

    Prototype:

      int up_addrenv_release(FAR struct tcb_s *tcb); @@ -2607,23 +2834,23 @@ else Zero (OK) on success; a negated errno value on failure.
    -

    4.3 APIs Exported by NuttX to Architecture-Specific Logic

    +

    4.5 APIs Exported by NuttX to Architecture-Specific Logic

    These are standard interfaces that are exported by the OS for use by the architecture specific logic.

    -

    4.3.1 os_start()

    +

    4.5.1 os_start()

    To be provided

    -

    4.3.2 OS List Management APIs

    +

    4.5.2 OS List Management APIs

    To be provided

    -

    4.3.3 sched_process_timer()

    +

    4.5.3 sched_process_timer()

    Prototype: void sched_process_timer(void);

    Description. @@ -2634,7 +2861,30 @@ else MSEC_PER_TICK.

    -

    4.3.4 irq_dispatch()

    +

    4.5.4 sched_timer_expiration()

    +

    Prototype:

    +

      +#include <nuttx/arch.h>
      +void sched_timer_expiration(void);
      +
    +

    Description:

    + Description: if CONFIG_SCHED_TICKLESS is defined, then this function is provided by the RTOS base code and called from platform-specific code when the interval timer used to implemented the tick-less OS expires. +
      +
    +

    Input Parameters:

    +
      + None +
    +

    Returned Value:

    +
      + None +
    +

    Assumptions:

    +
      + Base code implementation assumes that this function is called from interrupt handling logic with interrupts disabled. +
    + +

    4.5.5 irq_dispatch()

    Prototype: void irq_dispatch(int irq, FAR void *context);

    Description. @@ -2643,7 +2893,7 @@ else the appropriate, registered handling logic.

    -

    4.4 On-Demand Paging

    +

    4.6 On-Demand Paging

    The NuttX On-Demand Paging feature permits embedded MCUs with some limited RAM space to execute large programs from some non-random access media. @@ -2653,7 +2903,7 @@ else Please see the NuttX Demand Paging design document for further information.

    -

    4.5 LED Support

    +

    4.7 LED Support

    A board architecture may or may not have LEDs. @@ -2663,7 +2913,7 @@ else However, the support provided by each architecture is sufficiently similar that it can be documented here.

    -

    4.5.1 Header Files

    +

    4.7.1 Header Files

    LED-related definitions are provided in two header files: @@ -2687,7 +2937,7 @@ else

    -

    4.5.2 LED Definitions

    +

    4.7.2 LED Definitions

    The implementation of LED support is very specific to a board architecture. @@ -2751,7 +3001,7 @@ else -

    4.5.3 Common LED interfaces

    +

    4.7.3 Common LED interfaces

    The <arch-name>/src/common/up_internal.h probably has definitions From cd9195c771c57d4a12072281886967b67b103006 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 8 Aug 2014 11:29:17 -0600 Subject: [PATCH 1282/1518] Minor documentation update --- Documentation/NuttxPortingGuide.html | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index e603400e00..285bbac213 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -2505,7 +2505,10 @@ config ARCH_SIM

    - In addition, the RTOS will export the following interfaces for use by the platform-specific interval timer implementation: + Note that a platform-specific implementation would probably require two hardware timers: (1) A interval timer to satisfy the requirements of up_timer_start() and up_timer_cancel(), and a (2) a counter to handle the requirement of up_timer_gettime(). Ideally, both timers would run at the rate determined by CONFIG_USEC_PER_TICK (and certainly never slower than that rate). +

    +

    + In addition to these imported interfaces, the RTOS will export the following interfaces for use by the platform-specific interval timer implementation:

    • From 2963643ea95780bd3ae7eceacd6cfd1cb3a3db0a Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 8 Aug 2014 15:08:07 -0600 Subject: [PATCH 1283/1518] Move page fill sources from sched/ to sched/paging --- Documentation/NuttXDemandPaging.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttXDemandPaging.html b/Documentation/NuttXDemandPaging.html index 2e1ebaf3e1..b5fa2f9f2a 100644 --- a/Documentation/NuttXDemandPaging.html +++ b/Documentation/NuttXDemandPaging.html @@ -213,7 +213,7 @@

      Declarations for g_waitingforfill, g_pgworker, and other - internal, private definitions will be provided in sched/pg_internal.h. + internal, private definitions will be provided in sched/paging/paging.h. All public definitions that should be used by the architecture-specific code will be available in include/nuttx/page.h. Most architecture-specific functions are declared in include/nuttx/arch.h, From 9f76ac7f4a21864f646ad4fca3b6e651ad1ad342 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 9 Aug 2014 06:41:38 -0600 Subject: [PATCH 1284/1518] Fix errors in documentation and comments related to the Tickless OS. From Vijay Kumar --- Documentation/NuttxPortingGuide.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 285bbac213..f1ac98246d 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -2569,7 +2569,7 @@ int up_timer_gettime(FAR struct timespec *ts); int up_timer_cancel(FAR struct timespec *ts);

    Description:

    - Cancel the interval timer and return the time remaining on the timer. These two steps need to be as nearly atomic as possible. up_timer_expiration() will not be called unless the timer is restarted with up_timer_start(). If, as a race condition, the timer has already expired when this function is called, then that pending interrupt must be cleared so that up_timer_expiration() is not called spuriously and the remaining time of zero should be returned. + Cancel the interval timer and return the time remaining on the timer. These two steps need to be as nearly atomic as possible. sched_timer_expiration() will not be called unless the timer is restarted with up_timer_start(). If, as a race condition, the timer has already expired when this function is called, then that pending interrupt must be cleared so that sched_timer_expiration() is not called spuriously and the remaining time of zero should be returned.

    Input Parameters:

    @@ -2592,12 +2592,12 @@ int up_timer_cancel(FAR struct timespec *ts); int up_timer_start(FAR const struct timespec *ts);

    Description:

    - Start the interval timer. up_timer_expiration() will be called at the completion of the timeout (unless up_timer_cancel() is called to stop the timing). + Start the interval timer. sched_timer_expiration() will be called at the completion of the timeout (unless up_timer_cancel() is called to stop the timing).

    Input Parameters:

      -
    • ts: Provides the time interval until up_timer_expiration() is called.
    • +
    • ts: Provides the time interval until sched_timer_expiration() is called.

    Returned Value:

      From 974d0dc92fff764b56e558ae412e5c4ee072de41 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 10 Aug 2014 16:09:45 -0600 Subject: [PATCH 1285/1518] Cosmetic --- Documentation/NuttxPortingGuide.html | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index f1ac98246d..386f1d5668 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

      NuttX RTOS Porting Guide

      -

      Last Updated: August 8, 2014

      +

      Last Updated: August 10, 2014

      @@ -2438,7 +2438,7 @@ else In order to use the Tickless OS, one must provide special support from the platform-specific code. Just as with the default system timer, the platform-specific code must provide the timer resources to support the OS behavior. -Currently these timer resources are only provided by the NuttX simulation. An example implementaion is for the simulation is at nuttx/arch/sim/src/up_tickless.c. These paragraphs will explain how to provide the Tickless OS support to any platform. +Currently these timer resources are only provided on a few platforms. An example implementation is for the simulation is at nuttx/arch/sim/src/up_tickless.c. There is another example for the Atmel SAMA5 at nuttx/arch/arm/src/sama5/sam_tickless.c. These paragraphs will explain how to provide the Tickless OS support to any platform.

      4.3.4.3 Tickless Configuration Options

        @@ -2507,6 +2507,10 @@ config ARCH_SIM

        Note that a platform-specific implementation would probably require two hardware timers: (1) A interval timer to satisfy the requirements of up_timer_start() and up_timer_cancel(), and a (2) a counter to handle the requirement of up_timer_gettime(). Ideally, both timers would run at the rate determined by CONFIG_USEC_PER_TICK (and certainly never slower than that rate).

        +

        + Since timers are a limited resource, the use of two timers could be an issue on some systems. + The job could be done with a single timer if, for example, the single timer were kept in a free-running at all times. Some timer/counters (such as the Atmel SAMA5's timer), for example, have the capability to generate a compare interrupt when the timer matches a comparison value but also to continue counting without stopping. if your hardware supports such counters, one might be able to simply set the comparison count at the value of the free running timer PLUS the desired delay. Then you could have both with a single timer: An interval timer and a free-running counter with the same timer! +

        In addition to these imported interfaces, the RTOS will export the following interfaces for use by the platform-specific interval timer implementation:

        From e8ac4d18d6341167816eaa636e61014cf318923b Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 12 Aug 2014 07:28:41 -0600 Subject: [PATCH 1286/1518] Define interfaces to use an alarm instead of an interval timer with the tickless option --- Documentation/NuttxPortingGuide.html | 89 ++++++++++++++++++++++++++-- 1 file changed, 83 insertions(+), 6 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 386f1d5668..5ff6b55748 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

        NuttX RTOS Porting Guide

        -

        Last Updated: August 10, 2014

        +

        Last Updated: August 12, 2014

        @@ -2460,8 +2460,17 @@ config ARCH_SIM
      • - CONFIG_SCHED_TICKLESS: - If CONFIG_ARCH_HAVE_TICKLESS is selected, then it will enable the Tickless OS features in NuttX. + CONFIG_SCHED_TICKLESS: + If CONFIG_ARCH_HAVE_TICKLESS is selected, then it will enable the Tickless OS features in NuttX. +

        +
      • +
      • +

        + CONFIG_SCHED_TICKLESS_ALARM: + The tickless option can be supported either via a simple interval timer (plus elapsed time) or via an alarm. The interval timer allows programming events to occur after an interval. With the alarm, you can set a time in the future and get an event when that alarm goes off. This option selects the use of an alarm. +

        +

        + The advantage of an alarm is that it avoids some small timing errors; the advantage of the use of the interval timer is that the hardware requirement may be less.

      • @@ -2495,6 +2504,27 @@ config ARCH_SIM up_timer_gettime(): Returns the current time from the platform specific time source.
      • +
      +

      + The tickless option can be supported either via a simple interval timer (plus elapsed time) or via an alarm. The interval timer allows programming events to occur after an interval. With the alarm, you can set a time in* the future and get an event when that alarm goes off. +

      +

      + If CONFIG_SCHED_TICKLESS_ALARM is defined, then the platform code must provide the following: +

      +

      +

      + If CONFIG_SCHED_TICKLESS_ALARM is notdefined, then the platform code must provide the following verify similar functions: +

      +

      • up_timer_cancel(): Cancels the interval timer. @@ -2555,7 +2585,8 @@ int up_timer_gettime(FAR struct timespec *ts);

      Input Parameters:

        -
      • ts: Provides the location in which to return the up-time.
      • +
      • ts: Provides the location in which to return the up-time.. +

      Returned Value:

        @@ -2566,7 +2597,53 @@ int up_timer_gettime(FAR struct timespec *ts); Called from the the normal tasking context. The implementation must provide whatever mutual exclusion is necessary for correct operation. This can include disabling interrupts in order to assure atomic register operations.
      -
      4.3.4.4.3 up_timer_cancel()
      +
      4.3.4.4.3 up_alarm_cancel()
      +

      Prototype:

      +

        +#include <nuttx/arch.h>
        +int up_alarm_cancel(FAR struct timespec *ts);
        +
      +

      Description:

      + Cancel the alarm and return the time of cancellation of the alarm. These two steps need to be as nearly atomic as possible. sched_timer_expiration() will not be called unless the alarm is restarted with up_alarm_start(). If, as a race condition, the alarm has already expired when this function is called, then time returned is the current time. +
        +
      +

      Input Parameters:

      +
        +
      • ts: Location to return the expiration time. The current time should be returned if the timer is not active. ts may be NULL in which case the time is not returned
      • +
      +

      Returned Value:

      +
        + Zero (OK) on success; a negated errno value on failure. +
      +

      Assumptions:

      +
        + May be called from interrupt level handling or from the normal tasking level. iterrupts may need to be disabled internally to assure non-reentrancy. +
      + +
      4.3.4.4.5 up_alarm_start()
      +

      Prototype:

      +

        +#include <nuttx/arch.h>
        +int up_alarm_start(FAR const struct timespec *ts);
        +
      +

      Description:

      + Start the alarm. sched_timer_expiration() will be called when the alarm occurs (unless up_alaram_cancel is called to stop it). +
        +
      +

      Input Parameters:

      +
        +
      • ts: The time in the future at the alarm is expected to occur. When the alarm occurs the timer logic will call sched_timer_expiration().
      • +
      +

      Returned Value:

      +
        + Zero (OK) on success; a negated errno value on failure. +
      +

      Assumptions:

      +
        + May be called from interrupt level handling or from the normal tasking level. Interrupts may need to be disabled internally to assure non-reentrancy. +
      + +
      4.3.4.4.5 up_timer_cancel()

      Prototype:

         #include <nuttx/arch.h>
        @@ -2589,7 +2666,7 @@ int up_timer_cancel(FAR struct timespec *ts);
           May be called from interrupt level handling or from the normal tasking level. iterrupts may need to be disabled internally to assure non-reentrancy.
         
      -
      4.3.4.4.4 up_timer_start()
      +
      4.3.4.4.6 up_timer_start()

      Prototype:

      4.6 On-Demand Paging
      4.7 LED Support @@ -2539,14 +2540,17 @@ config ARCH_SIM

      Since timers are a limited resource, the use of two timers could be an issue on some systems. - The job could be done with a single timer if, for example, the single timer were kept in a free-running at all times. Some timer/counters (such as the Atmel SAMA5's timer), for example, have the capability to generate a compare interrupt when the timer matches a comparison value but also to continue counting without stopping. if your hardware supports such counters, one might be able to simply set the comparison count at the value of the free running timer PLUS the desired delay. Then you could have both with a single timer: An interval timer and a free-running counter with the same timer! + The job could be done with a single timer if, for example, the single timer were kept in a free-running at all times. Some timer/counters have the capability to generate a compare interrupt when the timer matches a comparison value but also to continue counting without stopping. If your hardware supports such counters, one might used the CONFIG_SCHED_TICKLESS_ALARM option and be able to simply set the comparison count at the value of the free running timer PLUS the desired delay. Then you could have both with a single timer: An alarm and a free-running counter with the same timer!

      In addition to these imported interfaces, the RTOS will export the following interfaces for use by the platform-specific interval timer implementation:

      @@ -2968,7 +2972,30 @@ void sched_timer_expiration(void); Base code implementation assumes that this function is called from interrupt handling logic with interrupts disabled.
    -

    4.5.5 irq_dispatch()

    +

    4.5.5 sched_alaram_expiration()

    +

    Prototype:

    +

      +#include <nuttx/arch.h>
      +void sched_timer_expiration(void);
      +
    +

    Description:

    + Description: if CONFIG_SCHED_TICKLESS is defined, then this function is provided by the RTOS base code and called from platform-specific code when the interval timer used to implemented the tick-less OS expires. +
      +
    +

    Input Parameters:

    +
      + None +
    +

    Returned Value:

    +
      + None +
    +

    Assumptions:

    +
      + Base code implementation assumes that this function is called from interrupt handling logic with interrupts disabled. +
    + +

    4.5.6 irq_dispatch()

    Prototype: void irq_dispatch(int irq, FAR void *context);

    Description. From 348eca3c128bfaee3100ca070576e2db535e57d6 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 14 Aug 2014 16:34:39 -0600 Subject: [PATCH 1288/1518] Update remaining documents for the 7.4 release --- Documentation/NuttX.html | 49 +++++++++++++++++++++++++++++----------- 1 file changed, 36 insertions(+), 13 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 3ad94d0935..049d4294ef 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

    NuttX RTOS

    -

    Last Updated: June 25, 2014

    +

    Last Updated: August 15, 2014

    @@ -301,6 +301,14 @@

    + +
    + +

    +

  • Tickless Operation
  • +

    + +
    @@ -588,6 +596,14 @@

    + +
    + +

    +

  • Cryptiographic subsystem
  • +

    + +
    @@ -1145,11 +1161,11 @@

    Released Versions

    In addition to the ever-changing GIT repository, there are frozen released versions of NuttX available. - The current release is NuttX 7.3. - NuttX 7.3 is the 103rd release of NuttX. - It was released on June 25, 2014, and is available for download from the + The current release is NuttX 7.4. + NuttX 7.4 is the 104th release of NuttX. + It was released on August 15, 2014, and is available for download from the SourceForge website. - Note that the release consists of two tarballs: nuttx-7.3.tar.gz and apps-7.3.tar.gz. + Note that the release consists of two tarballs: nuttx-7.4.tar.gz and apps-7.4.tar.gz. Both may be needed (see the top-level nuttx/README.txt file for build information).

    @@ -1158,7 +1174,7 @@
    • nuttx.

        - Release notes for NuttX 7.3 are available here; + Release notes for NuttX 7.4 are available here; release notes for all released versions on NuttX are available in the SourceForge GIT The ChangeLog for all releases of NuttX is available in the ChangeLog file that can viewed in the SourceForge GIT. The ChangeLog for the current release is at the bottom of that file. @@ -1166,7 +1182,7 @@

    • apps.

        - Release notes for NuttX 7.3 are available here; + Release notes for NuttX 7.4 are available here; release notes for all released versions on NuttX are available in the SourceForge GIT The ChangeLog for the all releases of apps is available in the ChangeLog file that can viewed in the SourceForge GIT. The ChangeLog for the current release is at the bottom of that file. @@ -1857,6 +1873,9 @@

        DBGU support was added in NuttX-7.2 (primarily for the SAMA5D3 Xplained board).

        +

        + NuttX-7.4 added support for the on-board WM8904 CODEC chip and for Tickless operation. +

        Refer to the NuttX board README file for further information.

        @@ -1898,14 +1917,18 @@

        • Atmel SAMA5D4-EK/MB development boards - This is the port of NuttX to the Atmel SAMA5D4-MB development board (which should be compatible witht he SAMA5D4-EK). + This is the port of NuttX to the Atmel SAMA5D4-MB Rev C. development board (which should be compatible with the SAMA5D4-EK). These boards feature the Atmel SAMA5D44 microprocessors with compatibility with most of the SAMA5D3 peripherals.

          STATUS. - At the time of the release of NuttX-7.3, the basic port for the SAMA5D4-MB was complete and undergoing test. - The board has some basic functionality. - There are, however, too many outstanding issues to claim full availability in NuttX-7.3. - Look for a stable SAMA5D4-EK release in NuttX-7.4! + At the time of the release of NuttX-7.3, the basic port for the SAMA5D4-MB was complete. + The board had basic functionality. + But full functionality was not available until NuttX-7.4. + In NuttX-7.4 support was added for the L2 cache, many security features, XDMAC, HSMCI and Ethernet integrated with XDMAC, the LCDC, TWI, SSC, and most of the existing SAMA5 drivers. + Timers were added to support Tickless operation. + The TM7000 LCDC with the maXTouch multi-touch controller are also fully support in a special NxWM configuration for that larger display. + Support for a graphics media player is included (although there were issues with the WM8904 audio CODEC on my board). + An SRAM bootloader was also included. Refer to the NuttX board README file for current status.

        @@ -2661,7 +2684,7 @@ nsh> NXP LPC1766, LPC1768, and LPC1769. Drivers are available for CAN, DAC, Ethernet, GPIO, GPIO interrupts, I2C, UARTs, SPI, SSP, USB host, and USB device. Additional drivers for the RTC, ADC, DAC, Timers, PWM and MCPWM were contributed by Max (himax) in NuttX-7.3. - Verified LPC17xx onfigurations are available for three boards. + Verified LPC17xx configurations are available for three boards.
        • The Nucleus 2G board from 2G Engineering (LPC1768), From 6f51404469926b41feedff35de204de8e808575a Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 21 Aug 2014 11:16:55 -0600 Subject: [PATCH 1289/1518] wdog.h does not contain any application interface, only internal OS interface. Further, it is non-standard. Move wdog.h from include/ to include/nuttx. For the same reason, move the description of the watchdog timer interfaces from the Users Guide to the Porting Guide. --- Documentation/NuttxPortingGuide.html | 296 +++++++++-- Documentation/NuttxUserGuide.html | 723 +++++++++------------------ 2 files changed, 503 insertions(+), 516 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 971b01f8d0..aaf1597c6d 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

          NuttX RTOS Porting Guide

          -

          Last Updated: August 12, 2014

          +

          Last Updated: August 21, 2014

          @@ -101,7 +101,8 @@ 4.3.1 Basic System Timer
          4.3.2 Hardware
          4.3.3 System Tick and Time
          - 4.3.4 Tickless OS + 4.3.4 Tickless OS
          + 4.3.5 Watchdog Timer Interfaces
        4.4 Address Environments
          @@ -1734,7 +1735,7 @@ The system can be re-made subsequently by just typing make.

          4.2 APIs Exported by Architecture-Specific Logic to NuttX

          4.2.1 up_initialize()

          -

          Prototype: void up_initialize(void);

          +

          Function Prototype: void up_initialize(void);

          Description. up_initialize() will be called once during OS @@ -1754,7 +1755,7 @@ The system can be re-made subsequently by just typing make.

          4.2.2 up_idle()

          -

          Prototype: void up_idle(void);

          +

          Function Prototype: void up_idle(void);

          Description. up_idle() is the logic that will be executed @@ -1768,7 +1769,7 @@ The system can be re-made subsequently by just typing make.

          4.2.3 up_initial_state()

          -

          Prototype: void up_initial_state(FAR struct tcb_s *tcb);

          +

          Function Prototype: void up_initial_state(FAR struct tcb_s *tcb);

          Description. A new thread is being started and a new TCB has been created. @@ -1791,7 +1792,7 @@ The system can be re-made subsequently by just typing make.

          4.2.4 up_create_stack()

          -

          Prototype: STATUS up_create_stack(FAR struct tcb_s *tcb, size_t stack_size, uint8_t ttype);

          +

          Function Prototype: STATUS up_create_stack(FAR struct tcb_s *tcb, size_t stack_size, uint8_t ttype);

          Description. Allocate a stack for a new thread and setup up stack-related information in the TCB. @@ -1843,7 +1844,7 @@ The system can be re-made subsequently by just typing make.

        4.2.5 up_use_stack()

        -

        Prototype: +

        Function Prototype: STATUS up_use_stack(FAR struct tcb_s *tcb, FAR void *stack, size_t stack_size);

        @@ -1882,7 +1883,7 @@ The system can be re-made subsequently by just typing make.

        4.2.6 up_stack_frame()

        -

        Prototype: FAR void *up_stack_frame(FAR struct tcb_s *tcb, size_t frame_size);

        +

        Function Prototype: FAR void *up_stack_frame(FAR struct tcb_s *tcb, size_t frame_size);

        Description. @@ -1932,7 +1933,7 @@ The system can be re-made subsequently by just typing make.

        4.2.7 up_release_stack()

        -

        Prototype: void up_release_stack(FAR struct tcb_s *dtcb);

        +

        Function Prototype: void up_release_stack(FAR struct tcb_s *dtcb);

        Description. A task has been stopped. @@ -1971,7 +1972,7 @@ The system can be re-made subsequently by just typing make.

      4.2.8 up_unblock_task()

      -

      Prototype: void up_unblock_task(FAR struct tcb_s *tcb);

      +

      Function Prototype: void up_unblock_task(FAR struct tcb_s *tcb);

      Description. A task is currently in an inactive task list @@ -1994,7 +1995,7 @@ The system can be re-made subsequently by just typing make.

    4.2.9 up_block_task()

    -

    Prototype: void up_block_task(FAR struct tcb_s *tcb, tstate_t task_state);

    +

    Function Prototype: void up_block_task(FAR struct tcb_s *tcb, tstate_t task_state);

    Description. The currently executing task at the head of @@ -2020,7 +2021,7 @@ The system can be re-made subsequently by just typing make.

    4.2.10 up_release_pending()

    -

    Prototype: void up_release_pending(void);

    +

    Function Prototype: void up_release_pending(void);

    Description. When tasks become ready-to-run but cannot run because pre-emption @@ -2037,7 +2038,7 @@ The system can be re-made subsequently by just typing make.

    4.2.11 up_reprioritize_rtr()

    -

    Prototype: void up_reprioritize_rtr(FAR struct tcb_s *tcb, uint8_t priority);

    +

    Function Prototype: void up_reprioritize_rtr(FAR struct tcb_s *tcb, uint8_t priority);

    Description. Called when the priority of a running or @@ -2072,7 +2073,7 @@ The system can be re-made subsequently by just typing make.

    4.2.12 _exit()

    -

    Prototype: void _exit(int status) noreturn_function;

    +

    Function Prototype: void _exit(int status) noreturn_function;

    Description. This function causes the currently executing task to cease @@ -2086,7 +2087,7 @@ The system can be re-made subsequently by just typing make.

    4.2.13 up_assert()

    -

    Prototype:
    +

    Function Prototype:
    void up_assert(FAR const uint8_t *filename, int linenum);

    @@ -2095,7 +2096,7 @@ The system can be re-made subsequently by just typing make.

    4.2.14 up_schedule_sigaction()

    -

    Prototype: +

    Function Prototype: void up_schedule_sigaction(FAR struct tcb_s *tcb, sig_deliver_t sigdeliver);

    @@ -2142,7 +2143,7 @@ The system can be re-made subsequently by just typing make.

    4.2.15 up_allocate_heap()

    -

    Prototype: void up_allocate_heap(FAR void **heap_start, size_t *heap_size);

    +

    Function Prototype: void up_allocate_heap(FAR void **heap_start, size_t *heap_size);

    Description. This function will be called to dynamically set aside the heap region. @@ -2153,14 +2154,14 @@ The system can be re-made subsequently by just typing make.

    4.2.16 up_interrupt_context()

    -

    Prototype: bool up_interrupt_context(void)

    +

    Function Prototype: bool up_interrupt_context(void)

    Description. Return true if we are currently executing in the interrupt handler context.

    4.2.17 up_disable_irq()

    -

    Prototype:

    +

    Function Prototype:

       #ifndef CONFIG_ARCH_NOINTC
         void up_disable_irq(int irq);
      @@ -2187,7 +2188,7 @@ The system can be re-made subsequently by just typing make.
       

      4.2.18 up_enable_irq()

      -

      Prototype:

      +

      Function Prototype:

         #ifndef CONFIG_ARCH_NOINTC
           void up_enable_irq(int irq);
        @@ -2208,7 +2209,7 @@ The system can be re-made subsequently by just typing make.
         

        4.2.19 up_prioritize_irq()

        -

        Prototype:

        +

        Function Prototype:

           #ifdef CONFIG_ARCH_IRQPRIO
             void up_enable_irq(int irq);
          @@ -2226,7 +2227,7 @@ The system can be re-made subsequently by just typing make.
           
           

          4.2.20 up_putc()

          -

          Prototype: int up_putc(int ch);

          +

          Function Prototype: int up_putc(int ch);

          Description. This is a debug interface exported by the architecture-specific logic. Output one character on the console @@ -2555,7 +2556,7 @@ config ARCH_SIM

        4.3.4.4.1 up_timer_initialize()
        -

        Prototype:

        +

        Function Prototype:

           #include <nuttx/arch.h>
           void up_timer_initialize(void);
          @@ -2578,7 +2579,7 @@ void up_timer_initialize(void);
           
        4.3.4.4.2 up_timer_gettime()
        -

        Prototype:

        +

        Function Prototype:

           #include <nuttx/arch.h>
           int up_timer_gettime(FAR struct timespec *ts);
          @@ -2602,7 +2603,7 @@ int up_timer_gettime(FAR struct timespec *ts);
           
        4.3.4.4.3 up_alarm_cancel()
        -

        Prototype:

        +

        Function Prototype:

           #include <nuttx/arch.h>
           int up_alarm_cancel(FAR struct timespec *ts);
          @@ -2625,7 +2626,7 @@ int up_alarm_cancel(FAR struct timespec *ts);
           
        4.3.4.4.5 up_alarm_start()
        -

        Prototype:

        +

        Function Prototype:

           #include <nuttx/arch.h>
           int up_alarm_start(FAR const struct timespec *ts);
          @@ -2648,7 +2649,7 @@ int up_alarm_start(FAR const struct timespec *ts);
           
        4.3.4.4.5 up_timer_cancel()
        -

        Prototype:

        +

        Function Prototype:

           #include <nuttx/arch.h>
           int up_timer_cancel(FAR struct timespec *ts);
          @@ -2671,7 +2672,7 @@ int up_timer_cancel(FAR struct timespec *ts);
           
        4.3.4.4.6 up_timer_start()
        -

        Prototype:

        +

        Function Prototype:

           #include <nuttx/arch.h>
           int up_timer_start(FAR const struct timespec *ts);
          @@ -2693,6 +2694,221 @@ int up_timer_start(FAR const struct timespec *ts);
             May be called from interrupt level handling or from the normal tasking level. Interrupts may need to be disabled internally to assure non-reentrancy.
           
        +

        4.3.5 Watchdog Timer Interfaces

        +

        + NuttX provides a general watchdog timer facility. + This facility allows the NuttX user to specify a watchdog timer function + that will run after a specified delay. + The watchdog timer function will run in the context of the timer interrupt handler. + Because of this, a limited number of NuttX interfaces are available to he watchdog timer function. + However, the watchdog timer function may use mq_send(), sigqueue(), + or kill() to communicate with NuttX tasks. +

        + + +

        4.3.5.1 wd_create

        + +

        +Function Prototype: +

        +    #include <nuttx/wdog.h>
        +    WDOG_ID wd_create(void);
        +
        + +

        +Description: The wd_create function will create a watchdog +by allocating the appropriate resources for the watchdog. +

        +Input Parameters: None. +

        +Returned Value: +

          +
        • Pointer to watchdog that may be used as a handle in subsequent +NuttX calls (i.e., the watchdog ID), or NULL if insufficient resources +are available to create the watchdogs. +
        + +

        +Assumptions/Limitations: +

        + POSIX Compatibility: This is a NON-POSIX interface. +VxWorks provides the following comparable interface: +

        +    WDOG_ID wdCreate (void);
        +
        + +

        +Differences from the VxWorks interface include: +

          +
        • The number of available watchdogs is fixed (configured at +initialization time). +
        + +

        4.3.5.2 wd_delete

        + +

        +Function Prototype: +

        +    #include <nuttx/wdog.h>
        +    int wd_delete(WDOG_ID wdog);
        +
        + +

        +Description: The wd_delete function will deallocate a +watchdog. The watchdog will be removed from the timer queue if +has been started. +

        +Input Parameters: +

          +
        • wdog. The watchdog ID to delete. This is actually a +pointer to a watchdog structure. +
        + +

        +Returned Value: +

          +
        • OK or ERROR +
        + +

        +Assumptions/Limitations: It is the responsibility of the +caller to assure that the watchdog is inactive before deleting +it. +

        +POSIX Compatibility: This is a NON-POSIX interface. +VxWorks provides the following comparable interface: +

        +    STATUS wdDelete (WDOG_ID wdog);
        +
        + +

        +Differences from the VxWorks interface include: +

          +
        • Does not make any checks to see if the watchdog is being used +before deallocating it (i.e., never returns ERROR). +
        + +

        4.3.5.3 wd_start

        + +

        +Function Prototype: +

        +    #include <nuttx/wdog.h>
        +    int wd_start(WDOG_ID wdog, int delay, wdentry_t wdentry,
        +                 int argc, ....);
        +
        + +

        +Description: This function adds a watchdog to the timer +queue. The specified watchdog function will be called from the +interrupt level after the specified number of ticks has elapsed. +Watchdog timers may be started from the interrupt level. +

        +Watchdog times execute in the context of the timer interrupt handler. +

        +Watchdog timers execute only once. +

        +To replace either the timeout delay or the function to be executed, +call wd_start again with the same wdog; only the most recent +wd_start() on a given watchdog ID has any effect. +

        +Input Parameters: +

          +
        • wdog. Watchdog ID +
        • delay. Delay count in clock ticks +
        • wdentry. Function to call on timeout +
        • argc. The number of uint32_t parameters to pass to wdentry. +
        • .... uint32_t size parameters to pass to wdentry +
        + +

        +Returned Value: +

          +
        • OK or ERROR +
        + +

        +Assumptions/Limitations: The watchdog routine runs in the +context of the timer interrupt handler and is subject to all ISR +restrictions. +

        +POSIX Compatibility: This is a NON-POSIX interface. +VxWorks provides the following comparable interface: +

        +    STATUS wdStart (WDOG_ID wdog, int delay, FUNCPTR wdentry, int parameter);
        +
        + +

        +Differences from the VxWorks interface include: +

          +
        • The present implementation supports multiple parameters passed +to wdentry; VxWorks supports only a single parameter. The maximum +number of parameters is determined by +
        + +

        4.3.5.4 wd_cancel

        +

        +Function Prototype: +

        +    #include <nuttx/wdog.h>
        +    int wd_cancel(WDOG_ID wdog);
        +
        + +

        +Description: This function cancels a currently running +watchdog timer. Watchdog timers may be canceled from the interrupt +level. +

        +Input Parameters: +

          +
        • wdog. ID of the watchdog to cancel. +
        + +

        +Returned Value: +

          +
        • OK or ERROR +
        + +

        +Assumptions/Limitations: +

        +POSIX Compatibility: This is a NON-POSIX interface. +VxWorks provides the following comparable interface: +

        +    STATUS wdCancel (WDOG_ID wdog);
        +
        + +

        4.3.5.5 wd_gettime

        +

        + Function Prototype: +

        +
        +    #include <nuttx/wdog.h>
        +    Sint wd_gettime(WDOG_ID wdog);
        +
        +

        + Description: + This function returns the time remaining before the specified watchdog expires. +

        +

        + Input Parameters: +

          +
        • wdog. Identifies the watchdog that the request is for.
        • +
        +

        +

        + Returned Value: + The time in system ticks remaining until the watchdog time expires. Zero + means either that wdog is not valid or that the wdog has already expired. +

        +

        4.4 Address Environments

        CPUs that support memory management units (MMUs) may provide address environments within which tasks and their child threads execute. @@ -2763,7 +2979,7 @@ int up_timer_start(FAR const struct timespec *ts);

        4.4.1 up_addrenv_create()

        -

        Prototype:

        +

        Function Prototype:

          int up_addrenv_create(size_t envsize, FAR task_addrenv_t *addrenv);
        @@ -2783,7 +2999,7 @@ int up_timer_start(FAR const struct timespec *ts);

      4.4.2 up_addrenv_vaddr()

      -

      Prototype:

      +

      Function Prototype:

        int up_addrenv_vaddr(FAR task_addrenv_t addrenv, FAR void **vaddr);
      @@ -2803,7 +3019,7 @@ int up_timer_start(FAR const struct timespec *ts);

    4.4.3 up_addrenv_select()

    -

    Prototype:

    +

    Function Prototype:

      int up_addrenv_select(task_addrenv_t addrenv, hw_addrenv_t *oldenv);
    @@ -2827,7 +3043,7 @@ int up_timer_start(FAR const struct timespec *ts);

    4.4.4 up_addrenv_restore()

    -

    Prototype:

    +

    Function Prototype:

      int up_addrenv_restore(hw_addrenv_t oldenv);
    @@ -2846,7 +3062,7 @@ int up_timer_start(FAR const struct timespec *ts);

    4.4.5 up_addrenv_destroy()

    -

    Prototype:

    +

    Function Prototype:

      int up_addrenv_destroy(task_addrenv_t addrenv);
    @@ -2864,7 +3080,7 @@ int up_timer_start(FAR const struct timespec *ts);

    4.4.6 up_addrenv_assign()

    -

    Prototype:

    +

    Function Prototype:

      int up_addrenv_assign(task_addrenv_t addrenv, FAR struct tcb_s *tcb);
    @@ -2883,7 +3099,7 @@ int up_timer_start(FAR const struct timespec *ts);

    4.4.7 up_addrenv_share()

    -

    Prototype:

    +

    Function Prototype:

      int up_addrenv_share(FAR const struct tcb_s *ptcb, FAR struct tcb_s *ctcb);
    @@ -2903,7 +3119,7 @@ int up_timer_start(FAR const struct timespec *ts);

    4.4.8 up_addrenv_release()

    -

    Prototype:

    +

    Function Prototype:

      int up_addrenv_release(FAR struct tcb_s *tcb);
    @@ -2939,7 +3155,7 @@ int up_timer_start(FAR const struct timespec *ts);

    4.5.3 sched_process_timer()

    -

    Prototype: void sched_process_timer(void);

    +

    Function Prototype: void sched_process_timer(void);

    Description. This function handles system timer events. @@ -2950,7 +3166,7 @@ int up_timer_start(FAR const struct timespec *ts);

    4.5.4 sched_timer_expiration()

    -

    Prototype:

    +

    Function Prototype:

       #include <nuttx/arch.h>
       void sched_timer_expiration(void);
      @@ -2973,7 +3189,7 @@ void sched_timer_expiration(void);
       

    4.5.5 sched_alaram_expiration()

    -

    Prototype:

    +

    Function Prototype:

       #include <nuttx/arch.h>
       void sched_timer_expiration(void);
      @@ -2996,7 +3212,7 @@ void sched_timer_expiration(void);
       

    4.5.6 irq_dispatch()

    -

    Prototype: void irq_dispatch(int irq, FAR void *context);

    +

    Function Prototype: void irq_dispatch(int irq, FAR void *context);

    Description. This function must be called from the architecture- diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 9c8b5adb04..07246ff7e8 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -13,7 +13,7 @@

    NuttX Operating System

    User's Manual

    by

    Gregory Nutt

    -

    Last Updated: January 13, 2014

    +

    Last Updated: August 21, 2014

    @@ -57,13 +57,12 @@
  • Paragraph 2.3 Task Control Interfaces
  • Paragraph 2.4 Named Message Queue Interfaces
  • Paragraph 2.5 Counting Semaphore Interfaces
  • -
  • Paragraph 2.6 Watchdog Timer Interfaces
  • -
  • Paragraph 2.7 Clocks and Timers
  • -
  • Paragraph 2.8 Signal Interfaces
  • -
  • Paragraph 2.9 Pthread Interfaces
  • -
  • Paragraph 2.10 Environment Variables
  • -
  • Paragraph 2.11 File System Interfaces
  • -
  • Paragraph 2.12 Network Interfaces
  • +
  • Paragraph 2.6 Clocks and Timers
  • +
  • Paragraph 2.7 Signal Interfaces
  • +
  • Paragraph 2.8 Pthread Interfaces
  • +
  • Paragraph 2.9 Environment Variables
  • +
  • Paragraph 2.10 File System Interfaces
  • +
  • Paragraph 2.11 Network Interfaces
  • @@ -3872,251 +3871,29 @@ interface of the same name. - -
    -

    2.6 Watchdog Timer Interfaces

    -
    - -

    - NuttX provides a general watchdog timer facility. - This facility allows the NuttX user to specify a watchdog timer function - that will run after a specified delay. - The watchdog timer function will run in the context of the timer interrupt handler. - Because of this, a limited number of NuttX interfaces are available to he watchdog timer function. - However, the watchdog timer function may use mq_send(), sigqueue(), - or kill() to communicate with NuttX tasks. -

    - - -

    2.6.1 wd_create

    - -

    -Function Prototype: -

    -    #include <wdog.h>
    -    WDOG_ID wd_create(void);
    -
    - -

    -Description: The wd_create function will create a watchdog -by allocating the appropriate resources for the watchdog. -

    -Input Parameters: None. -

    -Returned Value: -

      -
    • Pointer to watchdog that may be used as a handle in subsequent -NuttX calls (i.e., the watchdog ID), or NULL if insufficient resources -are available to create the watchdogs. -
    - -

    -Assumptions/Limitations: -

    - POSIX Compatibility: This is a NON-POSIX interface. -VxWorks provides the following comparable interface: -

    -    WDOG_ID wdCreate (void);
    -
    - -

    -Differences from the VxWorks interface include: -

      -
    • The number of available watchdogs is fixed (configured at -initialization time). -
    - -

    2.6.2 wd_delete

    - -

    -Function Prototype: -

    -    #include <wdog.h>
    -    int wd_delete(WDOG_ID wdog);
    -
    - -

    -Description: The wd_delete function will deallocate a -watchdog. The watchdog will be removed from the timer queue if -has been started. -

    -Input Parameters: -

      -
    • wdog. The watchdog ID to delete. This is actually a -pointer to a watchdog structure. -
    - -

    -Returned Value: -

      -
    • OK or ERROR -
    - -

    -Assumptions/Limitations: It is the responsibility of the -caller to assure that the watchdog is inactive before deleting -it. -

    -POSIX Compatibility: This is a NON-POSIX interface. -VxWorks provides the following comparable interface: -

    -    STATUS wdDelete (WDOG_ID wdog);
    -
    - -

    -Differences from the VxWorks interface include: -

      -
    • Does not make any checks to see if the watchdog is being used -before deallocating it (i.e., never returns ERROR). -
    - -

    2.6.3 wd_start

    - -

    -Function Prototype: -

    -    #include <wdog.h>
    -    int wd_start(WDOG_ID wdog, int delay, wdentry_t wdentry,
    -                 int argc, ....);
    -
    - -

    -Description: This function adds a watchdog to the timer -queue. The specified watchdog function will be called from the -interrupt level after the specified number of ticks has elapsed. -Watchdog timers may be started from the interrupt level. -

    -Watchdog times execute in the context of the timer interrupt handler. -

    -Watchdog timers execute only once. -

    -To replace either the timeout delay or the function to be executed, -call wd_start again with the same wdog; only the most recent -wd_start() on a given watchdog ID has any effect. -

    -Input Parameters: -

      -
    • wdog. Watchdog ID -
    • delay. Delay count in clock ticks -
    • wdentry. Function to call on timeout -
    • argc. The number of uint32_t parameters to pass to wdentry. -
    • .... uint32_t size parameters to pass to wdentry -
    - -

    -Returned Value: -

      -
    • OK or ERROR -
    - -

    -Assumptions/Limitations: The watchdog routine runs in the -context of the timer interrupt handler and is subject to all ISR -restrictions. -

    -POSIX Compatibility: This is a NON-POSIX interface. -VxWorks provides the following comparable interface: -

    -    STATUS wdStart (WDOG_ID wdog, int delay, FUNCPTR wdentry, int parameter);
    -
    - -

    -Differences from the VxWorks interface include: -

      -
    • The present implementation supports multiple parameters passed -to wdentry; VxWorks supports only a single parameter. The maximum -number of parameters is determined by -
    - -

    2.6.4 wd_cancel

    -

    -Function Prototype: -

    -    #include <wdog.h>
    -    int wd_cancel(WDOG_ID wdog);
    -
    - -

    -Description: This function cancels a currently running -watchdog timer. Watchdog timers may be canceled from the interrupt -level. -

    -Input Parameters: -

      -
    • wdog. ID of the watchdog to cancel. -
    - -

    -Returned Value: -

      -
    • OK or ERROR -
    - -

    -Assumptions/Limitations: -

    -POSIX Compatibility: This is a NON-POSIX interface. -VxWorks provides the following comparable interface: -

    -    STATUS wdCancel (WDOG_ID wdog);
    -
    - -

    2.6.5 wd_gettime

    -

    - Function Prototype: -

    -
    -    #include <wdog.h>
    -    Sint wd_gettime(WDOG_ID wdog);
    -
    -

    - Description: - This function returns the time remaining before the specified watchdog expires. -

    -

    - Input Parameters: -

      -
    • wdog. Identifies the watchdog that the request is for.
    • -
    -

    -

    - Returned Value: - The time in system ticks remaining until the watchdog time expires. Zero - means either that wdog is not valid or that the wdog has already expired. -

    - - - -
    -

    2.7 Clocks and Timers

    +

    2.6 Clocks and Timers

    -

    2.7.1 clock_settime

    +

    2.6.1 clock_settime

    Function Prototype:

    @@ -4144,7 +3921,7 @@ VxWorks provides the following comparable interface:
  • To be provided.
  • -

    2.7.2 clock_gettime

    +

    2.6.2 clock_gettime

    Function Prototype:

    @@ -4172,7 +3949,7 @@ VxWorks provides the following comparable interface:
  • To be provided.
  • -

    2.7.3 clock_getres

    +

    2.6.3 clock_getres

    Function Prototype:

    @@ -4200,7 +3977,7 @@ VxWorks provides the following comparable interface:
  • To be provided.
  • -

    2.7.4 mktime

    +

    2.6.4 mktime

    Function Prototype:

    @@ -4228,7 +4005,7 @@ VxWorks provides the following comparable interface:
  • To be provided.
  • -

    2.7.5 gmtime

    +

    2.6.5 gmtime

    Function Prototype:

    @@ -4261,13 +4038,13 @@ VxWorks provides the following comparable interface:
  • To be provided.
  • -

    2.7.6 localtime

    +

    2.6.6 localtime

         #include <time.h>
         #define localtime(c) gmtime(c)
     
    -

    2.7.7 gmtime_r

    +

    2.6.7 gmtime_r

    Function Prototype:

    @@ -4301,13 +4078,13 @@ VxWorks provides the following comparable interface:
  • To be provided.
  • -

    2.7.8 localtime_r

    +

    2.6.8 localtime_r

         #include <time.h>
         #define localtime_r(c,r) gmtime_r(c,r)
     
    -

    2.7.9 timer_create

    +

    2.6.9 timer_create

    Function Prototype:

    @@ -4377,7 +4154,7 @@ VxWorks provides the following comparable interface:
  • Only CLOCK_REALTIME is supported for the clockid argument.
  • -

    2.7.10 timer_delete

    +

    2.6.10 timer_delete

    Function Prototype:

    @@ -4416,7 +4193,7 @@ VxWorks provides the following comparable interface: Comparable to the POSIX interface of the same name.

    -

    2.7.11 timer_settime

    +

    2.6.11 timer_settime

    Function Prototype:

    @@ -4499,7 +4276,7 @@ VxWorks provides the following comparable interface:
  • The ovalue argument is ignored.
  • -

    2.7.12 timer_gettime

    +

    2.6.12 timer_gettime

    Function Prototype:

    @@ -4546,7 +4323,7 @@ VxWorks provides the following comparable interface: Comparable to the POSIX interface of the same name.

    -

    2.7.13 timer_getoverrun

    +

    2.6.13 timer_getoverrun

    Function Prototype:

    @@ -4607,7 +4384,7 @@ VxWorks provides the following comparable interface: interface of the same name.

    -

    2.7.14 gettimeofday

    +

    2.6.14 gettimeofday

    Function Prototype:

    @@ -4637,7 +4414,7 @@ interface of the same name.
    -

    2.8 Signal Interfaces

    +

    2.7 Signal Interfaces

    @@ -4703,23 +4480,23 @@ interface of the same name. The following signal handling interfaces are provided by NuttX:

    -

    2.8.1 sigemptyset

    +

    2.7.1 sigemptyset

    Function Prototype: @@ -4749,7 +4526,7 @@ by set such that all signals are excluded. POSIX Compatibility: Comparable to the POSIX interface of the same name. -

    2.8.2 sigfillset

    +

    2.7.2 sigfillset

    Function Prototype: @@ -4779,7 +4556,7 @@ by set such that all signals are included. POSIX Compatibility: Comparable to the POSIX interface of the same name. -

    2.8.3 sigaddset

    +

    2.7.3 sigaddset

    Function Prototype: @@ -4810,7 +4587,7 @@ signo to the signal set specified by set. POSIX Compatibility: Comparable to the POSIX interface of the same name. -

    2.8.4 sigdelset

    +

    2.7.4 sigdelset

    Function Prototype: @@ -4841,7 +4618,7 @@ by signo from the signal set specified by set. POSIX Compatibility: Comparable to the POSIX interface of the same name. -

    2.8.5 sigismember

    +

    2.7.5 sigismember

    Function Prototype: @@ -4874,7 +4651,7 @@ by signo is a member of the set specified by set. POSIX Compatibility: Comparable to the POSIX interface of the same name. -

    2.8.6 sigaction

    +

    2.7.6 sigaction

    Function Prototype: @@ -4951,7 +4728,7 @@ Differences from the POSIX implementation include: -

    2.8.7 sigprocmask

    +

    2.7.7 sigprocmask

    Function Prototype: @@ -5001,7 +4778,7 @@ pointed to by the set input parameter. POSIX Compatibility: Comparable to the POSIX interface of the same name. -

    2.8.8 sigpending

    +

    2.7.8 sigpending

    Function Prototype: @@ -5039,7 +4816,7 @@ is delivered more than once." POSIX Compatibility: Comparable to the POSIX interface of the same name. -

    2.8.9 sigsuspend

    +

    2.7.9 sigsuspend

    Function Prototype: @@ -5087,7 +4864,7 @@ function or to terminate the task." Only delivery of the signal is required in the present implementation (even if the signal is ignored). -

    2.8.10 sigwaitinfo

    +

    2.7.10 sigwaitinfo

    Function Prototype: @@ -5119,7 +4896,7 @@ with a NULL timeout parameter. (see below). POSIX Compatibility: Comparable to the POSIX interface of the same name. -

    2.8.11 sigtimedwait

    +

    2.7.11 sigtimedwait

    Function Prototype: @@ -5185,7 +4962,7 @@ that the unblocked signal be caught; the task will be resumed even if the unblocked signal is ignored. -

    2.8.12 sigqueue

    +

    2.7.12 sigqueue

    Function Prototype: @@ -5242,7 +5019,7 @@ There is no null signal in the present implementation; a zero signal will be sent. -

    2.8.13 kill

    +

    2.7.13 kill

    Function Prototype: @@ -5298,7 +5075,7 @@ be sent.

  • Sending of signals to 'process groups' is not supported in NuttX.
  • -

    2.8.14 pause

    +

    2.7.14 pause

    Function Prototype: @@ -5334,7 +5111,7 @@ be sent.
    -

    2.9 Pthread Interfaces

    +

    2.8 Pthread Interfaces

    @@ -5361,27 +5138,27 @@ be sent. Interfaces that allow you to create and manage pthreads.

    Thread Specific Data. @@ -5391,64 +5168,64 @@ be sent. (2) The main task thread does not had thread-specific data.

    pthread Mutexes.

    Condition Variables.

    Barriers.

    Initialization.

    Signals.

    @@ -5505,7 +5282,7 @@ be sent.

  • pthread_testcancel. set cancelability state.
  • -

    2.9.1 pthread_attr_init

    +

    2.8.1 pthread_attr_init

    Function Prototype:

    @@ -5538,7 +5315,7 @@ returned to indicate the error: POSIX Compatibility: Comparable to the POSIX interface of the same name.

    -

    2.9.2 pthread_attr_destroy

    +

    2.8.2 pthread_attr_destroy

    Function Prototype:

    @@ -5570,7 +5347,7 @@ returned to indicate the error: POSIX Compatibility: Comparable to the POSIX interface of the same name.

    -

    2.9.3 pthread_attr_setschedpolicy

    +

    2.8.3 pthread_attr_setschedpolicy

    Function Prototype:

    @@ -5601,7 +5378,7 @@ returned to indicate the error: POSIX Compatibility: Comparable to the POSIX interface of the same name. -

    2.9.4 pthread_attr_getschedpolicy

    +

    2.8.4 pthread_attr_getschedpolicy

    Function Prototype:

    @@ -5632,7 +5409,7 @@ returned to indicate the error: POSIX Compatibility: Comparable to the POSIX interface of the same name. -

    2.9.5 pthread_attr_getschedpolicy

    +

    2.8.5 pthread_attr_getschedpolicy

    Function Prototype:

    @@ -5664,7 +5441,7 @@ returned to indicate the error: POSIX Compatibility: Comparable to the POSIX interface of the same name. -

    2.9.6 pthread_attr_getschedparam

    +

    2.8.6 pthread_attr_getschedparam

    Function Prototype:

    @@ -5696,7 +5473,7 @@ returned to indicate the error: POSIX Compatibility: Comparable to the POSIX interface of the same name. -

    2.9.7 pthread_attr_setinheritsched

    +

    2.8.7 pthread_attr_setinheritsched

    Function Prototype:

    @@ -5728,7 +5505,7 @@ returned to indicate the error: POSIX Compatibility: Comparable to the POSIX interface of the same name.

    -

    2.9.8 pthread_attr_getinheritsched

    +

    2.8.8 pthread_attr_getinheritsched

    Function Prototype:

    @@ -5760,7 +5537,7 @@ returned to indicate the error: POSIX Compatibility: Comparable to the POSIX interface of the same name. -

    2.9.9 pthread_attr_setstacksize

    +

    2.8.9 pthread_attr_setstacksize

    Function Prototype:

    @@ -5791,7 +5568,7 @@ returned to indicate the error: POSIX Compatibility: Comparable to the POSIX interface of the same name. -

    2.9.10 pthread_attr_getstacksize

    +

    2.8.10 pthread_attr_getstacksize

    Function Prototype:

    @@ -5822,7 +5599,7 @@ returned to indicate the error: POSIX Compatibility: Comparable to the POSIX interface of the same name. -

    2.9.11 pthread_create

    +

    2.8.11 pthread_create

    Function Prototype:

    @@ -5861,7 +5638,7 @@ returned to indicate the error: POSIX Compatibility: Comparable to the POSIX interface of the same name. -

    2.9.12 pthread_detach

    +

    2.8.12 pthread_detach

    Function Prototype:

    @@ -5894,7 +5671,7 @@ returned to indicate the error: POSIX Compatibility: Comparable to the POSIX interface of the same name. -

    2.9.13 pthread_exit

    +

    2.8.13 pthread_exit

    Function Prototype:

    @@ -5926,7 +5703,7 @@ returned to indicate the error: POSIX Compatibility: Comparable to the POSIX interface of the same name. -

    2.9.14 pthread_cancel

    +

    2.8.14 pthread_cancel

    Function Prototype:

    @@ -5982,7 +5759,7 @@ the time when cancellation is re-enabled.

  • Thread cancellation at cancellation points is not supported.
  • -

    2.9.15 pthread_setcancelstate

    +

    2.8.15 pthread_setcancelstate

    Function Prototype:

    @@ -6024,7 +5801,7 @@ No thread could be found corresponding to that specified by the given thread ID. POSIX Compatibility: Comparable to the POSIX interface of the same name. -

    2.9.16 pthread_testcancelstate

    +

    2.8.16 pthread_testcancelstate

    Function Prototype:

    @@ -6055,7 +5832,7 @@ returned to indicate the error: POSIX Compatibility: Comparable to the POSIX interface of the same name. -

    2.9.17 pthread_join

    +

    2.8.17 pthread_join

    Function Prototype:

    @@ -6088,7 +5865,7 @@ returned to indicate the error: POSIX Compatibility: Comparable to the POSIX interface of the same name. -

    2.9.18 pthread_yield

    +

    2.8.18 pthread_yield

    Function Prototype:

    @@ -6121,7 +5898,7 @@ returned to indicate the error: POSIX Compatibility: Comparable to the POSIX interface of the same name. -

    2.9.19 pthread_self

    +

    2.8.19 pthread_self

    Function Prototype:

    @@ -6153,7 +5930,7 @@ returned to indicate the error: POSIX Compatibility: Comparable to the POSIX interface of the same name. -

    2.9.20 pthread_getschedparam

    +

    2.8.20 pthread_getschedparam

    Function Prototype:

    @@ -6219,7 +5996,7 @@ interface of the same name. Comparable to the POSIX interface of the same name.

    -

    2.9.21 pthread_setschedparam

    +

    2.8.21 pthread_setschedparam

    Function Prototype:

    @@ -6311,7 +6088,7 @@ interface of the same name. Comparable to the POSIX interface of the same name.

    -

    2.9.22 pthread_key_create

    +

    2.8.22 pthread_key_create

    Function Prototype:

    @@ -6366,7 +6143,7 @@ interface of the same name.

  • The present implementation ignores the destructor argument. -

    2.9.23 pthread_setspecific

    +

    2.8.23 pthread_setspecific

    Function Prototype:

    @@ -6416,7 +6193,7 @@ interface of the same name. destructor function. -

    2.9.24 pthread_getspecific

    +

    2.8.24 pthread_getspecific

    Function Prototype:

    @@ -6457,7 +6234,7 @@ interface of the same name. destructor function. -

    2.9.25 pthread_key_delete

    +

    2.8.25 pthread_key_delete

    Function Prototype:

    @@ -6489,7 +6266,7 @@ this function does nothing in the present implementation. POSIX Compatibility: Comparable to the POSIX interface of the same name. -

    2.9.26 pthread_mutexattr_init

    +

    2.8.26 pthread_mutexattr_init

    Function Prototype:

    @@ -6520,7 +6297,7 @@ returned to indicate the error: POSIX Compatibility: Comparable to the POSIX interface of the same name. -

    2.9.27 pthread_mutexattr_destroy

    +

    2.8.27 pthread_mutexattr_destroy

    Function Prototype:

    @@ -6551,7 +6328,7 @@ returned to indicate the error: POSIX Compatibility: Comparable to the POSIX interface of the same name. -

    2.9.28 pthread_mutexattr_getpshared

    +

    2.8.28 pthread_mutexattr_getpshared

    Function Prototype:

    @@ -6583,7 +6360,7 @@ returned to indicate the error: POSIX Compatibility: Comparable to the POSIX interface of the same name. -

    2.9.29 pthread_mutexattr_setpshared

    +

    2.8.29 pthread_mutexattr_setpshared

    Function Prototype:

    @@ -6615,7 +6392,7 @@ returned to indicate the error: POSIX Compatibility: Comparable to the POSIX interface of the same name. -

    2.9.30 pthread_mutexattr_gettype

    +

    2.8.30 pthread_mutexattr_gettype

    Function Prototype:

    @@ -6650,7 +6427,7 @@ returned to indicate the error:

    POSIX Compatibility: Comparable to the POSIX interface of the same name. -

    2.9.31 pthread_mutexattr_settype

    +

    2.8.31 pthread_mutexattr_settype

    Function Prototype:

    @@ -6704,7 +6481,7 @@ returned to indicate the error:

    POSIX Compatibility: Comparable to the POSIX interface of the same name. -

    2.9.32 pthread_mutex_init

    +

    2.8.32 pthread_mutex_init

    Function Prototype:

    @@ -6736,7 +6513,7 @@ returned to indicate the error: POSIX Compatibility: Comparable to the POSIX interface of the same name. -

    2.9.33 pthread_mutex_destroy

    +

    2.8.33 pthread_mutex_destroy

    Function Prototype:

    @@ -6767,7 +6544,7 @@ returned to indicate the error: POSIX Compatibility: Comparable to the POSIX interface of the same name. -

    2.9.34 pthread_mutex_lock

    +

    2.8.34 pthread_mutex_lock

    Function Prototype:

    @@ -6833,7 +6610,7 @@ Otherwise, an error number will be returned to indicate the error: POSIX Compatibility: Comparable to the POSIX interface of the same name. -

    2.9.35 pthread_mutex_trylock

    +

    2.8.35 pthread_mutex_trylock

    Function Prototype:

    @@ -6873,7 +6650,7 @@ Otherwise, an error number will be returned to indicate the error: POSIX Compatibility: Comparable to the POSIX interface of the same name. -

    2.9.36 pthread_mutex_unlock

    +

    2.8.36 pthread_mutex_unlock

    Function Prototype:

    @@ -6919,7 +6696,7 @@ returned to indicate the error: POSIX Compatibility: Comparable to the POSIX interface of the same name. -

    2.9.37 pthread_condattr_init

    +

    2.8.37 pthread_condattr_init

    Function Prototype:

    @@ -6950,7 +6727,7 @@ returned to indicate the error: POSIX Compatibility: Comparable to the POSIX interface of the same name. -

    2.9.38 pthread_condattr_destroy

    +

    2.8.38 pthread_condattr_destroy

    Function Prototype:

    @@ -6981,7 +6758,7 @@ returned to indicate the error: POSIX Compatibility: Comparable to the POSIX interface of the same name. -

    2.9.39 pthread_cond_init

    +

    2.8.39 pthread_cond_init

    Function Prototype:

    @@ -7012,7 +6789,7 @@ returned to indicate the error: POSIX Compatibility: Comparable to the POSIX interface of the same name. -

    2.9.40 pthread_cond_destroy

    +

    2.8.40 pthread_cond_destroy

    Function Prototype:

    @@ -7043,7 +6820,7 @@ returned to indicate the error: POSIX Compatibility: Comparable to the POSIX interface of the same name. -

    2.9.41 pthread_cond_broadcast

    +

    2.8.41 pthread_cond_broadcast

    Function Prototype:

    @@ -7074,7 +6851,7 @@ returned to indicate the error: POSIX Compatibility: Comparable to the POSIX interface of the same name. -

    2.9.42 pthread_cond_signal

    +

    2.8.42 pthread_cond_signal

    Function Prototype:

    @@ -7105,7 +6882,7 @@ returned to indicate the error: POSIX Compatibility: Comparable to the POSIX interface of the same name. -

    2.9.43 pthread_cond_wait

    +

    2.8.43 pthread_cond_wait

    Function Prototype:

    @@ -7136,7 +6913,7 @@ returned to indicate the error: POSIX Compatibility: Comparable to the POSIX interface of the same name. -

    2.9.44 pthread_cond_timedwait

    +

    2.8.44 pthread_cond_timedwait

    Function Prototype:

    @@ -7173,7 +6950,7 @@ interface of the same name. POSIX Compatibility: Comparable to the POSIX interface of the same name.

    -

    2.9.45 pthread_barrierattr_init

    +

    2.8.45 pthread_barrierattr_init

    Function Prototype:

    @@ -7206,7 +6983,7 @@ interface of the same name. POSIX Compatibility: Comparable to the POSIX interface of the same name.

    -

    2.9.46 pthread_barrierattr_destroy

    +

    2.8.46 pthread_barrierattr_destroy

    Function Prototype:

    @@ -7238,7 +7015,7 @@ interface of the same name. POSIX Compatibility: Comparable to the POSIX interface of the same name.

    -

    2.9.47 pthread_barrierattr_setpshared

    +

    2.8.47 pthread_barrierattr_setpshared

    Function Prototype:

    @@ -7276,7 +7053,7 @@ interface of the same name. POSIX Compatibility: Comparable to the POSIX interface of the same name.

    -

    2.9.48 pthread_barrierattr_getpshared

    +

    2.8.48 pthread_barrierattr_getpshared

    Function Prototype:

    @@ -7308,7 +7085,7 @@ interface of the same name. POSIX Compatibility: Comparable to the POSIX interface of the same name.

    -

    2.9.49 pthread_barrier_init

    +

    2.8.49 pthread_barrier_init

    Function Prototype:

    @@ -7378,7 +7155,7 @@ interface of the same name. POSIX Compatibility: Comparable to the POSIX interface of the same name.

    -

    2.9.50 pthread_barrier_destroy

    +

    2.8.50 pthread_barrier_destroy

    Function Prototype:

    @@ -7422,7 +7199,7 @@ interface of the same name. POSIX Compatibility: Comparable to the POSIX interface of the same name.

    -

    2.9.51 pthread_barrier_wait

    +

    2.8.51 pthread_barrier_wait

    Function Prototype:

    @@ -7482,7 +7259,7 @@ interface of the same name.

    -

    2.9.52 pthread_once

    +

    2.8.52 pthread_once

    Function Prototype:

    @@ -7526,7 +7303,7 @@ interface of the same name. POSIX Compatibility: Comparable to the POSIX interface of the same name.

    -

    2.9.53 pthread_kill

    +

    2.8.53 pthread_kill

    Function Prototype:

    @@ -7588,7 +7365,7 @@ interface of the same name. POSIX Compatibility: Comparable to the POSIX interface of the same name.

    -

    2.9.54 pthread_sigmask

    +

    2.8.54 pthread_sigmask

    Function Prototype:

    @@ -7647,7 +7424,7 @@ interface of the same name.
    -

    2.10 Environment Variables

    +

    2.9 Environment Variables

    @@ -7679,18 +7456,18 @@ interface of the same name. described in detail in the following paragraphs.

    Disabling Environment Variable Support. All support for environment variables can be disabled by setting CONFIG_DISABLE_ENVIRON in the board configuration file.

    -

    2.10.1 getenv

    +

    2.9.1 getenv

    Function Prototype:

    @@ -7718,7 +7495,7 @@ interface of the same name. The value of the variable (read-only) or NULL on failure.

    -

    2.10.2 putenv

    +

    2.9.2 putenv

    Function Prototype:

    @@ -7749,7 +7526,7 @@ interface of the same name. Zero on success.

    -

    2.10.3 clearenv

    +

    2.9.3 clearenv

    Function Prototype:

    @@ -7771,7 +7548,7 @@ interface of the same name. Zero on success.

    -

    2.10.4 setenv

    +

    2.9.4 setenv

    Function Prototype:

    @@ -7809,7 +7586,7 @@ interface of the same name. Zero on success.

    -

    2.10.5 unsetenv

    +

    2.9.5 unsetenv

    Function Prototype:

    @@ -7839,24 +7616,24 @@ interface of the same name.
    -

    2.11 File System Interfaces

    +

    2.10 File System Interfaces

    -

    2.11.1 NuttX File System Overview

    +

    2.10.1 NuttX File System Overview

    Overview. NuttX includes an optional, scalable file system. @@ -7916,23 +7693,23 @@ interface of the same name. in a file-system-like name space.

    -

    2.11.2 Driver Operations

    +

    2.10.2 Driver Operations

    -

    2.11.2.1 fcntl.h

    +

    2.10.2.1 fcntl.h

         #include <fcntl.h>
         int open(const char *path, int oflag, ...);
       
    -

    2.11.2.2 unistd.h

    +

    2.10.2.2 unistd.h

         #include <unistd.h>
      @@ -7945,16 +7722,16 @@ interface of the same name.
         ssize_t write(int fd, const void *buf, size_t nbytes);
       
    -

    2.11.2.3 sys/ioctl.h

    +

    2.10.2.3 sys/ioctl.h

         #include <sys/ioctl.h>
         int     ioctl(int fd, int req, unsigned long arg);
       
    -

    2.11.2.4 poll.h

    +

    2.10.2.4 poll.h

    -
    2.11.2.4.1 poll
    +
    2.10.2.4.1 poll

    Function Prototype:

    @@ -8024,9 +7801,9 @@ interface of the same name.
  • ENOSYS. One or more of the drivers supporting the file descriptor does not support the poll method.
  • -

    2.11.2.5 sys/select.h

    +

    2.10.2.5 sys/select.h

    -
    2.11.2.5.1 select
    +
    2.10.2.5.1 select

    Function Prototype:

    @@ -8070,7 +7847,7 @@ int select(int nfds, FAR fd_set *readfds, FAR fd_set *writefds, see poll()). -

    2.11.3 Directory Operations

    +

    2.10.3 Directory Operations

       #include <dirent.h>
      @@ -8085,7 +7862,7 @@ int        telldir(FAR DIR *dirp);
       
    -

    2.11.4 UNIX Standard Operations

    +

    2.10.4 UNIX Standard Operations

       #include <unistd.h>
       
      @@ -8121,7 +7898,7 @@ int     getopt(int argc, FAR char *const argv[], FAR const char *optstring);
       
    -

    2.11.5 Standard I/O

    +

    2.10.5 Standard I/O

       #include <stdio.h>
       
      @@ -8183,7 +7960,7 @@ int statfs(const char *path, struct statfs *buf);
       int fstatfs(int fd, struct statfs *buf);
       
    -

    2.11.6 Standard String Operations

    +

    2.10.6 Standard String Operations

       #include <string.h>
       
      @@ -8217,9 +7994,9 @@ void  *memmove(void *dest, const void *src, size_t count);
       # define bzero(s,n) (void)memset(s,0,n)
       
    -

    2.11.7 Pipes and FIFOs

    +

    2.10.7 Pipes and FIFOs

    -

    2.11.7.1 pipe

    +

    2.10.7.1 pipe

    Function Prototype:

    @@ -8253,7 +8030,7 @@ int pipe(int fd[2]);

    -

    2.11.7.2 mkfifo

    +

    2.10.7.2 mkfifo

    Function Prototype:

    @@ -8300,8 +8077,8 @@ int mkfifo(FAR const char *pathname, mode_t mode);

    -

    2.11.8 FAT File System Support

    -

    2.11.8.1 mkfatfs

    +

    2.10.8 FAT File System Support

    +

    2.10.8.1 mkfatfs

    Function Prototype:

    @@ -8378,7 +8155,7 @@ struct fat_format_s

    -

    2.11.9 mmap() and eXecute In Place (XIP)

    +

    2.10.9 mmap() and eXecute In Place (XIP)

    NuttX operates in a flat open address space and is focused on MCUs that do support Memory Management Units (MMUs). Therefore, NuttX generally does not @@ -8507,7 +8284,7 @@ struct fat_format_s -

    2.11.9.1 mmap

    +

    2.10.9.1 mmap

    Function Prototype:

    @@ -8637,7 +8414,7 @@ FAR void *mmap(FAR void *start, size_t length, int prot, int flags, int fd, off_
    -

    2.12 Network Interfaces

    +

    2.11 Network Interfaces

    @@ -8650,20 +8427,20 @@ Those socket APIs are discussed in the following paragraphs.

    -

    2.12.1 socket

    +

    2.11.1 socket

    Function Prototype:

    @@ -8705,7 +8482,7 @@ int socket(int domain, int type, int protocol); The protocol type or the specified protocol is not supported within this domain. -

    2.12.2 bind

    +

    2.11.2 bind

    Function Prototype:

    @@ -8747,7 +8524,7 @@ int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen); sockfd is a descriptor for a file, not a socket. -

    2.12.3 connect

    +

    2.11.3 connect

    Function Prototype:

    @@ -8826,7 +8603,7 @@ int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen); to accept new connections. -

    2.12.4 listen

    +

    2.11.4 listen

    Function Prototype:

    @@ -8864,7 +8641,7 @@ int listen(int sockfd, int backlog);
  • EOPNOTSUPP: The socket is not of a type that supports the listen operation.
  • -

    2.12.5 accept

    +

    2.11.5 accept

    Function Prototype:

    @@ -8942,7 +8719,7 @@ int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen); Firewall rules forbid connection. -

    2.12.6 send

    +

    2.11.6 send

    Function Prototype:

    @@ -8974,7 +8751,7 @@ ssize_t send(int sockfd, const void *buf, size_t len, int flags); See sendto().

    -

    2.12.7 sendto

    +

    2.11.7 sendto

    Function Prototype:

    @@ -9047,7 +8824,7 @@ ssize_t send(int sockfd, const void *buf, size_t len, int flags); MSG_NOSIGNAL is set. -

    2.12.8 recv

    +

    2.11.8 recv

    Function Prototype:

    @@ -9077,7 +8854,7 @@ ssize_t recv(int sockfd, void *buf, size_t len, int flags); See recvfrom().

    -

    2.12.9 recvfrom

    +

    2.11.9 recvfrom

    Function Prototype:

    @@ -9140,7 +8917,7 @@ ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags, The argument sockfd does not refer to a socket. -

    2.12.10 setsockopt

    +

    2.11.10 setsockopt

    Function Prototype:

    @@ -9200,7 +8977,7 @@ int setsockopt(int sockfd, int level, int option, Insufficient resources are available in the system to complete the call. -

    2.12.11 getsockopt

    +

    2.11.11 getsockopt

    Function Prototype:

    @@ -9593,10 +9370,10 @@ notify a task when a message is available on a queue.
  • pipe
  • poll
  • poll.h
  • -
  • posix_spawn
  • -
  • posix_spawn_file_actions_addclose
  • +
  • posix_spawn
  • +
  • posix_spawn_file_actions_addclose
  • posix_spawn_file_actions_adddup2
  • posix_spawn_file_actions_addopen
  • posix_spawn_file_actions_destroy
  • @@ -9677,12 +9454,12 @@ notify a task when a message is available on a queue.
  • recv
  • recvfrom
  • rename
  • + +
  • rmdir
  • rewinddir
  • ROM disk driver
  • ROMFS
  • - -
  • sched_getparam
  • sched_get_priority_max
  • sched_get_priority_min
  • @@ -9759,12 +9536,6 @@ notify a task when a message is available on a queue.
  • wait
  • waitid
  • waitpid -
  • Watchdog Timer Interfaces -
  • wd_cancel
  • -
  • wd_create
  • -
  • wd_delete
  • -
  • wd_gettime
  • -
  • wd_start
  • write
  • XIP
  • From f0afe3027764e332f62ca7263eb1b4d66a7a4c11 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 22 Aug 2014 08:46:34 -0600 Subject: [PATCH 1290/1518] Add support for statically allocated watchdog timer structures --- Documentation/NuttxPortingGuide.html | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index aaf1597c6d..011048d2a3 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -2705,33 +2705,35 @@ int up_timer_start(FAR const struct timespec *ts); or kill() to communicate with NuttX tasks.

    -

    4.3.5.1 wd_create

    +

    4.3.5.1 wd_create/wd_static

    Function Prototype:

         #include <nuttx/wdog.h>
         WDOG_ID wd_create(void);
    +    void wd_static(FAR struct wdog_s *wdog);
     

    -Description: The wd_create function will create a watchdog -by allocating the appropriate resources for the watchdog. +Description: The wd_create() function will create a timer by allocating the appropriate resources for the watchdog. The wd_create() function returns a pointer to a fully initialized, dynamically allocated struct wdog_s instance (which is typedef'ed as WDOG_ID); +

    +

    +wd_static() performs the equivalent initialization of a statically allocated struct wdog_s instance. No allocation is performed in this case. The initializer definition, WDOG_INITIALIZER is also available for initialization of static instances of struct wdog_s. NOTE: wd_static() is also implemented as a macro definition. +

    Input Parameters: None.

    Returned Value:

      -
    • Pointer to watchdog that may be used as a handle in subsequent -NuttX calls (i.e., the watchdog ID), or NULL if insufficient resources -are available to create the watchdogs. +
    • Pointer to watchdog that may be used as a handle in subsequent NuttX calls (i.e., the watchdog ID), or NULL if insufficient resources are available to create the watchdogs.

    @@ -2760,10 +2762,11 @@ initialization time).

    -Description: The wd_delete function will deallocate a -watchdog. The watchdog will be removed from the timer queue if -has been started. +Description: The wd_delete function will deallocate a watchdog timer previously allocated via wd_create(). The watchdog timer will be removed from the timer queue if has been started.

    +

    +This function need not be called for statically allocated timers (but it is not harmful to do so). +

    Input Parameters:
    • wdog. The watchdog ID to delete. This is actually a From 84d5334cd279af2b417f020862e9c582c09fe4e1 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 22 Aug 2014 12:32:34 -0600 Subject: [PATCH 1291/1518] An address environment is the property of a task group, not of a thread --- Documentation/NuttXBinfmt.html | 4 +- Documentation/NuttxPortingGuide.html | 145 ++++++++++++++------------- 2 files changed, 76 insertions(+), 73 deletions(-) diff --git a/Documentation/NuttXBinfmt.html b/Documentation/NuttXBinfmt.html index 2f4f6e4252..0df3b6475e 100644 --- a/Documentation/NuttXBinfmt.html +++ b/Documentation/NuttXBinfmt.html @@ -8,7 +8,7 @@

      NuttX Binary Loader

      -

      Last Updated: January 16, 2013

      +

      Last Updated: August 22, 2014

      @@ -170,7 +170,7 @@ struct binary_s */ #ifdef CONFIG_ADDRENV - task_addrenv_t addrenv; /* Task address environment */ + group_addrenv_t addrenv; /* Task group address environment */ #endif size_t mapsize; /* Size of the mapped address region (needed for munmap) */ diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 011048d2a3..88c7bb2e1c 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

      NuttX RTOS Porting Guide

      -

      Last Updated: August 21, 2014

      +

      Last Updated: August 22, 2014

      @@ -107,13 +107,13 @@ 4.4 Address Environments 4.5 APIs Exported by NuttX to Architecture-Specific Logic
        @@ -2625,7 +2625,7 @@ int up_alarm_cancel(FAR struct timespec *ts); May be called from interrupt level handling or from the normal tasking level. iterrupts may need to be disabled internally to assure non-reentrancy.
      -
      4.3.4.4.5 up_alarm_start()
      +
      4.3.4.4.4 up_alarm_start()

      Function Prototype:

         #include <nuttx/arch.h>
        @@ -2930,8 +2930,7 @@ VxWorks provides the following comparable interface:
             

        Binary Loader Support. These are low-level interfaces used in binfmt/ to instantiate tasks with address environments. - These interfaces all operate on type task_addrenv_t which is an abstract representation of a asks's address environment and must be defined in arch/arch.h if CONFIG_ADDRENV is defined. - These low-level interfaces include: + These interfaces all operate on type group_addrenv_t which is an abstract representation of a task group's address environment and the type must be defined inarch/arch.h if CONFIG_ADDRENV is defined. These low-level interfaces include:

        @@ -2964,31 +2963,30 @@ VxWorks provides the following comparable interface:

        Tasking Support. Other interfaces must be provided to support higher-level interfaces used by the NuttX tasking logic. - These interfaces are* used by the functions in sched/ and all operate on the TCB which as been assigned an address environment by up_addrenv_assign(). + These interfaces are* used by the functions in sched/ and all operate on the task group which as been assigned an address environment by up_addrenv_assign().

        • - 4.4.7 up_addrenv_share(): - Clone the address environment assigned to one TCB to another. + 4.4.7 up_addrenv_attach(): + Clone the group address environment assigned to a new thread. This operation is done when a pthread is created that share's the same address environment.
        • - 4.4.8 up_addrenv_release(): - Release the TCB's reference to an address environment when a task/thread exits. + 4.4.8 up_addrenv_detach(): + Release the thread's reference to a group address environment when a task/thread exits.
        -

        4.4.1 up_addrenv_create()

        Function Prototype:

          - int up_addrenv_create(size_t envsize, FAR task_addrenv_t *addrenv); + int up_addrenv_create(size_t envsize, FAR group_addrenv_t *addrenv);

        Description:

          - This function is called from the binary loader logic when a new task is created in order to instantiate an address environment for the task. + This function is called when a new task is created in order to instantiate an address environment for the new task group. up_addrenv_create() is essentially the allocator of the physical memory for the new task.

        Input Parameters:

        @@ -3001,10 +2999,28 @@ VxWorks provides the following comparable interface: Zero (OK) on success; a negated errno value on failure.
      -

      4.4.2 up_addrenv_vaddr()

      +

      4.4.2 up_addrenv_destroy()

      Function Prototype:

        - int up_addrenv_vaddr(FAR task_addrenv_t addrenv, FAR void **vaddr); + int up_addrenv_destroy(group_addrenv_t addrenv); +
      +

      Description:

      +
        + This function is called when a final thread leaves the task group and the task group is destroyed. This function then destroys the defunct address environment, releasing the underlying physical memory allocated by up_addrenv_create(). +
      +

      Input Parameters:

      +
        +
      • addrenv: The representation of the task address environment previously returned by up_addrenv_create.
      • +
      +

      Returned Value:

      +
        + Zero (OK) on success; a negated errno value on failure. +
      + +

      4.4.3 up_addrenv_vaddr()

      +

      Function Prototype:

      +

        + int up_addrenv_vaddr(FAR group_addrenv_t addrenv, FAR void **vaddr);

      Description:

        @@ -3021,10 +3037,10 @@ VxWorks provides the following comparable interface: Zero (OK) on success; a negated errno value on failure.
      -

      4.4.3 up_addrenv_select()

      +

      4.4.4 up_addrenv_select()

      Function Prototype:

        - int up_addrenv_select(task_addrenv_t addrenv, hw_addrenv_t *oldenv); + int up_addrenv_select(group_addrenv_t addrenv, hw_addrenv_t *oldenv);

      Description:

        @@ -3037,7 +3053,7 @@ VxWorks provides the following comparable interface:
      • oldenv: The address environment that was in place before up_addrenv_select() was called. This may be used with up_addrenv_restore() to restore the original address environment that was in place before up_addrenv_select() was called. - Note that this may be a task agnostic, hardware representation that is different from task_addrenv_t. + Note that this may be a task agnostic, hardware representation that is different from group_addrenv_t.

      Returned Value:

      @@ -3045,7 +3061,7 @@ VxWorks provides the following comparable interface: Zero (OK) on success; a negated errno value on failure.
    -

    4.4.4 up_addrenv_restore()

    +

    4.4.5 up_addrenv_restore()

    Function Prototype:

      int up_addrenv_restore(hw_addrenv_t oldenv); @@ -3064,76 +3080,63 @@ VxWorks provides the following comparable interface: Zero (OK) on success; a negated errno value on failure.
    -

    4.4.5 up_addrenv_destroy()

    -

    Function Prototype:

    -

      - int up_addrenv_destroy(task_addrenv_t addrenv); -
    -

    Description:

    -
      - Called from the binary loader loader during error handling to destroy the address environment previously created by up_addrenv_create(). -
    -

    Input Parameters:

    -
      -
    • addrenv: The representation of the task address environment previously returned by up_addrenv_create.
    • -
    -

    Returned Value:

    -
      - Zero (OK) on success; a negated errno value on failure. -
    -

    4.4.6 up_addrenv_assign()

    Function Prototype:

      - int up_addrenv_assign(task_addrenv_t addrenv, FAR struct tcb_s *tcb); + int up_addrenv_assign(group_addrenv_t addrenv, FAR struct task_group_s *group);

    Description:

      - Assign an address environment to a TCB. + Assign an address environment to a new task group.

    Input Parameters:

      -
    • addrenv: The representation of the task address environment previously returned by up_addrenv_create.
    • -
    • tcb: The TCB of the task to receive the address environment.
    • +
    • addrenv: The representation of the group address environment previously returned by up_addrenv_create.
    • +
    • group: The new task group to receive the address environment.

    Returned Value:

      Zero (OK) on success; a negated errno value on failure.
    -

    4.4.7 up_addrenv_share()

    +

    4.4.7 up_addrenv_attach()

    Function Prototype:

      - int up_addrenv_share(FAR const struct tcb_s *ptcb, FAR struct tcb_s *ctcb); + int up_addrenv_attach(FAR struct task_group_s *group, FAR struct tcb_s *tcb);

    Description:

      - This function is called from the core scheduler logic when a thread is created that needs to share the address environment of its parent task. - In this case, the parent's address environment needs to be "cloned" for the child thread. +

      + This function is called from the core scheduler logic when a thread is created that needs to share the address environment of its task group. + In this case, the group's address environment may need to be "cloned" for the child thread. +

      +

      + NOTE: In most platforms, nothing will need to be done in this case. + Simply being a member of the group that has the address environment may be sufficient. +

    Input Parameters:

      -
    • ptcb: The TCB of the parent task that has the address environment.
    • -
    • ctcb: The TCB of the child thread needing the address environment.
    • +
    • group: The task group to which the new thread belongs.
    • +
    • ctcb: The TCB of the thread needing the address environment.

    Returned Value:

      Zero (OK) on success; a negated errno value on failure.
    -

    4.4.8 up_addrenv_release()

    +

    4.4.8 up_addrenv_detach()

    Function Prototype:

      - int up_addrenv_release(FAR struct tcb_s *tcb); + int up_addrenv_detach(FAR struct task_group_s *group, FAR struct task_group_s *tcb);

    Description:

      - This function is called when a task or thread exits in order to release its reference to an address environment. - When there are no further references to an address environment, that address environment should - be destroyed. + This function is called when a task or thread exits in order to release its reference to an address environment. The address environment, however, should persist until up_addrenv_destroy() is called when the task group is itself destroyed. Any resources unique to this thread may be destroyed now.

    Input Parameters:

      +
    • group: The group to which the thread belonged.
    • tcb: The TCB of the task or thread whose the address environment will be released.

    Returned Value:

    From e86d5d4bcb06cc7f7dbd1bbb23758563679023e9 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 24 Aug 2014 06:42:11 -0600 Subject: [PATCH 1292/1518] Change CONFIG_ADDRENV to CONFIG_ARCH_ADDRENV; change how it is selected -- the architecure must first declare support --- Documentation/NuttXBinfmt.html | 2 +- Documentation/NuttxPortingGuide.html | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Documentation/NuttXBinfmt.html b/Documentation/NuttXBinfmt.html index 0df3b6475e..c87e6cd890 100644 --- a/Documentation/NuttXBinfmt.html +++ b/Documentation/NuttXBinfmt.html @@ -169,7 +169,7 @@ struct binary_s * used to manage the tasks address space. */ -#ifdef CONFIG_ADDRENV +#ifdef CONFIG_ARCH_ADDRENV group_addrenv_t addrenv; /* Task group address environment */ #endif diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 88c7bb2e1c..eb5a9509d3 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -2915,11 +2915,12 @@ VxWorks provides the following comparable interface:

    4.4 Address Environments

    CPUs that support memory management units (MMUs) may provide address environments within which tasks and their child threads execute. - The configuration indicates the CPUs ability to support address environments by setting the configuration variable CONFIG_ADDRENV=y. + The configuration indicates the CPUs ability to support address environments by setting the configuration variable CONFIG_ARCH_HAVE_ADDRENV=y. + That will enable the selection of the actual address evironment support which is indicated by the selection of the configuration variable CONFIG_ARCH_ADDRENV=y. These address environments are created only when tasks are created via exec() or exec_module() (see include/nuttx/binfmt/binfmt.h).

    - When CONFIG_ADDRENV=y is set in the board configuration, the CPU-specific logic must provide a set of interfaces as defined in the header file include/nuttx/arch.h. + When CONFIG_ARCH_ADDRENV=y is set in the board configuration, the CPU-specific logic must provide a set of interfaces as defined in the header file include/nuttx/arch.h. These interfaces are listed below and described in detail in the following paragraphs.

    @@ -2930,7 +2931,7 @@ VxWorks provides the following comparable interface:

    Binary Loader Support. These are low-level interfaces used in binfmt/ to instantiate tasks with address environments. - These interfaces all operate on type group_addrenv_t which is an abstract representation of a task group's address environment and the type must be defined inarch/arch.h if CONFIG_ADDRENV is defined. These low-level interfaces include: + These interfaces all operate on type group_addrenv_t which is an abstract representation of a task group's address environment and the type must be defined inarch/arch.h if CONFIG_ARCH_ADDRENV is defined. These low-level interfaces include:

    • From 0c9f651e62c7b1ff1d27d4643ca30aa7817c0dfb Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 24 Aug 2014 09:57:53 -0600 Subject: [PATCH 1293/1518] Add addrenv.h; First cut at Cortex-A address environment structures; Add configuration options to setup address enviornment --- Documentation/NuttxPortingGuide.html | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index eb5a9509d3..e76b2ce0a5 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -2541,7 +2541,7 @@ config ARCH_SIM

      Since timers are a limited resource, the use of two timers could be an issue on some systems. - The job could be done with a single timer if, for example, the single timer were kept in a free-running at all times. Some timer/counters have the capability to generate a compare interrupt when the timer matches a comparison value but also to continue counting without stopping. If your hardware supports such counters, one might used the CONFIG_SCHED_TICKLESS_ALARM option and be able to simply set the comparison count at the value of the free running timer PLUS the desired delay. Then you could have both with a single timer: An alarm and a free-running counter with the same timer! + The job could be done with a single timer if, for example, the single timer were kept in a free-running at all times. Some timer/counters have the capability to generate a compare interrupt when the timer matches a comparison value but also to continue counting without stopping. If your hardware supports such counters, one might used the CONFIG_SCHED_TICKLESS_ALARM option and be able to simply set the comparison count at the value of the free running timer PLUS the desired delay. Then you could have both with a single timer: An alarm and a free-running counter with the same timer!

      In addition to these imported interfaces, the RTOS will export the following interfaces for use by the platform-specific interval timer implementation: @@ -3041,7 +3041,7 @@ VxWorks provides the following comparable interface:

      4.4.4 up_addrenv_select()

      Function Prototype:

        - int up_addrenv_select(group_addrenv_t addrenv, hw_addrenv_t *oldenv); + int up_addrenv_select(group_addrenv_t addrenv, save_addrenv_t *oldenv);

      Description:

        @@ -3054,7 +3054,7 @@ VxWorks provides the following comparable interface:
      • oldenv: The address environment that was in place before up_addrenv_select() was called. This may be used with up_addrenv_restore() to restore the original address environment that was in place before up_addrenv_select() was called. - Note that this may be a task agnostic, hardware representation that is different from group_addrenv_t. + Note that this may be a task agnostic, platform-specific representation that may or may not be different from group_addrenv_t.

      Returned Value:

      @@ -3065,7 +3065,7 @@ VxWorks provides the following comparable interface:

      4.4.5 up_addrenv_restore()

      Function Prototype:

        - int up_addrenv_restore(hw_addrenv_t oldenv); + int up_addrenv_restore(save_addrenv_t oldenv);

      Description:

        @@ -3074,7 +3074,7 @@ VxWorks provides the following comparable interface:

      Input Parameters:

        -
      • oldenv: The hardware representation of the address environment previously returned by up_addrenv_select().
      • +
      • oldenv: The platform-specific representation of the address environment previously returned by up_addrenv_select().

      Returned Value:

      -

      4.4.3 up_addrenv_vaddr()

      +

      4.4.3 up_addrenv_vtext()

      Function Prototype:

        - int up_addrenv_vaddr(FAR group_addrenv_t addrenv, FAR void **vaddr); + int up_addrenv_vtext(FAR group_addrenv_t addrenv, FAR void **vtext);

      Description:

        - Return the virtual address associated with the newly create address environment. + Return the virtual .text address associated with the newly create address environment. This function is used by the binary loaders in order get an address that can be used to initialize the new task.

      Input Parameters:

      • addrenv: The representation of the task address environment previously returned by up_addrenv_create.
      • -
      • vaddr: The location to return the virtual address.
      • +
      • vtext: The location to return the virtual address.

      Returned Value:

        Zero (OK) on success; a negated errno value on failure.
      -

      4.4.4 up_addrenv_select()

      +

      4.4.4 up_addrenv_vdata()

      +

      Function Prototype:

      +

        + int up_addrenv_vdata(FAR group_addrenv_t addrenv, size_t textsize, FAR void **vdata); +
      +

      Description:

      +
        + Return the virtual .text address associated with the newly create address environment. + This function is used by the binary loaders in order get an address that can be used to initialize the new task. +
      +

      Input Parameters:

      +
        +
      • addrenv: The representation of the task address environment previously returned by up_addrenv_create.
      • +
      • textsize: For some implementations, the text and data will be saved in the same memory region (read/write/execute) and, in this case, the virtual address of the data just lies at this offset into the common region.
      • +
      • vdata: The location to return the virtual address.
      • +
      +

      Returned Value:

      +
        + Zero (OK) on success; a negated errno value on failure. +
      + +

      4.4.5 up_addrenv_select()

      Function Prototype:

        int up_addrenv_select(group_addrenv_t addrenv, save_addrenv_t *oldenv); @@ -3062,7 +3089,7 @@ VxWorks provides the following comparable interface: Zero (OK) on success; a negated errno value on failure.
      -

      4.4.5 up_addrenv_restore()

      +

      4.4.6 up_addrenv_restore()

      Function Prototype:

        int up_addrenv_restore(save_addrenv_t oldenv); @@ -3081,10 +3108,10 @@ VxWorks provides the following comparable interface: Zero (OK) on success; a negated errno value on failure.
      -

      4.4.6 up_addrenv_assign()

      +

      4.4.7 up_addrenv_assign()

      Function Prototype:

        - int up_addrenv_assign(group_addrenv_t addrenv, FAR struct task_group_s *group); + int up_addrenv_assign(FAR const group_addrenv_t *addrenv, FAR struct task_group_s *group);

      Description:

        @@ -3100,7 +3127,7 @@ VxWorks provides the following comparable interface: Zero (OK) on success; a negated errno value on failure.
      -

      4.4.7 up_addrenv_attach()

      +

      4.4.8 up_addrenv_attach()

      Function Prototype:

        int up_addrenv_attach(FAR struct task_group_s *group, FAR struct tcb_s *tcb); @@ -3126,7 +3153,7 @@ VxWorks provides the following comparable interface: Zero (OK) on success; a negated errno value on failure.
      -

      4.4.8 up_addrenv_detach()

      +

      4.4.9 up_addrenv_detach()

      Function Prototype:

        int up_addrenv_detach(FAR struct task_group_s *group, FAR struct task_group_s *tcb); From 3b1136cf2f0402562cea9456c3b06928987e57b1 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 25 Aug 2014 13:28:13 -0600 Subject: [PATCH 1295/1518] Misc changed to get the SAMA5 ELF configuration with address environments working --- Documentation/NuttxPortingGuide.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index f67ccdc0d3..ec36ac4d11 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -3009,7 +3009,7 @@ VxWorks provides the following comparable interface:

        4.4.2 up_addrenv_destroy()

        Function Prototype:

          - int up_addrenv_destroy(group_addrenv_t addrenv); + int up_addrenv_destroy(group_addrenv_t *addrenv);

        Description:

          @@ -3047,7 +3047,7 @@ VxWorks provides the following comparable interface:

          4.4.4 up_addrenv_vdata()

          Function Prototype:

            - int up_addrenv_vdata(FAR group_addrenv_t addrenv, size_t textsize, FAR void **vdata); + int up_addrenv_vdata(FAR group_addrenv_t *addrenv, size_t textsize, FAR void **vdata);

          Description:

            @@ -3068,7 +3068,7 @@ VxWorks provides the following comparable interface:

            4.4.5 up_addrenv_select()

            Function Prototype:

              - int up_addrenv_select(group_addrenv_t addrenv, save_addrenv_t *oldenv); + int up_addrenv_select(group_addrenv_t *addrenv, save_addrenv_t *oldenv);

            Description:

            @@ -2960,8 +2960,8 @@ VxWorks provides the following comparable interface: Restore an address environment.
          • - 4.4.7 up_addrenv_assign(): - Assign an address environment to a thread. + 4.4.7 up_addrenv_clone(): + Copy an address environment from one location to another.
          @@ -2969,7 +2969,7 @@ VxWorks provides the following comparable interface:

          Tasking Support. Other interfaces must be provided to support higher-level interfaces used by the NuttX tasking logic. - These interfaces are* used by the functions in sched/ and all operate on the task group which as been assigned an address environment by up_addrenv_assign(). + These interfaces are* used by the functions in sched/ and all operate on the task group which as been assigned an address environment by up_addrenv_clone().

          • @@ -3108,19 +3108,19 @@ VxWorks provides the following comparable interface: Zero (OK) on success; a negated errno value on failure.
          -

          4.4.7 up_addrenv_assign()

          +

          4.4.7 up_addrenv_clone()

          Function Prototype:

            - int up_addrenv_assign(FAR const group_addrenv_t *addrenv, FAR struct task_group_s *group); + int up_addrenv_clone(FAR const task_group_s *src, FAR struct task_group_s *dest);

          Description:

            - Assign an address environment to a new task group. + Duplicate an address environment. This does not copy the underlying memory, only the representation that can be used to instantiate that memory as an address environment.

          Input Parameters:

            -
          • addrenv: The representation of the group address environment previously returned by up_addrenv_create.
          • -
          • group: The new task group to receive the address environment.
          • +
          • src: The address environment to be copied.
          • +
          • dest: The location to receive the copied address environment.

          Returned Value:

            From 953584777c08ca70a5e70458e5799613e97c7882 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 29 Aug 2014 14:47:22 -0600 Subject: [PATCH 1297/1518] Rename CONFIG_NUTTX_KERNEL to CONFIG_BUILD_PROTECTED; Partially integrate new CONFIG_BUILD_KERNEL --- Documentation/NuttxPortingGuide.html | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 88155b8cad..7bbadfaed3 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

            NuttX RTOS Porting Guide

            -

            Last Updated: August 24, 2014

            +

            Last Updated: August 29, 2014

            @@ -486,7 +486,7 @@ kernel-mode NuttX functions. This directory must always be provided to prevent compilation errors. However, it need only contain valid function declarations if the architecture - supports the CONFIG_NUTTX_KERNEL configuration. + supports the CONFIG_BUILD_PROTECTED or CONFIG_BUILD_KERNELconfigurations.
            • uintptr_t sys_call0(unsigned int nbr): @@ -1329,7 +1329,7 @@ include/

              Normally the logic in this file builds to a single library (libc.a). - However, if NuttX is built as a separately compiled kernel (with CONFIG_NUTTX_KERNEL=y), then the contents of this directory are built as two libraries: + However, if NuttX is built as a separately compiled kernel (with CONFIG_BUILD_PROTECTED=y or CONFIG_BUILD_KERNEL=y), then the contents of this directory are built as two libraries: One for use by user programs (libuc.a) and one for use only within the <kernel> space (libkc.a).

              @@ -1393,7 +1393,7 @@ libc/

              2.14 nuttx/syscall

              - If NuttX is built as a separately compiled kernel (with CONFIG_NUTTX_KERNEL=y), + If NuttX is built as a separately compiled kernel (with CONFIG_BUILD_PROTECTED=y or CONFIG_BUILD_KERNEL=y), then the contents of this directory are built. This directory holds a syscall interface that can be used for communication between user-mode applications and the kernel-mode RTOS. @@ -1783,13 +1783,10 @@ The system can be re-made subsequently by just typing make.

              This function may also need to set up processor registers so that the new thread executes with the correct privileges. - If CONFIG_NUTTX_KERNEL has been selected in the NuttX configuration, - then special initialization may need to be performed depending on the task type specified - in the TCB's flags field: + If CONFIG_BUILD_PROTECTED or CONFIG_BUILD_KERNEL have been selected in the NuttX configuration, then special initialization may need to be performed depending on the task type specified in the TCB's flags field: Kernel threads will require kernel-mode privileges; User tasks and pthreads should have only user-mode privileges. - If CONFIG_NUTTX_KERNEL has not been selected, - then all threads should have kernel-mode privileges. + If neither CONFIG_BUILD_PROTECTED nor CONFIG_BUILD_KERNEL have been selected, then all threads should have kernel-mode privileges.

              4.2.4 up_create_stack()

              @@ -1839,7 +1836,7 @@ The system can be re-made subsequently by just typing make. This thread type is normally available in the flags field of the TCB, however, there are certain contexts where the TCB may not be fully initialized when up_create_stack is called.

              - If CONFIG_NUTTX_KERNEL is defined, then this thread type may affect how the stack is allocated. For example, kernel thread stacks should be allocated from protected kernel memory. Stacks for user tasks and threads must come from memory that is accessible to user code. + If CONFIG_BUILD_PROTECTED or CONFIG_BUILD_KERNEL are defined, then this thread type may affect how the stack is allocated. For example, kernel thread stacks should be allocated from protected kernel memory. Stacks for user tasks and threads must come from memory that is accessible to user code.

            @@ -1909,7 +1906,7 @@ The system can be re-made subsequently by just typing make.

          - This API is NOT required if CONFIG_NUTTX_KERNEL is undefined or if CONFIG_CUSTOM_STACK is defined. + This API is NOT required if CONFIG_BUILD_PROTECTED and CONFIG_BUILD_KERNEL are undefined or if CONFIG_CUSTOM_STACK is defined.

          Input Parameters:

            @@ -1965,7 +1962,7 @@ The system can be re-made subsequently by just typing make. This thread type is normally available in the flags field of the TCB, however, there are certain error recovery contexts where the TCB may not be fully initialized when up_release_stack is called.

            - If CONFIG_NUTTX_KERNEL is defined, then this thread type may affect how the stack is freed. + If CONFIG_BUILD_PROTECTED or CONFIG_BUILD_KERNEL are defined, then this thread type may affect how the stack is freed. For example, kernel thread stacks may have been allocated from protected kernel memory. Stacks for user tasks and threads must have come from memory that is accessible to user

            @@ -2150,7 +2147,7 @@ The system can be re-made subsequently by just typing make. This function will be called to dynamically set aside the heap region.

            - For the kernel build (CONFIG_NUTTX_KERNEL=y) with both kernel- and user-space heaps (CONFIG_MM_KERNEL_HEAP=y), this function provides the size of the unprotected, user-space heap. + For the kernel build (CONFIG_BUILD_PROTECTED=y or CONFIG_BUILD_KERNEL=y) with both kernel- and user-space heaps (CONFIG_MM_KERNEL_HEAP=y), this function provides the size of the unprotected, user-space heap. If a protected kernel-space heap is provided, the kernel heap must be allocated (and protected) by an analogous up_allocate_kheap().

            From c9a799b6915e7e3758f4529d4c34fd66512587fd Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 31 Aug 2014 17:04:02 -0600 Subject: [PATCH 1298/1518] Rename kfree to kmm_free for consistency with other naming conventions --- Documentation/NuttXBinfmt.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttXBinfmt.html b/Documentation/NuttXBinfmt.html index c87e6cd890..cb6be7e6f7 100644 --- a/Documentation/NuttXBinfmt.html +++ b/Documentation/NuttXBinfmt.html @@ -410,7 +410,7 @@ FAR char *exepath_next(EXEPATH_HANDLE handle, FAR const char *relpath);

            NOTE: The string pointer return in the success case points to allocated memory. - This memory must be freed by the called by calling kfree(). + This memory must be freed by the called by calling kmm_free().

            NULLrelpath from any absolute path in the PATH variable. From 83047cedb682360802263a65939587bf75a79e28 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 1 Sep 2014 13:21:15 -0600 Subject: [PATCH 1299/1518] Remove final traces of the 8015 from the NuttX source tree --- Documentation/NuttX.html | 17 +++++++++++------ Documentation/NuttxPortingGuide.html | 21 +-------------------- Documentation/README.html | 2 -- 3 files changed, 12 insertions(+), 28 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 049d4294ef..276ae22a7f 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

            NuttX RTOS

            -

            Last Updated: August 15, 2014

            +

            Last Updated: September 1, 2014

            @@ -1254,7 +1254,7 @@
          • Intel
          • @@ -1330,7 +1330,7 @@
          • Intel
          • @@ -3622,8 +3622,7 @@ Mem: 29232 5920 23312 23312

            PJRC 87C52 Development Board. - This port uses the PJRC 87C52 development system - and the SDCC toolchain under Linux or Cygwin. + This port uses the PJRC 87C52 development system and the SDCC toolchain under Linux or Cygwin.

              @@ -3633,7 +3632,13 @@ Mem: 29232 5920 23312 23312 address space during interrupt handling. This architecture has not been built in some time will likely have some compilation problems because of SDCC compiler differences. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information. +

              +

              + Obsoleted. + This architecture has been obsoleted. + The code has been moved out of the source tree an can now be found in Obsoleted directory. + This support was obsoleted because (1) the architecture limitations of the 8051 family make ongoing support too difficult, and (2) although the basic port was marginally functional, it has never really been demonstrated convincingly in any application.

            diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 7bbadfaed3..07996d513f 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -607,10 +607,6 @@ This is a work in progress. -
          • arch/8051: - 8051 Microcontroller. This port is not quite ready for prime time. -
          • -
          • arch/z16f: Zilog z16f Microcontroller. This port uses the Zilog z16f2800100zcog Development Kit. @@ -950,12 +946,6 @@ (PICkit 2 does not work with the PIC32).
          • -
          • configs/pjrc-8051: - 8051 Microcontroller. This port uses the PJRC 87C52 development system - and the SDCC toolchain under Linux or Cygwin. - This port is not quite ready for prime time. -
          • -
          • configs/qemu-i486: Port of NuttX to QEMU in i486 mode. This port will also run on real i486 hardware (Google the Bifferboard). @@ -1806,9 +1796,6 @@ The system can be re-made subsequently by just typing make.
          • adj_stack_ptr: Adjusted stack_alloc_ptr for HW. The initial value of the stack pointer.
          -

          - This API is NOT required if CONFIG_CUSTOM_STACK is defined. -

          Input Parameters:

            @@ -1861,9 +1848,6 @@ The system can be re-made subsequently by just typing make.
          • adj_stack_ptr: Adjusted stack_alloc_ptr for HW. The initial value of the stack pointer.
          -

          - This API is NOT required if CONFIG_CUSTOM_STACK is defined. -

          Input Parameters:

            @@ -1906,7 +1890,7 @@ The system can be re-made subsequently by just typing make.

          - This API is NOT required if CONFIG_BUILD_PROTECTED and CONFIG_BUILD_KERNEL are undefined or if CONFIG_CUSTOM_STACK is defined. + This API is NOT required if CONFIG_BUILD_PROTECTED and CONFIG_BUILD_KERNEL are undefined.

          Input Parameters:

            @@ -1937,9 +1921,6 @@ The system can be re-made subsequently by just typing make. A task has been stopped. Free all stack related resources retained int the defunct TCB.

            -

            - This API is NOT required if CONFIG_CUSTOM_STACK is defined. -

            Input Parameters:

            • diff --git a/Documentation/README.html b/Documentation/README.html index b2a8775d08..50304cff2e 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -164,8 +164,6 @@ | | | `- README.txt | | |- pirelli_dpl10/ | | | `- README.txt - | | |- pjrc-8051/ - | | | `- README.txt | | |- qemu-i486/ | | | `- README.txt | | |- rgmp/ From 2cecc4f8577247347b5b67ed60f7aac1f9961104 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 1 Sep 2014 15:39:34 -0600 Subject: [PATCH 1300/1518] There used to be two ways to pass parameters to new tasks, depending upon the configuration: Either (1) argv[] as created as an array with each string strdup'ed. Or (1) argv[] array and strings were created on the stack before the new task was started. Now, there is only one way, way (1). Way (2) might be slightly more compact, but this is not worth carry the complexity of two different ways of doing the same thing. --- Documentation/NuttX.html | 12 ++++++------ Documentation/NuttxPortingGuide.html | 5 +---- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 276ae22a7f..5bc50161ab 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -3634,13 +3634,13 @@ Mem: 29232 5920 23312 23312 problems because of SDCC compiler differences. Refer to the NuttX board README file for further information.

              -

              - Obsoleted. - This architecture has been obsoleted. - The code has been moved out of the source tree an can now be found in Obsoleted directory. - This support was obsoleted because (1) the architecture limitations of the 8051 family make ongoing support too difficult, and (2) although the basic port was marginally functional, it has never really been demonstrated convincingly in any application. -

            +

            + Obsoleted. + This architecture has been obsoleted. + The code has been moved out of the NuttX source tree but can still be found be found in Obsoleted directory. + This support was obsoleted because (1) the architecture limitations of the 8051 family make ongoing development of more advanced NuttX features too difficult, and (2) although the basic port was marginally functional, it has never really been demonstrated convincingly in any application. +

            diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 07996d513f..a2d1d08844 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -1870,7 +1870,7 @@ The system can be re-made subsequently by just typing make.

            Description. Allocate a stack frame in the TCB's stack to hold thread-specific data. - This function may be called anytime after up_create_stack() or up_use_stack() have been called but before the task has been started. + This function may be called any time after up_create_stack() or up_use_stack() have been called but before the task has been started.

            Thread data may be kept in the stack (instead of in the TCB) if it is accessed by the user code directly. @@ -1889,9 +1889,6 @@ The system can be re-made subsequently by just typing make. This will still be the initial value of the stack pointer when the task is started.

          -

          - This API is NOT required if CONFIG_BUILD_PROTECTED and CONFIG_BUILD_KERNEL are undefined. -

          Input Parameters:

          • From 6d23fe2c67c061ab226dfa25030f8f584ddffc13 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 5 Sep 2014 07:59:31 -0600 Subject: [PATCH 1301/1518] Remove the 16z board support from the main source tree. It is still avaialable in the misc/Obsoleted directory --- Documentation/NuttX.html | 10 ++++++++-- Documentation/README.html | 2 -- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 5bc50161ab..8b48a9074d 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -3962,7 +3962,7 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1);
          • - Toyaga 16z. + Toyaga 16z (obsoleted). This port if for the Toyaga 16z board that also use the Zilog ZNEOZ16F2811AL20EG microntroller with the Zilog ZDS-II Windows command line tools. The development environment is either Windows native or Cygwin under Windows.

            @@ -3970,8 +3970,14 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1); STATUS: The initial release of support for the 16z board was made available in NuttX version 6.33. Both the 16z board and the NuttX port are works in progress and are not ready for usage as of NuttX-7.2. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

            +

            + Obsoleted. + This architecture has been obsoleted. + The code has been moved out of the NuttX source tree but can still be found be found in Obsoleted directory. + This support was obsoleted because of technical issues that make NuttX unusable on the board at least in the short term. This configuration may return to the NuttX source tree at some time in the future. +

          diff --git a/Documentation/README.html b/Documentation/README.html index 50304cff2e..23e355f155 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -51,8 +51,6 @@ | |- audio/ | | `- README.txt | |- configs/ - | | |- 16z/ - | | | `- README.txt | | |- amber/ | | | `- README.txt | | |- arduino-due/ From 2fd7aacef9362649d79942d2a6594c76c9e77c65 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 9 Sep 2014 08:14:44 -0600 Subject: [PATCH 1302/1518] Add README.txt file for CC3200 Launchpad --- Documentation/README.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/README.html b/Documentation/README.html index 23e355f155..c67aaa4c86 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -8,7 +8,7 @@

          NuttX README Files

          -

          Last Updated: June 27, 2014

          +

          Last Updated: September 9, 2014

          @@ -59,6 +59,8 @@ | | | `- README.txt | | |- c5471evm/ | | | `- README.txt + | | |- cc3200-launchpad/ + | | | `- README.txt | | |- cloudctrl/ | | | `- README.txt | | |- compal_e86/ From c3c4c48d3e86234a7ed6ccd8f7516a3d48f3553f Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 10 Sep 2014 15:55:36 -0600 Subject: [PATCH 1303/1518] Add logic to initialize the per-process user heap when each user process is started --- Documentation/NuttxPortingGuide.html | 68 +++++++++++++++++++--------- 1 file changed, 47 insertions(+), 21 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index a2d1d08844..eb5a67cc10 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

          NuttX RTOS Porting Guide

          -

          Last Updated: August 29, 2014

          +

          Last Updated: September 10, 2014

          @@ -110,11 +110,12 @@ 4.4.2 up_addrenv_destroy()
          4.4.3 up_addrenv_vtext()
          4.4.4 up_addrenv_vdata()
          - 4.4.5 up_addrenv_select()
          - 4.4.6 up_addrenv_restore()
          - 4.4.7 up_addrenv_clone()
          - 4.4.8 up_addrenv_attach()
          - 4.4.9 up_addrenv_detach() + 4.4.5 up_addrenv_heapsize()
          + 4.4.6 up_addrenv_select()
          + 4.4.7 up_addrenv_restore()
          + 4.4.8 up_addrenv_clone()
          + 4.4.9 up_addrenv_attach()
          + 4.4.10 up_addrenv_detach()
        4.5 APIs Exported by NuttX to Architecture-Specific Logic @@ -2948,12 +2953,12 @@ VxWorks provides the following comparable interface:

        @@ -2963,7 +2968,7 @@ VxWorks provides the following comparable interface:

        4.4.1 up_addrenv_create()

        Function Prototype:

          - int up_addrenv_create(size_t textsize, size_t datasize, FAR group_addrenv_t *addrenv); + int up_addrenv_create(size_t textsize, size_t datasize, size_t heapsize, FAR group_addrenv_t *addrenv);

        Description:

          @@ -2974,6 +2979,7 @@ VxWorks provides the following comparable interface:
          • textsize: The size (in bytes) of the .text address environment needed by the task. This region may be read/execute only.
          • datasize: The size (in bytes) of the .bss/.data address environment needed by the task. This region may be read/write only.
          • +
          • heapsize: The initial size (in bytes) of the heap address environment needed by the task. This region may be read/write only.
          • addrenv: The location to return the representation of the task address environment.

          Returned Value:

          @@ -2992,7 +2998,7 @@ VxWorks provides the following comparable interface:

        Input Parameters:

          -
        • addrenv: The representation of the task address environment previously returned by up_addrenv_create.
        • +
        • addrenv: The representation of the task address environment previously returned by up_addrenv_create().

        Returned Value:

          @@ -3011,7 +3017,7 @@ VxWorks provides the following comparable interface:

        Input Parameters:

          -
        • addrenv: The representation of the task address environment previously returned by up_addrenv_create.
        • +
        • addrenv: The representation of the task address environment previously returned by up_addrenv_create().
        • vtext: The location to return the virtual address.

        Returned Value:

        @@ -3031,7 +3037,7 @@ VxWorks provides the following comparable interface:

      Input Parameters:

        -
      • addrenv: The representation of the task address environment previously returned by up_addrenv_create.
      • +
      • addrenv: The representation of the task address environment previously returned by up_addrenv_create().
      • textsize: For some implementations, the text and data will be saved in the same memory region (read/write/execute) and, in this case, the virtual address of the data just lies at this offset into the common region.
      • vdata: The location to return the virtual address.
      @@ -3040,7 +3046,27 @@ VxWorks provides the following comparable interface: Zero (OK) on success; a negated errno value on failure.
    -

    4.4.5 up_addrenv_select()

    +

    4.4.5 up_addrenv_heapsize()

    +

    Function Prototype:

    +

      + ssize_t up_addrenv_heapsize(FAR const group_addrenv_t *addrenv); +
    +

    Description:

    +
      + Return the initial heap allocation size. + That is the amount of memory allocated by up_addrenv_create() when the heap memory region was first created. + This may or may not differ from the heapsize parameter that was passed to up_addrenv_create(). +
    +

    Input Parameters:

    +
      +
    • addrenv: The representation of the task address environment previously returned by up_addrenv_create().
    • +
    +

    Returned Value:

    +
      + The initial heap size allocated is returned on success; a negated errno value on failure. +
    + +

    4.4.6 up_addrenv_select()

    Function Prototype:

      int up_addrenv_select(group_addrenv_t *addrenv, save_addrenv_t *oldenv); @@ -3052,7 +3078,7 @@ VxWorks provides the following comparable interface:

    Input Parameters:

      -
    • addrenv: The representation of the task address environment previously returned by up_addrenv_create.
    • +
    • addrenv: The representation of the task address environment previously returned by up_addrenv_create().
    • oldenv: The address environment that was in place before up_addrenv_select() was called. This may be used with up_addrenv_restore() to restore the original address environment that was in place before up_addrenv_select() was called. @@ -3064,7 +3090,7 @@ VxWorks provides the following comparable interface: Zero (OK) on success; a negated errno value on failure.
    -

    4.4.6 up_addrenv_restore()

    +

    4.4.7 up_addrenv_restore()

    Function Prototype:

      int up_addrenv_restore(save_addrenv_t oldenv); @@ -3083,7 +3109,7 @@ VxWorks provides the following comparable interface: Zero (OK) on success; a negated errno value on failure.
    -

    4.4.7 up_addrenv_clone()

    +

    4.4.8 up_addrenv_clone()

    Function Prototype:

      int up_addrenv_clone(FAR const task_group_s *src, FAR struct task_group_s *dest); @@ -3102,7 +3128,7 @@ VxWorks provides the following comparable interface: Zero (OK) on success; a negated errno value on failure.
    -

    4.4.8 up_addrenv_attach()

    +

    4.4.9 up_addrenv_attach()

    Function Prototype:

      int up_addrenv_attach(FAR struct task_group_s *group, FAR struct tcb_s *tcb); @@ -3128,7 +3154,7 @@ VxWorks provides the following comparable interface: Zero (OK) on success; a negated errno value on failure.
    -

    4.4.9 up_addrenv_detach()

    +

    4.4.10 up_addrenv_detach()

    Function Prototype:

    4.5 APIs Exported by NuttX to Architecture-Specific Logic
      @@ -2963,6 +2967,37 @@ VxWorks provides the following comparable interface:
    +
  • +

    + Dynamic Stack Support. + CONFIG_ARCH_STACK_DYNAMIC=y indicates that the user process stack resides in its own address space. + This options is also required if CONFIG_BUILD_KERNEL and CONFIG_LIBC_EXECFUNCS are selected. + Why? + Because the caller's stack must be preserved in its own address space when we instantiate the environment of the new process in order to initialize it. +

    +

    + NOTE: The naming of the CONFIG_ARCH_STACK_DYNAMIC selection implies that dynamic stack allocation is supported. + Certainly this option must be set if dynamic stack allocation is supported by a platform. + But the more general meaning of this configuration environment is simply that the stack has its own address space. +

    +

    + If CONFIG_ARCH_STACK_DYNAMIC=y is selected then the platform specific code must export these additional interfaces: +

    + +
  • 4.4.1 up_addrenv_create()

    @@ -3173,6 +3208,92 @@ VxWorks provides the following comparable interface: Zero (OK) on success; a negated errno value on failure. +

    4.4.11 up_addrenv_stackalloc()

    +

    Function Prototype:

    +

      + int up_addrenv_stackalloc(FAR struct tcb_s *tcb, size_t stacksize); +
    +

    Description:

    +
      +

      + This function is called when a new thread is created in order to instantiate an address environment for the new thread's stack. + up_addrenv_stackalloc() is essentially the allocator of the physical memory for the new task's stack. +

      +
    +

    Input Parameters:

    +
      +
    • tcb: The TCB of the thread that requires the stack address environment.
    • +
    • stacksize: The size (in bytes) of the initial stack address environment needed by the task. This region may be read/write only.
    • +
    +

    Returned Value:

    +
      + Zero (OK) on success; a negated errno value on failure. +
    + +

    4.4.12 up_addrenv_stackfree()

    +

    Function Prototype:

    +

      + int up_addrenv_stackfree(FAR struct tcb_s *tcb); +
    +

    Description:

    +
      +

      + This function is called when any thread exits. + This function then destroys the defunct address environment for the thread's stack, releasing the underlying physical memory. +

      +
    +

    Input Parameters:

    +
      +
    • tcb: The TCB of the thread that no longer requires the stack address environment.
    • +
    +

    Returned Value:

    +
      + Zero (OK) on success; a negated errno value on failure. +
    + +

    4.4.13 up_addrenv_vstack()

    +

    Function Prototype:

    +

      + int up_addrenv_vstack(FAR const struct tcb_s *tcb, FAR void **vstack); +
    +

    Description:

    +
      +

      + Return the virtual address associated with the newly create stack address environment. +

      +
    +

    Input Parameters:

    +
      +
    • tcb:The TCB of the thread with the stack address environment of interest.
    • +
    • vstack: The location to return the stack virtual base address.
    • +
    +

    Returned Value:

    +
      + Zero (OK) on success; a negated errno value on failure. +
    + +

    4.4.14 up_addrenv_stackselect()

    +

    Function Prototype:

    +

      + int up_addrenv_stackselect(FAR const struct tcb_s *tcb); +
    +

    Description:

    +
      +

      + After an address environment has been established for a task's stack (via up_addrenv_stackalloc(). + This function may be called to instantiate that address environment in the virtual address space. + This is a necessary step before each context switch to the newly created thread (including the initial thread startup). +

      +
    +

    Input Parameters:

    +
      +
    • tcb: The TCB of the thread with the stack address environment to be instantiated.
    • +
    +

    Returned Value:

    +
      + Zero (OK) on success; a negated errno value on failure. +
    +

    4.5 APIs Exported by NuttX to Architecture-Specific Logic

    These are standard interfaces that are exported by the OS From 6fd14f0e212404b4ccd598a7f6a25a56bee6a3e1 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 14 Sep 2014 09:10:09 -0600 Subject: [PATCH 1305/1518] Rename everything associated with the dynamic process stack to ustack to make room in the name space for a kstack --- Documentation/NuttxPortingGuide.html | 36 ++++++++++++++-------------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 9ebccab1b2..279bb57f0f 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -116,10 +116,10 @@ 4.4.8 up_addrenv_clone()
    4.4.9 up_addrenv_attach()
    4.4.10 up_addrenv_detach()
    - 4.4.11 up_addrenv_stackalloc()
    - 4.4.12 up_addrenv_stackfree()
    - 4.4.13 up_addrenv_vstack()
    - 4.4.14 up_addrenv_stackselect() + 4.4.11 up_addrenv_ustackalloc()
    + 4.4.12 up_addrenv_ustackfree()
    + 4.4.13 up_addrenv_vustack()
    + 4.4.14 up_addrenv_ustackselect() 4.5 APIs Exported by NuttX to Architecture-Specific Logic

    -

    4.4.11 up_addrenv_stackalloc()

    +

    4.4.11 up_addrenv_ustackalloc()

    Function Prototype:

      - int up_addrenv_stackalloc(FAR struct tcb_s *tcb, size_t stacksize); + int up_addrenv_ustackalloc(FAR struct tcb_s *tcb, size_t stacksize);

    Description:

      This function is called when a new thread is created in order to instantiate an address environment for the new thread's stack. - up_addrenv_stackalloc() is essentially the allocator of the physical memory for the new task's stack. + up_addrenv_ustackalloc() is essentially the allocator of the physical memory for the new task's stack.

    Input Parameters:

    @@ -3230,10 +3230,10 @@ VxWorks provides the following comparable interface: Zero (OK) on success; a negated errno value on failure. -

    4.4.12 up_addrenv_stackfree()

    +

    4.4.12 up_addrenv_ustackfree()

    Function Prototype:

      - int up_addrenv_stackfree(FAR struct tcb_s *tcb); + int up_addrenv_ustackfree(FAR struct tcb_s *tcb);

    Description:

      @@ -3251,10 +3251,10 @@ VxWorks provides the following comparable interface: Zero (OK) on success; a negated errno value on failure.
    -

    4.4.13 up_addrenv_vstack()

    +

    4.4.13 up_addrenv_vustack()

    Function Prototype:

      - int up_addrenv_vstack(FAR const struct tcb_s *tcb, FAR void **vstack); + int up_addrenv_vustack(FAR const struct tcb_s *tcb, FAR void **vstack);

    Description:

      @@ -3272,15 +3272,15 @@ VxWorks provides the following comparable interface: Zero (OK) on success; a negated errno value on failure.
    -

    4.4.14 up_addrenv_stackselect()

    +

    4.4.14 up_addrenv_ustackselect()

    Function Prototype:

      - int up_addrenv_stackselect(FAR const struct tcb_s *tcb); + int up_addrenv_ustackselect(FAR const struct tcb_s *tcb);

    Description:

      - After an address environment has been established for a task's stack (via up_addrenv_stackalloc(). + After an address environment has been established for a task's stack (via up_addrenv_ustackalloc(). This function may be called to instantiate that address environment in the virtual address space. This is a necessary step before each context switch to the newly created thread (including the initial thread startup).

      From 3d0f6aca5d39c38c0a7a35337fe6c5b0cb8d3d1f Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 14 Sep 2014 09:53:54 -0600 Subject: [PATCH 1306/1518] Add the initial implementation of the process kernel stack logic. Not yet integrated into the main OS logic nor tested. --- Documentation/NuttxPortingGuide.html | 68 +++++++++++++++++++++++++++- 1 file changed, 66 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 279bb57f0f..0a336ec00f 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

      NuttX RTOS Porting Guide

      -

      Last Updated: September 13, 2014

      +

      Last Updated: September 14, 2014

      @@ -119,7 +119,9 @@ 4.4.11 up_addrenv_ustackalloc()
      4.4.12 up_addrenv_ustackfree()
      4.4.13 up_addrenv_vustack()
      - 4.4.14 up_addrenv_ustackselect() + 4.4.14 up_addrenv_ustackselect()
      + 4.4.15 up_addrenv_kstackalloc()
      + 4.4.16 up_addrenv_kstackfree()
    4.5 APIs Exported by NuttX to Architecture-Specific Logic + +
  • +

    + If CONFIG_ARCH_KERNEL_STACK is selected, then each user process will have two stacks: (1) a large (and possibly dynamic) user stack and (2) a smaller kernel stack. However, this option is required if both CONFIG_BUILD_KERNEL and CONFIG_LIBC_EXECFUNCS are selected. Why? Because when we instantiate and initialize the address environment of the new user process, we will temporarily lose the address environment of the old user process, including its stack contents. The kernel C logic will crash immediately with no valid stack in place. +

    +

    + If CONFIG_ARCH_KERNEL_STACK=y is selected then the platform specific code must export these additional interfaces: +

    +
  • @@ -3294,6 +3317,47 @@ VxWorks provides the following comparable interface: Zero (OK) on success; a negated errno value on failure. +

    4.4.15 up_addrenv_kstackalloc()

    +

    Function Prototype:

    +

      + int up_addrenv_kstackalloc(FAR struct tcb_s *tcb, size_t stacksize); +
    +

    Description:

    +
      +

      + This function is called when a new thread is created to allocate the new thread's kernel stack. +

      +
    +

    Input Parameters:

    +
      +
    • tcb: The TCB of the thread that requires the kernel stack.
    • +
    • stacksize: The size (in bytes) of the kernel stack needed by the thread.
    • +
    +

    Returned Value:

    +
      + Zero (OK) on success; a negated errno value on failure. +
    + +

    4.4.16 up_addrenv_kstackfree()

    +

    Function Prototype:

    +

      + int up_addrenv_kstackfree(FAR struct tcb_s *tcb); +
    +

    Description:

    +
      +

      + This function is called when any thread exits. This function frees the kernel stack. +

      +
    +

    Input Parameters:

    +
      +
    • tcb: The TCB of the thread that no longer requires the kernel stack.
    • +
    +

    Returned Value:

    +
      + Zero (OK) on success; a negated errno value on failure. +
    +

    4.5 APIs Exported by NuttX to Architecture-Specific Logic

    These are standard interfaces that are exported by the OS From 8050d9fe2576903bdc4c7f42a3b533fb918f78ac Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 14 Sep 2014 11:19:34 -0600 Subject: [PATCH 1307/1518] Initial integration of kernel stack (does not work) --- Documentation/NuttxPortingGuide.html | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 0a336ec00f..aa4f3129a6 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -3320,18 +3320,19 @@ VxWorks provides the following comparable interface:

    4.4.15 up_addrenv_kstackalloc()

    Function Prototype:

      - int up_addrenv_kstackalloc(FAR struct tcb_s *tcb, size_t stacksize); + int up_addrenv_kstackalloc(FAR struct tcb_s *tcb);

    Description:

      This function is called when a new thread is created to allocate the new thread's kernel stack. + This function may be called for certain terminating threads which have no kernel stack. + It must be tolerant of that case.

    Input Parameters:

    • tcb: The TCB of the thread that requires the kernel stack.
    • -
    • stacksize: The size (in bytes) of the kernel stack needed by the thread.

    Returned Value:

      From d6966d9c5a9b16b1070aee9306b52341e8234a14 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 20 Sep 2014 14:18:08 -0600 Subject: [PATCH 1308/1518] Rename CONFIG_NXCONSOLE* to CONFIG_NXTERM* --- Documentation/NXGraphicsSubsystem.html | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/Documentation/NXGraphicsSubsystem.html b/Documentation/NXGraphicsSubsystem.html index af7392f5de..8fd35408cc 100644 --- a/Documentation/NXGraphicsSubsystem.html +++ b/Documentation/NXGraphicsSubsystem.html @@ -3375,7 +3375,7 @@ int nxf_convert_32bpp(FAR uint32_t *dest, uint16_t height,

      General NxConsole settings.

        -
        CONFIG_NXCONSOLE: +
        CONFIG_NXTERM:
        Enables building of the NxConsole driver.
      @@ -3383,17 +3383,17 @@ int nxf_convert_32bpp(FAR uint32_t *dest, uint16_t height,

      NxConsole output text/graphics options:

        -
        CONFIG_NXCONSOLE_BPP: +
        CONFIG_NXTERM_BPP:
        Currently, NxConsole supports only a single pixel depth. This configuration setting must be provided to support that single pixel depth. Default: The smallest enabled pixel depth. (see CONFIG_NX_DISABLE_*BPP) -
        CONFIG_NXCONSOLE_CURSORCHAR: +
        CONFIG_NXTERM_CURSORCHAR:
        The bitmap code to use as the cursor. Default '_' -
        CONFIG_NXCONSOLE_MXCHARS: +
        CONFIG_NXTERM_MXCHARS:
        NxConsole needs to remember every character written to the console so that it can redraw the window. This setting determines the size of some internal memory allocations used to hold the character data. Default: 128. -
        CONFIG_NXCONSOLE_CACHESIZE: +
        CONFIG_NXTERM_CACHESIZE:
        NxConsole supports caching of rendered fonts. This font caching is required for two reasons: @@ -3401,20 +3401,20 @@ int nxf_convert_32bpp(FAR uint32_t *dest, uint16_t height, (2) it preserves the font memory. Since the NX server runs on a separate server thread, it requires that the rendered font memory persist until the server has a chance to render the font. Unfortunately, the font cache would be quite large if all fonts were saved. - The CONFIG_NXCONSOLE_CACHESIZE setting will control the size of the font cache (in number of glyphs). + The CONFIG_NXTERM_CACHESIZE setting will control the size of the font cache (in number of glyphs). Only that number of the most recently used glyphs will be retained. Default: 16.
        NOTE: There can still be a race condition between the NxConsole driver and the NX task. If you every see character corruption (especially when printing - a lot of data or scrolling), then increasing the value of CONFIG_NXCONSOLE_CACHESIZE + a lot of data or scrolling), then increasing the value of CONFIG_NXTERM_CACHESIZE is something that you should try. Alternatively, you can reduce the size of CONFIG_MQ_MAXMSGSIZE which will force NxConsole task to pace the server task. - CONFIG_NXCONSOLE_CACHESIZE should be larger than CONFIG_MQ_MAXMSGSIZE in any event. + CONFIG_NXTERM_CACHESIZE should be larger than CONFIG_MQ_MAXMSGSIZE in any event.
        -
        CONFIG_NXCONSOLE_LINESEPARATION: +
        CONFIG_NXTERM_LINESEPARATION:
        This the space (in rows) between each row of test. Default: 0 -
        CONFIG_NXCONSOLE_NOWRAP: +
        CONFIG_NXTERM_NOWRAP:
        By default, lines will wrap when the test reaches the right hand side of the window. This setting can be defining to change this behavior so that the text is simply truncated until a new line is encountered.
        @@ -3423,15 +3423,15 @@ int nxf_convert_32bpp(FAR uint32_t *dest, uint16_t height,

        NxConsole input options:

          -
          CONFIG_NXCONSOLE_NXKBDIN: +
          CONFIG_NXTERM_NXKBDIN:
          Take input from the NX keyboard input callback. By default, keyboard input is taken from stdin (/dev/console). If this option is set, then the interfacenxcon_kdbin() is enabled. That interface may be driven by window callback functions so that keyboard input only goes to the top window.
          CONFIG__NXCONSOLE_KBDBUFSIZE: -
          If CONFIG_NXCONSOLE_NXKBDIN is enabled, then this value may be used to +
          If CONFIG_NXTERM_NXKBDIN is enabled, then this value may be used to define the size of the per-window keyboard input buffer. Default: 16 -
          CONFIG_NXCONSOLE_NPOLLWAITERS: +
          CONFIG_NXTERM_NPOLLWAITERS:
          The number of threads that can be waiting for read data available. Default: 4
          From 7e8a760c60f838662782d974e7ba31879ff6da71 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 20 Sep 2014 15:01:50 -0600 Subject: [PATCH 1309/1518] Change all occurrences of NxConsole to NxTerm --- Documentation/NXGraphicsSubsystem.html | 38 +++++++++++++------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/Documentation/NXGraphicsSubsystem.html b/Documentation/NXGraphicsSubsystem.html index 8fd35408cc..99b7134283 100644 --- a/Documentation/NXGraphicsSubsystem.html +++ b/Documentation/NXGraphicsSubsystem.html @@ -45,7 +45,7 @@ 1.3.3 NX Tool Kit (NXTK)
          1.3.4 NX Fonts Support (NXFONTS)
          1.3.5 NX Widgets (NxWidgets)
          - 1.3.6 NX Console Driver (NxConsole) + 1.3.6 NX Terminal Driver (NxTerm)

      @@ -191,7 +191,7 @@ B.4 NX Multi-User (Only) Configuration Settings
      B.5 NXTK Configuration Settings
      B.6 NXFONTS Configuration Settings
      - B.7 NxConsole Configuration Settings + B.7 NxTerm Configuration Settings

    @@ -403,12 +403,12 @@ NxWidgets is built on top of the core NuttX graphics subsystem, but is not a part of the core graphics subystems.

    -

    1.3.6 NX Console Driver (NxConsole)

    +

    1.3.6 NX Terminal Driver (NxTerm)

    - NxConsole is a write-only character device (not shown) that is built on top of an NX window. + NxTerm is a write-only character device (not shown) that is built on top of an NX window. This character device can be used to provide stdout and stderr and, hence, can provide the output side of NuttX console. - NxConsole is only available when the multi-user NX implementation is selected (CONFIG_NX_MULTIUSER). + NxTerm is only available when the multi-user NX implementation is selected (CONFIG_NX_MULTIUSER).

    @@ -3204,9 +3204,9 @@ int nxf_convert_32bpp(FAR uint32_t *dest, uint16_t height,
    nuttx/../nxwidgets
    The NxWidgets code is provided as a separate package located outside of the NuttX source tree (probably at this location). -
    graphics/nxconsole -
    The NxConsole driver is built on top of NX and works with either the single-user or multi-user NX version. - See include/nuttx/nx/nxconsole.h. +
    graphics/nxterm +
    The NxTerm driver is built on top of NX and works with either the single-user or multi-user NX version. + See include/nuttx/nx/nxterm.h.

    1There is no nxsu sub-directory in nuttx/libnx. @@ -3370,32 +3370,32 @@ int nxf_convert_32bpp(FAR uint32_t *dest, uint16_t height, -

    B.7 NxConsole Configuration Settings

    +

    B.7 NxTerm Configuration Settings

    -

    General NxConsole settings.

    +

    General NxTerm settings.

      CONFIG_NXTERM: -
      Enables building of the NxConsole driver. +
      Enables building of the NxTerm driver.
    -

    NxConsole output text/graphics options:

    +

    NxTerm output text/graphics options:

      CONFIG_NXTERM_BPP: -
      Currently, NxConsole supports only a single pixel depth. +
      Currently, NxTerm supports only a single pixel depth. This configuration setting must be provided to support that single pixel depth. Default: The smallest enabled pixel depth. (see CONFIG_NX_DISABLE_*BPP)
      CONFIG_NXTERM_CURSORCHAR:
      The bitmap code to use as the cursor. Default '_'
      CONFIG_NXTERM_MXCHARS: -
      NxConsole needs to remember every character written to the console so that it can redraw the window. +
      NxTerm needs to remember every character written to the console so that it can redraw the window. This setting determines the size of some internal memory allocations used to hold the character data. Default: 128.
      CONFIG_NXTERM_CACHESIZE:
      - NxConsole supports caching of rendered fonts. + NxTerm supports caching of rendered fonts. This font caching is required for two reasons: (1) First, it improves text performance, but more importantly (2) it preserves the font memory. @@ -3405,11 +3405,11 @@ int nxf_convert_32bpp(FAR uint32_t *dest, uint16_t height, Only that number of the most recently used glyphs will be retained. Default: 16.
      - NOTE: There can still be a race condition between the NxConsole driver and the + NOTE: There can still be a race condition between the NxTerm driver and the NX task. If you every see character corruption (especially when printing a lot of data or scrolling), then increasing the value of CONFIG_NXTERM_CACHESIZE is something that you should try. - Alternatively, you can reduce the size of CONFIG_MQ_MAXMSGSIZE which will force NxConsole task to pace the server task. + Alternatively, you can reduce the size of CONFIG_MQ_MAXMSGSIZE which will force NxTerm task to pace the server task. CONFIG_NXTERM_CACHESIZE should be larger than CONFIG_MQ_MAXMSGSIZE in any event.
      CONFIG_NXTERM_LINESEPARATION: @@ -3420,7 +3420,7 @@ int nxf_convert_32bpp(FAR uint32_t *dest, uint16_t height,
    -

    NxConsole input options:

    +

    NxTerm input options:

      CONFIG_NXTERM_NXKBDIN: @@ -3428,7 +3428,7 @@ int nxf_convert_32bpp(FAR uint32_t *dest, uint16_t height, By default, keyboard input is taken from stdin (/dev/console). If this option is set, then the interfacenxcon_kdbin() is enabled. That interface may be driven by window callback functions so that keyboard input only goes to the top window. -
      CONFIG__NXCONSOLE_KBDBUFSIZE: +
      CONFIG__NXTERM_KBDBUFSIZE:
      If CONFIG_NXTERM_NXKBDIN is enabled, then this value may be used to define the size of the per-window keyboard input buffer. Default: 16
      CONFIG_NXTERM_NPOLLWAITERS: From 813a3a69e203da3baf96ec6468d282bf4584d2cd Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 20 Sep 2014 15:53:28 -0600 Subject: [PATCH 1310/1518] More naming changes to get the stm3240g-eval/nxterm configuration building again --- Documentation/NXGraphicsSubsystem.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NXGraphicsSubsystem.html b/Documentation/NXGraphicsSubsystem.html index 99b7134283..5c1c1ed812 100644 --- a/Documentation/NXGraphicsSubsystem.html +++ b/Documentation/NXGraphicsSubsystem.html @@ -3426,7 +3426,7 @@ int nxf_convert_32bpp(FAR uint32_t *dest, uint16_t height,
      CONFIG_NXTERM_NXKBDIN:
      Take input from the NX keyboard input callback. By default, keyboard input is taken from stdin (/dev/console). - If this option is set, then the interfacenxcon_kdbin() is enabled. + If this option is set, then the interfacenxterm_kdbin() is enabled. That interface may be driven by window callback functions so that keyboard input only goes to the top window.
      CONFIG__NXTERM_KBDBUFSIZE:
      If CONFIG_NXTERM_NXKBDIN is enabled, then this value may be used to From 3cedbb4578c487c8ebf5766d539120d545e69922 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 22 Sep 2014 14:53:56 -0600 Subject: [PATCH 1311/1518] Add the build framework and skeleton files for the shared memory feature (no logic yet provided) --- Documentation/NuttxUserGuide.html | 344 ++++++++++++++++++++++++++++-- 1 file changed, 323 insertions(+), 21 deletions(-) diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 07246ff7e8..480c7daf7b 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -13,7 +13,7 @@

      NuttX Operating System

      User's Manual

      by

      Gregory Nutt

      -

      Last Updated: August 21, 2014

      +

      Last Updated: September 22, 2014

    @@ -63,6 +63,7 @@
  • Paragraph 2.9 Environment Variables
  • Paragraph 2.10 File System Interfaces
  • Paragraph 2.11 Network Interfaces
  • +
  • Paragraph 2.12 Shared Memory Interfaces
  • @@ -8419,25 +8420,24 @@ FAR void *mmap(FAR void *start, size_t length, int prot, int flags, int fd, off_ -

    NuttX includes a simple interface layer based on uIP (see http://www.sics.se). -NuttX supports subset of a standard socket interface to uIP. -These network feature can be enabled by settings in the architecture -configuration file. -Those socket APIs are discussed in the following paragraphs.

    +

    + NuttX includes a simple interface layer based on uIP (see http://www.sics.se). + NuttX supports subset of a standard socket interface to uIP. + These network feature can be enabled by settings in the architecture configuration file. + Those socket APIs are discussed in the following paragraphs. +

    2.11.1 socket

    @@ -8983,8 +8983,7 @@ int setsockopt(int sockfd, int level, int option,

       #include <sys/socket.h>
      -int getsockopt(int sockfd, int level, int option,
      -               void *value, socklen_t *value_len);
      +int getsockopt(int sockfd, int level, int option, void *value, socklen_t *value_len);
       

    Description: @@ -9032,6 +9031,309 @@ int getsockopt(int sockfd, int level, int option, Insufficient resources are available in the system to complete the call.

  • + + + + +
    +

    2.12 Shared Memory Interfaces

    +
    +

    + Shared memory interfaces are only available with the NuttX kernel build (CONFIG_BUILD_KERNEL=y). + These interfaces support user memory regions that can be shared between multiple user processes. + Shared memory interfaces: +

    + +

    + NOTE: This is advance documentation. These interfaces are not yet available as of this writing. If you are reading this note, then double check; since these interfaces are under development now, I may have simply failed to remove it. +

    + +

    2.12.1 shmget

    +

    + Function Prototype: +

    +
      +#include <sys/shm.h>
      +#include <sys/ipc.h>
      +int shmget(key_t key, size_t size, int shmflg);
      +
    +

    + Description: + The shmget() function will return the shared memory identifier associated with key. +

    +

    + A shared memory identifier, associated data structure, and shared memory segment of at least size bytes is created for key if one of the following is true: +

    +
      +
    • +

      + The argument key is equal to IPC_PRIVATE. +

      +
    • +
    • +

      + The argument key does not already have a shared memory identifier associated with it and (shmflg & IPC_CREAT) is non-zero. +

      +
    • +
    +

    + Upon creation, the data structure associated with the new shared memory identifier will be initialized as follows: +

    +
      +
    • +

      + The values of shm_perm.cuid, shm_perm.uid, shm_perm.cgid, and shm_perm.gid are set equal to the effective user ID and effective group ID, respectively, of the calling process. +

      +
    • +
    • +

      + The low-order nine bits of shm_perm.mode are set equal to the low-order nine bits of shmflg. +

      +
    • +
    • +

      + The value of shm_segsz is set equal to the value of size. +

      +
    • +
    • +

      + The values of shm_lpid, shm_nattch, shm_atime, and shm_dtime are set equal to 0. +

      +
    • +
    • +

      + The value of shm_ctime is set equal to the current time. +

      +
    • +
    +

    + When the shared memory segment is created, it will be initialized with all zero values. +

    +

    + Input Parameters: +

    +
      +
    • + key: The key that is used to access the unique shared memory identifier. +
    • +
    • + size: The shared memory region that is created will be at least this size in bytes. +
    • +
    • + shmflg: See IPC_* definitions in sys/ipc.h. Only the values IPC_PRIVATE or IPC_CREAT are supported. +
    • +
    +

    + Returned Value: + Upon successful completion, shmget() will return a non-negative integer, namely a shared memory identifier; otherwise, it will return -1 and set errno to indicate the error. +

    +
      +
    • + EACCES. + A shared memory identifier exists for key but operation permission as specified by the low-order nine bits of shmflg would not be granted. +
    • +
    • + EEXIST. + A shared memory identifier exists for the argument key but (shmflg & IPC_CREAT) && (shmflg & IPC_EXCL) are non-zero. +
    • +
    • + EINVAL. + A shared memory segment is to be created and the value of size is less than the system-imposed minimum or greater than the system-imposed maximum. +
    • +
    • + EINVAL. + No shared memory segment is to be created and a shared memory segment exists for key but the size of the segment associated with it is less than size and size is not 0. +
    • +
    • + ENOENT. + A shared memory identifier does not exist for the argument key and (shmflg & IPC_CREAT) is 0. +
    • +
    • + ENOMEM. + A shared memory identifier and associated shared memory segment will be created, but the amount of available physical memory is not sufficient to fill the request. +
    • +
    • + ENOSPC. + A shared memory identifier is to be created, but the system-imposed limit on the maximum number of allowed shared memory identifiers system-wide would be exceeded. +
    • +
    + +

    2.12.2 shmat

    +

    + Function Prototype: +

    +
      +#include <sys/shm.h>
      +void *shmat(int shmid, FAR const void *shmaddr, int shmflg);
      +
    +

    + Description: + The shmat() function attaches the shared memory segment associated with the shared memory identifier specified by shmid to the address space of the calling process. The segment is attached at the address specified by one of the following criteria: +

    +
      +
    • +

      + If shmaddr is a null pointer, the segment is attached at the first available address as selected by the system. +

      +
    • +
    • +

      + If shmaddr is not a null pointer and (shmflg & SHM_RND) is non-zero, the segment is attached at the address given by (shmaddr - ((uintptr_t)shmaddr % SHMLBA)). +

      +
    • +
    • +

      + If shmaddr is not a null pointer and (shmflg & SHM_RND) is 0, the segment is attached at the address given by shmaddr. +

      +
    • +
    • +

      + The segment is attached for reading if (shmflg & SHM_RDONLY) is non-zero and the calling process has read permission; otherwise, if it is 0 and the calling process has read and write permission, the segment is attached for reading and writing. +

      +
    • +
    +

    + Input Parameters: +

    +
      +
    • shmid: Shared memory identifier
    • +
    • smaddr: Determines mapping of the shared memory region
    • +
    • shmflg: See SHM_* definitions in include/sys/shm.h. Only SHM_RDONLY and SHM_RND are supported.
    • +
    +

    + Returned Value: + Upon successful completion, shmat() will increment the value of shm_nattch in the data structure associated with the shared memory ID of the attached shared memory segment and return the segment's start address. + + Otherwise, the shared memory segment will not be attached, shmat() will return -1, and errno will be set to indicate the error. +

    +
      +
    • + EACCES. + Operation permission is denied to the calling process +
    • +
    • + EINVAL. + The value of shmid is not a valid shared memory identifier, the shmaddr is not a null pointer, and the value of (shmaddr -((uintptr_t)shmaddr % SHMLBA)) is an illegal address for attaching shared memory; or the shmaddr is not a null pointer, (shmflg & SHM_RND) is 0, and the value of shmaddr is an illegal address for attaching shared memory. +
    • +
    • + EMFILE. + The number of shared memory segments attached to the calling process would exceed the system-imposed limit. +
    • +
    • + ENOMEM. + The available data space is not large enough to accommodate the shared memory segment. +
    • +
    + +

    2.12.3 shmctl

    +

    + Function Prototype: +

    +
      +#include <sys/shm.h>
      +#include <sys/ipc.h>
      +int shmctl(int shmid, int cmd, FAR struct shmid_ds *buf);
      +
    +

    + Description: + The shmctl() function provides a variety of shared memory control operations as specified by cmd. The following values for cmd are available: +

    +
      +
    • +

      + IPC_STAT. + Place the current value of each member of the shmid_ds data structure associated with shmid into the structure pointed to by buf. +

      +
    • +
    • +

      + IPC_SET. + Set the value of the following members of the shmid_ds data structure associated with shmid to the corresponding value found in the structure pointed to by buf: +

      +
        + shm_perm.uid
        + shm_perm.gid
        + shm_perm.mode (Low-order nine bits). +
      +

      + IPC_SET can only be executed by a process that has an effective user ID equal to either that of a process with appropriate privileges or to the value of shm_perm.cuid or shm_perm.uid in the shmid_ds data structure associated with shmid. +

      +
    • +
    • +

      + IPC_RMID. + Remove the shared memory identifier specified by shmid from the system and destroy the shared memory segment and shmid_ds data structure associated with it. IPC_RMID can only be executed by a process that has an effective user ID equal to either that of a process with appropriate privileges or to the value of shm_perm.cuid or shm_perm.uid in the shmid_ds data structure associated with shmid. +

      +
    • +
    +

    + Input Parameters: +

    +
      +
    • shmid: Shared memory identifier
    • +
    • cmd: shmctl() command
    • +
    • buf: Data associated with the shmctl() command
    • +
    +

    + Returned Value: + Upon successful completion, shmctl() will return 0; otherwise, it will return -1 and set errno to indicate the error. +

    +
      +
    • + EACCES. + The argument cmd is equal to IPC_STAT and the calling process does not have read permission. +
    • +
    • + EINVAL. + The value of shmid is not a valid shared memory identifier, or the value of cmd is not a valid command. +
    • +
    • + EPERM. + The argument cmd is equal to IPC_RMID or IPC_SET and the effective user ID of the calling process is not equal to that of a process with appropriate privileges and it is not equal to the value of shm_perm.cuid or shm_perm.uid in the data structure associated with shmid. +
    • +
    • + EOVERFLOW. + The cmd argument is IPC_STAT and the gid or uid value is too large to be stored in the structure pointed to by the buf argument. +
    • +
    + +

    2.12.4 shmdt

    +

    + Function Prototype: +

    +
      +#include <sys/shm.h>
      +int shmdt(FAR const void *shmaddr);
      +
    +

    + Description: + The shmdt() function detaches the shared memory segment located at the address specified by shmaddr from the address space of the calling process. +

    +

    + Input Parameters: +

    +
      +
    • shmid: Shared memory identifier
    • +
    +

    + Returned Value: + Upon successful completion, shmdt() will decrement the value of shm_nattch in the data structure associated with the shared memory ID of the attached shared memory segment and return 0. +

    +

    + Otherwise, the shared memory segment will not be detached, shmdt() will return -1, and errno will be set to indicate the error. +

    +
      +
    • + EINVAL. + The value of shmaddr is not the data segment start address of a shared memory segment. +
    • +
    +
    From 744aafdddc3480ecd82bd8a91034d6cb839b5280 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 23 Sep 2014 07:11:47 -0600 Subject: [PATCH 1312/1518] Add README files and configuration support for the shared memory logic --- Documentation/README.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/README.html b/Documentation/README.html index c67aaa4c86..bbf927ad57 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -8,7 +8,7 @@

    NuttX README Files

    -

    Last Updated: September 9, 2014

    +

    Last Updated: September 23, 2014

    @@ -281,6 +281,8 @@ | |- libxx/ | | `- README.txt | |- mm/ + | | |- shm/ + | | | `- README.txt | | `- README.txt | |- net/ | | `- README.txt From 5f66889a21f4a5d764385740dd45b8fcb171ab64 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 23 Sep 2014 08:46:31 -0600 Subject: [PATCH 1313/1518] Add shared memory initializatin logic --- Documentation/NuttxUserGuide.html | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 480c7daf7b..ee5d45ae17 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -9085,11 +9085,6 @@ int shmget(key_t key, size_t size, int shmflg); Upon creation, the data structure associated with the new shared memory identifier will be initialized as follows:

      -
    • -

      - The values of shm_perm.cuid, shm_perm.uid, shm_perm.cgid, and shm_perm.gid are set equal to the effective user ID and effective group ID, respectively, of the calling process. -

      -
    • The low-order nine bits of shm_perm.mode are set equal to the low-order nine bits of shmflg. @@ -9162,6 +9157,17 @@ int shmget(key_t key, size_t size, int shmflg); A shared memory identifier is to be created, but the system-imposed limit on the maximum number of allowed shared memory identifiers system-wide would be exceeded.

    +

    + POSIX Deviations +

    +

      +
    • +

      + The values of shm_perm.cuid, shm_perm.uid, shm_perm.cgid, and shm_perm.gid should be set equal to the effective user ID and effective group ID, respectively, of the calling process. + The NuttX ipc_perm structure, however, does not support these fields because user and group IDs are not yet supported by NuttX. +

      +
    • +

    2.12.2 shmat

    From b1556eb1a70438ae0a38caaad1581141f2d965a5 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 23 Sep 2014 11:41:05 -0600 Subject: [PATCH 1314/1518] Flesh out shmctl() logic --- Documentation/NuttxUserGuide.html | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index ee5d45ae17..68a191917a 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -9259,21 +9259,13 @@ int shmctl(int shmid, int cmd, FAR struct shmid_ds *buf);

  • IPC_SET. - Set the value of the following members of the shmid_ds data structure associated with shmid to the corresponding value found in the structure pointed to by buf: -

    -
      - shm_perm.uid
      - shm_perm.gid
      - shm_perm.mode (Low-order nine bits). -
    -

    - IPC_SET can only be executed by a process that has an effective user ID equal to either that of a process with appropriate privileges or to the value of shm_perm.cuid or shm_perm.uid in the shmid_ds data structure associated with shmid. + Set the value of the shm_perm.mode member of the shmid_ds data structure associated with shmid to the corresponding value found in the structure pointed to by buf.

  • IPC_RMID. - Remove the shared memory identifier specified by shmid from the system and destroy the shared memory segment and shmid_ds data structure associated with it. IPC_RMID can only be executed by a process that has an effective user ID equal to either that of a process with appropriate privileges or to the value of shm_perm.cuid or shm_perm.uid in the shmid_ds data structure associated with shmid. + Remove the shared memory identifier specified by shmid from the system and destroy the shared memory segment and shmid_ds data structure associated with it.

  • @@ -9307,6 +9299,23 @@ int shmctl(int shmid, int cmd, FAR struct shmid_ds *buf); The cmd argument is IPC_STAT and the gid or uid value is too large to be stored in the structure pointed to by the buf argument. +

    + POSIX Deviations +

    +

      +
    • + IPC_SET. + Does not set the the shm_perm.uid or shm_perm.gidmembers of the shmid_ds data structure associated with shmid because user and group IDs are not yet supported by NuttX +
    • +
    • + IPC_SET. + Does not restrict the operation to processes with appropriate privileges or matching user IDs in shmid_ds data structure associated with shmid. Again because user IDs and user/group privileges are are not yet supported by NuttX +
    • +
    • + IPC_RMID. + Does not restrict the operation to processes with appropriate privileges or matching user IDs in shmid_ds data structure associated with shmid. Again because user IDs and user/group privileges are are not yet supported by NuttX +
    • +

    2.12.4 shmdt

    From 708c14b8bed0931d3593a42c10a2ed03860ac2c9 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 23 Sep 2014 12:16:44 -0600 Subject: [PATCH 1315/1518] Add platform-specific interfaces needed to support the shared memory feature --- Documentation/NuttxPortingGuide.html | 92 ++++++++++++++++++++++++---- Documentation/NuttxUserGuide.html | 3 - 2 files changed, 81 insertions(+), 14 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index aa4f3129a6..c188ee72d1 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -132,12 +132,17 @@ 4.5.5 sched_alarm_expiration()
    4.5.6 irq_dispatch() - 4.6 On-Demand Paging
    - 4.7 LED Support + 4.6 Shared Memory

    + 4.7 On-Demand Paging
    + 4.8 LED Support + 5.0 NuttX File System
    @@ -3352,7 +3357,9 @@ VxWorks provides the following comparable interface:

    Input Parameters:

      -
    • tcb: The TCB of the thread that no longer requires the kernel stack.
    • +
    • + tcb: The TCB of the thread that no longer requires the kernel stack. +

    Returned Value:

      @@ -3441,8 +3448,71 @@ void sched_timer_expiration(void); the appropriate, registered handling logic.

      -

      4.6 On-Demand Paging

      +

      4.6 Shared Memory

      +

      + Shared memory interfaces are only available with the NuttX kernel build (CONFIG_BUILD_KERNEL=y). + These interfaces support user memory regions that can be shared between multiple user processes. + The user interfaces are provided in the standard header file include/sys/shm.h>. + All logic to support shared memory is implemented within the NuttX kernel with the exception of two low-level functions that are require to configure the platform-specific MMU resources. + Those interfaces are described below: +

      +

      4.6.1 up_shmat()

      +

      Function Prototype:

      +

        +#include <nuttx/arch.h>
        +#ifdef CONFIG_MM_SHM
        +int up_shmat(FAR uintptr_t *pages, unsigned int npages, uintptr_t vaddr);
        +#endif
        +
      +

      Description:

      +
        + Attach, i.e, map, on shared memory region to a user virtual address. +
      +

      Input Parameters:

      +
        +
      • + pages: A pointer to the first element in a array of physical address, each corresponding to one page of memory. +
      • +
      • + npages: The number of pages in the list of physical pages to be mapped. +
      • +
      • + vaddr: The virtual address corresponding to the beginning of the (contiguous) virtual address region. +
      • +
      +

      Returned Value:

      +
        + Zero (OK) is returned on success; a negated errno value is returned on failure. +
      + +

      4.6.2 up_shmdt()

      +

      Function Prototype:

      +

        +#include <nuttx/arch.h>
        +#ifdef CONFIG_MM_SHM
        +int up_shmdt(uintptr_t vaddr, unsigned int npages);
        +#endif
        +
      +

      Description:

      +
        + Detach, i.e, unmap, on shared memory region from a user virtual address. +
      +

      Input Parameters:

      +
        +
      • + vaddr: The virtual address corresponding to the beginning of the (contiguous) virtual address region. +
      • +
      • + npages: T The number of pages to be unmapped. +
      • +
      +

      Returned Value:

      +
        + Zero (OK) is returned on success; a negated errno value is returned on failure. +
      + +

      4.7 On-Demand Paging

      The NuttX On-Demand Paging feature permits embedded MCUs with some limited RAM space to execute large programs from some non-random access media. If the platform meets certain requirements, then NuttX can provide on-demand paging: @@ -3451,7 +3521,7 @@ void sched_timer_expiration(void); Please see the NuttX Demand Paging design document for further information.

      -

      4.7 LED Support

      +

      4.8 LED Support

      A board architecture may or may not have LEDs. @@ -3461,7 +3531,7 @@ void sched_timer_expiration(void); However, the support provided by each architecture is sufficiently similar that it can be documented here.

      -

      4.7.1 Header Files

      +

      4.8.1 Header Files

      LED-related definitions are provided in two header files: @@ -3485,7 +3555,7 @@ void sched_timer_expiration(void);

    -

    4.7.2 LED Definitions

    +

    4.8.2 LED Definitions

    The implementation of LED support is very specific to a board architecture. @@ -3549,7 +3619,7 @@ void sched_timer_expiration(void); -

    4.7.3 Common LED interfaces

    +

    4.8.3 Common LED interfaces

    The <arch-name>/src/common/up_internal.h probably has definitions diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 68a191917a..fbef436618 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -9049,9 +9049,6 @@ int getsockopt(int sockfd, int level, int option, void *value, socklen_t *value_

  • 2.12.3 shmctl
  • 2.12.4 shmdt
  • -

    - NOTE: This is advance documentation. These interfaces are not yet available as of this writing. If you are reading this note, then double check; since these interfaces are under development now, I may have simply failed to remove it. -

    2.12.1 shmget

    From 3b1491278a400175ad8ecc1ec471d56f490600e9 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 27 Sep 2014 09:50:07 -0600 Subject: [PATCH 1316/1518] Updated README.txt files --- Documentation/README.html | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Documentation/README.html b/Documentation/README.html index bbf927ad57..bf1a205a52 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -92,6 +92,8 @@ | | | `- README.txt | | |- fire-stm32v2/ | | | `- README.txt + | | |- galileo/ + | | | `- README.txt | | |- freedom-kl25z/ | | | `- README.txt | | |- hymini-stm32v/ @@ -123,6 +125,8 @@ | | | `- README.txt | | |- mirtoo/ | | | `- README.txt + | | |- mt-db-x3// + | | | `- README.txt | | |- mx1ads/ | | | `- README.txt | | |- ne64badge/ From 947cdfa155cbd624964223461aa44e167c6b8689 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 27 Sep 2014 15:06:29 -0600 Subject: [PATCH 1317/1518] Update NuttX.html for the NuttX-7.5 release --- Documentation/NuttX.html | 78 +++++++++++++++++++++++++++++++++------- 1 file changed, 66 insertions(+), 12 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 8b48a9074d..207af0c007 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

    NuttX RTOS

    -

    Last Updated: September 1, 2014

    +

    Last Updated: September 28, 2014

    @@ -349,6 +349,22 @@

    + +
    + +

    +

  • Memory Configurations: (1) Flat embedded build, (2) Protected build with MPU, and (3) Kernel build with MMU.
  • +

    + + + +
    + +

    +

  • Memory Allocators: (1) standard heap memory allocation, (2) granule allocator, (3) shared memory, and (4) dynamically sized, per-process heaps.
  • +

    + +
    @@ -734,7 +750,17 @@

  • - UDP Network Discover (Contributed by Richard Cochran). + PHY Link Status Management. +
  • +

    + + + +
    + +

    +

  • + UDP Network Discovery (Contributed by Richard Cochran).
  • @@ -1161,11 +1187,11 @@

    Released Versions

    In addition to the ever-changing GIT repository, there are frozen released versions of NuttX available. - The current release is NuttX 7.4. - NuttX 7.4 is the 104th release of NuttX. - It was released on August 15, 2014, and is available for download from the + The current release is NuttX 7.5. + NuttX 7.5 is the 105th release of NuttX. + It was released on September 28, 2014, and is available for download from the SourceForge website. - Note that the release consists of two tarballs: nuttx-7.4.tar.gz and apps-7.4.tar.gz. + Note that the release consists of two tarballs: nuttx-7.5.tar.gz and apps-7.5.tar.gz. Both may be needed (see the top-level nuttx/README.txt file for build information).

    @@ -1174,7 +1200,7 @@
    • nuttx.

        - Release notes for NuttX 7.4 are available here; + Release notes for NuttX 7.5 are available here; release notes for all released versions on NuttX are available in the SourceForge GIT The ChangeLog for all releases of NuttX is available in the ChangeLog file that can viewed in the SourceForge GIT. The ChangeLog for the current release is at the bottom of that file. @@ -1182,7 +1208,7 @@

    • apps.

        - Release notes for NuttX 7.4 are available here; + Release notes for NuttX 7.5 are available here; release notes for all released versions on NuttX are available in the SourceForge GIT The ChangeLog for the all releases of apps is available in the ChangeLog file that can viewed in the SourceForge GIT. The ChangeLog for the current release is at the bottom of that file. @@ -1190,7 +1216,7 @@

    • NxWidgets.
    • Atmel AVR
    • ZiLOG @@ -3024,6 +3051,10 @@ nsh>
    • USB OTG FS with micro-AB connector, and
    • Easy access to most MCU pins.
    +

    + Support for the STM3F4DIS-BB base board was added in NuttX-7.5. + This includes support for the serial communications via the on-board DB-9 connector, Networking, and the microSD card slot. +

    Refer to the STMicro web site for further information about this board and to

    @@ -3031,7 +3062,7 @@ nsh>

    STATUS: The basic port for the STM32F4-Discovery was contributed by Mike Smith and was first released in NuttX-6.14. - All drivers listed for the STM3240G-EVAL are usable on this plaform as well. + All drivers listed for the STM3240G-EVAL are usable on this platform as well. Refer to the NuttX board README file for further information.

    @@ -3191,7 +3222,7 @@ nsh> STATUS: This is very much a work in progress. As of this writing, full architectural support for the TI Tiva TM4C123G has been implemented and was released in NuttX 7.1. - Basic board support is in place for the TM4C123G LaunchPad but is completely untested and possibly imcomplete. + Basic board support is in place for the TM4C123G LaunchPad but is completely untested and possibly incomplete. This partial logic is also included int he NuttX 7.1 release. This basic board supprted includes an (un-verified) configuration for the NuttShell NSH). A fully verified port to the TM4C123G LaunchPad is expected in NuttX-7.2. @@ -3205,6 +3236,29 @@ nsh>

    + +
    + +

    + TI/Tiva CC3200 Launchpad. + TI/Tiva CC3200 Launchpad +

    +
      +

      + STATUS: + This is very much a work in progress. + The basic port was released in NuttX-7.5. + This basic board supprted includes an verified configuration for the NuttShell NSH). + Key wireless networking capability is still missing. + Refer to the CC3200 LaunchPad board README file for more detailed information about this port. +

      +
    + + + +
    +
    +
    From 4c03bf07fe15a9f0907fbf42aba9b32652b575e0 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 4 Oct 2014 08:43:23 -0600 Subject: [PATCH 1318/1518] Update user guide --- Documentation/NuttxUserGuide.html | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index fbef436618..c85b844f2b 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -13,7 +13,7 @@

    NuttX Operating System

    User's Manual

    by

    Gregory Nutt

    -

    Last Updated: September 22, 2014

    +

    Last Updated: October 4, 2014

    @@ -29,7 +29,8 @@

    This manual provides general usage information for the NuttX RTOS from the - perspective of the firmware developer. + perspective of the firmware developer. +

    @@ -7707,7 +7708,9 @@ interface of the same name.
         #include <fcntl.h>
      +  int creat(const char *path, mode_t mode);
         int open(const char *path, int oflag, ...);
      +  int fcntl(int fd, int cmd, ...);
       

    2.10.2.2 unistd.h

    @@ -7718,6 +7721,8 @@ interface of the same name. int dup(int fd); int dup2(int fd1, int fd2); off_t lseek(int fd, off_t offset, int whence); + ssize_t pread(int fd, void *buf, size_t nbytes, off_t offset); + ssize_t pwrite(int fd, const void *buf, size_t nbytes, off_t offset); ssize_t read(int fd, void *buf, size_t nbytes); int unlink(const char *path); ssize_t write(int fd, const void *buf, size_t nbytes); @@ -9614,6 +9619,7 @@ notify a task when a message is available on a queue.
  • close
  • closedir
  • connect
  • +
  • creat
  • Data structures
  • Directory operations
  • dirent.h
  • @@ -9626,6 +9632,7 @@ notify a task when a message is available on a queue.
  • exit
  • FAT File System Support
  • fclose
  • +
  • fcntl
  • fcntl.h
  • fdopen
  • feof
  • @@ -9683,9 +9690,9 @@ notify a task when a message is available on a queue.
  • pause
  • pipe
  • poll
  • -
  • poll.h
  • + - + -
    +
  • poll.h
  • posix_spawn
  • posix_spawn_file_actions_addclose
  • posix_spawn_file_actions_adddup2
  • @@ -9703,7 +9710,9 @@ notify a task when a message is available on a queue.
  • posix_spawnattr_setschedpolicy
  • posix_spawnattr_setsigmask
  • posix_spawnp
  • +
  • pread
  • printf
  • +
  • pwrite
  • Pthread Interfaces
  • pthread_attr_destroy
  • pthread_attr_getinheritsched
  • @@ -9766,10 +9775,10 @@ notify a task when a message is available on a queue.
  • readdir
  • readdir_r
  • recv
  • -
  • recvfrom
  • -
  • rename
  • +
  • recvfrom
  • +
  • rename
  • rmdir
  • rewinddir
  • ROM disk driver
  • From fc32efc1e14f9043873f16821733ed4d95e9573c Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 4 Oct 2014 18:30:48 -0600 Subject: [PATCH 1319/1518] Update user guide to include asynchronous I/O --- Documentation/NuttxUserGuide.html | 58 ++++++++++++++++++++++--------- 1 file changed, 42 insertions(+), 16 deletions(-) diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index c85b844f2b..fc51da5920 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -7629,10 +7629,11 @@ interface of the same name.
  • 2.10.3 Directory Operations
  • 2.10.4 UNIX Standard Operations
  • 2.10.5 Standard I/O
  • -
  • 2.10.6 Standard String Operations
  • -
  • 2.10.7 Pipes and FIFOs
  • -
  • 2.10.8 FAT File System Support
  • -
  • 2.10.9 mmap() and eXecute In Place (XIP)
  • +
  • 2.10.6 Asynchronous I/O
  • +
  • 2.10.7 Standard String Operations
  • +
  • 2.10.8 Pipes and FIFOs
  • +
  • 2.10.9 FAT File System Support
  • +
  • 2.10.10 mmap() and eXecute In Place (XIP)
  • 2.10.1 NuttX File System Overview

    @@ -7966,7 +7967,23 @@ int statfs(const char *path, struct statfs *buf); int fstatfs(int fd, struct statfs *buf); -

    2.10.6 Standard String Operations

    +

    2.10.6 Asynchronous I/O

    +
      +#include <aio.h>
      +
      +int aio_cancel(int, FAR struct aiocb *aiocbp);
      +int aio_error(FAR const struct aiocb *aiocbp);
      +int aio_fsync(int, FAR struct aiocb *aiocbp);
      +int aio_read(FAR struct aiocb *aiocbp);
      +ssize_t aio_return(FAR struct aiocb *aiocbp);
      +int aio_suspend(FAR const struct aiocb *const list[], int nent,
      +                FAR const struct timespec *timeout);
      +int aio_write(FAR struct aiocb *aiocbp);
      +int lio_listio(int mode, FAR struct aiocb *const list[], int nent,
      +               FAR struct sigevent *sig);
      +
    + +

    2.10.7 Standard String Operations

       #include <string.h>
       
      @@ -8000,9 +8017,9 @@ void  *memmove(void *dest, const void *src, size_t count);
       # define bzero(s,n) (void)memset(s,0,n)
       
    -

    2.10.7 Pipes and FIFOs

    +

    2.10.8 Pipes and FIFOs

    -

    2.10.7.1 pipe

    +

    2.10.8.1 pipe

    Function Prototype:

    @@ -8036,7 +8053,7 @@ int pipe(int fd[2]);

    -

    2.10.7.2 mkfifo

    +

    2.10.8.2 mkfifo

    Function Prototype:

    @@ -8083,8 +8100,8 @@ int mkfifo(FAR const char *pathname, mode_t mode);

    -

    2.10.8 FAT File System Support

    -

    2.10.8.1 mkfatfs

    +

    2.10.9 FAT File System Support

    +

    2.10.9.1 mkfatfs

    Function Prototype:

    @@ -8161,7 +8178,7 @@ struct fat_format_s

    -

    2.10.9 mmap() and eXecute In Place (XIP)

    +

    2.10.10 mmap() and eXecute In Place (XIP)

    NuttX operates in a flat open address space and is focused on MCUs that do support Memory Management Units (MMUs). Therefore, NuttX generally does not @@ -8290,7 +8307,7 @@ struct fat_format_s -

    2.10.9.1 mmap

    +

    2.10.10.1 mmap

    Function Prototype:

    @@ -9608,6 +9625,14 @@ notify a task when a message is available on a queue.
  • accept
  • +
  • aio.h
  • +
  • aio_cancel
  • +
  • aio_error
  • +
  • aio_fsync
  • +
  • aio_read
  • +
  • aio_return
  • +
  • aio_suspend
  • +
  • aio_write
  • atexit
  • bind
  • BIOC_XIPBASE
  • @@ -9663,6 +9688,7 @@ notify a task when a message is available on a queue.
  • Introduction
  • ioctl
  • kill
  • +
  • lio_listio
  • listen
  • localtime_r
  • lseek
  • @@ -9684,14 +9710,14 @@ notify a task when a message is available on a queue.
  • mmap
  • Network Interfaces
  • on_exit +
  • open
  • opendir
  • OS Interfaces
  • pause
  • pipe
  • poll
  • -
  • poll.h
  • posix_spawn
  • posix_spawn_file_actions_addclose
  • @@ -9772,11 +9798,11 @@ notify a task when a message is available on a queue.
  • puts
  • RAM disk driver
  • read
  • +
  • readdir
  • readdir_r
  • recv
  • -
  • recvfrom
  • rename
  • rmdir
  • From e5fa8cb911a7e121f73778695f5abd89d22edadd Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 14 Oct 2014 10:21:18 -0600 Subject: [PATCH 1320/1518] Add description of work queues to the porting guide. Update comments --- Documentation/NuttxPortingGuide.html | 597 +++++++++++++++++++++++---- 1 file changed, 516 insertions(+), 81 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index c188ee72d1..7ea3e39c13 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

    NuttX RTOS Porting Guide

    -

    Last Updated: September 14, 2014

    +

    Last Updated: October 14, 2014

    @@ -104,45 +104,69 @@ 4.3.4 Tickless OS
    4.3.5 Watchdog Timer Interfaces - 4.4 Address Environments + 4.4 Work Queues - 4.5 APIs Exported by NuttX to Architecture-Specific Logic + 4.5 Address Environments - 4.6 Shared Memory + 4.6 APIs Exported by NuttX to Architecture-Specific Logic - 4.7 On-Demand Paging
    - 4.8 LED Support + 4.7 Shared Memory + 4.8 On-Demand Paging
    + 4.9 LED Support + 5.0 NuttX File System
    @@ -2900,7 +2924,418 @@ VxWorks provides the following comparable interface: means either that wdog is not valid or that the wdog has already expired.

    -

    4.4 Address Environments

    +

    4.4 Work Queues

    +

    Work Queues. + NuttX provides work queues. Work queues are threads the service a queue of work items to be performed. There are useful for off-loading work to a different threading context, for delayed processing, or for serializing activities. +

    + +

    4.4.1 Classes of Work Queues

    + +

    Classes of Work Queues. + There are three different classes of work queues, each with different properties and intended usage. These class of work queues along with the the common work queue interface are described in the following paragraphs. +

    + +

    4.4.1.1 High Priority Kernel Work queue

    + +

    High Priority Kernel Work queue. + The dedicated high-priority work queue is intended to handle delayed processing from interrupt handlers. This work queue is required for some drivers but, if there are no complaints, can be safely disabled. The high priority worker thread also performs garbage collection -- completing any delayed memory deallocations from interrupt handlers. If the high-priority worker thread is disabled, then that clean up will be performed either by (1) the low-priority worker thread, if enabled, and if not (2) the IDLE thread instead (which runs at the lowest of priority and may not be appropriate if memory reclamation is of high priority) +

    +

    Device Driver Bottom Half. + The higher priority worker thread is intended to serve as the bottom half for device drivers. As a consequence it must run at a very high, fixed priority rivalling the priority of the interrupt handler itself. Typically, the high priority work queue should be the highest priority thread in your system (the default priority is 224). +

    +

    Compared to the Low Priority Kernel Work Queue. + For less critical, lower priority, application oriented worker thread support, consider enabling the lower priority work queue. The lower priority work queue runs at a lower priority, of course, but has the added advantage that it supports priority inheritance (if CONFIG_PRIORITY_INHERITANCE is also selected): The priority of the lower priority worker thread can then be adjusted to match the highest priority client. +

    +

    + Configuration Options. +

    +
      +
    • CONFIG_SCHED_HPWORK. + Enables the hight prioirity work queue. +
    • +
    • CONFIG_SCHED_HPWORKPRIORITY. + The execution priority of the high-priority worker thread. Default: 224 +
    • +
    • CONFIG_SCHED_HPWORKPERIOD. + How often the worker thread re-checks for work in units of microseconds. This work period is really only necessary if the the high priority thread is performing periodic garbage collection. The worker thread will be awakened immediately with it is queued work to be done. If the high priority worker thread is performing garbage collection, then the default is 50*1000 (50 MS). Otherwise, if the lower priority worker thread is performing garbage collection, the default is 100*1000. +
    • CONFIG_SCHED_HPWORKSTACKSIZE. + The stack size allocated for the worker thread in bytes. Default: 2048. +
    • +
    +

    + Common Configuration Options. + These options apply to all work queues: +

    +
      +
    • CONFIG_SIG_SIGWORK + The signal number that will be used to wake-up the worker thread. This same signal is used with the Default: 17 +
    • +
    + +

    4.4.1.2 Low Priority Kernel Work Queue

    +

    + Low Priority Kernel Work Queue. + This lower priority work queue is better suited for more extended, application oriented processing such as file system clean-up, memory garbage collection and asynchronous I/O operations. +

    +

    + Compared to the High Priority Work Queue. + The lower priority work queue runs at a lower priority than the high priority work queue, of course, and so is inapproperiate to serve as a driver bottom half. The lower priority work queue has the other advantages, however, that make it better suited for some tasks: +

    +
      +
    • +

      Priority Inheritance. + The lower priority worker thread(s) support priority inheritance (if CONFIG_PRIORITY_INHERITANCE is also selected): The priority of the lower priority worker thread can then be adjusted to match the highest priority client. +

      +
      + NOTE: This priority inheritance feature is not automatic. The lower priority worker thread will always a fixed priority unless additional logic implements that calls lpwork_boostpriority() to raise the priority of the lower priority worker thread (typically called before scheduling the work) and then calls the matching lpwork_restorepriority() when the work is completed (typically called within the work handler at the completion of the work). Currently, only the NuttX asynchronous I/O logic uses this dynamic prioritization feature. +
      +

      + The higher priority worker thread, on the other hand, is intended to serve as the bottom half for device drivers. As a consequence must run at a very high, fixed priority. Typically, it should be the highest priority thread in your system. +

      +
    • +
    • +

      + Thread Pool. + The low-priority work queue can be configured to support multiple, low-priority threads. This is essentially a thread pool that provides multi-threaded servicing of the low-priority work thread. This breaks the strict serialization of the "queue" (and hence, the low-priority work queue is no longer a queue at all). +

      +

      + Multiple worker threads are required to support, for example, I/O operations that stall waiting for input. If there is only a single thread, then the entire low-priority queue processing would stall in such cases. Such behavior is necessary to support asynchronous I/O, AIO, for example. +

      +
    • +
    +

    + Configuration Options. +

    +
      +
    • CONFIG_SCHED_LPWORK. + If CONFIG_SCHED_LPWORK is selected then a lower-priority work queue will be enabled. +
    • +
    • CONFIG_SCHED_LPNTHREADS. + The number of thread in the low-priority queue's thread pool. Default: 1 +
    • +
    • CONFIG_SCHED_LPWORKPRIORITY. + The minimum execution priority of the lower priority worker thread. The priority of the all worker threads start at this priority. If priority inheritance is in effect, the priority may be boosted from this level. Default: 50. +
    • +
    • CONFIG_SCHED_LPWORKPRIOMAX. + The maximum execution priority of the lower priority worker thread. Lower priority worker threads will be started at CONFIG_SCHED_LPWORKPRIORITY but their priority may be boosted due to priority inheritance. The boosted priority of the low priority worker thread will not, however, ever exceedCONFIG_SCHED_LPWORKPRIOMAX. This limit would be necessary, for example, if the higher priority worker thread were to defer work to the lower priority thread. Clearly, in such a case, you would want to limit the maximum priority of the lower priority work thread. Default: 176. +
    • +
    • CONFIG_SCHED_LPWORKPERIOD. + How often the lower priority worker thread checks for garbage collection in units of microseconds. Default: 50*1000 (50 MS). +
    • +
    • CONFIG_SCHED_LPWORKSTACKSIZE. + The stack size allocated for the lower priority worker thread. Default: 2048. +
    • +
    + +

    4.4.1.3 User-Mode Work Queue

    +

    + Work Queue Accessibility. + The high- and low-priority worker threads are kernel-mode threads. In the normal, flat NuttX build, these work queues are are useful to application code and may be shared. However, in the NuttX protected and kernel build modes, kernel mode code is isolated and cannot be accessed from user-mode code. +

    +

    + User-Mode Work Queue. + if either CONFIG_BUILD_PROTECTED or CONFIG_BUILD_KERNEL are selected, then the option to enable a special user-mode work queue is enable. The interface to the user-mode work queue is identical to the interface to the kernel-mode work queues and the user-mode work queue is functionally equivalent to the high priority work queue. It differs in that its implementation does not depend on internal, kernel-space facilities. +

    +

    + Configuration Options. +

    +
      +
    • CONFIG_LIB_USRWORK. + If CONFIG_LIB_USRWORK is also defined then the user-mode work queue will be enabled. +
    • CONFIG_LIB_USRWORKPRIORITY. + The execution priority of the user-mode priority worker thread. Default: 100 +
    • CONFIG_LIB_USRWORKPERIOD + How often the lower priority worker thread is awakened in units of microseconds. Default: 100*1000 (100 MS). +
    • CONFIG_LIB_USRWORKSTACKSIZE. + The stack size allocated for the lower priority worker thread. Default: 2048. +
    + +

    4.4.2 Common Work Queue Interfaces

    +

    4.4.2.1 Work Queue IDs

    + +

    + Work queue IDs. + All work queues use the identical interface functions (at least identical in terms of the function signature). The first parameter passed to the work queue interface function identifies the work queue: +

    +

    + Kernel-Mode Work Queue IDs: +

    +

      +
    • + HPWORK. + This ID of the high priority work queue that should only be used for hi-priority, time-critical, driver bottom-half functions. +
    • +
    • + LPWORK. + This is the ID of the low priority work queue that can be used for any purpose. if CONFIG_SCHED_LPWORK is not defined, then there is only one kernel work queue and LPWORK is equal to HPWORK. +
    • +
    +

    + User-Mode Work Queue IDs: +

    +

      +
    • + USRWORK. + This is the ID of the user-mode work queue that can be used for any purpose by applications. In a flat build, LPWORK is equal to LPWORK so that user applications will use the lower priority work queue (if there is one). +
    • +
    + +

    4.4.2.2 Work Queue Interface Types

    + +
      +
    • + typedef void (*worker_t)(FAR void *arg); + Defines the type of the work callback. +
    • +
    • + struct work_s. + Defines one entry in the work queue. This is a client-allocated structure. Work queue clients should not reference any field in this structure since they are subjec to change. The user only needs this structure in order to declare instances of the work structure. Handling of all fields is performed by the work queue interfaces described below. +
    • +
    + +

    4.4.2.3 Work Queue Interfaces

    +
    4.4.2.3.1 work_queue()
    +

    + Function Prototype: +

      +int work_queue(int qid, FAR struct work_s *work, worker_t worker,
      +               FAR void *arg, uint32_t delay);
      +
    +

    +

    + Description. + Queue work to be performed at a later time. All queued work will be performed on the worker thread of execution (not the caller's). +

    +

    + The work structure is allocated by caller, but completely managed by the work queue logic. The caller should never modify the contents of the work queue structure; the caller should not call work_queue() again until either (1) the previous work has been performed and removed from the queue, or (2) work_cancel() has been called to cancel the work and remove it from the work queue. +

    +

    + Input Parameters: +

    +
      +
    • +

      + qid: + The work queue ID. +

      +
    • +
    • +

      + work: + The work structure to queue +

      +
    • +
    • +

      + worker: + The worker callback to be invoked. The callback will invoked on the worker thread of execution. +

      +
    • +
    • +

      + arg: + The argument that will be passed to the worker callback function when it is invoked. +

      +
    • +
    • +

      + delay: + Delay (in system clock ticks) from the time queue until the worker is invoked. Zero means to perform the work immediately. +

      +
    • +
    +

    + Returned Value: +

    +
      +

      + Zero is returned on success; a negated errno is returned on failure. +

      +
    + +
    4.4.2.3.2 work_cancel()
    +

    + Function Prototype: +int work_cancel(int qid, FAR struct work_s *work); +

      +
    +

    +

    + Description. + Cancel previously queued work. This removes work from the work queue. After work has been cancelled, it may be re-queue by calling work_queue() again. +

    +

    + Input Parameters: +

    +
      +
    • +

      + qid: + The work queue ID. +

      +
    • +
    • +

      + work: + The previously queue work structure to cancel. +

      +
    • +
    +

    + Returned Value: +

    +
      +

      + Zero is returned on success; a negated errno is returned on failure. +

      +
        +
      • ENOENT: There is no such work queued.
      • +
      • EINVAL: An invalid work queue was specified.
      • +
      +
    + +
    4.4.2.3.3 work_signal()
    +

    + Function Prototype: +int work_signal(int qid); +

      +
    +

    +

    + Description. + Signal the worker thread to process the work queue now. This function is used internally by the work logic but could also be used by the user to force an immediate re-assessment of pending work. +

    +

    + Input Parameters: +

    +
      +
    • +

      + qid: + The work queue ID. +

      +
    +

    + Returned Value: +

    +
      +

      + Zero is returned on success; a negated errno is returned on failure. +

      +
    + +
    4.4.2.3.4 work_available()
    +

    + Function Prototype: +

      +bool work_available(FAR struct work_s *work);
      +
    +

    +

    + Description. +

    +

    + Input Parameters: + Check if the work structure is available. +

    +
      +
    • +

      + work: + The work queue structure to check. +

      +
    +

    + Returned Value: +

    +
      +

      + true if available; false if busy (i.e., there is still pending work). +

      +
    + +
    4.4.2.3.5 work_usrstart()
    +

    + Function Prototype: +

      +#if defined(CONFIG_LIB_USRWORK) && !defined(__KERNEL__)
      +int work_usrstart(void);
      +#endif
      +
    +

    +

    + Description. + The function is only available as a user interface in the kernel-mode build. In the flat build, there is no user-mode work queue; in the protected mode, the user-mode work queue will automatically be started by the OS start-up code. But in the kernel mode, each user process will be required to start is own, private instance of the user-mode work thread using this interface. +

    +

    + Input Parameters: None +

    +

    + Returned Value: +

    +
      +

      + The task ID of the worker thread is returned on success. A negated errno value is returned on failure. +

      +
    + +
    4.4.2.3.6 lpwork_boostpriority()
    +

    + Function Prototype: +

      +#if defined(CONFIG_SCHED_LPWORK) && defined(CONFIG_PRIORITY_INHERITANCE)
      +void lpwork_boostpriority(uint8_t reqprio);
      +#endif
      +
    +

    +

    + Description. + Called by the work queue client to assure that the priority of the low-priority worker thread is at least at the requested level, reqprio. This function would normally be called just before calling work_queue(). +

    +

    + Input Parameters: +

    +
      +
    • +

      + reqprio: + Requested minimum worker thread priority. +

      +
    • +
    +

    + Returned Value: None +

    + +
    4.4.2.3.7 lpwork_restorepriority()
    +

    + Function Prototype: +

      +#if defined(CONFIG_SCHED_LPWORK) && defined(CONFIG_PRIORITY_INHERITANCE)
      +void lpwork_restorepriority(uint8_t reqprio);
      +#endif
      +
    +

    +

    + Description. + This function is called to restore the priority after it was previously boosted. This is often done by client logic on the worker thread when the scheduled work completes. It will check if we need to drop the priority of the worker thread. +

    +

    + Input Parameters: +

    +
      +
    • +

      + reqprio: + Previously requested minimum worker thread priority to be "unboosted". +

      +
    • +
    +

    + Returned Value: None +

    + +

    4.5 Address Environments

    CPUs that support memory management units (MMUs) may provide address environments within which tasks and their child threads execute. The configuration indicates the CPUs ability to support address environments by setting the configuration variable CONFIG_ARCH_HAVE_ADDRENV=y. @@ -2923,35 +3358,35 @@ VxWorks provides the following comparable interface:

    @@ -2964,12 +3399,12 @@ VxWorks provides the following comparable interface:

    @@ -2992,19 +3427,19 @@ VxWorks provides the following comparable interface:

    @@ -3018,17 +3453,17 @@ VxWorks provides the following comparable interface:

    -

    4.4.1 up_addrenv_create()

    +

    4.5.1 up_addrenv_create()

    Function Prototype:

      int up_addrenv_create(size_t textsize, size_t datasize, size_t heapsize, FAR group_addrenv_t *addrenv); @@ -3050,7 +3485,7 @@ VxWorks provides the following comparable interface: Zero (OK) on success; a negated errno value on failure.
    -

    4.4.2 up_addrenv_destroy()

    +

    4.5.2 up_addrenv_destroy()

    Function Prototype:

      int up_addrenv_destroy(group_addrenv_t *addrenv); @@ -3068,7 +3503,7 @@ VxWorks provides the following comparable interface: Zero (OK) on success; a negated errno value on failure.
    -

    4.4.3 up_addrenv_vtext()

    +

    4.5.3 up_addrenv_vtext()

    Function Prototype:

      int up_addrenv_vtext(FAR group_addrenv_t addrenv, FAR void **vtext); @@ -3088,7 +3523,7 @@ VxWorks provides the following comparable interface: Zero (OK) on success; a negated errno value on failure.
    -

    4.4.4 up_addrenv_vdata()

    +

    4.5.4 up_addrenv_vdata()

    Function Prototype:

      int up_addrenv_vdata(FAR group_addrenv_t *addrenv, size_t textsize, FAR void **vdata); @@ -3109,7 +3544,7 @@ VxWorks provides the following comparable interface: Zero (OK) on success; a negated errno value on failure.
    -

    4.4.5 up_addrenv_heapsize()

    +

    4.5.5 up_addrenv_heapsize()

    Function Prototype:

      ssize_t up_addrenv_heapsize(FAR const group_addrenv_t *addrenv); @@ -3129,7 +3564,7 @@ VxWorks provides the following comparable interface: The initial heap size allocated is returned on success; a negated errno value on failure.
    -

    4.4.6 up_addrenv_select()

    +

    4.5.6 up_addrenv_select()

    Function Prototype:

      int up_addrenv_select(group_addrenv_t *addrenv, save_addrenv_t *oldenv); @@ -3153,7 +3588,7 @@ VxWorks provides the following comparable interface: Zero (OK) on success; a negated errno value on failure.
    -

    4.4.7 up_addrenv_restore()

    +

    4.5.7 up_addrenv_restore()

    Function Prototype:

      int up_addrenv_restore(save_addrenv_t oldenv); @@ -3172,7 +3607,7 @@ VxWorks provides the following comparable interface: Zero (OK) on success; a negated errno value on failure.
    -

    4.4.8 up_addrenv_clone()

    +

    4.5.8 up_addrenv_clone()

    Function Prototype:

      int up_addrenv_clone(FAR const task_group_s *src, FAR struct task_group_s *dest); @@ -3191,7 +3626,7 @@ VxWorks provides the following comparable interface: Zero (OK) on success; a negated errno value on failure.
    -

    4.4.9 up_addrenv_attach()

    +

    4.5.9 up_addrenv_attach()

    Function Prototype:

      int up_addrenv_attach(FAR struct task_group_s *group, FAR struct tcb_s *tcb); @@ -3217,7 +3652,7 @@ VxWorks provides the following comparable interface: Zero (OK) on success; a negated errno value on failure.
    -

    4.4.10 up_addrenv_detach()

    +

    4.5.10 up_addrenv_detach()

    Function Prototype:

      int up_addrenv_detach(FAR struct task_group_s *group, FAR struct task_group_s *tcb); @@ -3236,7 +3671,7 @@ VxWorks provides the following comparable interface: Zero (OK) on success; a negated errno value on failure.
    -

    4.4.11 up_addrenv_ustackalloc()

    +

    4.5.11 up_addrenv_ustackalloc()

    Function Prototype:

      int up_addrenv_ustackalloc(FAR struct tcb_s *tcb, size_t stacksize); @@ -3258,7 +3693,7 @@ VxWorks provides the following comparable interface: Zero (OK) on success; a negated errno value on failure.
    -

    4.4.12 up_addrenv_ustackfree()

    +

    4.5.12 up_addrenv_ustackfree()

    Function Prototype:

      int up_addrenv_ustackfree(FAR struct tcb_s *tcb); @@ -3279,7 +3714,7 @@ VxWorks provides the following comparable interface: Zero (OK) on success; a negated errno value on failure.
    -

    4.4.13 up_addrenv_vustack()

    +

    4.5.13 up_addrenv_vustack()

    Function Prototype:

      int up_addrenv_vustack(FAR const struct tcb_s *tcb, FAR void **vstack); @@ -3300,7 +3735,7 @@ VxWorks provides the following comparable interface: Zero (OK) on success; a negated errno value on failure.
    -

    4.4.14 up_addrenv_ustackselect()

    +

    4.5.14 up_addrenv_ustackselect()

    Function Prototype:

      int up_addrenv_ustackselect(FAR const struct tcb_s *tcb); @@ -3322,7 +3757,7 @@ VxWorks provides the following comparable interface: Zero (OK) on success; a negated errno value on failure.
    -

    4.4.15 up_addrenv_kstackalloc()

    +

    4.5.15 up_addrenv_kstackalloc()

    Function Prototype:

      int up_addrenv_kstackalloc(FAR struct tcb_s *tcb); @@ -3344,7 +3779,7 @@ VxWorks provides the following comparable interface: Zero (OK) on success; a negated errno value on failure.
    -

    4.4.16 up_addrenv_kstackfree()

    +

    4.5.16 up_addrenv_kstackfree()

    Function Prototype:

      int up_addrenv_kstackfree(FAR struct tcb_s *tcb); @@ -3366,23 +3801,23 @@ VxWorks provides the following comparable interface: Zero (OK) on success; a negated errno value on failure.
    -

    4.5 APIs Exported by NuttX to Architecture-Specific Logic

    +

    4.6 APIs Exported by NuttX to Architecture-Specific Logic

    These are standard interfaces that are exported by the OS for use by the architecture specific logic.

    -

    4.5.1 os_start()

    +

    4.6.1 os_start()

    To be provided

    -

    4.5.2 OS List Management APIs

    +

    4.6.2 OS List Management APIs

    To be provided

    -

    4.5.3 sched_process_timer()

    +

    4.6.3 sched_process_timer()

    Function Prototype: void sched_process_timer(void);

    Description. @@ -3393,7 +3828,7 @@ VxWorks provides the following comparable interface: MSEC_PER_TICK.

    -

    4.5.4 sched_timer_expiration()

    +

    4.6.4 sched_timer_expiration()

    Function Prototype:

       #include <nuttx/arch.h>
      @@ -3416,7 +3851,7 @@ void sched_timer_expiration(void);
         Base code implementation assumes that this function is called from interrupt handling logic with interrupts disabled.
       
    -

    4.5.5 sched_alaram_expiration()

    +

    4.6.5 sched_alaram_expiration()

    Function Prototype:

       #include <nuttx/arch.h>
      @@ -3439,7 +3874,7 @@ void sched_timer_expiration(void);
         Base code implementation assumes that this function is called from interrupt handling logic with interrupts disabled.
       
    -

    4.5.6 irq_dispatch()

    +

    4.6.6 irq_dispatch()

    Function Prototype: void irq_dispatch(int irq, FAR void *context);

    Description. @@ -3448,7 +3883,7 @@ void sched_timer_expiration(void); the appropriate, registered handling logic.

    -

    4.6 Shared Memory

    +

    4.7 Shared Memory

    Shared memory interfaces are only available with the NuttX kernel build (CONFIG_BUILD_KERNEL=y). These interfaces support user memory regions that can be shared between multiple user processes. @@ -3457,7 +3892,7 @@ void sched_timer_expiration(void); Those interfaces are described below:

    -

    4.6.1 up_shmat()

    +

    4.7.1 up_shmat()

    Function Prototype:

       #include <nuttx/arch.h>
      @@ -3486,7 +3921,7 @@ int up_shmat(FAR uintptr_t *pages, unsigned int npages, uintptr_t vaddr);
         Zero (OK) is returned on success; a negated errno value is returned on failure.
       
    -

    4.6.2 up_shmdt()

    +

    4.7.2 up_shmdt()

    Function Prototype:

       #include <nuttx/arch.h>
      @@ -3512,7 +3947,7 @@ int up_shmdt(uintptr_t vaddr, unsigned int npages);
         Zero (OK) is returned on success; a negated errno value is returned on failure.
       
    -

    4.7 On-Demand Paging

    +

    4.8 On-Demand Paging

    The NuttX On-Demand Paging feature permits embedded MCUs with some limited RAM space to execute large programs from some non-random access media. If the platform meets certain requirements, then NuttX can provide on-demand paging: @@ -3521,7 +3956,7 @@ int up_shmdt(uintptr_t vaddr, unsigned int npages); Please see the NuttX Demand Paging design document for further information.

    -

    4.8 LED Support

    +

    4.9 LED Support

    A board architecture may or may not have LEDs. @@ -3531,7 +3966,7 @@ int up_shmdt(uintptr_t vaddr, unsigned int npages); However, the support provided by each architecture is sufficiently similar that it can be documented here.

    -

    4.8.1 Header Files

    +

    4.9.1 Header Files

    LED-related definitions are provided in two header files: @@ -3555,7 +3990,7 @@ int up_shmdt(uintptr_t vaddr, unsigned int npages);

    -

    4.8.2 LED Definitions

    +

    4.9.2 LED Definitions

    The implementation of LED support is very specific to a board architecture. @@ -3619,7 +4054,7 @@ int up_shmdt(uintptr_t vaddr, unsigned int npages); -

    4.8.3 Common LED interfaces

    +

    4.9.3 Common LED interfaces

    The <arch-name>/src/common/up_internal.h probably has definitions From 180c73c90a73c8d21b2d254518e003c74cdf2272 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 14 Oct 2014 13:44:04 -0600 Subject: [PATCH 1321/1518] Fix minor typos in documentation --- Documentation/NuttxPortingGuide.html | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 7ea3e39c13..3bfd4021fd 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -3098,6 +3098,7 @@ VxWorks provides the following comparable interface:

    Function Prototype:

      +#include <nuttx/wqueue.h>
       int work_queue(int qid, FAR struct work_s *work, worker_t worker,
                      FAR void *arg, uint32_t delay);
       
    @@ -3156,6 +3157,7 @@ int work_queue(int qid, FAR struct work_s *work, worker_t worker,
    4.4.2.3.2 work_cancel()

    Function Prototype: +#include <nuttx/wqueue.h> int work_cancel(int qid, FAR struct work_s *work);

       
    @@ -3197,6 +3199,7 @@ int work_cancel(int qid, FAR struct work_s *work);
    4.4.2.3.3 work_signal()

    Function Prototype: +#include <nuttx/wqueue.h> int work_signal(int qid);

       
    @@ -3228,6 +3231,7 @@ int work_signal(int qid);

    Function Prototype:

      +#include <nuttx/wqueue.h>
       bool work_available(FAR struct work_s *work);
       

    @@ -3258,6 +3262,8 @@ bool work_available(FAR struct work_s *work);

    Function Prototype:

      +#include <nuttx/config.h>
      +#include <nuttx/wqueue.h>
       #if defined(CONFIG_LIB_USRWORK) && !defined(__KERNEL__)
       int work_usrstart(void);
       #endif
      @@ -3283,6 +3289,8 @@ int work_usrstart(void);
       

      Function Prototype:

        +#include <nuttx/config.h>
        +#include <nuttx/wqueue.h>
         #if defined(CONFIG_SCHED_LPWORK) && defined(CONFIG_PRIORITY_INHERITANCE)
         void lpwork_boostpriority(uint8_t reqprio);
         #endif
        @@ -3311,6 +3319,8 @@ void lpwork_boostpriority(uint8_t reqprio);
         

        Function Prototype:

          +#include <nuttx/config.h>
          +#include <nuttx/wqueue.h>
           #if defined(CONFIG_SCHED_LPWORK) && defined(CONFIG_PRIORITY_INHERITANCE)
           void lpwork_restorepriority(uint8_t reqprio);
           #endif
          @@ -3395,7 +3405,7 @@ void lpwork_restorepriority(uint8_t reqprio);
               

          Tasking Support. Other interfaces must be provided to support higher-level interfaces used by the NuttX tasking logic. - These interfaces are* used by the functions in sched/ and all operate on the task group which as been assigned an address environment by up_addrenv_clone(). + These interfaces are used by the functions in sched/ and all operate on the task group which as been assigned an address environment by up_addrenv_clone().

          • @@ -3413,7 +3423,7 @@ void lpwork_restorepriority(uint8_t reqprio);

            Dynamic Stack Support. CONFIG_ARCH_STACK_DYNAMIC=y indicates that the user process stack resides in its own address space. - This options is also required if CONFIG_BUILD_KERNEL and CONFIG_LIBC_EXECFUNCS are selected. + This option is also required if CONFIG_BUILD_KERNEL and CONFIG_LIBC_EXECFUNCS are selected. Why? Because the caller's stack must be preserved in its own address space when we instantiate the environment of the new process in order to initialize it.

            From 3f96a8ffd66c1440edb3cdc33976e1488a4101db Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 15 Oct 2014 07:05:08 -0600 Subject: [PATCH 1322/1518] Rename configs/nucleo-f401re to configs/nucleo-f4x1re --- Documentation/README.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Documentation/README.html b/Documentation/README.html index bf1a205a52..e3e6a7fd51 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -134,8 +134,8 @@ | | |- ntosd-dm320/ | | | |- doc/README.txt | | | `- README.txt - | | |- nucleo-f401re/ - | | | `- README.txt + | | |- nucleo-f4x1re/ + | | | `- README.txt | | |- nucleus2g/ | | | `- README.txt | | |- nutiny-nuc120/ From bd50e967ce120bef4c480fff8cc9dfd0b8cf184a Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 15 Oct 2014 10:57:04 -0600 Subject: [PATCH 1323/1518] Fix some typos --- Documentation/NuttX.html | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 207af0c007..3ced5565ac 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -399,7 +399,7 @@

            -

          • Built-in, per-thread CPU load measurments.
          • +
          • Built-in, per-thread CPU load measurements.
          • @@ -616,7 +616,7 @@

            -

          • Cryptiographic subsystem
          • +
          • Cryptographic subsystem
          • @@ -1971,7 +1971,7 @@

            Development Environments: 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS with Windows native toolchain, or 4) Native Windows. - All testing has been perfomed with the CodeSourcery toolchain (GCC version 4.7.3) in the Cygwin environment under Windows. + All testing has been performed with the CodeSourcery toolchain (GCC version 4.7.3) in the Cygwin environment under Windows.

            @@ -2482,7 +2482,7 @@ nsh> The basic STM32 port was released in NuttX version 0.4.12. The basic port includes boot-up logic, interrupt driven serial console, and system timer interrupts. The 0.4.13 release added support for SPI, serial FLASH, and USB device.; - The 4.14 release added support for buttons and SDIO-based MMC/SD and verifed DMA support. + The 4.14 release added support for buttons and SDIO-based MMC/SD and verified DMA support. Verified configurations are available for the NuttShell (NSH) example, the USB serial device class, and the USB mass storage device class example.

            @@ -2766,7 +2766,7 @@ nsh> The NSH configuration supports the Nucleus2G's microSD slot and additional configurations are available to exercise the USB serial and USB mass storage devices. However, due to some technical reasons, neither the SPI nor the USB device drivers are fully verified. - (Although they have since been verfiied on other platforms; this needs to be revisited on the Nucleus2G). + (Although they have since been verified on other platforms; this needs to be revisited on the Nucleus2G).

          • @@ -2868,7 +2868,7 @@ nsh> Initial Open1788 support appeared in NuttX-6.26 with the first verified configurations in NuttX-6.27. In NuttX-6.27 there is a working basic port with OS verification, Nuttshell (NSH) configurations, and a graphics test configuration. SDRAM and GPDMA are working. - The NSH configuration includes verfied support for a DMA-based SD card interface. + The NSH configuration includes verified support for a DMA-based SD card interface. The frame-buffer LCD driver is functional and uses the SDRAM for frame-buffer memory. A touchscreen interface has been developed but there appears to be a hardware issue with the WaveShare implementation of the XPT2046 touchscreen controller. Refer to the NuttX board README file for further information. @@ -2951,7 +2951,7 @@ nsh>

            STATUS: The basic port for the STM32F3-Discover was first released in NuttX-6.26. - Many of the drivers previously released for the STM32 F1, Value Line, and F2 and F4 may be usable on this plaform as well. + Many of the drivers previously released for the STM32 F1, Value Line, and F2 and F4 may be usable on this platform as well. New drivers will be required for ADC and I2C which are very different on this platform. Refer to the NuttX board README file for further information.

            @@ -3529,7 +3529,7 @@ Mem: 29232 5920 23312 23312

            An SPI driver and a USB device driver exist for the AT90USB as well - as a USB mass storage configureation. However, this configuration is not + as a USB mass storage configuration. However, this configuration is not fully debugged as of the NuttX-6.5 release. Refer to the NuttX board README file for further information.

            @@ -4321,7 +4321,7 @@ avr, m68k, m68hc11, m68hc12, m9s12, blackfin, m32c, h8, and SuperH ports.Make.deps throughout the system. For compilers other than GCC, there is no support for making dependencies in this way. For Windows native GCC compilers, the generated dependencies are windows paths and not - directly usable in the Cygwin make. By default, dependencies are surpressed for these + directly usable in the Cygwin make. By default, dependencies are suppressed for these compilers as well.
          • @@ -4362,7 +4362,7 @@ avr, m68k, m68hc11, m68hc12, m9s12, blackfin, m32c, h8, and SuperH ports.

            This capability first appeared in NuttX-6.24 and should still be considered a work in progress because: (1) it has not been verfied on all targets and tools, and (2) still lacks some of the creature-comforts of the more mature environments. - The windows native build logic initiatiated if CONFIG_WINDOWS_NATIVE=y is defined in the NuttX configuration file: + The windows native build logic initiated if CONFIG_WINDOWS_NATIVE=y is defined in the NuttX configuration file:

            At present, this build environment also requires: @@ -4385,7 +4385,7 @@ avr, m68k, m68hc11, m68hc12, m9s12, blackfin, m32c, h8, and SuperH ports.MinGW-GCC. MinGW-GCC is used to compiler the C tools in the nuttx/tools directory that are neede by the build. MinGW-GCC can be downloaded from http://www.mingw.org/. - If you are using GNUWin32, then it is recommendedthe you not install the optional MSYS components as there may be conflicts. + If you are using GNUWin32, then it is recommended that you not install the optional MSYS components as there may be conflicts. From 58e11b08ca1d01f164beec7e84e8a488a8380b5c Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 20 Oct 2014 08:26:09 -0600 Subject: [PATCH 1324/1518] Update documentation/READMEs --- Documentation/README.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/README.html b/Documentation/README.html index e3e6a7fd51..dcb9c980b3 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -75,6 +75,8 @@ | | | `- README.txt | | |- ea3152/ | | | `- README.txt + | | |- efm32-g8xx-stk/ + | | | `- README.txt | | |- eagle100/ | | |- eagle100/ | | | `- README.txt | | |- ekk-lm3s9b96/ From 651b143d8185c86a0ce2b522a4fe12319d634c31 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 20 Oct 2014 12:00:37 -0600 Subject: [PATCH 1325/1518] Add board support for the Olimex EFM32G8809128 STK --- Documentation/README.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/README.html b/Documentation/README.html index dcb9c980b3..5481b0d622 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -142,6 +142,8 @@ | | | `- README.txt | | |- nutiny-nuc120/ | | | `- README.txt + | | |- olimex-efm32g880f129-stk/ + | | | `- README.txt | | |- olimex-lpc1766stk/ | | | `- README.txt | | |- olimex-lpc2378/ From e8ae4a177037a51b464833fb85e7e6d33fa95bea Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 22 Oct 2014 14:32:25 -0600 Subject: [PATCH 1326/1518] Add README for non-existent port to the EFM32GG-STK3700; fix typos in related README files --- Documentation/README.html | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Documentation/README.html b/Documentation/README.html index 5481b0d622..9d995ef37e 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -8,7 +8,7 @@

            NuttX README Files

            -

            Last Updated: September 23, 2014

            +

            Last Updated: October 22, 2014

            @@ -75,10 +75,12 @@ | | | `- README.txt | | |- ea3152/ | | | `- README.txt - | | |- efm32-g8xx-stk/ - | | | `- README.txt | | |- eagle100/ | | |- eagle100/ | | | `- README.txt + | | |- efm32-g8xx-stk/ + | | | `- README.txt + | | |- efm32gg-stk3700/ + | | | `- README.txt | | |- ekk-lm3s9b96/ | | | `- README.txt | | |- ez80f910200kitg/ From f979881803d05d57c566e40eb641a842e89f73be Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 27 Oct 2014 09:29:04 -0600 Subject: [PATCH 1327/1518] Update README files --- Documentation/README.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/README.html b/Documentation/README.html index 9d995ef37e..c12d7c379b 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -8,7 +8,7 @@

            NuttX README Files

            -

            Last Updated: October 22, 2014

            +

            Last Updated: October 27, 2014

            @@ -309,6 +309,7 @@ | |- graphics/ | | `- "tiff/README.txt | |- interpreters/ + | | |- bas/README | | |- ficl/README.txt | | `- README.txt | |- modbus/ From 76ad0e5e81141554d52b860d65b8a27482b18223 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 30 Oct 2014 06:56:30 -0600 Subject: [PATCH 1328/1518] Documentation Update --- Documentation/NuttX.html | 105 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 100 insertions(+), 5 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 3ced5565ac..03ea709139 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

            NuttX RTOS

            -

            Last Updated: September 28, 2014

            +

            Last Updated: October 30, 2014

            @@ -1262,7 +1262,7 @@
          • ARM Cortex-A5 (2)
          • ARM Cortex-A8 (1)
          • ARM Cortex-M0/M0+ (3)
          • -
          • ARM Cortex-M3 (27)
          • +
          • ARM Cortex-M3 (29)
          • ARM Cortex-M4 (16)
        • Atmel AVR @@ -1391,6 +1391,12 @@
        • Renesas M16C/26
        +
      • Silicon Laboratories + +
      • STMicroelectronics +
      • + + +
        - - -
      • Texas Instruments (some formerly Luminary)
        • TI TMS320-C5471 (ARM7TDMI)
        • @@ -2270,6 +2278,93 @@ nsh>

          + +
          + +

          + SiLabs EFM32 Gecko. + This is a port for the Silicon Laboraties EFM32 Gecko family. + Board support is available for the following: +

          +
            +
          1. +

            + SiLabs EFM32 Gecko Starter Kit t (EFM32-G8XX-STK). + The Gecko Starter Kit features: +

            +

              +
            • EFM32G890F128 MCU with 128 kB flash and 16 kB RAM +
            • 32.768 kHz crystal (LXFO) and 32 MHz crystal (HXFO) +
            • Advanced Energy Monitoring +
            • Touch slider +
            • 4x40 LCD +
            • 4 User LEDs +
            • 2 pushbutton switches +
            • Reset button and a switch to disconnect the battery. +
            • On-board SEGGER J-Link USB emulator +
            • ARM 20 pin JTAG/SWD standard Debug in/out connector +
            +

            + STATUS. + The basic port is verified and available now. This includes + on-board LED and button support and a serial console available + on LEUART0. A single configuration is available using the + NuttShell NSH and the LEUART0 serial console. +

            +

            + Refer to the EFM32 Gecko Starter Kit README.txt file for further information. +

            +
          2. +
          3. +

            + Olimex EFM32G880F120-STK. + This board features: +

            +
              +
            • EFM32G880F128 with 128 kB flash and 16 kB RAM +
            • 32.768 kHz crystal (LXFO) and 32 MHz crystal (HXFO) +
            • LCD custom display +
            • DEBUG connector with ARM 2x10 pin layout for programming/debugging with ARM-JTAG-EW +
            • UEXT connector +
            • EXT extension connector +
            • RS232 connector and driver +
            • Four user buttons +
            • Buzzer +
            +

            + STATUS. + The board suppport is complete but untested because of tool-related issues. An OpenOCD compatible, SWD debugger would be required to make further progress in testing. +

            +

            + Refer to the Olimex EFM32G880F120-STK README.txt for further information. +

            +
          4. +
          + + + +
          +
          + + +
          + +

          + SiLabs EFM32 Giant Gecko. + This is a port for the Silicon Laboraties EFM32 Giant Gecko family. +

          +
            +

            + STATUS. + At this time there are no board support packages for the Giant Gecko in the NuttX source tree (there are ports to proprietary Giant Gecko hardware, howevever). +

            +
          + + + +
          +
          +
          From 15789349ac4bddb2ef71424b59a55b47eaf0c2ac Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 30 Oct 2014 06:57:43 -0600 Subject: [PATCH 1329/1518] Remove some dangling whitespace --- Documentation/NuttX.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 03ea709139..a4f4cd3a8a 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -2302,7 +2302,7 @@ nsh>
        • 2 pushbutton switches
        • Reset button and a switch to disconnect the battery.
        • On-board SEGGER J-Link USB emulator -
        • ARM 20 pin JTAG/SWD standard Debug in/out connector +
        • ARM 20 pin JTAG/SWD standard Debug in/out connector

        STATUS. From d21cc0eda96f9166ff41e9a07fd8a4968f5d73c1 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 30 Oct 2014 09:39:23 -0600 Subject: [PATCH 1330/1518] Fix all yahoo links. From Magnus Templing --- Documentation/NXGraphicsSubsystem.html | 2 +- Documentation/NuttX.html | 2 +- Documentation/NuttXDemandPaging.html | 2 +- Documentation/NuttXLinks.html | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Documentation/NXGraphicsSubsystem.html b/Documentation/NXGraphicsSubsystem.html index 5c1c1ed812..c8c3e0b83b 100644 --- a/Documentation/NXGraphicsSubsystem.html +++ b/Documentation/NXGraphicsSubsystem.html @@ -3706,7 +3706,7 @@ sudo ln -s libXext.so.6.4.0 libXext.so NOTE: There is a workaround in this case: You can build for 32-bit execution on a 64-bit machine by adding -m3 to the CFLAGS and -m32 -m elf_i386 to the LDFLAGS. See the patch file 0001-Quick-hacks-to-build-sim-nsh-ostest-on-x86_64-as-32-.patch - that can be found in NuttX files. + that can be found in NuttX files.

      • diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index a4f4cd3a8a..039c85451d 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1165,7 +1165,7 @@

        - Most NuttX-related discussion occurs on the Yahoo! NuttX group. + Most NuttX-related discussion occurs on the Yahoo! NuttX group. You are cordially invited to join. I make a special effort to answer any questions and provide any help that I can.

        diff --git a/Documentation/NuttXDemandPaging.html b/Documentation/NuttXDemandPaging.html index b5fa2f9f2a..afaaacf862 100644 --- a/Documentation/NuttXDemandPaging.html +++ b/Documentation/NuttXDemandPaging.html @@ -129,7 +129,7 @@ This document summarizes the design of NuttX on-demand paging. This feature permits embedded MCUs with some limited RAM space to execute large programs from some non-random access media. This feature was first discussed in this email thread: - http://tech.groups.yahoo.com/group/nuttx/message/213. + https://groups.yahoo.com/neo/groups/nuttx/conversations/messages/213.

        What kind of platforms can support NuttX on-demang paging? diff --git a/Documentation/NuttXLinks.html b/Documentation/NuttXLinks.html index f278d8376b..1ed75096ab 100644 --- a/Documentation/NuttXLinks.html +++ b/Documentation/NuttXLinks.html @@ -21,7 +21,7 @@

      • Home
      • SourceForge
      • FreshMeat
      • -
      • Forum
      • +
      • Forum
      • Ohloh
      • OSChina
      • Downloads
      • From 588defb2f10ffdf6cefdb23f62064e3e46537a46 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 30 Oct 2014 10:24:42 -0600 Subject: [PATCH 1331/1518] Update document and README --- Documentation/NuttX.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 039c85451d..39777f9ab2 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -2310,6 +2310,7 @@ nsh> on-board LED and button support and a serial console available on LEUART0. A single configuration is available using the NuttShell NSH and the LEUART0 serial console. + DMA and USART-based SPI supported are included, but not fully tested.

        Refer to the EFM32 Gecko Starter Kit README.txt file for further information. From 51efe47bd1c2bb5ec0da1c84b74636eadaa67366 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 3 Nov 2014 16:13:12 -0600 Subject: [PATCH 1332/1518] EFM32GG: Add a few files for the starter kit --- Documentation/NuttX.html | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 39777f9ab2..ca4ebcdac3 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1391,7 +1391,7 @@

      • Renesas M16C/26
      -
    • Silicon Laboratories +
    • Silicon Laboratories, Inc.
      • EFM32 Gecko (ARM Cortex-M3)
      • EFM32 Giant Gecko (ARM Cortex-M3)
      • @@ -2283,7 +2283,7 @@ nsh>

        SiLabs EFM32 Gecko. - This is a port for the Silicon Laboraties EFM32 Gecko family. + This is a port for the Silicon Laboratories' EFM32 Gecko family. Board support is available for the following:

          @@ -2352,7 +2352,7 @@ nsh>

          SiLabs EFM32 Giant Gecko. - This is a port for the Silicon Laboraties EFM32 Giant Gecko family. + This is a port for the Silicon Laboratories' EFM32 Giant Gecko family.

            @@ -4672,11 +4672,12 @@ if [ -x "$WINELOADER" ]; then exec "$WINELOADER" "$appname" "$@"; fi

              -
            • ARM, ARM7 ARM7TDMI, ARM9, ARM920T, ARM926EJS Cortex-M3 are trademarks of Advanced RISC Machines, Limited.
            • +
            • ARM, ARM7 ARM7TDMI, ARM9, ARM920T, ARM926EJS, Cortex-M3 are trademarks of Advanced RISC Machines, Limited.
            • Cygwin is a trademark of Red Hat, Incorporated.
            • Linux is a registered trademark of Linus Torvalds.
            • Eagle-100 is a trademark of Micromint USA, LLC.
            • EnergyLite is a trademark of STMicroelectronics.
            • +
            • EFM32 is a trademark of Silicon Laboratories, Inc.
            • LPC2148 is a trademark of NXP Semiconductors.
            • TI is a tradename of Texas Instruments Incorporated.
            • UNIX is a registered trademark of The Open Group.
            • From 1faf8e0ee56e62306ce1909b5f03a5916d2488b7 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 3 Nov 2014 17:35:26 -0600 Subject: [PATCH 1333/1518] Update Documentation --- Documentation/NuttX.html | 43 +++++++++++++++++++++++++++++++++------- 1 file changed, 36 insertions(+), 7 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index ca4ebcdac3..6c54d68809 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

              NuttX RTOS

              -

              Last Updated: October 30, 2014

              +

              Last Updated: November 3, 2014

              @@ -1394,7 +1394,7 @@
            • Silicon Laboratories, Inc.
            • STMicroelectronics @@ -2353,13 +2353,42 @@ nsh>

              SiLabs EFM32 Giant Gecko. This is a port for the Silicon Laboratories' EFM32 Giant Gecko family. + This board features the EFM32GG990F1024 MCU with 1 MB flash and 128 kB RAM.

              -
                -

                + Board support is available for the following: +

                +
                  +
                1. +

                  + SiLabs EFM32 Giant Gecko Starter Kit t (EFM32GG-STK3700). + The Gecko Starter Kit features: +

                  +

                    +
                  • EFM32GG990F1024 MCU with 1 MB flash and 128 kB RAM +
                  • 32.768 kHz crystal (LXFO) and 48 MHz crystal (HXFO) +
                  • 32 MB NAND flash +
                  • Advanced Energy Monitoring +
                  • Touch slider +
                  • 8x20 LCD +
                  • 2 user LEDs +
                  • 2 user buttons +
                  • USB interface for Host/Device/OTG +
                  • Ambient light sensor and inductive-capacitive metal sensor +
                  • EFM32 OPAMP footprint +
                  • 20 pin expansion header +
                  • Breakout pads for easy access to I/O pins +
                  • Power sources (USB and CR2032 battery) +
                  • Backup Capacitor for RTC mode +
                  • Integrated Segger J-Link USB debugger/emulator +
                  +

                  STATUS. - At this time there are no board support packages for the Giant Gecko in the NuttX source tree (there are ports to proprietary Giant Gecko hardware, howevever). -

                  -
              + As of this writing, the basic board support is available for the Giant Gecko in the NuttX source tree. + A basic configuration is available for the NuttShell (NSH). + Testing is on hold, however, pending the arrival of hardware. +

              +
            • +
        From 03b231d74592f4e963d39db036920d3e11b7f69b Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 4 Nov 2014 12:07:18 -0600 Subject: [PATCH 1334/1518] BAS: Combine all text files (READEME, LICENSE, and NEWS) into a single README.txt file --- Documentation/README.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/README.html b/Documentation/README.html index c12d7c379b..3a8ab4be70 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -309,7 +309,7 @@ | |- graphics/ | | `- "tiff/README.txt | |- interpreters/ - | | |- bas/README + | | |- bas/README.txt | | |- ficl/README.txt | | `- README.txt | |- modbus/ From 060def4ff82aa85d40eab296607cf6aa538f3495 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 5 Nov 2014 10:43:17 -0600 Subject: [PATCH 1335/1518] Add tmpnam() and tempnam() --- Documentation/NuttxUserGuide.html | 45 ++++++++++++++++++++----------- 1 file changed, 30 insertions(+), 15 deletions(-) diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index fc51da5920..44445e8ce0 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -13,7 +13,7 @@

        NuttX Operating System

        User's Manual

        by

        Gregory Nutt

        -

        Last Updated: October 4, 2014

        +

        Last Updated: November 5, 2014

        @@ -7629,11 +7629,12 @@ interface of the same name.
      • 2.10.3 Directory Operations
      • 2.10.4 UNIX Standard Operations
      • 2.10.5 Standard I/O
      • -
      • 2.10.6 Asynchronous I/O
      • -
      • 2.10.7 Standard String Operations
      • -
      • 2.10.8 Pipes and FIFOs
      • -
      • 2.10.9 FAT File System Support
      • -
      • 2.10.10 mmap() and eXecute In Place (XIP)
      • +
      • 2.10.6 Standard Library
      • +
      • 2.10.7 Asynchronous I/O
      • +
      • 2.10.8 Standard String Operations
      • +
      • 2.10.9 Pipes and FIFOs
      • +
      • 2.10.10 FAT File System Support
      • +
      • 2.10.11 mmap() and eXecute In Place (XIP)

      2.10.1 NuttX File System Overview

      @@ -7953,6 +7954,8 @@ int dprintf(int fd, FAR const char *fmt, ...); int vdprintf(int fd, FAR const char *fmt, va_list ap); int statfs(FAR const char *path, FAR struct statfs *buf); +FAR char *tmpnam(FAR char *s); +FAR char *tempnam(FAR const char *dir, FAR const char *pfx); #include <sys/stat.h> @@ -7967,7 +7970,19 @@ int statfs(const char *path, struct statfs *buf); int fstatfs(int fd, struct statfs *buf);
    -

    2.10.6 Asynchronous I/O

    +

    2.10.6 Standard Library

    +

    + stdlib.h generally addresses other operating system interfaces. + However, the following may also be considered as file system interfaces: +

    +
      +#include <stdlib.h>
      +
      +int mktemp(FAR char *template);
      +int mkstemp(FAR char *template);
      +
    + +

    2.10.7 Asynchronous I/O

       #include <aio.h>
       
      @@ -7983,7 +7998,7 @@ int lio_listio(int mode, FAR struct aiocb *const list[], int nent,
                      FAR struct sigevent *sig);
       
    -

    2.10.7 Standard String Operations

    +

    2.10.8 Standard String Operations

       #include <string.h>
       
      @@ -8017,9 +8032,9 @@ void  *memmove(void *dest, const void *src, size_t count);
       # define bzero(s,n) (void)memset(s,0,n)
       
    -

    2.10.8 Pipes and FIFOs

    +

    2.10.9 Pipes and FIFOs

    -

    2.10.8.1 pipe

    +

    2.10.9.1 pipe

    Function Prototype:

    @@ -8053,7 +8068,7 @@ int pipe(int fd[2]);

    -

    2.10.8.2 mkfifo

    +

    2.10.9.2 mkfifo

    Function Prototype:

    @@ -8100,8 +8115,8 @@ int mkfifo(FAR const char *pathname, mode_t mode);

    -

    2.10.9 FAT File System Support

    -

    2.10.9.1 mkfatfs

    +

    2.10.10 FAT File System Support

    +

    2.10.10.1 mkfatfs

    Function Prototype:

    @@ -8178,7 +8193,7 @@ struct fat_format_s

    -

    2.10.10 mmap() and eXecute In Place (XIP)

    +

    2.10.11 mmap() and eXecute In Place (XIP)

    NuttX operates in a flat open address space and is focused on MCUs that do support Memory Management Units (MMUs). Therefore, NuttX generally does not @@ -8307,7 +8322,7 @@ struct fat_format_s -

    2.10.10.1 mmap

    +

    2.10.11.1 mmap

    Function Prototype:

    From 5e93acb508a991f5170297cf4d5090223bccfd12 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 7 Nov 2014 15:03:03 -0600 Subject: [PATCH 1336/1518] BAS: Rename examples/bas to examples/bastest. Hook into build and configuration system. Finish ROMFS logic --- Documentation/README.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/README.html b/Documentation/README.html index 3a8ab4be70..a15681e955 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -8,7 +8,7 @@

    NuttX README Files

    -

    Last Updated: October 27, 2014

    +

    Last Updated: November 7, 2014

    @@ -303,6 +303,7 @@ |- apps/ | |- README.txt | |- examples/ + | | |- bastest/README.txt | | |- json/README.txt | | |- pashello/README.txt | | `- README.txt From f25973612ecfa60a13852634ab3481088ce21939 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 10 Nov 2014 07:46:17 -0600 Subject: [PATCH 1337/1518] Remove stm32f100rc_generic board configuration --- Documentation/NuttX.html | 15 +++++++++++---- Documentation/README.html | 4 +--- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 6c54d68809..02a55b317a 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

    NuttX RTOS

    -

    Last Updated: November 3, 2014

    +

    Last Updated: November 11, 2014

    @@ -2487,10 +2487,17 @@ nsh>
  • - Generic Board Support + Generic Board Support (obsoleted) This logic was extended to support the high density STM32F100RC chips by Freddie Chopin There is generic support for STM32F100RC boards. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information. +

    +

    + Obsoleted. + This generic board supported has been obsoleted. + The code has been moved out of the NuttX source tree but can still be found be found in Obsoleted directory. + This support was obsoleted because of a decision to stop support of generic board configurations. + Generic board configurations do not provide support for any specific hardware but can be useful only if there are not other examples for the setup for a particular architecture.

  • @@ -4153,7 +4160,7 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1);

    Obsoleted. - This architecture has been obsoleted. + This board support has been obsoleted. The code has been moved out of the NuttX source tree but can still be found be found in Obsoleted directory. This support was obsoleted because of technical issues that make NuttX unusable on the board at least in the short term. This configuration may return to the NuttX source tree at some time in the future.

    diff --git a/Documentation/README.html b/Documentation/README.html index a15681e955..95b5760f8a 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -8,7 +8,7 @@

    NuttX README Files

    -

    Last Updated: November 7, 2014

    +

    Last Updated: November 11, 2014

    @@ -213,8 +213,6 @@ | | | `- README.txt | | |- stm32_tiny/ | | | `- README.txt - | | |- stm32f100rc_generic/ - | | | `- README.txt | | |- stm32f3discovery/ | | | `- README.txt | | |- stm32f4discovery/ From f43a1d64a35ebc401e991d5ca1a8b7b3f5c7a9c8 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 12 Nov 2014 14:47:04 -0600 Subject: [PATCH 1338/1518] Update document and README --- Documentation/NuttX.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 02a55b317a..b98523dbe9 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -2289,7 +2289,7 @@ nsh>
    1. - SiLabs EFM32 Gecko Starter Kit t (EFM32-G8XX-STK). + SiLabs EFM32 Gecko Starter Kit (EFM32-G8XX-STK). The Gecko Starter Kit features:

        @@ -2384,8 +2384,8 @@ nsh>

        STATUS. As of this writing, the basic board support is available for the Giant Gecko in the NuttX source tree. - A basic configuration is available for the NuttShell (NSH). - Testing is on hold, however, pending the arrival of hardware. + A verified configuration is available for the basic NuttShell (NSH) using LEUART0 for the serial console. + Development of USB support is in progress.

    From 7e18cc3a76ed589b6efec259f13822bdff060a11 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 12 Nov 2014 18:31:32 -0600 Subject: [PATCH 1339/1518] Binfmt no longer depends on a fixed sized argv[] list --- Documentation/NuttxUserGuide.html | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 44445e8ce0..eb5a27f53d 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -271,8 +271,7 @@ int task_create(char *name, int priority, int stack_size, main_t entry, char * c

    Note that an arbitrary number of arguments may be passed to the - spawned functions. The maximum umber of arguments is an OS - configuration parameter (CONFIG_MAX_TASK_ARGS). + spawned functions.

    The arguments are copied (via strdup) so that the From 118b511a956ff9c4a2af82719d8bde59d4c69db9 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 15 Nov 2014 08:22:51 -0600 Subject: [PATCH 1340/1518] Netwoek: Ada a parameter to netdev_register() to indicate the link protocol supported by the driver. Use this value to replace some logic commited yesterday --- Documentation/NuttxPortingGuide.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 3bfd4021fd..7aebea6768 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

    NuttX RTOS Porting Guide

    -

    Last Updated: October 14, 2014

    +

    Last Updated: November 15, 2014

    @@ -4315,7 +4315,7 @@ void board_led_off(int led);
  • - int netdev_register(FAR struct net_driver_s *dev);. + int netdev_register(FAR struct net_driver_s *dev, enum net_lltype_e lltype);. Each Ethernet driver registers itself by calling netdev_register().

  • From 1cfdfdac485a0e64498623ec7642a5dc78d23566 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 16 Nov 2014 08:50:36 -0600 Subject: [PATCH 1341/1518] Clarify MTU/BUFSIZE in apps/ README.txt files and Documentation --- Documentation/NuttShell.html | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index 886ae053c9..939e7373cf 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -2605,7 +2605,7 @@ nsh> get CONFIG_NET && CONFIG_NET_UDP && - CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_NET_BUFSIZE >= 5581 + CONFIG_NFILE_DESCRIPTORS > 0 && MTU >= 5581 CONFIG_NSH_DISABLE_GET @@ -2711,7 +2711,7 @@ nsh> put CONFIG_NET && CONFIG_NET_UDP && - CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_NET_BUFSIZE >= 5581,2 + CONFIG_NFILE_DESCRIPTORS > 0 && MTU >= 5581,2 CONFIG_NSH_DISABLE_PUT @@ -3254,10 +3254,12 @@ set FOOBAR ABC_${FOO}_${BAR} - CONFIG_NET_BUFSIZE=650 (or larger) + CONFIG_NET_ETH_MTU=650 (or larger) Per RFC2131 (p. 9), the DHCP client must be prepared to receive DHCP messages of up to 576 bytes (excluding Ethernet, IP, or UDP headers and FCS). + NOTE: Note that the actual MTU setting will depend upon the specific link protocol. + Here Ethernet is indicated. From 6d7c4a526d828b56d1964338fad3eaf1e0b403de Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 26 Nov 2014 11:11:54 -0600 Subject: [PATCH 1342/1518] Preparing for NuttX-7.6 Release --- Documentation/NuttX.html | 62 ++++++++++++++++++++++++++++++++++------ 1 file changed, 54 insertions(+), 8 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index b98523dbe9..05ccda8716 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

    NuttX RTOS

    -

    Last Updated: November 11, 2014

    +

    Last Updated: November 26, 2014

    @@ -568,6 +568,14 @@

    + +
    + +

    +

  • Asynchronous I/O (AIO)
  • +

    + +
    @@ -674,12 +682,27 @@ Networking + +
    + +

    +

  • Multiple network interface support; multiple network link layer support.
  • +

    + +

  • TCP/IP, UDP, ICMP, IGMPv2 (client) stacks.
  • -
  • Raw socket support
  • +

    + + + +
    + +

    +

  • Raw socket support.
  • @@ -1020,6 +1043,29 @@

    + + + + BAS 2.4 + + + + +
    + +

    +

  • Seamless integration of Michael Haardt's BAS 2.4: + "Bas is an interpreter for the classic dialect of the programming language + BASIC. It is pretty compatible to typical BASIC interpreters of the 1980s, + unlike some other UNIX BASIC interpreters, that implement a different + syntax, breaking compatibility to existing programs. Bas offers many ANSI + BASIC statements for structured programming, such as procedures, local + variables and various loop types. Further there are matrix operations, + automatic LIST indentation and many statements and functions found in + specific classic dialects. Line numbers are not required."
  • +

    + + @@ -1187,11 +1233,11 @@

    Released Versions

    In addition to the ever-changing GIT repository, there are frozen released versions of NuttX available. - The current release is NuttX 7.5. - NuttX 7.5 is the 105th release of NuttX. - It was released on September 28, 2014, and is available for download from the + The current release is NuttX 7.6. + NuttX 7.6 is the 106th release of NuttX. + It was released on November 26, 2014, and is available for download from the SourceForge website. - Note that the release consists of two tarballs: nuttx-7.5.tar.gz and apps-7.5.tar.gz. + Note that the release consists of two tarballs: nuttx-7.6.tar.gz and apps-7.6.tar.gz. Both may be needed (see the top-level nuttx/README.txt file for build information).

    @@ -1200,7 +1246,7 @@
    • nuttx.

        - Release notes for NuttX 7.5 are available here; + Release notes for NuttX 7.6 are available here; release notes for all released versions on NuttX are available in the SourceForge GIT The ChangeLog for all releases of NuttX is available in the ChangeLog file that can viewed in the SourceForge GIT. The ChangeLog for the current release is at the bottom of that file. @@ -1208,7 +1254,7 @@

    • apps.

        - Release notes for NuttX 7.5 are available here; + Release notes for NuttX 7.6 are available here; release notes for all released versions on NuttX are available in the SourceForge GIT The ChangeLog for the all releases of apps is available in the ChangeLog file that can viewed in the SourceForge GIT. The ChangeLog for the current release is at the bottom of that file. From 6baf4bf49791ec26f66112903a8518335ce52d05 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 26 Nov 2014 15:37:54 -0600 Subject: [PATCH 1343/1518] Misc changes while verifying the clean build of the LPC4357 port --- Documentation/README.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/README.html b/Documentation/README.html index 95b5760f8a..8e58d0701d 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -115,6 +115,8 @@ | | | `- README.txt | | |- lpc4330-xplorer/ | | | `- README.txt + | | |- lpc4357-evb/ + | | | `- README.txt | | |- lpcxpresso-lpc1768/ | | | `- README.txt | | |- maple/ From 19ac111a296fd32b87fe82d5f1e3453154893533 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 26 Nov 2014 16:44:25 -0600 Subject: [PATCH 1344/1518] Add some discussio of the LPC4357 to documentation and README files --- Documentation/NuttX.html | 83 ++++++++++++++++++++++++++-------------- 1 file changed, 55 insertions(+), 28 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 05ccda8716..f2d40c0767 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1309,7 +1309,7 @@

      • ARM Cortex-A8 (1)
      • ARM Cortex-M0/M0+ (3)
      • ARM Cortex-M3 (29)
      • -
      • ARM Cortex-M4 (16)
      • +
      • ARM Cortex-M4 (17)
    • Atmel AVR
        @@ -3317,33 +3317,40 @@ nsh>

        - NXG Technologies LPC4330-Xplorer. - This NuttX port is for the LPC4330-Xplorer board from NGX Technologies featuring the NXP LPC4330FET100 MCU. - See the NXG website for further information about this board. -

        -

        - STATUS: - Refer to the NuttX board README file for more detailed information about this port. + NCP LPC43xx. + Two board ports are available for this higher end, NXP Cortex-M4F part:

          -
        • -

          NuttX-6.20 - The basic port is complete. - The basic NuttShell (NSH) configuration is present and fully verified. - This includes verified support for: SYSTICK system time, pin and GPIO configuration, and a serial console. -

          -

          - Several drivers have been copied from the related LPC17xx port but require integration into the LPC43xx: ADC, DAC, GPDMA, I2C, SPI, and SSP. - The registers for these blocks are the same in both the LPC43xx and the LPC17xx and they should integrate into the LPC43xx very easily by simply adapting the clocking and pin configuration logic. -

          -

          - Other LPC17xx drivers were not brought into the LPC43xx port because these peripherals have been completely redesigned: CAN, Ethernet, USB device, and USB host. -

          -

          - So then there is no support for the following LPC43xx peripherals: SD/MMC, EMC, USB0,USB1, Ethernet, LCD, SCT, Timers 0-3, MCPWM, QEI, Alarm timer, WWDT, RTC, Event monitor, and CAN. -

          -

          - Some of these can be leveraged from other MCUs that appear to support the same peripheral IP: +

          + NXG Technologies LPC4330-Xplorer. + This NuttX port is for the LPC4330-Xplorer board from NGX Technologies featuring the NXP LPC4330FET100 MCU. + See the NXG website for further information about this board. +

          +
            +
          • +

            STATUS: + Refer to the NuttX board README file for more detailed information about this port. +

            +
          • +
          • +

            NuttX-6.20 + The basic port is complete. + The basic NuttShell (NSH) configuration is present and fully verified. + This includes verified support for: SYSTICK system time, pin and GPIO configuration, and a serial console. +

            +

            + Several drivers have been copied from the related LPC17xx port but require integration into the LPC43xx: ADC, DAC, GPDMA, I2C, SPI, and SSP. + The registers for these blocks are the same in both the LPC43xx and the LPC17xx and they should integrate into the LPC43xx very easily by simply adapting the clocking and pin configuration logic. +

            +

            + Other LPC17xx drivers were not brought into the LPC43xx port because these peripherals have been completely redesigned: CAN, Ethernet, USB device, and USB host. +

            +

            + So then there is no support for the following LPC43xx peripherals: SD/MMC, EMC, USB0,USB1, Ethernet, LCD, SCT, Timers 0-3, MCPWM, QEI, Alarm timer, WWDT, RTC, Event monitor, and CAN. +

            +

            + Some of these can be leveraged from other MCUs that appear to support the same peripheral IP: +

            • The LPC43xx USB0 peripheral appears to be the same as the USB OTG peripheral for the LPC31xx. @@ -3354,11 +3361,31 @@ nsh> The Ethernet block looks to be based on the same IP as the STM32 Ethernet and, as a result, it should be possible to leverage the NuttX STM32 Ethernet driver with a little more effort.
            +
          • +
          • +

            NuttX-6.21 + Added support for a SPIFI block driver and for RS-485 option to the serial driver. +

          • +
          +

          + NXP/Embest LPC4357-EVB. + This NuttX port is for the LPC4357-EVB from NXP/Embest featuring the NXP LPC4357FET256 MCU. + The LPC4357 differs from the LPC4330 primarily in that it includes 1024KiB of on-chip NOR FLASH. + See the NXP website for more detailed information about the LPC4357 and the LPC4357-EVB. +

          +
            +
          • +

            STATUS: + Refer to the NuttX board README file for more detailed information about this port.

          • -

            NuttX-6.21 - Added support for a SPIFI block driver and for RS-485 option to the serial driver. +

            NuttX-7.6 + The basic port is was contributed by Toby Duckworth. + This port leverages from the LPC4330-Xplorer port (and, as of this writing, still requires some clean up of the technical discussion in some files). + The basic NuttShell (NSH) configuration is present and has been verified. + Support is generally the same as for the LPC4330-Xplorer as discussed above. +

          From d4fbe5c36c6c630380fde560a14ccac7b284c36c Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 27 Nov 2014 09:14:00 -0600 Subject: [PATCH 1345/1518] EEPROM: Add a README file --- Documentation/README.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/README.html b/Documentation/README.html index 8e58d0701d..35512e365c 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -260,6 +260,8 @@ | | | `- README.txt | | `- README.txt | |- drivers/ + | | |- eeprom/ + | | | `- README.txt | | |- lcd/ | | | `- README.txt | | |- mtd/ From 82f86705c42d5d487b2c38da87f5addad6def298 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 29 Nov 2014 13:25:29 -0600 Subject: [PATCH 1346/1518] Update some Documentation and comments associated with the last ioctl change --- Documentation/NuttxUserGuide.html | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index eb5a27f53d..917b52559f 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -13,7 +13,7 @@

          NuttX Operating System

          User's Manual

          by

          Gregory Nutt

          -

          Last Updated: November 5, 2014

          +

          Last Updated: November 29, 2014

          @@ -7733,7 +7733,11 @@ interface of the same name.
               #include <sys/ioctl.h>
            -  int     ioctl(int fd, int req, unsigned long arg);
            +  #ifdef CONFIG_LIBC_IOCTL_VARIADIC
            +  int ioctl(int fd, int req, ...);
            +  #else
            +  int ioctl(int fd, int req, unsigned long arg);
            +  #endif
             

          2.10.2.4 poll.h

          From 2ec2721a7fc002693981219aac6c2eec4ca9509c Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 1 Dec 2014 06:41:30 -0600 Subject: [PATCH 1347/1518] Correct spelling: MOUNTPOINT not MOUNTPOUNT. Numerous places. Some are problems. From Woohan Lee --- Documentation/NuttShell.html | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index 939e7373cf..eafbf6d996 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -859,7 +859,7 @@ done
        • By default, the contents of rcS script are:
            -# Create a RAMDISK and mount it at XXXRDMOUNTPOUNTXXX
            +# Create a RAMDISK and mount it at XXXRDMOUNTPOINTXXX
             
             mkrd -m 1 -s 512 1024
             mkfatfs /dev/ram1
            @@ -3425,11 +3425,11 @@ set FOOBAR ABC_${FOO}_${BAR}
                   By default, this rcS start-up script contains the following logic:
                 

              -# Create a RAMDISK and mount it at XXXRDMOUNTPOUNTXXX
              +# Create a RAMDISK and mount it at XXXRDMOUNTPOINTXXX
               
               mkrd -m XXXMKRDMINORXXX -s XXMKRDSECTORSIZEXXX XXMKRDBLOCKSXXX
               mkfatfs /dev/ramXXXMKRDMINORXXX
              -mount -t vfat /dev/ramXXXMKRDMINORXXX XXXRDMOUNTPOUNTXXX
              +mount -t vfat /dev/ramXXXMKRDMINORXXX XXXRDMOUNTPOINTXXX
               

            @@ -3451,7 +3451,7 @@ mount -t vfat /dev/ramXXXMKRDMINORXXX XXXRDMOUNTPOUNTXXX

          • - XXXRDMOUNTPOUNTXXX will become the configured mount point. + XXXRDMOUNTPOINTXXX will become the configured mount point. Default: /etc

          From acadf308e4c48c9c9c836a7704a97a5d61489aff Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 16 Dec 2014 14:58:25 -0600 Subject: [PATCH 1348/1518] Update README files --- Documentation/README.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/README.html b/Documentation/README.html index 35512e365c..9e09dc0f35 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -266,6 +266,8 @@ | | | `- README.txt | | |- mtd/ | | | `- README.txt + | | |- sensors/ + | | | `- README.txt | | |- sercomm/ | | | `- README.txt | | |- syslog/ From ce23a4f3eda88ed3e906832694ab932c8b8094f0 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 16 Dec 2014 15:33:31 -0600 Subject: [PATCH 1349/1518] Update README files --- Documentation/README.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/README.html b/Documentation/README.html index 9e09dc0f35..0bf3896254 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -8,7 +8,7 @@

          NuttX README Files

          -

          Last Updated: November 11, 2014

          +

          Last Updated: December 16, 2014

          @@ -71,6 +71,8 @@ | | | `- README.txt | | |- demo9s12ne64/ | | | `- README.txt + | | |- dk-tm4c129x/ + | | | `- README.txt | | |- ea3131/ | | | `- README.txt | | |- ea3152/ From a8c0efdf923a46c0a92c7925ccb6ccfb8d7b89f4 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 18 Dec 2014 07:18:43 -0600 Subject: [PATCH 1350/1518] Update documentation --- Documentation/NuttX.html | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index f2d40c0767..53c2e40701 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

          NuttX RTOS

          -

          Last Updated: November 26, 2014

          +

          Last Updated: December 17, 2014

          @@ -3425,13 +3425,20 @@ nsh>

            STATUS: - This is very much a work in progress. - As of this writing, full architectural support for the TI Tiva TM4C123G has been implemented and was released in NuttX 7.1. - Basic board support is in place for the TM4C123G LaunchPad but is completely untested and possibly incomplete. - This partial logic is also included int he NuttX 7.1 release. - This basic board supprted includes an (un-verified) configuration for the NuttShell NSH). - A fully verified port to the TM4C123G LaunchPad is expected in NuttX-7.2. - The first fully functional LM4F120 LaunchPad port was released in NuttX-6.27. +

              +
            • + Initial architectural support for the TI Tiva TM4C123G was implemented and was released in NuttX 7.1. + Basic board support support the TM4C123G LaunchPad was also included in that relese but was not fully tested. + This basic board supprted included a configuration for the NuttShell NSH). +
            • +
            • + The fully verified port to the TM4C123G LaunchPad is provided in NuttX-7.2. +
            • +
            • + An I2C driver was added in NuttX-7.7. +
            • +
            +

            Refer to the TM4C123G LaunchPad board README file for more detailed information about this port.

          From afaffcfe902e04ee6102c9825b76d6948af658d3 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 19 Dec 2014 14:14:41 -0600 Subject: [PATCH 1351/1518] Stuff that goes along with the new LTDC README file --- Documentation/README.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/README.html b/Documentation/README.html index 0bf3896254..b8abf5aafd 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -222,6 +222,7 @@ | | |- stm32f4discovery/ | | | `- README.txt | | |- stm32f429i-disco/ + | | | |- ltdc/README.txt | | | `- README.txt | | |- stm32vldiscovery/ | | | `- README.txt From 807d5ca1e6ab7fa134f62f4ba4bb78988d6c39a8 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 27 Dec 2014 07:43:06 -0600 Subject: [PATCH 1352/1518] Serial Upper Half: Add watermarks to RX flow control logic --- Documentation/NuttxPortingGuide.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 7aebea6768..f685d92abc 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -4443,7 +4443,7 @@ void board_led_off(int led); void rxint(FAR struct uart_dev_s *dev, bool enable);
          bool rxavailable(FAR struct uart_dev_s *dev);
          #ifdef CONFIG_SERIAL_IFLOWCONTROL
          - bool rxflowcontrol(FAR struct uart_dev_s *dev);
          + bool rxflowcontrol(FAR struct uart_dev_s *dev, unsigned int nbuffered, bool upper);
          #endif
          void send(FAR struct uart_dev_s *dev, int ch);
          void txint(FAR struct uart_dev_s *dev, bool enable);
          From 35610eef150793d99a9fb3d3719e1c4ed67e0953 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 23 Jan 2015 12:49:49 -0600 Subject: [PATCH 1353/1518] apps/nshlib: Add the ping6 command to support checking IPv6 networks. NSH logic is complete but still missing some network level support --- Documentation/NuttShell.html | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index eafbf6d996..2f1fd333a9 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -305,7 +305,7 @@
          - 2.37 Check Network Peer (ping) + 2.37 Check Network Peer (ping/ping6) @@ -2092,14 +2092,15 @@ nfsmount <server-address> <mount-point> <remote-path>
          -

          2.37 Check Network Peer (ping)

          +

          2.37 Check Network Peer (ping/ping6)

          Command Syntax:

            -ping [-c <count>] [-i <interval>] <ip-address>
            +ping  [-c <count>] [-i <interval>] <ip-address>
            +ping6 [-c <count>] [-i <interval>] <ip-address>
             

          Synopsis. @@ -2121,6 +2122,9 @@ PING 10.0.0.1 56 bytes of data 10 packets transmitted, 10 received, 0% packet loss, time 10190 ms nsh>

        +

        + ping6 differs from ping in that it uses IPv6 addressing. +

        @@ -2703,6 +2707,12 @@ nsh> CONFIG_NET_ICMP_PING && !CONFIG_DISABLE_SIGNALS + + + + + @@ -4183,10 +4193,10 @@ mount -t vfat /dev/ram1 /tmp
      • CONFIG_NSH_NETMASK
      • CONFIG_NSH_NOMAC
      • CONFIG_NSH_READLINE
      • +
      • CONFIG_NSH_ROMFSDEVNO
      • CONFIG_NSH_DISABLE_PING
        ping6CONFIG_NET && CONFIG_NET_ICMPv6 && + CONFIG_NET_ICMPv6_PING && !CONFIG_DISABLE_SIGNALSCONFIG_NSH_DISABLE_PING6
        ps
          -
        • mw
        • -
        • mkdir
        • mkfatfs
        • mkfifo
        • mkrd
        • @@ -4271,6 +4281,7 @@ mount -t vfat /dev/ram1 /tmp
        • OLDPWD
        • Overview
        • ping
        • +
        • ping6
        • Prompt
        • ps
        • put
        • From 67a2e5827c69d3f41f347a2adf18f8f6f1142692 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 24 Jan 2015 07:29:43 -0600 Subject: [PATCH 1354/1518] Some minor clean-up of IPv4/6 flags --- Documentation/NuttX.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 53c2e40701..a18b628af7 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

        NuttX RTOS

        -

        Last Updated: December 17, 2014

        +

        Last Updated: January 24, 2014

        @@ -694,7 +694,7 @@

        -

      • TCP/IP, UDP, ICMP, IGMPv2 (client) stacks.
      • +
      • IPv4, IPv6, TCP/IP, UDP, ICMP, IGMPv2 (client) stacks.
      • From 01df652bc3e6f4afa3f0c52bd7f726f65e2758c3 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 26 Jan 2015 09:35:27 -0600 Subject: [PATCH 1355/1518] Prep for NuttX-7.7 release --- Documentation/NuttX.html | 124 ++++++++++++++++++++++++++++++++------- 1 file changed, 104 insertions(+), 20 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index a18b628af7..bebe841de8 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

        NuttX RTOS

        -

        Last Updated: January 24, 2014

        +

        Last Updated: January 26, 2014

        @@ -1233,11 +1233,11 @@

        Released Versions

        In addition to the ever-changing GIT repository, there are frozen released versions of NuttX available. - The current release is NuttX 7.6. - NuttX 7.6 is the 106th release of NuttX. - It was released on November 26, 2014, and is available for download from the + The current release is NuttX 7.7. + NuttX 7.7 is the 107th release of NuttX. + It was released on Januay 26, 2015, and is available for download from the SourceForge website. - Note that the release consists of two tarballs: nuttx-7.6.tar.gz and apps-7.6.tar.gz. + Note that the release consists of two tarballs: nuttx-7.7.tar.gz and apps-7.7.tar.gz. Both may be needed (see the top-level nuttx/README.txt file for build information).

        @@ -1246,7 +1246,7 @@
        • nuttx.

            - Release notes for NuttX 7.6 are available here; + Release notes for NuttX 7.7 are available here; release notes for all released versions on NuttX are available in the SourceForge GIT The ChangeLog for all releases of NuttX is available in the ChangeLog file that can viewed in the SourceForge GIT. The ChangeLog for the current release is at the bottom of that file. @@ -1254,7 +1254,7 @@

        • apps.
        • Atmel AVR
        • @@ -2403,7 +2405,7 @@ nsh>

          Board support is available for the following:

          -
            +
            • SiLabs EFM32 Giant Gecko Starter Kit t (EFM32GG-STK3700). @@ -2429,12 +2431,21 @@ nsh>

            STATUS. - As of this writing, the basic board support is available for the Giant Gecko in the NuttX source tree. - A verified configuration is available for the basic NuttShell (NSH) using LEUART0 for the serial console. - Development of USB support is in progress.

            +
              +
            • + The basic board support for the Giant Gecko was introduced int the NuttX source tree in NuttX-7.6. + A verified configuration was available for the basic NuttShell (NSH) using LEUART0 for the serial console. +
            • +
            • + Development of USB support is in started, but never completed. +
            • +
            • + Reset Management Unit (RMU) was added Pierre-noel Bouteville in NuttX-7.7. +
            • +
            -
          +
        @@ -2560,6 +2571,26 @@ nsh>

        + +
        + +

        + STMicro STM32F102. + Architecture support (only) for the STM32 F102 family was contributed by the PX4 team in NuttX-7.7. +

        +
          +

          + STATUS: + Architecture support only is provided. + No specific STM32 F102 boards are supported. +

          +
        + + + +
        +
        +
        @@ -3303,8 +3334,27 @@ nsh>

        STMicro STM32 F429. Support for STMicro STM32F429I-Discovery development board featuring the STM32F429ZIT6 MCU was contributed in NuttX-6.32 by Ken Pettit. - The F429 port adds support for the STM32F439 LCDC and OTG HS (in FS mode). The STM32F429ZIT6 is a 180MHz Cortex-M4 operation with 2Mbit Flash memory and 256kbytes. +

        +

        + STATUS: +

        +
          +
        • + The intial release included support from either OTG FS or OTG HS in FS mode. +
        • +
        • + The F429 port adds support for the STM32F439 LCD and OTG HS (in FS mode). +
        • +
        • + In Nutt-7.6, Brennan Ashton added support for concurrent OTG FS and OTG HS (still in FS mode) and Marco Krahl added support for an SPI-based LCD . +
        • +
        • + In Nutt-7.7, Marco Krahl included support for a framebuffer based driver using the LTDC and DMA2D. + Marcos's implementation included extensions to support more advance LTDC functions through an auxiliary interface. +
        • +
        +

        Refer to the STM32F429I-Discovery board README file for further information.

        @@ -3419,7 +3469,7 @@ nsh>

        - TI Tiva TM4C123G. + TI Tiva TM4C123G. This port uses the TI Tiva TM4C123G LaunchPad.

          @@ -3428,8 +3478,8 @@ nsh>
          • Initial architectural support for the TI Tiva TM4C123G was implemented and was released in NuttX 7.1. - Basic board support support the TM4C123G LaunchPad was also included in that relese but was not fully tested. - This basic board supprted included a configuration for the NuttShell NSH). + Basic board support the TM4C123G LaunchPad was also included in that release but was not fully tested. + This basic board support included a configuration for the NuttShell NSH).
          • The fully verified port to the TM4C123G LaunchPad is provided in NuttX-7.2. @@ -3448,6 +3498,40 @@ nsh>

            + +
            + +

            + TI Tiva TM4C129X. + This port uses the TI Tiva DK-TM4C129X Connected Development Kit. +

            +
              +

              + STATUS: +

                +
              • + A mature port to the DK-TM4C123G was implemented and was released in NuttX 7.7. +
              • +
              • + At the initial release, verified drivers were available for Ethernet interface, I2C, and timers as well as board LEDs and push buttons. + Other Tiva/Stellaris drivers should port to the TM4C129X without major difficulty. +
              • +
              • + This board supports included two configurations for the NuttShell (NSH). + Both are networked enabled: One configured to support IPv4 and one configured to supported IPv6. + Instructions are included in the board README file for configuring both IPv4 and IPv6 simultaneously.. +
              • +
              +

              + Refer to the TM4C129X LaunchPad board README file for more detailed information about this port. +

              +
            + + + +
            +
            +
            @@ -3460,7 +3544,7 @@ nsh> STATUS: This is very much a work in progress. The basic port was released in NuttX-7.5. - This basic board supprted includes an verified configuration for the NuttShell NSH). + This basic board supported includes an verified configuration for the NuttShell NSH). Key wireless networking capability is still missing. Refer to the CC3200 LaunchPad board README file for more detailed information about this port.

            From 5a3fc91b9cd185f782c65948cab83d5d9f358cbe Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 28 Jan 2015 09:08:49 -0600 Subject: [PATCH 1356/1518] Documentation: Add Unix domain sockets to the feature list --- Documentation/NuttX.html | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index bebe841de8..e7295bd39c 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

            NuttX RTOS

            -

            Last Updated: January 26, 2014

            +

            Last Updated: January 28, 2014

            @@ -702,7 +702,15 @@

            -

          • Raw socket support.
          • +
          • Stream and datagram sockets.
          • +

            + + + +
            + +

            +

          • Raw socket and local, Unix domain socket support.
          • From cbe8d9ecd28f66eaba3ab41245e132398851429b Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 31 Jan 2015 14:10:53 -0600 Subject: [PATCH 1357/1518] Review/modifications for change of last merge --- Documentation/README.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/README.html b/Documentation/README.html index b8abf5aafd..ec1f518024 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -135,6 +135,8 @@ | | | `- README.txt | | |- mt-db-x3// | | | `- README.txt + | | |- moteino-mega/ + | | | `- README.txt | | |- mx1ads/ | | | `- README.txt | | |- ne64badge/ From ecbbd35898f9a31ac55493bb2688fb4d76489b71 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 2 Feb 2015 06:45:31 -0600 Subject: [PATCH 1358/1518] Update documentation --- Documentation/NuttX.html | 43 ++++++++++++++++++++++++++++------------ 1 file changed, 30 insertions(+), 13 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index e7295bd39c..0a4e80bcff 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

            NuttX RTOS

            -

            Last Updated: January 28, 2014

            +

            Last Updated: February 2, 2014

            @@ -1321,7 +1321,7 @@
        • Atmel AVR
        • @@ -1381,6 +1381,7 @@
        • Atmel
          • AVR ATMega128 (8-bit AVR)
          • +
          • AVR ATMega1284p (8-bit AVR)
          • AVR AT90USB64x and AT90USB6128x (8-bit AVR)
          • AVR32 AT32UC3BXXX (32-bit AVR32)
          • Atmel SAMD20 (ARM Cortex-M0+)
          • @@ -3763,7 +3764,6 @@ Mem: 29232 5920 23312 23312

            - @@ -3774,18 +3774,34 @@ Mem: 29232 5920 23312 23312

            - SoC Robotics ATMega128. - This port of NuttX to the Amber Web Server from SoC Robotics - is partially completed. - The Amber Web Server is based on an Atmel ATMega128. + AVR ATMega.

              - STATUS: - Work on this port has stalled due to toolchain issues. Complete, but untested - code for this port appears in the NuttX 6.5 release. - Refer to the NuttX board README file for further information. + SoC Robotics ATMega128. + This port of NuttX to the Amber Web Server from SoC Robotics + is partially completed. + The Amber Web Server is based on an Atmel ATMega128.

              +
                +

                + STATUS: + Work on this port has stalled due to toolchain issues. Complete, but untested code for this port appears in the NuttX 6.5 release. + Refer to the NuttX board README file for further information. +

                +
              +

              + LowPowerLab MoteinoMEGA. + This port of NuttX to the MoteinoMEGA from LowPowerLab. + The MoteinoMEGA is based on an Atmel ATMega1284P. + See the LowPowerlab website and the board README file for further information. +

              +
                +

                + STATUS: + The basic function port support the NuttShell (NSH) was contribute by Jedi Tek'Enum and first appeard in the NuttX 7.8 release. +

                +
            @@ -3847,12 +3863,13 @@ Mem: 29232 5920 23312 23312

            AVR-Specific Issues. - The basic AVR port is solid and biggest issue for using AVR is its tiny SRAM memory and its Harvard architecture. + The basic AVR port is solid. + The biggest issue for using AVR is its tiny SRAM memory and its Harvard architecture. Because of the Harvard architecture, constant data that resides to flash is inaccessible using "normal" memory reads and writes (only SRAM data can be accessed "normally"). Special AVR instructions are available for accessing data in FLASH, but these have not been integrated into the normal, general purpose OS.

            - Most NuttX test applications are console-oriented with lots of strings used for printf and debug output. + Most NuttX test applications are console-oriented with lots of strings used for printf() and debug output. These strings are all stored in SRAM now due to these data accessing issues and even the smallest console-oriented applications can quickly fill a 4-8K memory. So, in order for the AVR port to be useful, one of two things would need to be done:

            From 95adb11b3749643a615125ac192b25bb94247142 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 3 Feb 2015 17:01:48 -0600 Subject: [PATCH 1359/1518] Minor updates to comments, debug messages, documentation --- Documentation/NuttX.html | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 0a4e80bcff..0e6db16b51 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

            NuttX RTOS

            -

            Last Updated: February 2, 2014

            +

            Last Updated: February 3, 2014

            @@ -755,6 +755,14 @@

            + +
            + +

            +

          • ICMPv6 autonomous auto-configuration
          • +

            + +
            From d54d616430c65dc7b52f1d2d8cd82d456ce86474 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 11 Feb 2015 07:18:06 -0600 Subject: [PATCH 1360/1518] Add support for Freedom KL26Z board. From Derek B. NoonBurg --- Documentation/README.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/README.html b/Documentation/README.html index ec1f518024..37aa984d06 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -102,6 +102,8 @@ | | | `- README.txt | | |- freedom-kl25z/ | | | `- README.txt + | | |- freedom-kl26z/ + | | | `- README.txt | | |- hymini-stm32v/ | | | |- RIDE/README.txt | | | `- README.txt From 293dfbc0fe568fcbfaae2c47fd2375d756fd5fbd Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 11 Feb 2015 07:26:26 -0600 Subject: [PATCH 1361/1518] Update Documentation --- Documentation/NuttX.html | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 0e6db16b51..a63cbf7d54 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

            NuttX RTOS

            -

            Last Updated: February 3, 2014

            +

            Last Updated: February 11, 2014

            @@ -1323,7 +1323,7 @@
          • ARM926EJS (4)
          • ARM Cortex-A5 (2)
          • ARM Cortex-A8 (1)
          • -
          • ARM Cortex-M0/M0+ (3)
          • +
          • ARM Cortex-M0/M0+ (4)
          • ARM Cortex-M3 (30)
          • ARM Cortex-M4 (18)
          @@ -1408,6 +1408,7 @@
        • M68HCS12
        • Freescale i.MX1 (ARM920-T)
        • FreeScale KL25Z (ARM Cortex-M0+)
        • +
        • FreeScale KL26Z (ARM Cortex-M0+)
        • FreeScale Kinetis K40 (ARM Cortex-M4)
        • FreeScale Kinetis K60 (ARM Cortex-M4)
        @@ -2173,6 +2174,29 @@ nsh>

        + +
        + +

        + FreeScale Freedom KL26Z. + This is a port of NuttX to the Freedom KL25Z board that features the MK26Z128VLH4 Cortex-M0+ MCU, 128KB of FLASH and 16KB of SRAM. + See the Freescale website for further information about this board. +

        +
          +

          + STATUS. + This work was contributed in NuttX 7.8 by Derek B. Noonburg. + The board support is very similar to the Freedom-KL25Z. + It was decided to support this a a separate board, however, due to some small board-level differences. + Refer to the Freedom KL26Z board README file for further information. +

          +
        + + + +
        +
        +
        From dd724ee468f3bb383d581745f7dc95804c10a130 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 11 Feb 2015 11:05:45 -0600 Subject: [PATCH 1362/1518] Prep for 7.8 release --- Documentation/NuttX.html | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index a63cbf7d54..1fc72a6322 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1249,20 +1249,29 @@

        Released Versions

        In addition to the ever-changing GIT repository, there are frozen released versions of NuttX available. - The current release is NuttX 7.7. - NuttX 7.7 is the 107th release of NuttX. - It was released on Januay 26, 2015, and is available for download from the + The current release is NuttX 7.8. + NuttX 7.8 is the 108th release of NuttX. + It was released on February 11, 2015, and is available for download from the SourceForge website. - Note that the release consists of two tarballs: nuttx-7.7.tar.gz and apps-7.7.tar.gz. + Note that the release consists of two tarballs: nuttx-7.8.tar.gz and apps-7.8.tar.gz. Both may be needed (see the top-level nuttx/README.txt file for build information).

        +

        + This release is primarily a bugfix release for the NuttX-7.7 version that + was release just two weeks prior. That release included substantial + modifications in the NuttX networking to accommodate support for IPv6. This + release follows close behind NuttX-7.7 in order to correct some the problems + discovered in that networking code. This release does, however, include a + small number of new features and bug fixes unrelated to NuttX networking. +

        +

        Release Notes and Change Logs:

        • nuttx.

            - Release notes for NuttX 7.7 are available here; + Release notes for NuttX 7.8 are available here; release notes for all released versions on NuttX are available in the SourceForge GIT The ChangeLog for all releases of NuttX is available in the ChangeLog file that can viewed in the SourceForge GIT. The ChangeLog for the current release is at the bottom of that file. @@ -1270,7 +1279,7 @@

        • apps.

            - Release notes for NuttX 7.7 are available here; + Release notes for NuttX 7.8 are available here; release notes for all released versions on NuttX are available in the SourceForge GIT The ChangeLog for the all releases of apps is available in the ChangeLog file that can viewed in the SourceForge GIT. The ChangeLog for the current release is at the bottom of that file. From e0fdd5abcf73305973a59c7896f49c70d80f122c Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 11 Feb 2015 18:27:38 -0600 Subject: [PATCH 1363/1518] Review/update of the TM4C1294 Launchpad code --- Documentation/NuttX.html | 29 ++++++++++++++++++++++++++++- Documentation/README.html | 2 ++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 1fc72a6322..bf63b3d3c4 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1334,7 +1334,7 @@

          • ARM Cortex-A8 (1)
          • ARM Cortex-M0/M0+ (4)
          • ARM Cortex-M3 (30)
          • -
          • ARM Cortex-M4 (18)
          • +
          • ARM Cortex-M4 (19)
        • Atmel AVR @@ -3548,6 +3549,32 @@ nsh>

          + +
          + +

          + TI Tiva TM4C1294. + This port uses the TI Tiva TM4C1294 LaunchPad. +

          +
            +

            + STATUS: +

              +
            • + Support for the TI Tiva TM4C123G Launchpad was contributed by Frank Sautter and was released in NuttX 7.9. + This basic board support included a configuration for the NuttShell NSH) and a configuration for testing IPv6. +
            • +
            +

            + Refer to the TM4C1294 LaunchPad board README file for more detailed information about this port. +

            +
          + + + +
          +
          +
          diff --git a/Documentation/README.html b/Documentation/README.html index 37aa984d06..74f12f4f6f 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -236,6 +236,8 @@ | | | `- README.txt | | |- tm4c123g-launchpad/ | | | `- README.txt + | | |- tm4c1294-launchpad/ + | | | `- README.txt | | |- twr-k60n512/ | | | `- README.txt | | |- ubw32/ From 58e88ea0a2a609d81e978651ac2dfd42b6a47b52 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 13 Feb 2015 08:41:34 -0600 Subject: [PATCH 1364/1518] RTC: Remove all backdoor interfaces from rtc.h --- Documentation/NuttxPortingGuide.html | 3 --- 1 file changed, 3 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index f685d92abc..ddd2086bf0 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -2380,9 +2380,6 @@ else Set the RTC to the provided time. All RTC implementations must be able to set their time based on a standard timespec.
        • -
        • up_rtc_setalarm(). - Set up an alarm. -

        4.3.3 System Tick and Time

        From 5648c55d5319fb32b9cc1dfe1f104392b36ff453 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 15 Feb 2015 10:31:11 -0600 Subject: [PATCH 1365/1518] Add some trivial documentation for the RTC driver --- Documentation/NuttxPortingGuide.html | 74 +++++++++++++++++++++++++--- 1 file changed, 67 insertions(+), 7 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index ddd2086bf0..762d12b6bd 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

        NuttX RTOS Porting Guide

        -

        Last Updated: November 15, 2014

        +

        Last Updated: February 15, 2014

        @@ -190,8 +190,10 @@ 6.3.12 PWM Drivers
        6.3.13 CAN Drivers
        6.3.14 Quadrature Encoder Drivers
        - 6.3.15 Watchdog Timer Drivers
        - 6.3.16 Keyboard/Keypad Drivers
        + 6.3.15 Timer Drivers
        + 6.3.16 RTC Drivers
        + 6.3.17 Watchdog Timer Drivers
        + 6.3.18 Keyboard/Keypad Drivers
      6.4 Power Management
        @@ -5184,7 +5186,65 @@ void board_led_off(int led);
      -

      6.3.15 Watchdog Timer Drivers

      +

      6.3.15 Timer Drivers

      +

      + NuttX supports a low-level, two-part timer driver. +

      +
        +
      1. + An "upper half", generic driver that provides the common timer interface to application level code, and +
      2. +
      3. + A "lower half", platform-specific driver that implements the low-level timer controls to implement the timer functionality. +
      4. +
      +

      + Files supporting the timer driver can be found in the following locations: +

      +
        +
      • Interface Definition. + The header file for the NuttX timer driver reside at include/nuttx/timer.h. + This header file includes both the application level interface to the timer driver as well as the interface between the "upper half" and "lower half" drivers. + The timer driver uses a standard character driver framework. +
      • +
      • "Upper Half" Driver. + The generic, "upper half" timer driver resides at drivers/timers/timer.c. +
      • +
      • "Lower Half" Drivers. + Platform-specific timer drivers reside in arch/<architecture>/src/<chip> directory for the specific processor <architecture> and for the specific <chip> timer peripheral devices. +
      • +
      + +

      6.3.16 RTC Drivers

      +

      + NuttX supports a low-level, two-part RealTime Clock (RTC) driver. +

      +
        +
      1. + An "upper half", generic driver that provides the common RTC interface to application level code, and +
      2. +
      3. + A "lower half", platform-specific driver that implements the low-level timer controls to implement the RTC functionality. +
      4. +
      +

      + Files supporting the RTC driver can be found in the following locations: +

      +
        +
      • Interface Definition. + The header file for the NuttX RTC driver reside at include/nuttx/rtc.h. + This header file includes both the application level interface to the RTC driver as well as the interface between the "upper half" and "lower half" drivers. + The RTC driver uses a standard character driver framework. +
      • +
      • "Upper Half" Driver. + The generic, "upper half" RTC driver resides at drivers/timers/rtc.c. +
      • +
      • "Lower Half" Drivers. + Platform-specific RTC drivers reside in arch/<architecture>/src/<chip> directory for the specific processor <architecture> and for the specific <chip> RTC peripheral devices. +
      • +
      + +

      6.3.17 Watchdog Timer Drivers

      NuttX supports a low-level, two-part watchdog timer driver.

      @@ -5197,7 +5257,7 @@ void board_led_off(int led);
    • - Files supporting the watchdog timer can be found in the following locations: + Files supporting the watchdog timer driver can be found in the following locations:

      • Interface Definition. @@ -5206,14 +5266,14 @@ void board_led_off(int led); The watchdog timer driver uses a standard character driver framework.
      • "Upper Half" Driver. - The generic, "upper half" watchdog timer driver resides at drivers/watchdog.c. + The generic, "upper half" watchdog timer driver resides at drivers/timers/watchdog.c.
      • "Lower Half" Drivers. Platform-specific watchdog timer drivers reside in arch/<architecture>/src/<chip> directory for the specific processor <architecture> and for the specific <chip> watchdog timer peripheral devices.
      -

      6.3.16 Keyboard/Keypad Drivers

      +

      6.3.18 Keyboard/Keypad Drivers

      Keypads vs. Keyboards Keyboards and keypads are really the same devices for NuttX. From a0c4c8fbec8aed422e96d7bbd6c4b3d9241e84d2 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 20 Feb 2015 10:41:09 -0600 Subject: [PATCH 1366/1518] Update porting guide to include some trivial description of the touchscreen controller interfaces --- Documentation/NuttxPortingGuide.html | 89 +++++++++++++++++++--------- 1 file changed, 61 insertions(+), 28 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 762d12b6bd..ed6109f22d 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -174,7 +174,7 @@

      -

      6.3.7 Memory Technology Device Drivers

      +

      6.3.7 Touchscreen Device Drivers

      + +

      + NuttX supports a two-part touchscreen driver architecture. +

      +
        +
      1. + An "upper half", generic driver that provides the common touchscreen interface to application level code, and +
      2. +
      3. + A "lower half", platform-specific driver that implements the low-level touchscreen controls to implement the touchscreen functionality. +
      4. +
      +

      + Files supporting the touchscreen controller (TSC) driver can be found in the following locations: +

      +
        +
      • Interface Definition. + The header files for NuttX touchscreen drivers reside in the include/nuttx/include/input directory. + The interface between the touchscreen controller "upper half" and "lower half" drivers are not common, but vary from controller-to-controller. + Because of this, each touchscreen driver has its own unique header file that describes the "upper half"/"lower half" interface in that directory. + The application level interface to each touchscreen driver, on the other hand, is the same for each touchscreen driver and is described include/nuttx/include/input/touchscreen.h. + The touchscreen driver uses a standard character driver framework but read operations return specially formatted data. +
      • +
      • "Upper Half" Driver. + The controller-specific, "upper half" touchscreen drivers reside in the directory drivers/input. +
      • +
      • "Lower Half" Drivers. + Platform-specific touchscreen drivers reside in either: (1) The arch/<architecture>/src/<chip> directory for the processor architectures that have build in touchscreen controllers or (2) the configs/<board>/src/ directory for boards that use an external touchscreen controller chip. +
      • +
      + +

      6.3.8 Memory Technology Device Drivers

      • @@ -4718,7 +4751,7 @@ void board_led_off(int led);
      -

      6.3.8 SDIO Device Drivers

      +

      6.3.9 SDIO Device Drivers

      • @@ -4810,7 +4843,7 @@ void board_led_off(int led);
      -

      6.3.9 USB Host-Side Drivers

      +

      6.3.10 USB Host-Side Drivers

      • @@ -4942,7 +4975,7 @@ void board_led_off(int led);
      -

      6.3.10 USB Device-Side Drivers

      +

      6.3.11 USB Device-Side Drivers

      • @@ -5015,7 +5048,7 @@ void board_led_off(int led);
      -

      6.3.11 Analog (ADC/DAC) Drivers

      +

      6.3.12 Analog (ADC/DAC) Drivers

      The NuttX analog drivers are split into two parts:

      @@ -5040,7 +5073,7 @@ void board_led_off(int led);
    -

    6.3.11.1 ADC Drivers

    +

    6.3.12.1 ADC Drivers

    • include/nuttx/analog/adc.h. @@ -5065,7 +5098,7 @@ void board_led_off(int led);
    -

    6.3.11.2 DAC Drivers

    +

    6.3.12.2 DAC Drivers

    • include/nuttx/analog/dac.h. @@ -5090,7 +5123,7 @@ void board_led_off(int led);
    -

    6.3.12 PWM Drivers

    +

    6.3.13 PWM Drivers

    For the purposes of this driver, a PWM device is any device that generates periodic output pulses of controlled frequency and pulse width. Such a device might be used, for example, to perform pulse-width modulated output or frequency/pulse-count modulated output @@ -5126,7 +5159,7 @@ void board_led_off(int led); -

    6.3.13 CAN Drivers

    +

    6.3.14 CAN Drivers

    NuttX supports only a very low-level CAN driver. This driver supports only the data exchange and does not include any high-level CAN protocol. @@ -5157,7 +5190,7 @@ void board_led_off(int led); -

    6.3.14 Quadrature Encoder Drivers

    +

    6.3.15 Quadrature Encoder Drivers

    NuttX supports a low-level, two-part Quadrature Encoder driver.

    @@ -5186,7 +5219,7 @@ void board_led_off(int led); -

    6.3.15 Timer Drivers

    +

    6.3.16 Timer Drivers

    NuttX supports a low-level, two-part timer driver.

    @@ -5215,7 +5248,7 @@ void board_led_off(int led); -

    6.3.16 RTC Drivers

    +

    6.3.17 RTC Drivers

    NuttX supports a low-level, two-part RealTime Clock (RTC) driver.

    @@ -5244,7 +5277,7 @@ void board_led_off(int led); -

    6.3.17 Watchdog Timer Drivers

    +

    6.3.18 Watchdog Timer Drivers

    NuttX supports a low-level, two-part watchdog timer driver.

    @@ -5273,7 +5306,7 @@ void board_led_off(int led); -

    6.3.18 Keyboard/Keypad Drivers

    +

    6.3.19 Keyboard/Keypad Drivers

    Keypads vs. Keyboards Keyboards and keypads are really the same devices for NuttX. From c329af3108b4bf1430766d9e34197ab2852e5c2f Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 20 Feb 2015 11:36:56 -0600 Subject: [PATCH 1367/1518] Porting Guide: Reorder some paragraphs for a clearer distinction of driver types --- Documentation/NuttxPortingGuide.html | 1540 +++++++++++++------------- 1 file changed, 786 insertions(+), 754 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index ed6109f22d..554bf098c2 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -173,28 +173,30 @@ 6.0 NuttX Device Drivers

      6.1 Character Device Drivers
      + 6.2 Block Device Drivers
      6.3 Specialized Device Drivers 6.4 Power Management
        @@ -4225,6 +4227,29 @@ void board_led_off(int led); open(), close(), read(), write(), etc.

        +
      • +

        + Specialized Character Drivers. + Within the common character driver framework, there are different specific varieties of specialized character drivers. + The unique requirements of the underlying device hardware often mandates some customization of the character driver. + These customizations tend to take the form of: +

        +
          +
        • + Device-specific ioctl() commands used to performed specialized operations on the device. + These ioctl() will be documented in header files under include/nuttx that detail the specific device interface. +
        • +
        • + Specialized I/O formats. + Some devices will require that read() and/or write() operations use data conforming to a specific format, rather than a plain stream of bytes. + These specialized I/O formats will be documented in header files under include/nuttx that detail the specific device interface. + The typical representation of the I/O format will be a C structure definition. +
        • +
        +

        + The specialized character drivers support by NuttX are documented in the following paragraphs. +

        +
      • Examples: @@ -4233,193 +4258,7 @@ void board_led_off(int led);

      -

      6.2 Block Device Drivers

      - -

      - Block device drivers have these properties: -

      -
        -
      • -

        - include/nuttx/fs/fs.h. - All structures and APIs needed to work with block drivers are provided in this header file. -

        -
      • -
      • -

        - struct block_operations. - Each block device driver must implement an instance of struct block_operations. - That structure defines a call table with the following methods: -

          -

          int open(FAR struct inode *inode);
          - int close(FAR struct inode *inode);
          - ssize_t read(FAR struct inode *inode, FAR unsigned char *buffer, size_t start_sector, unsigned int nsectors);
          - ssize_t write(FAR struct inode *inode, FAR const unsigned char *buffer, size_t start_sector, unsigned int nsectors);
          - int geometry(FAR struct inode *inode, FAR struct geometry *geometry);
          - int ioctl(FAR struct inode *inode, int cmd, unsigned long arg);

          -
        -

        -
      • -
      • -

        - int register_blockdriver(const char *path, const struct block_operations *bops, mode_t mode, void *priv);. - Each block driver registers itself by calling register_blockdriver(), passing it the - path where it will appear in the pseudo-file-system and it's - initialized instance of struct block_operations. -

        -
      • -
      • -

        - User Access. - Users do not normally access block drivers directly, rather, they access block drivers - indirectly through the mount() API. - The mount() API binds a block driver instance with a file system and with a mountpoint. - Then the user may use the block driver to access the file system on the underlying media. - Example: See the cmd_mount() implementation in apps/nshlib/nsh_fscmds.c. -

        -
      • -
      • -

        - Accessing a Character Driver as a Block Device. - See the loop device at drivers/loop.c. - Example: See the cmd_losetup() implementation in apps/nshlib/nsh_fscmds.c. -

        -
      • -
      • -

        - Accessing a Block Driver as Character Device. - See the Block-to-Character (BCH) conversion logic in drivers/bch/. - Example: See the cmd_dd() implementation in apps/nshlib/nsh_ddcmd.c. -

        -
      • -
      • -

        - Examples. - drivers/loop.c, drivers/mmcsd/mmcsd_spi.c, drivers/ramdisk.c, etc. -

        -
      • -
      - -

      6.3 Specialized Device Drivers

      - -

      6.3.1 Ethernet Device Drivers

      - -
        -
      • -

        - include/nuttx/net/netdev.h. - All structures and APIs needed to work with Ethernet drivers are provided in this header file. - The structure struct net_driver_s defines the interface and is passed to uIP via - netdev_register(). -

        -
      • -
      • -

        - int netdev_register(FAR struct net_driver_s *dev, enum net_lltype_e lltype);. - Each Ethernet driver registers itself by calling netdev_register(). -

        -
      • -
      • -

        - Examples: - drivers/net/dm90x0.c, arch/drivers/arm/src/c5471/c5471_ethernet.c, arch/z80/src/ez80/ez80_emac.c, etc. -

        -
      • -
      - -

      6.3.2 SPI Device Drivers

      - -
        -
      • -

        - include/nuttx/spi/spi.h. - All structures and APIs needed to work with SPI drivers are provided in this header file. -

        -
      • -
      • -

        - struct spi_ops_s. - Each SPI device driver must implement an instance of struct spi_ops_s. - That structure defines a call table with the following methods: -

          -

          void lock(FAR struct spi_dev_s *dev);

          -

          void select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected);
          - uint32_t setfrequency(FAR struct spi_dev_s *dev, uint32_t frequency);
          - void setmode(FAR struct spi_dev_s *dev, enum spi_mode_e mode);
          - void setbits(FAR struct spi_dev_s *dev, int nbits);
          - uint8_t status(FAR struct spi_dev_s *dev, enum spi_dev_e devid);
          - uint16_t send(FAR struct spi_dev_s *dev, uint16_t wd);
          - void exchange(FAR struct spi_dev_s *dev, FAR const void *txbuffer, FAR void *rxbuffer, size_t nwords);
          -

          int registercallback(FAR struct spi_dev_s *dev, mediachange_t callback, void *arg);

          -
        -

        -
      • -

        - Binding SPI Drivers. - SPI drivers are not normally directly accessed by user code, but are usually bound to another, - higher level device driver. - See for example, int mmcsd_spislotinitialize(int minor, int slotno, FAR struct spi_dev_s *spi) in drivers/mmcsd/mmcsd_spi.c. - In general, the binding sequence is: -

        -

        -

          -
        1. Get an instance of struct spi_dev_s from the hardware-specific SPI device driver, and
        2. -
        3. Provide that instance to the initialization method of the higher level device driver.
        4. -
        -

        -
      • -
      • -

        - Examples: - drivers/loop.c, drivers/mmcsd/mmcsd_spi.c, drivers/ramdisk.c, etc. -

        -
      • -
      - -

      6.3.3 I2C Device Drivers

      - -
        -
      • -

        - include/nuttx/i2c/i2c.h. - All structures and APIs needed to work with I2C drivers are provided in this header file. -

        -
      • -
      • -

        - struct i2c_ops_s. - Each I2C device driver must implement an instance of struct i2c_ops_s. - That structure defines a call table with the following methods: -

          -

          uint32_t setfrequency(FAR struct i2c_dev_s *dev, uint32_t frequency);
          - int setaddress(FAR struct i2c_dev_s *dev, int addr, int nbits);
          - int write(FAR struct i2c_dev_s *dev, const uint8_t *buffer, int buflen);
          - int read(FAR struct i2c_dev_s *dev, uint8_t *buffer, int buflen);

          -

          -
        -
      • -

        - Binding I2C Drivers. - I2C drivers are not normally directly accessed by user code, but are usually bound to another, - higher level device driver. - In general, the binding sequence is: -

        -

        -

          -
        1. Get an instance of struct i2c_dev_s from the hardware-specific I2C device driver, and
        2. -
        3. Provide that instance to the initialization method of the higher level device driver.
        4. -
        -

        -
      • -
      • -

        - Examples: - arch/z80/src/ez80/ez80_i2c.c, arch/z80/src/z8/z8_i2c.c, etc. -

        -
      • -
      - -

      6.3.4 Serial Device Drivers

      +

      6.1.1 Serial Device Drivers

      • @@ -4476,168 +4315,7 @@ void board_led_off(int led);
      -

      6.3.5 Frame Buffer Drivers

      - -
        -
      • -

        - include/nuttx/video/fb.h. - All structures and APIs needed to work with frame buffer drivers are provided in this header file. -

        -
      • -
      • -

        - struct fb_vtable_s. - Each frame buffer device driver must implement an instance of struct fb_vtable_s. - That structure defines a call table with the following methods: -

        -

        - Get information about the video controller configuration and the configuration of each color plane. -

        -
          -

          int (*getvideoinfo)(FAR struct fb_vtable_s *vtable, FAR struct fb_videoinfo_s *vinfo);
          - int (*getplaneinfo)(FAR struct fb_vtable_s *vtable, int planeno, FAR struct fb_planeinfo_s *pinfo);

          -
        -

        - The following are provided only if the video hardware supports RGB color mapping: -

        -
          -

          int (*getcmap)(FAR struct fb_vtable_s *vtable, FAR struct fb_cmap_s *cmap);
          - int (*putcmap)(FAR struct fb_vtable_s *vtable, FAR const struct fb_cmap_s *cmap);

          -
        -

        - The following are provided only if the video hardware supports a hardware cursor: -

        -
          -

          int (*getcursor)(FAR struct fb_vtable_s *vtable, FAR struct fb_cursorattrib_s *attrib);
          - int (*setcursor)(FAR struct fb_vtable_s *vtable, FAR struct fb_setcursor_s *settings);

          -
        -
      • -
      • -

        - Binding Frame Buffer Drivers. - Frame buffer drivers are not normally directly accessed by user code, but are usually bound to another, - higher level device driver. - In general, the binding sequence is: -

        -

        -

          -
        1. Get an instance of struct fb_vtable_s from the hardware-specific frame buffer device driver, and
        2. -
        3. Provide that instance to the initialization method of the higher level device driver.
        4. -
        -

        -
      • -
      • -

        - Examples: - arch/sim/src/up_framebuffer.c. - See also the usage of the frame buffer driver in the graphics/ directory. -

        -
      • -
      - -

      6.3.6 LCD Drivers

      - -
        -
      • -

        - include/nuttx/lcd/lcd.h. - Structures and APIs needed to work with LCD drivers are provided in this header file. - This header file also depends on some of the same definitions used for the frame buffer driver as provided in include/nuttx/video/fb.h. -

        -
      • -
      • -

        - struct lcd_dev_s. - Each LCD device driver must implement an instance of struct lcd_dev_s. - That structure defines a call table with the following methods: -

        -

        - Get information about the LCD video controller configuration and the configuration of each LCD color plane. -

        -
          -

          - int (*getvideoinfo)(FAR struct lcd_dev_s *dev, FAR struct fb_videoinfo_s *vinfo);
          - int (*getplaneinfo)(FAR struct lcd_dev_s *dev, unsigned int planeno, FAR struct lcd_planeinfo_s *pinfo); -

          -
        -

        - The following are provided only if the video hardware supports RGB color mapping: -

        -
          -

          - int (*getcmap)(FAR struct lcd_dev_s *dev, FAR struct fb_cmap_s *cmap);
          - int (*putcmap)(FAR struct lcd_dev_s *dev, FAR const struct fb_cmap_s *cmap); -

          -
        -

        - The following are provided only if the video hardware supports a hardware cursor: -

        -
          -

          - int (*getcursor)(FAR struct lcd_dev_s *dev, FAR struct fb_cursorattrib_s *attrib);
          - int (*setcursor)(FAR struct lcd_dev_s *dev, FAR struct fb_setcursor_s *settings) -

          -
        -

        - Get the LCD panel power status (0: full off - CONFIG_LCD_MAXPOWER: full on). - On backlit LCDs, this setting may correspond to the backlight setting. -

        -
          -

          - int (*getpower)(struct lcd_dev_s *dev); -

          -
        -

        - Enable/disable LCD panel power (0: full off - CONFIG_LCD_MAXPOWER: full on). - On backlit LCDs, this setting may correspond to the backlight setting. -

        -
          -

          - int (*setpower)(struct lcd_dev_s *dev, int power); -

          -
        -

        - Get the current contrast setting (0-CONFIG_LCD_MAXCONTRAST) */ -

        -
          -

          - int (*getcontrast)(struct lcd_dev_s *dev); -

          -
        -

        - Set LCD panel contrast (0-CONFIG_LCD_MAXCONTRAST) -

        -
          -

          - int (*setcontrast)(struct lcd_dev_s *dev, unsigned int contrast); -

          -
        -

        -
      • -

        - Binding LCD Drivers. - LCD drivers are not normally directly accessed by user code, but are usually bound to another, - higher level device driver. - In general, the binding sequence is: -

        -

        -

          -
        1. Get an instance of struct lcd_dev_s from the hardware-specific LCD device driver, and
        2. -
        3. Provide that instance to the initialization method of the higher level device driver.
        4. -
        -

        -
      • -
      • -

        - Examples: - drivers/lcd/nokia6100.c, drivers/lcd/p14201.c, configs/sam3u-ek/src/up_lcd.c. - See also the usage of the LCD driver in the graphics/ directory. -

        -
      • -
      - -

      6.3.7 Touchscreen Device Drivers

      +

      6.1.1 Touchscreen Device Drivers

      NuttX supports a two-part touchscreen driver architecture. @@ -4669,386 +4347,7 @@ void board_led_off(int led);

    -

    6.3.8 Memory Technology Device Drivers

    - -
      -
    • -

      - include/nuttx/mtd/mtd.h. - All structures and APIs needed to work with MTD drivers are provided in this header file. -

      -
    • -
    • -

      - struct mtd_dev_s. - Each MTD device driver must implement an instance of struct mtd_dev_s. - That structure defines a call table with the following methods: -

      -

      - Erase the specified erase blocks (units are erase blocks): -

      -
        -

        int (*erase)(FAR struct mtd_dev_s *dev, off_t startblock, size_t nblocks);

        -
      -

      - Read/write from the specified read/write blocks: -

      -
        -

        ssize_t (*bread)(FAR struct mtd_dev_s *dev, off_t startblock, size_t nblocks, FAR uint8_t *buffer);
        - ssize_t (*bwrite)(FAR struct mtd_dev_s *dev, off_t startblock, size_t nblocks, FAR const uint8_t *buffer);

        -
      -

      - Some devices may support byte oriented reads (optional). - Most MTD devices are inherently block oriented so byte-oriented accesses are not supported. - It is recommended that low-level drivers not support read() if it requires buffering. -

      -
        -

        ssize_t (*read)(FAR struct mtd_dev_s *dev, off_t offset, size_t nbytes, FAR uint8_t *buffer);

        -
      -

      - Some devices may also support byte oriented writes (optional). - Most MTD devices are inherently block oriented so byte-oriented accesses are not supported. - It is recommended that low-level drivers not support read() if it requires buffering. - This interface is only available if CONFIG_MTD_BYTE_WRITE is defined. -

      -
        -

        ssize_t (*write)(FAR struct mtd_dev_s *dev, off_t offset, size_t nbytes, FAR const uint8_t *buffer);

        -
      -

      - Support other, less frequently used commands: -

      -
        -
      • MTDIOC_GEOMETRY: Get MTD geometry
      • -
      • MTDIOC_XIPBASE:: Convert block to physical address for eXecute-In-Place
      • -
      • MTDIOC_BULKERASE: Erase the entire device
      • -
      -

      - is provided via a single ioctl method (see include/nuttx/fs/ioctl.h): -

      -
        -

        int (*ioctl)(FAR struct mtd_dev_s *dev, int cmd, unsigned long arg);

        -
      -
    • -
    • -

      - Binding MTD Drivers. - MTD drivers are not normally directly accessed by user code, but are usually bound to another, - higher level device driver. - In general, the binding sequence is: -

      -

      -

        -
      1. Get an instance of struct mtd_dev_s from the hardware-specific MTD device driver, and
      2. -
      3. Provide that instance to the initialization method of the higher level device driver.
      4. -
      -

      -
    • -
    • -

      - Examples: - drivers/mtd/m25px.c and drivers/mtd/ftl.c -

      -
    • -
    - -

    6.3.9 SDIO Device Drivers

    - -
      -
    • -

      - include/nuttx/sdio.h. - All structures and APIs needed to work with SDIO drivers are provided in this header file. -

      -
    • -
    • -

      - struct sdio_dev_s. - Each SDIO device driver must implement an instance of struct sdio_dev_s. - That structure defines a call table with the following methods: -

      -

      - Mutual exclusion: -

      -
        -

        - #ifdef CONFIG_SDIO_MUXBUS
        - int (*lock)(FAR struct sdio_dev_s *dev, bool lock);
        - #endif -

        -
      -

      - Initialization/setup: -

      -
        -

        void (*reset)(FAR struct sdio_dev_s *dev);
        - uint8_t (*status)(FAR struct sdio_dev_s *dev);
        - void (*widebus)(FAR struct sdio_dev_s *dev, bool enable);
        - void (*clock)(FAR struct sdio_dev_s *dev, enum sdio_clock_e rate);
        - int (*attach)(FAR struct sdio_dev_s *dev);
        -

      -

      - Command/Status/Data Transfer: -

      -
        -

        int (*sendcmd)(FAR struct sdio_dev_s *dev, uint32_t cmd, uint32_t arg);
        - int (*recvsetup)(FAR struct sdio_dev_s *dev, FAR uint8_t *buffer, size_t nbytes);
        - int (*sendsetup)(FAR struct sdio_dev_s *dev, FAR const uint8_t *buffer, size_t nbytes);
        - int (*cancel)(FAR struct sdio_dev_s *dev);
        - int (*waitresponse)(FAR struct sdio_dev_s *dev, uint32_t cmd);
        - int (*recvR1)(FAR struct sdio_dev_s *dev, uint32_t cmd, uint32_t *R1);
        - int (*recvR2)(FAR struct sdio_dev_s *dev, uint32_t cmd, uint32_t R2[4]);
        - int (*recvR3)(FAR struct sdio_dev_s *dev, uint32_t cmd, uint32_t *R3);
        - int (*recvR4)(FAR struct sdio_dev_s *dev, uint32_t cmd, uint32_t *R4);
        - int (*recvR5)(FAR struct sdio_dev_s *dev, uint32_t cmd, uint32_t *R5);
        - int (*recvR6)(FAR struct sdio_dev_s *dev, uint32_t cmd, uint32_t *R6);
        - int (*recvR7)(FAR struct sdio_dev_s *dev, uint32_t cmd, uint32_t *R7);

        -
      -

      - Event/Callback support: -

      -
        -

        void (*waitenable)(FAR struct sdio_dev_s *dev, sdio_eventset_t eventset);
        - sdio_eventset_t (*eventwait)(FAR struct sdio_dev_s *dev, uint32_t timeout);
        - void (*callbackenable)(FAR struct sdio_dev_s *dev, sdio_eventset_t eventset);
        - int (*registercallback)(FAR struct sdio_dev_s *dev, worker_t callback, void *arg);

        -
      -

      - DMA support: -

      -
        -

        bool (*dmasupported)(FAR struct sdio_dev_s *dev);
        - int (*dmarecvsetup)(FAR struct sdio_dev_s *dev, FAR uint8_t *buffer, size_t buflen);
        - int (*dmasendsetup)(FAR struct sdio_dev_s *dev, FAR const uint8_t *buffer, size_t buflen);

        -
      -
    • -
    • -

      - Binding SDIO Drivers. - SDIO drivers are not normally directly accessed by user code, but are usually bound to another, - higher level device driver. - In general, the binding sequence is: -

      -

      -

        -
      1. Get an instance of struct sdio_dev_s from the hardware-specific SDIO device driver, and
      2. -
      3. Provide that instance to the initialization method of the higher level device driver.
      4. -
      -

      -
    • -
    • -

      - Examples: - arch/arm/src/stm32/stm32_sdio.c and drivers/mmcsd/mmcsd_sdio.c -

      -
    • -
    - -

    6.3.10 USB Host-Side Drivers

    - -
      -
    • -

      - include/nuttx/usb/usbhost.h. - All structures and APIs needed to work with USB host-side drivers are provided in this header file. -

      -
    • -
    • -

      - struct usbhost_driver_s and struct usbhost_connection_s. - Each USB host controller driver must implement an instance of struct usbhost_driver_s and struct usbhost_connection_s: - struct usbhost_driver_s provides the interface between the USB host driver and the USB class driver; - struct usbhost_connection_s provides the interface between the USB host driver and platform-specific connection management and device enumeration logic. - These structures are defined in include/nuttx/usb/usbhost.h. -

      -

      - Examples: - arch/arm/src/lpc17xx/lpc17_usbhost.c, - arch/arm/src/stm32/stm32_otgfshost.c, - arch/arm/src/sama5/sam_ohci.c, and - arch/arm/src/sama5/sam_ehci.c. -

      -
    • -
    • -

      - struct usbhost_class_s. - Each USB host class driver must implement an instance of struct usbhost_class_s. - This structure is also defined in include/nuttx/usb/usbhost.h. -

      -

      - Examples: - drivers/usbhost/usbhost_storage.c -

      -
    • -
    • -

      - USB Host Class Driver Registry. - The NuttX USB host infrastructure includes a registry. - During its initialization, each USB host class driver must call the interface, usbhost_registerclass() - in order add its interface to the registry. - Later, when a USB device is connected, the USB host controller will look up the USB host class driver that is needed to support the connected device in this registry. -

      -

      - Examples: - drivers/usbhost/usbhost_registry.c, drivers/usbhost/usbhost_registerclass.c, and drivers/usbhost/usbhost_findclass.c, -

      -
    • -
    • -

      - Detection and Enumeration of Connected Devices. - Each USB host device controller supports two methods that are used to detect and enumeration newly connected devices - (and also detect disconnected devices): -

      -

      -

        -
      • -

        - int (*wait)(FAR struct usbhost_connection_s *drvr, FAR const bool *connected); -

        -

        - Wait for a device to be connected or disconnected. -

        -
      • -
      • -

        - int (*enumerate)(FAR struct usbhost_connection_s *drvr, int rhpndx); -

        -

        - Enumerate the device connected to a root hub port. - As part of this enumeration process, the driver will - (1) get the device's configuration descriptor, - (2) extract the class ID info from the configuration descriptor, - (3) call usbhost_findclass() to find the class that supports this device, - (4) call the create() method on the struct usbhost_registry_s interface to get a class instance, and - finally (5) call the connect() method of the struct usbhost_class_s interface. - After that, the class is in charge of the sequence of operations. -

        -
      -

      -
    • -
    • -

      - Binding USB Host-Side Drivers. - USB host-side controller drivers are not normally directly accessed by user code, - but are usually bound to another, higher level USB host class driver. - The class driver exports the standard NuttX device interface so that the connected USB device can be accessed just as with other, similar, on-board devices. - For example, the USB host mass storage class driver (drivers/usbhost/usbhost_storage.c) will register a standard, NuttX block driver interface (like /dev/sda) - that can be used to mount a file system just as with any other other block driver instance. - In general, the binding sequence is: -

      -

      -

        -
      1. -

        - Each USB host class driver includes an initialization entry point that is called from the - application at initialization time. - This driver calls usbhost_registerclass() during this initialization in order to makes itself available in the event the device that it supports is connected. -

        -

        - Examples: - The function usbhost_storageinit() in the file drivers/usbhost/usbhost_storage.c -

        -
      2. -
      3. -

        - Each application must include a waiter thread thread that (1) calls the USB host controller driver's wait() to detect the connection of a device, and then - (2) call the USB host controller driver's enumerate method to bind the registered USB host class driver to the USB host controller driver. -

        -

        - Examples: - The function nsh_waiter() in the file configs/nucleus2g/src/up_nsh.c and - the function nsh_waiter() in the file configs/olimex-lpc1766stk/src/up_nsh.c. -

        -
      4. -
      5. -

        - As part of its operation during the binding operation, the USB host class driver will register an instances of a standard NuttX driver under the /dev directory. - To repeat the above example, the USB host mass storage class driver (drivers/usbhost/usbhost_storage.c) will register a standard, NuttX block driver interface (like /dev/sda) - that can be used to mount a file system just as with any other other block driver instance. -

        -

        - Examples: - See the call to register_blockdriver() in the function usbhost_initvolume() in the file drivers/usbhost/usbhost_storage.c. -

        -
      6. -
      -

      -
    • -
    - -

    6.3.11 USB Device-Side Drivers

    - -
      -
    • -

      - include/nuttx/usb/usbdev.h. - All structures and APIs needed to work with USB device-side drivers are provided in this header file. -

      -
    • -
    • -

      - include/nuttx/usb/usbdev_trace.h. - Declarations needed to work with the NuttX USB device driver trace capability. - That USB trace capability is detailed in separate document. -

      -
    • -
    • -

      - struct usbdev_s. - Each USB device controller driver must implement an instance of struct usbdev_s. - This structure is defined in include/nuttx/usb/usbdev.h. -

      -

      - Examples: - arch/arm/src/dm320/dm320_usbdev.c, arch/arm/src/lpc17xx/lpc17_usbdev.c, - arch/arm/src/lpc214x/lpc214x_usbdev.c, arch/arm/src/lpc313x/lpc313x_usbdev.c, and - arch/arm/src/stm32/stm32_usbdev.c. -

      -
    • -
    • -

      - struct usbdevclass_driver_s. - Each USB device class driver must implement an instance of struct usbdevclass_driver_s. - This structure is also defined in include/nuttx/usb/usbdev.h. -

      -

      - Examples: - drivers/usbdev/pl2303.c and drivers/usbdev/usbmsc.c -

      -
    • -
    • -

      - Binding USB Device-Side Drivers. - USB device-side controller drivers are not normally directly accessed by user code, - but are usually bound to another, higher level USB device class driver. - The class driver is then configured to export the USB device functionality. - In general, the binding sequence is: -

      -

      -

        -
      1. -

        - Each USB device class driver includes an initialization entry point that is called from the - application at initialization time. -

        -

        - Examples: - The function usbdev_serialinitialize() in the file drivers/usbdev/pl2303.c and - the function in the file drivers/usbdev/usbmsc.c -

        -
      2. -
      3. -

        - These initialization functions called the driver API, usbdev_register(). - This driver function will bind the USB class driver to the USB device controller driver, - completing the initialization. -

        -
      4. -
      -

      -
    • -
    - -

    6.3.12 Analog (ADC/DAC) Drivers

    +

    6.1.2 Analog (ADC/DAC) Drivers

    The NuttX analog drivers are split into two parts:

    @@ -5073,7 +4372,7 @@ void board_led_off(int led); -

    6.3.12.1 ADC Drivers

    +

    6.1.3.1 ADC Drivers

    • include/nuttx/analog/adc.h. @@ -5098,7 +4397,7 @@ void board_led_off(int led);
    -

    6.3.12.2 DAC Drivers

    +

    6.1.3.2 DAC Drivers

    • include/nuttx/analog/dac.h. @@ -5123,7 +4422,7 @@ void board_led_off(int led);
    -

    6.3.13 PWM Drivers

    +

    6.1.4 PWM Drivers

    For the purposes of this driver, a PWM device is any device that generates periodic output pulses of controlled frequency and pulse width. Such a device might be used, for example, to perform pulse-width modulated output or frequency/pulse-count modulated output @@ -5159,7 +4458,7 @@ void board_led_off(int led); -

    6.3.14 CAN Drivers

    +

    6.1.5 CAN Drivers

    NuttX supports only a very low-level CAN driver. This driver supports only the data exchange and does not include any high-level CAN protocol. @@ -5190,7 +4489,7 @@ void board_led_off(int led); -

    6.3.15 Quadrature Encoder Drivers

    +

    6.1.6 Quadrature Encoder Drivers

    NuttX supports a low-level, two-part Quadrature Encoder driver.

    @@ -5219,7 +4518,7 @@ void board_led_off(int led); -

    6.3.16 Timer Drivers

    +

    6.1.7 Timer Drivers

    NuttX supports a low-level, two-part timer driver.

    @@ -5248,7 +4547,7 @@ void board_led_off(int led); -

    6.3.17 RTC Drivers

    +

    6.1.8 RTC Drivers

    NuttX supports a low-level, two-part RealTime Clock (RTC) driver.

    @@ -5277,7 +4576,7 @@ void board_led_off(int led); -

    6.3.18 Watchdog Timer Drivers

    +

    6.1.9 Watchdog Timer Drivers

    NuttX supports a low-level, two-part watchdog timer driver.

    @@ -5306,7 +4605,7 @@ void board_led_off(int led); -

    6.3.19 Keyboard/Keypad Drivers

    +

    6.1.10 Keyboard/Keypad Drivers

    Keypads vs. Keyboards Keyboards and keypads are really the same devices for NuttX. @@ -5531,6 +4830,739 @@ int kbd_decode(FAR struct lib_instream_s *stream, FAR struct kbd_getstate_s *sta These stream interfaces are defined in include/nuttx/streams.h.

    +

    6.2 Block Device Drivers

    + +

    + Block device drivers have these properties: +

    +
      +
    • +

      + include/nuttx/fs/fs.h. + All structures and APIs needed to work with block drivers are provided in this header file. +

      +
    • +
    • +

      + struct block_operations. + Each block device driver must implement an instance of struct block_operations. + That structure defines a call table with the following methods: +

        +

        int open(FAR struct inode *inode);
        + int close(FAR struct inode *inode);
        + ssize_t read(FAR struct inode *inode, FAR unsigned char *buffer, size_t start_sector, unsigned int nsectors);
        + ssize_t write(FAR struct inode *inode, FAR const unsigned char *buffer, size_t start_sector, unsigned int nsectors);
        + int geometry(FAR struct inode *inode, FAR struct geometry *geometry);
        + int ioctl(FAR struct inode *inode, int cmd, unsigned long arg);

        +
      +

      +
    • +
    • +

      + int register_blockdriver(const char *path, const struct block_operations *bops, mode_t mode, void *priv);. + Each block driver registers itself by calling register_blockdriver(), passing it the + path where it will appear in the pseudo-file-system and it's + initialized instance of struct block_operations. +

      +
    • +
    • +

      + User Access. + Users do not normally access block drivers directly, rather, they access block drivers + indirectly through the mount() API. + The mount() API binds a block driver instance with a file system and with a mountpoint. + Then the user may use the block driver to access the file system on the underlying media. + Example: See the cmd_mount() implementation in apps/nshlib/nsh_fscmds.c. +

      +
    • +
    • +

      + Accessing a Character Driver as a Block Device. + See the loop device at drivers/loop.c. + Example: See the cmd_losetup() implementation in apps/nshlib/nsh_fscmds.c. +

      +
    • +
    • +

      + Accessing a Block Driver as Character Device. + See the Block-to-Character (BCH) conversion logic in drivers/bch/. + Example: See the cmd_dd() implementation in apps/nshlib/nsh_ddcmd.c. +

      +
    • +
    • +

      + Examples. + drivers/loop.c, drivers/mmcsd/mmcsd_spi.c, drivers/ramdisk.c, etc. +

      +
    • +
    + +

    6.3 Specialized Device Drivers

    + +

    + All device drivers that are accessible to application logic are either: (1) Character device drivers that can be accessed via the standard driver operations (open(), close(), read(), write(), etc.), or (2) block drivers that can be accessing only as part of mounting a file system or other special use cases as described in the preceding paragraph. +

    +

    + In addition to this, there are also specialized "drivers" that can be used only within the OS logic itself and are not accessible to application logic. These specialized drivers are discussed in the following paragraphs. +

    + +

    6.3.1 Ethernet Device Drivers

    + +
      +
    • +

      + include/nuttx/net/netdev.h. + All structures and APIs needed to work with Ethernet drivers are provided in this header file. + The structure struct net_driver_s defines the interface and is passed to uIP via + netdev_register(). +

      +
    • +
    • +

      + int netdev_register(FAR struct net_driver_s *dev, enum net_lltype_e lltype);. + Each Ethernet driver registers itself by calling netdev_register(). +

      +
    • +
    • +

      + Examples: + drivers/net/dm90x0.c, arch/drivers/arm/src/c5471/c5471_ethernet.c, arch/z80/src/ez80/ez80_emac.c, etc. +

      +
    • +
    + +

    6.3.2 SPI Device Drivers

    + +
      +
    • +

      + include/nuttx/spi/spi.h. + All structures and APIs needed to work with SPI drivers are provided in this header file. +

      +
    • +
    • +

      + struct spi_ops_s. + Each SPI device driver must implement an instance of struct spi_ops_s. + That structure defines a call table with the following methods: +

        +

        void lock(FAR struct spi_dev_s *dev);

        +

        void select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected);
        + uint32_t setfrequency(FAR struct spi_dev_s *dev, uint32_t frequency);
        + void setmode(FAR struct spi_dev_s *dev, enum spi_mode_e mode);
        + void setbits(FAR struct spi_dev_s *dev, int nbits);
        + uint8_t status(FAR struct spi_dev_s *dev, enum spi_dev_e devid);
        + uint16_t send(FAR struct spi_dev_s *dev, uint16_t wd);
        + void exchange(FAR struct spi_dev_s *dev, FAR const void *txbuffer, FAR void *rxbuffer, size_t nwords);
        +

        int registercallback(FAR struct spi_dev_s *dev, mediachange_t callback, void *arg);

        +
      +

      +
    • +

      + Binding SPI Drivers. + SPI drivers are not normally directly accessed by user code, but are usually bound to another, + higher level device driver. + See for example, int mmcsd_spislotinitialize(int minor, int slotno, FAR struct spi_dev_s *spi) in drivers/mmcsd/mmcsd_spi.c. + In general, the binding sequence is: +

      +

      +

        +
      1. Get an instance of struct spi_dev_s from the hardware-specific SPI device driver, and
      2. +
      3. Provide that instance to the initialization method of the higher level device driver.
      4. +
      +

      +
    • +
    • +

      + Examples: + drivers/loop.c, drivers/mmcsd/mmcsd_spi.c, drivers/ramdisk.c, etc. +

      +
    • +
    + +

    6.3.3 I2C Device Drivers

    + +
      +
    • +

      + include/nuttx/i2c/i2c.h. + All structures and APIs needed to work with I2C drivers are provided in this header file. +

      +
    • +
    • +

      + struct i2c_ops_s. + Each I2C device driver must implement an instance of struct i2c_ops_s. + That structure defines a call table with the following methods: +

        +

        uint32_t setfrequency(FAR struct i2c_dev_s *dev, uint32_t frequency);
        + int setaddress(FAR struct i2c_dev_s *dev, int addr, int nbits);
        + int write(FAR struct i2c_dev_s *dev, const uint8_t *buffer, int buflen);
        + int read(FAR struct i2c_dev_s *dev, uint8_t *buffer, int buflen);

        +

        +
      +
    • +

      + Binding I2C Drivers. + I2C drivers are not normally directly accessed by user code, but are usually bound to another, + higher level device driver. + In general, the binding sequence is: +

      +

      +

        +
      1. Get an instance of struct i2c_dev_s from the hardware-specific I2C device driver, and
      2. +
      3. Provide that instance to the initialization method of the higher level device driver.
      4. +
      +

      +
    • +
    • +

      + Examples: + arch/z80/src/ez80/ez80_i2c.c, arch/z80/src/z8/z8_i2c.c, etc. +

      +
    • +
    + +

    6.3.4 Frame Buffer Drivers

    + +
      +
    • +

      + include/nuttx/video/fb.h. + All structures and APIs needed to work with frame buffer drivers are provided in this header file. +

      +
    • +
    • +

      + struct fb_vtable_s. + Each frame buffer device driver must implement an instance of struct fb_vtable_s. + That structure defines a call table with the following methods: +

      +

      + Get information about the video controller configuration and the configuration of each color plane. +

      +
        +

        int (*getvideoinfo)(FAR struct fb_vtable_s *vtable, FAR struct fb_videoinfo_s *vinfo);
        + int (*getplaneinfo)(FAR struct fb_vtable_s *vtable, int planeno, FAR struct fb_planeinfo_s *pinfo);

        +
      +

      + The following are provided only if the video hardware supports RGB color mapping: +

      +
        +

        int (*getcmap)(FAR struct fb_vtable_s *vtable, FAR struct fb_cmap_s *cmap);
        + int (*putcmap)(FAR struct fb_vtable_s *vtable, FAR const struct fb_cmap_s *cmap);

        +
      +

      + The following are provided only if the video hardware supports a hardware cursor: +

      +
        +

        int (*getcursor)(FAR struct fb_vtable_s *vtable, FAR struct fb_cursorattrib_s *attrib);
        + int (*setcursor)(FAR struct fb_vtable_s *vtable, FAR struct fb_setcursor_s *settings);

        +
      +
    • +
    • +

      + Binding Frame Buffer Drivers. + Frame buffer drivers are not normally directly accessed by user code, but are usually bound to another, + higher level device driver. + In general, the binding sequence is: +

      +

      +

        +
      1. Get an instance of struct fb_vtable_s from the hardware-specific frame buffer device driver, and
      2. +
      3. Provide that instance to the initialization method of the higher level device driver.
      4. +
      +

      +
    • +
    • +

      + Examples: + arch/sim/src/up_framebuffer.c. + See also the usage of the frame buffer driver in the graphics/ directory. +

      +
    • +
    + +

    6.3.5 LCD Drivers

    + +
      +
    • +

      + include/nuttx/lcd/lcd.h. + Structures and APIs needed to work with LCD drivers are provided in this header file. + This header file also depends on some of the same definitions used for the frame buffer driver as provided in include/nuttx/video/fb.h. +

      +
    • +
    • +

      + struct lcd_dev_s. + Each LCD device driver must implement an instance of struct lcd_dev_s. + That structure defines a call table with the following methods: +

      +

      + Get information about the LCD video controller configuration and the configuration of each LCD color plane. +

      +
        +

        + int (*getvideoinfo)(FAR struct lcd_dev_s *dev, FAR struct fb_videoinfo_s *vinfo);
        + int (*getplaneinfo)(FAR struct lcd_dev_s *dev, unsigned int planeno, FAR struct lcd_planeinfo_s *pinfo); +

        +
      +

      + The following are provided only if the video hardware supports RGB color mapping: +

      +
        +

        + int (*getcmap)(FAR struct lcd_dev_s *dev, FAR struct fb_cmap_s *cmap);
        + int (*putcmap)(FAR struct lcd_dev_s *dev, FAR const struct fb_cmap_s *cmap); +

        +
      +

      + The following are provided only if the video hardware supports a hardware cursor: +

      +
        +

        + int (*getcursor)(FAR struct lcd_dev_s *dev, FAR struct fb_cursorattrib_s *attrib);
        + int (*setcursor)(FAR struct lcd_dev_s *dev, FAR struct fb_setcursor_s *settings) +

        +
      +

      + Get the LCD panel power status (0: full off - CONFIG_LCD_MAXPOWER: full on). + On backlit LCDs, this setting may correspond to the backlight setting. +

      +
        +

        + int (*getpower)(struct lcd_dev_s *dev); +

        +
      +

      + Enable/disable LCD panel power (0: full off - CONFIG_LCD_MAXPOWER: full on). + On backlit LCDs, this setting may correspond to the backlight setting. +

      +
        +

        + int (*setpower)(struct lcd_dev_s *dev, int power); +

        +
      +

      + Get the current contrast setting (0-CONFIG_LCD_MAXCONTRAST) */ +

      +
        +

        + int (*getcontrast)(struct lcd_dev_s *dev); +

        +
      +

      + Set LCD panel contrast (0-CONFIG_LCD_MAXCONTRAST) +

      +
        +

        + int (*setcontrast)(struct lcd_dev_s *dev, unsigned int contrast); +

        +
      +

      +
    • +

      + Binding LCD Drivers. + LCD drivers are not normally directly accessed by user code, but are usually bound to another, + higher level device driver. + In general, the binding sequence is: +

      +

      +

        +
      1. Get an instance of struct lcd_dev_s from the hardware-specific LCD device driver, and
      2. +
      3. Provide that instance to the initialization method of the higher level device driver.
      4. +
      +

      +
    • +
    • +

      + Examples: + drivers/lcd/nokia6100.c, drivers/lcd/p14201.c, configs/sam3u-ek/src/up_lcd.c. + See also the usage of the LCD driver in the graphics/ directory. +

      +
    • +
    + +

    6.3.6 Memory Technology Device Drivers

    + +
      +
    • +

      + include/nuttx/mtd/mtd.h. + All structures and APIs needed to work with MTD drivers are provided in this header file. +

      +
    • +
    • +

      + struct mtd_dev_s. + Each MTD device driver must implement an instance of struct mtd_dev_s. + That structure defines a call table with the following methods: +

      +

      + Erase the specified erase blocks (units are erase blocks): +

      +
        +

        int (*erase)(FAR struct mtd_dev_s *dev, off_t startblock, size_t nblocks);

        +
      +

      + Read/write from the specified read/write blocks: +

      +
        +

        ssize_t (*bread)(FAR struct mtd_dev_s *dev, off_t startblock, size_t nblocks, FAR uint8_t *buffer);
        + ssize_t (*bwrite)(FAR struct mtd_dev_s *dev, off_t startblock, size_t nblocks, FAR const uint8_t *buffer);

        +
      +

      + Some devices may support byte oriented reads (optional). + Most MTD devices are inherently block oriented so byte-oriented accesses are not supported. + It is recommended that low-level drivers not support read() if it requires buffering. +

      +
        +

        ssize_t (*read)(FAR struct mtd_dev_s *dev, off_t offset, size_t nbytes, FAR uint8_t *buffer);

        +
      +

      + Some devices may also support byte oriented writes (optional). + Most MTD devices are inherently block oriented so byte-oriented accesses are not supported. + It is recommended that low-level drivers not support read() if it requires buffering. + This interface is only available if CONFIG_MTD_BYTE_WRITE is defined. +

      +
        +

        ssize_t (*write)(FAR struct mtd_dev_s *dev, off_t offset, size_t nbytes, FAR const uint8_t *buffer);

        +
      +

      + Support other, less frequently used commands: +

      +
        +
      • MTDIOC_GEOMETRY: Get MTD geometry
      • +
      • MTDIOC_XIPBASE:: Convert block to physical address for eXecute-In-Place
      • +
      • MTDIOC_BULKERASE: Erase the entire device
      • +
      +

      + is provided via a single ioctl method (see include/nuttx/fs/ioctl.h): +

      +
        +

        int (*ioctl)(FAR struct mtd_dev_s *dev, int cmd, unsigned long arg);

        +
      +
    • +
    • +

      + Binding MTD Drivers. + MTD drivers are not normally directly accessed by user code, but are usually bound to another, + higher level device driver. + In general, the binding sequence is: +

      +

      +

        +
      1. Get an instance of struct mtd_dev_s from the hardware-specific MTD device driver, and
      2. +
      3. Provide that instance to the initialization method of the higher level device driver.
      4. +
      +

      +
    • +
    • +

      + Examples: + drivers/mtd/m25px.c and drivers/mtd/ftl.c +

      +
    • +
    + +

    6.3.7 SDIO Device Drivers

    + +
      +
    • +

      + include/nuttx/sdio.h. + All structures and APIs needed to work with SDIO drivers are provided in this header file. +

      +
    • +
    • +

      + struct sdio_dev_s. + Each SDIO device driver must implement an instance of struct sdio_dev_s. + That structure defines a call table with the following methods: +

      +

      + Mutual exclusion: +

      +
        +

        + #ifdef CONFIG_SDIO_MUXBUS
        + int (*lock)(FAR struct sdio_dev_s *dev, bool lock);
        + #endif +

        +
      +

      + Initialization/setup: +

      +
        +

        void (*reset)(FAR struct sdio_dev_s *dev);
        + uint8_t (*status)(FAR struct sdio_dev_s *dev);
        + void (*widebus)(FAR struct sdio_dev_s *dev, bool enable);
        + void (*clock)(FAR struct sdio_dev_s *dev, enum sdio_clock_e rate);
        + int (*attach)(FAR struct sdio_dev_s *dev);
        +

      +

      + Command/Status/Data Transfer: +

      +
        +

        int (*sendcmd)(FAR struct sdio_dev_s *dev, uint32_t cmd, uint32_t arg);
        + int (*recvsetup)(FAR struct sdio_dev_s *dev, FAR uint8_t *buffer, size_t nbytes);
        + int (*sendsetup)(FAR struct sdio_dev_s *dev, FAR const uint8_t *buffer, size_t nbytes);
        + int (*cancel)(FAR struct sdio_dev_s *dev);
        + int (*waitresponse)(FAR struct sdio_dev_s *dev, uint32_t cmd);
        + int (*recvR1)(FAR struct sdio_dev_s *dev, uint32_t cmd, uint32_t *R1);
        + int (*recvR2)(FAR struct sdio_dev_s *dev, uint32_t cmd, uint32_t R2[4]);
        + int (*recvR3)(FAR struct sdio_dev_s *dev, uint32_t cmd, uint32_t *R3);
        + int (*recvR4)(FAR struct sdio_dev_s *dev, uint32_t cmd, uint32_t *R4);
        + int (*recvR5)(FAR struct sdio_dev_s *dev, uint32_t cmd, uint32_t *R5);
        + int (*recvR6)(FAR struct sdio_dev_s *dev, uint32_t cmd, uint32_t *R6);
        + int (*recvR7)(FAR struct sdio_dev_s *dev, uint32_t cmd, uint32_t *R7);

        +
      +

      + Event/Callback support: +

      +
        +

        void (*waitenable)(FAR struct sdio_dev_s *dev, sdio_eventset_t eventset);
        + sdio_eventset_t (*eventwait)(FAR struct sdio_dev_s *dev, uint32_t timeout);
        + void (*callbackenable)(FAR struct sdio_dev_s *dev, sdio_eventset_t eventset);
        + int (*registercallback)(FAR struct sdio_dev_s *dev, worker_t callback, void *arg);

        +
      +

      + DMA support: +

      +
        +

        bool (*dmasupported)(FAR struct sdio_dev_s *dev);
        + int (*dmarecvsetup)(FAR struct sdio_dev_s *dev, FAR uint8_t *buffer, size_t buflen);
        + int (*dmasendsetup)(FAR struct sdio_dev_s *dev, FAR const uint8_t *buffer, size_t buflen);

        +
      +
    • +
    • +

      + Binding SDIO Drivers. + SDIO drivers are not normally directly accessed by user code, but are usually bound to another, + higher level device driver. + In general, the binding sequence is: +

      +

      +

        +
      1. Get an instance of struct sdio_dev_s from the hardware-specific SDIO device driver, and
      2. +
      3. Provide that instance to the initialization method of the higher level device driver.
      4. +
      +

      +
    • +
    • +

      + Examples: + arch/arm/src/stm32/stm32_sdio.c and drivers/mmcsd/mmcsd_sdio.c +

      +
    • +
    + +

    6.3.8 USB Host-Side Drivers

    + +
      +
    • +

      + include/nuttx/usb/usbhost.h. + All structures and APIs needed to work with USB host-side drivers are provided in this header file. +

      +
    • +
    • +

      + struct usbhost_driver_s and struct usbhost_connection_s. + Each USB host controller driver must implement an instance of struct usbhost_driver_s and struct usbhost_connection_s: + struct usbhost_driver_s provides the interface between the USB host driver and the USB class driver; + struct usbhost_connection_s provides the interface between the USB host driver and platform-specific connection management and device enumeration logic. + These structures are defined in include/nuttx/usb/usbhost.h. +

      +

      + Examples: + arch/arm/src/lpc17xx/lpc17_usbhost.c, + arch/arm/src/stm32/stm32_otgfshost.c, + arch/arm/src/sama5/sam_ohci.c, and + arch/arm/src/sama5/sam_ehci.c. +

      +
    • +
    • +

      + struct usbhost_class_s. + Each USB host class driver must implement an instance of struct usbhost_class_s. + This structure is also defined in include/nuttx/usb/usbhost.h. +

      +

      + Examples: + drivers/usbhost/usbhost_storage.c +

      +
    • +
    • +

      + USB Host Class Driver Registry. + The NuttX USB host infrastructure includes a registry. + During its initialization, each USB host class driver must call the interface, usbhost_registerclass() + in order add its interface to the registry. + Later, when a USB device is connected, the USB host controller will look up the USB host class driver that is needed to support the connected device in this registry. +

      +

      + Examples: + drivers/usbhost/usbhost_registry.c, drivers/usbhost/usbhost_registerclass.c, and drivers/usbhost/usbhost_findclass.c, +

      +
    • +
    • +

      + Detection and Enumeration of Connected Devices. + Each USB host device controller supports two methods that are used to detect and enumeration newly connected devices + (and also detect disconnected devices): +

      +

      +

        +
      • +

        + int (*wait)(FAR struct usbhost_connection_s *drvr, FAR const bool *connected); +

        +

        + Wait for a device to be connected or disconnected. +

        +
      • +
      • +

        + int (*enumerate)(FAR struct usbhost_connection_s *drvr, int rhpndx); +

        +

        + Enumerate the device connected to a root hub port. + As part of this enumeration process, the driver will + (1) get the device's configuration descriptor, + (2) extract the class ID info from the configuration descriptor, + (3) call usbhost_findclass() to find the class that supports this device, + (4) call the create() method on the struct usbhost_registry_s interface to get a class instance, and + finally (5) call the connect() method of the struct usbhost_class_s interface. + After that, the class is in charge of the sequence of operations. +

        +
      +

      +
    • +
    • +

      + Binding USB Host-Side Drivers. + USB host-side controller drivers are not normally directly accessed by user code, + but are usually bound to another, higher level USB host class driver. + The class driver exports the standard NuttX device interface so that the connected USB device can be accessed just as with other, similar, on-board devices. + For example, the USB host mass storage class driver (drivers/usbhost/usbhost_storage.c) will register a standard, NuttX block driver interface (like /dev/sda) + that can be used to mount a file system just as with any other other block driver instance. + In general, the binding sequence is: +

      +

      +

        +
      1. +

        + Each USB host class driver includes an initialization entry point that is called from the + application at initialization time. + This driver calls usbhost_registerclass() during this initialization in order to makes itself available in the event the device that it supports is connected. +

        +

        + Examples: + The function usbhost_storageinit() in the file drivers/usbhost/usbhost_storage.c +

        +
      2. +
      3. +

        + Each application must include a waiter thread thread that (1) calls the USB host controller driver's wait() to detect the connection of a device, and then + (2) call the USB host controller driver's enumerate method to bind the registered USB host class driver to the USB host controller driver. +

        +

        + Examples: + The function nsh_waiter() in the file configs/nucleus2g/src/up_nsh.c and + the function nsh_waiter() in the file configs/olimex-lpc1766stk/src/up_nsh.c. +

        +
      4. +
      5. +

        + As part of its operation during the binding operation, the USB host class driver will register an instances of a standard NuttX driver under the /dev directory. + To repeat the above example, the USB host mass storage class driver (drivers/usbhost/usbhost_storage.c) will register a standard, NuttX block driver interface (like /dev/sda) + that can be used to mount a file system just as with any other other block driver instance. +

        +

        + Examples: + See the call to register_blockdriver() in the function usbhost_initvolume() in the file drivers/usbhost/usbhost_storage.c. +

        +
      6. +
      +

      +
    • +
    + +

    6.3.9 USB Device-Side Drivers

    + +
      +
    • +

      + include/nuttx/usb/usbdev.h. + All structures and APIs needed to work with USB device-side drivers are provided in this header file. +

      +
    • +
    • +

      + include/nuttx/usb/usbdev_trace.h. + Declarations needed to work with the NuttX USB device driver trace capability. + That USB trace capability is detailed in separate document. +

      +
    • +
    • +

      + struct usbdev_s. + Each USB device controller driver must implement an instance of struct usbdev_s. + This structure is defined in include/nuttx/usb/usbdev.h. +

      +

      + Examples: + arch/arm/src/dm320/dm320_usbdev.c, arch/arm/src/lpc17xx/lpc17_usbdev.c, + arch/arm/src/lpc214x/lpc214x_usbdev.c, arch/arm/src/lpc313x/lpc313x_usbdev.c, and + arch/arm/src/stm32/stm32_usbdev.c. +

      +
    • +
    • +

      + struct usbdevclass_driver_s. + Each USB device class driver must implement an instance of struct usbdevclass_driver_s. + This structure is also defined in include/nuttx/usb/usbdev.h. +

      +

      + Examples: + drivers/usbdev/pl2303.c and drivers/usbdev/usbmsc.c +

      +
    • +
    • +

      + Binding USB Device-Side Drivers. + USB device-side controller drivers are not normally directly accessed by user code, + but are usually bound to another, higher level USB device class driver. + The class driver is then configured to export the USB device functionality. + In general, the binding sequence is: +

      +

      +

        +
      1. +

        + Each USB device class driver includes an initialization entry point that is called from the + application at initialization time. +

        +

        + Examples: + The function usbdev_serialinitialize() in the file drivers/usbdev/pl2303.c and + the function in the file drivers/usbdev/usbmsc.c +

        +
      2. +
      3. +

        + These initialization functions called the driver API, usbdev_register(). + This driver function will bind the USB class driver to the USB device controller driver, + completing the initialization. +

        +
      4. +
      +

      +
    • +
    +

    6.4 Power Management

    6.4.1 Overview

    From a2d78af5243c0ef65a23611b1a6f5acdce5b027a Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 21 Feb 2015 18:41:17 -0600 Subject: [PATCH 1368/1518] Rename pic32-starterkit to pic32mx-starterkit to make room in the namespace for the pic32mz-starterkit --- Documentation/NuttX.html | 2 +- Documentation/README.html | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index bf63b3d3c4..8bb4629927 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -4261,7 +4261,7 @@ Mem: 29232 5920 23312 23312 A verified configuration is available for the NuttShel (NSH) appeared in NuttX-6.16. Board support includes a verified USB (device-side) driver. Also included are a a verified Ethernet driver, a partially verified USB device controller driver, and an unverifed SPI driver. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

  • Mikroelektronika PIC32MX7 Mulitmedia Board (MMB). A port has been completed for the Mikroelektronika PIC32MX7 Multimedia Board (MMB). diff --git a/Documentation/README.html b/Documentation/README.html index 74f12f4f6f..65a1bbe0d8 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -176,8 +176,8 @@ | | | `- README.txt | | |- pcduino-a10/ | | | `- README.txt - | | |- pic32-starterkit/ - | | | `- README.txt + | | |- pic32mx-starterkit/ + | | | `- README.txt | | |- pic32mx7mmb/ | | | `- README.txt | | |- pirelli_dpl10/ From a6b597ba1b259e2f729647628cea760f81a407bd Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 22 Feb 2015 10:53:24 -0600 Subject: [PATCH 1369/1518] PIC32MZ: Add just enough PIC32MZ logic that we can run 'make menuconfig' --- Documentation/README.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/README.html b/Documentation/README.html index 65a1bbe0d8..4291196ed3 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -180,6 +180,8 @@ | | | `- README.txt | | |- pic32mx7mmb/ | | | `- README.txt + | | |- pic32mz-starterkit/ + | | | `- README.txt | | |- pirelli_dpl10/ | | | `- README.txt | | |- qemu-i486/ From 50881201246ff4d9afd1c70e932f013b45c9fb34 Mon Sep 17 00:00:00 2001 From: sauttefk Date: Tue, 24 Feb 2015 02:36:37 +0100 Subject: [PATCH 1370/1518] Fixed cut & paste error. corrected naming of Tiva series developement boards. --- Documentation/NuttX.html | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 8bb4629927..d0e699e8d6 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -3521,26 +3521,26 @@ nsh>

    TI Tiva TM4C123G. - This port uses the TI Tiva TM4C123G LaunchPad. + This port uses the Tiva C Series TM4C123G LaunchPad Evaluation Kit (EK-TM4C123GXL).

      STATUS:

      • - Initial architectural support for the TI Tiva TM4C123G was implemented and was released in NuttX 7.1. - Basic board support the TM4C123G LaunchPad was also included in that release but was not fully tested. + Initial architectural support for the EK-TM4C123GXL was implemented and was released in NuttX 7.1. + Basic board support the EK-TM4C123GXL was also included in that release but was not fully tested. This basic board support included a configuration for the NuttShell NSH).
      • - The fully verified port to the TM4C123G LaunchPad is provided in NuttX-7.2. + The fully verified port to the EK-TM4C123GXL was provided in NuttX-7.2.
      • An I2C driver was added in NuttX-7.7.

      - Refer to the TM4C123G LaunchPad board README file for more detailed information about this port. + Refer to the EK-TM4C123GXL board README file for more detailed information about this port.

    @@ -3554,19 +3554,19 @@ nsh>

    TI Tiva TM4C1294. - This port uses the TI Tiva TM4C1294 LaunchPad. + This port uses the TI Tiva C Series TM4C1294 Connected LaunchPad (EK-TM4C1294XL).

      STATUS:

      • - Support for the TI Tiva TM4C123G Launchpad was contributed by Frank Sautter and was released in NuttX 7.9. + Support for the EK-TM4C1294XL was contributed by Frank Sautter and was released in NuttX 7.9. This basic board support included a configuration for the NuttShell NSH) and a configuration for testing IPv6.

      - Refer to the TM4C1294 LaunchPad board README file for more detailed information about this port. + Refer to the EK-TM4C1294XL board README file for more detailed information about this port.

    @@ -3580,14 +3580,14 @@ nsh>

    TI Tiva TM4C129X. - This port uses the TI Tiva DK-TM4C129X Connected Development Kit. + This port uses the TI Tiva C Series TM4C129x Connected Development Kit (DK-TM4C129X).

      STATUS:

      • - A mature port to the DK-TM4C123G was implemented and was released in NuttX 7.7. + A mature port to the DK-TM4C129X was implemented and was released in NuttX 7.7.
      • At the initial release, verified drivers were available for Ethernet interface, I2C, and timers as well as board LEDs and push buttons. @@ -3600,7 +3600,7 @@ nsh>

      - Refer to the TM4C129X LaunchPad board README file for more detailed information about this port. + Refer to the DK-TM4C129X board README file for more detailed information about this port.

    From f59e77815f69d93f4d5a77f85b4e4df567ad6b2b Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 24 Feb 2015 07:30:45 -0600 Subject: [PATCH 1371/1518] Update ChangeLog --- Documentation/NuttX.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index d0e699e8d6..8ec9de6526 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -3580,7 +3580,7 @@ nsh>

    TI Tiva TM4C129X. - This port uses the TI Tiva C Series TM4C129x Connected Development Kit (DK-TM4C129X). + This port uses the TI Tiva C Series TM4C129X Connected Development Kit (DK-TM4C129X).

      From 090fdf20367f341cac681900b15f78a648438380 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 27 Feb 2015 18:51:47 -0600 Subject: [PATCH 1372/1518] Minor documentation update --- Documentation/NuttxPortingGuide.html | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 554bf098c2..1cab777e7e 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

      NuttX RTOS Porting Guide

      -

      Last Updated: February 15, 2014

      +

      Last Updated: February 27, 2015

      @@ -4069,12 +4069,9 @@ int up_shmdt(uintptr_t vaddr, unsigned int npages);

      4.9.3 Common LED interfaces

      - The <arch-name>/src/common/up_internal.h probably has definitions - like: + The include/nuttx/board.h has declarations like:

        -/* Defined in board/up_leds.c */
        -
         #ifdef CONFIG_ARCH_LEDS
         void board_led_initialize(void);
         void board_led_on(int led);
        
        From 74b3f4519c066301fbb295dabcea8602c8920aaf Mon Sep 17 00:00:00 2001
        From: Gregory Nutt 
        Date: Sat, 28 Feb 2015 06:46:19 -0600
        Subject: [PATCH 1373/1518] Update comment and documentation for board
         interfaces
        
        ---
         Documentation/NuttxPortingGuide.html | 17 ++++++++++++++++-
         1 file changed, 16 insertions(+), 1 deletion(-)
        
        diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html
        index 1cab777e7e..440487e334 100644
        --- a/Documentation/NuttxPortingGuide.html
        +++ b/Documentation/NuttxPortingGuide.html
        @@ -12,7 +12,7 @@
               

        NuttX RTOS Porting Guide

        -

        Last Updated: February 27, 2015

        +

        Last Updated: February 28, 2015

        @@ -4087,17 +4087,32 @@ void board_led_off(int led);

        • +

          void board_led_initialize(void) is called early in power-up initialization to initialize the LED hardware. +

          +
          + NOTE: In most architectures, board_led_initialize() is called from board-specific initialization logic. + But there are a few architectures where this initialization function is still called from common chip architecture logic. + This interface is nott, however, a common board interface in any event. +
          +
          + WARNING: This interface name will eventually be removed; do not use it in new board ports. + New implementations should not use the naming convention for common board interfaces, but should instted use the naming conventions for microprocessor-specific interfaces or the board-specific interfaces (such as stm32_led_initialize()). +
        • +

          board_led_on(int led) is called to instantiate the LED presentation of the event. The led argument is one of the definitions provided in <board-name>/include/board.h. +

        • +

        • board_led_off(int ledis called to terminate the LED presentation of the event. The led argument is one of the definitions provided in <board-name>/include/board.h. Note that only LED_INIRQ, LED_SIGNAL, LED_ASSERTION, and LED_PANIC indications are terminated. +

        From 327f84497c95c65eaa4b94516f45095747276a3f Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 9 Mar 2015 08:23:09 -0600 Subject: [PATCH 1374/1518] SAMV71-XULT: Add support for on-board LEDs. Includes partial support for on-board buttons. Some corrections fo to egg-stk37000 and sam4e-ek discovered during leveraging. Add board READEM.txt file --- Documentation/README.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/README.html b/Documentation/README.html index 4291196ed3..02552d659d 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -8,7 +8,7 @@

        NuttX README Files

        -

        Last Updated: December 16, 2014

        +

        Last Updated: March 9, 2015

        @@ -206,6 +206,8 @@ | | | `- README.txt | | |- sam4s-xplained-pro/ | | | `- README.txt + | | |- samv71-xult/ + | | | `- README.txt | | |- shenzhou/ | | | `- README.txt | | |- sim/ From acd35e1f36138be761e5a35fbe3ca11692a268d0 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 9 Mar 2015 19:46:48 -0600 Subject: [PATCH 1375/1518] Add a little blurb about the SAMV71-XULT in the 'about' document --- Documentation/NuttX.html | 48 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 45 insertions(+), 3 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 8ec9de6526..196405c831 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

        NuttX RTOS

        -

        Last Updated: February 11, 2014

        +

        Last Updated: March 9, 2014

        @@ -1335,6 +1335,7 @@
      • ARM Cortex-M0/M0+ (4)
      • ARM Cortex-M3 (30)
      • ARM Cortex-M4 (19)
      • +
      • ARM Cortex-M7 (1)
    • Atmel AVR @@ -3827,8 +3829,48 @@ Mem: 29232 5920 23312 23312 Development Environments: 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU Cortex-M3 or 4 toolchain, 3) Cygwin/MSYS with Windows native GNU Cortex-M3 or M4 toolchain (CodeSourcery or devkitARM), or 4) Native Windows. A DIY toolchain for Linux or Cygwin is provided by the NuttX buildroot package. - I use FreeScale's CodeWarrior IDE only to work with the JTAG debugger built into the Kinetis boards. - I use the Code Red IDE with the some of the NXP parts and the Atollic toolchain with some of the STMicroelectronics parts. +

      + + + + + + ARM Cortex-M7. + + + +
      + +

      + Atmel SAMV71. + This port uses Atmel SAM V71 Xplained Ultra Evaluation Kit (SAMV71-XULT). + This board features the ATSAMV71Q21 Cortex-M7 microcontroller. + Refer to the Atmel web site for further information about this board. +

      +
        +

        + STATUS: + As of this writing (2015-03-09), this is a work in progress. + The basic port is code complete and just entering into the test phase. + The basic port includes a configuration for the NuttShell (NSH) and a serial console. + Additional drivers are expected. + The first release of the SAMV71-XULT port is expected in NuttX-7.9. + Refer to the NuttX board README file for further information. +

        +
      + + + +
      +
      + + +
      + +

      + Development Environments: + The same basic development environment is recommended for the Cortex-M7 as for the Cortex-M4. + It would be wise to use the last GNU toolchains for this part because as of this writing (2015-02-09), support for the Cortex-M7 is a very new GCC feature.

      From 526d8155dad8a9aa6f1772da77908ade9ba2084c Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 9 Mar 2015 19:58:59 -0600 Subject: [PATCH 1376/1518] Update README --- Documentation/NuttX.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 196405c831..8c10a00697 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -3870,7 +3870,7 @@ Mem: 29232 5920 23312 23312

      Development Environments: The same basic development environment is recommended for the Cortex-M7 as for the Cortex-M4. - It would be wise to use the last GNU toolchains for this part because as of this writing (2015-02-09), support for the Cortex-M7 is a very new GCC feature. + It would be wise to use the latest GNU toolchains for this part because as of this writing (2015-02-09), support for the Cortex-M7 is a very new GCC feature.

      From ba36cff265fe4ea2365aa856edf07afe0efa4245 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 20 Mar 2015 18:00:10 -0600 Subject: [PATCH 1377/1518] Add Olimexino-STM32 board support from David Sidrane --- Documentation/NuttX.html | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 8c10a00697..3ea6ddad45 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1333,7 +1333,7 @@
    • ARM Cortex-A5 (2)
    • ARM Cortex-A8 (1)
    • ARM Cortex-M0/M0+ (4)
    • -
    • ARM Cortex-M3 (30)
    • +
    • ARM Cortex-M3 (32)
    • ARM Cortex-M4 (19)
    • ARM Cortex-M7 (1)
    @@ -2729,6 +2729,14 @@ nsh> Most of this work is the result of the effort of David Sidrane.

  • +
  • +

    + Olimexino-STM32. + This port uses the Olimexino STM32 board (STM32F103RBT6). + See the http://www.olimex.com for further information. + Contribued by David Sidrane. +

    +
  • These ports uses a GNU arm-nuttx-elf toolchain* under either Linux or Cygwin (with native Windows GNU tools or Cygwin-based GNU tools). @@ -2788,6 +2796,13 @@ nsh> That is really quite a lot of high end functionality on an STM32 that only has 20KB of RAM! I am impressed!

    +
  • +

    + Olimexino-STM32. + Contributed by David Sidrane and introduced with NuttX 7.9. + Configurations are included for the NuttShell (NSH), a tiny version of the NuttShell, USB composite CDC/ACM + MSC, CAN support, and two tiny, small-footprint NSH configurations. +

    +
  • From 9319d6c88b934e7dcf761ed24b8a133ab475a44c Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 29 Mar 2015 07:52:52 -0600 Subject: [PATCH 1378/1518] Update documentation --- Documentation/NuttX.html | 103 +++++++++++++++++++++++++++++++++++---- 1 file changed, 93 insertions(+), 10 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 3ea6ddad45..7e1de15eae 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

    NuttX RTOS

    -

    Last Updated: March 9, 2014

    +

    Last Updated: March 29, 2014

    @@ -1358,7 +1358,8 @@
  • MicroChip
  • Renesas/Hitachi: @@ -1437,9 +1438,10 @@
  • MicroChip
  • @@ -3865,11 +3867,27 @@ Mem: 29232 5920 23312 23312

      STATUS: - As of this writing (2015-03-09), this is a work in progress. - The basic port is code complete and just entering into the test phase. - The basic port includes a configuration for the NuttShell (NSH) and a serial console. - Additional drivers are expected. + The basic port is complete and there are several different, verified configurations available. + All configurations use the the NuttShell (NSH) and a serial console. The first release of the SAMV71-XULT port is expected in NuttX-7.9. +

      +

      + Additional drivers, with status as of 2015-03-29, include: +

      +
        +
      • PIO configuration, including PIO interrupts,
      • +
      • On-board LEDs and buttons,
      • +
      • DMA,
      • +
      • SDRAM (not yet functional),
      • +
      • UART/USART-based serial drivers, including the NuttShell serial console,
      • +
      • High Speed Memory Card Interface (HSMCI) with support for the on board SD card slot,
      • +
      • SPI (not fully tested),
      • +
      • TWIHS/I2C, with the support for the on-board serial EEPROM,
      • +
      • SSC/I2S (not fully tested),
      • +
      • Ethernet MAC (works only with caches disabled),
      • +
      • USB device controller driver (not yet functional).
      • +
      +

      Refer to the NuttX board README file for further information.

    @@ -4201,7 +4219,7 @@ Mem: 29232 5920 23312 23312 - MicroChip PIC32 (MIPS). + MicroChip PIC32MX (MIPS 24Kc). @@ -4365,9 +4383,74 @@ Mem: 29232 5920 23312 23312
  • The Pinguino MIPS ELF toolchain avaiable from the Pinquino website.
  • +
  • + The MIPS SDE toolchain available from the Mentor Graphics website. +
  • + + + + MicroChip PIC32MZ (MIPS M14K). + + + +
    + +

    + PIC32MZEC Family. + A port is in available for the PIC32MZ Embedded Connectivity (EC) Starter Kit. + There are two configurations of the Microchip PIC32MZ EC Starter Kit: +

    +
      +
    1. The PIC32MZ Embedded Connectivity Starter Kit based on the PIC32MZ2048ECH144-I/PH chip (DM320006), and
    2. +
    3. The PIC32MZ Embedded Connectivity Starter Kit based on the PIC32MZ2048ECM144-I/PH w/Crypto Engine (DM320006-C).
    4. +
    +

    + See the Microchip website for further information. +

    +
      +

      + STATUS: + This is a collaborative effort between Kristopher Tate, David Sidrane and myself. + The basic port is functional and a NuttShell (NSH) configurqation is available. + The first official is expected in NuttX-7.9. + Current efforts are focused on driver development. + Many drivers port simply from the PIC32MX; others require more extensive efforts. + Driver status as of (2015-03-29) is provided below: +

      +

        +
      • I/O ports include I/O port interrupts
      • +
      • UART serial driver that provides the NSH console,
      • +
      • Timer,
      • +
      • I2C (untested),
      • +
      • SPI (untested),
      • +
      • On-board buttons and LEDs,
      • +
      • Ethernet (code complete, but not yet functional),
      • +
      +

      + Refer to the NuttX board README file for further information. +

      +
    + + +
    +
    + + +
    + +

    + Development Environment: + Same as for the PIC32MZ. +

    + + + +
    +
    + From 593e1243dc3f0a99a047803660c1e18219901429 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 29 Mar 2015 14:46:52 -0600 Subject: [PATCH 1379/1518] Minor Documentation update --- Documentation/NuttX.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 7e1de15eae..5cbd96a4ed 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -3884,7 +3884,7 @@ Mem: 29232 5920 23312 23312
  • SPI (not fully tested),
  • TWIHS/I2C, with the support for the on-board serial EEPROM,
  • SSC/I2S (not fully tested),
  • -
  • Ethernet MAC (works only with caches disabled),
  • +
  • Ethernet MAC,
  • USB device controller driver (not yet functional).
  • From 1c394bc2782d4ea0801e5904ae83df40257337b6 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 31 Mar 2015 10:21:31 -0600 Subject: [PATCH 1380/1518] Rename arch_nshinitialize() to board_app_initialize() --- Documentation/NuttShell.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index 2f1fd333a9..ff55c0655a 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -3100,7 +3100,7 @@ set FOOBAR ABC_${FOO}_${BAR} CONFIG_NSH_ARCHINIT Set CONFIG_NSH_ARCHINIT if your board provides architecture - specific initialization via the board-specific function nsh_archinitialize(). + specific initialization via the board-specific function board_app_initialize(). This function will be called early in NSH initialization to allow board logic to do such things as configure MMC/SD slots. @@ -3498,7 +3498,7 @@ mount -t vfat /dev/ram1 /tmp

  • - nsh_archinitialize(): + board_app_initialize(): Next any architecture-specific NSH initialization will be performed (if any). For the STM3240G-EVAL, this architecture specific initialization can be found at configs/stm3240g-eval/src/up_nsh.c. This it does things like: (1) Initialize SPI devices, (2) Initialize SDIO, and (3) mount any SD cards that may be inserted. @@ -4144,6 +4144,7 @@ mount -t vfat /dev/ram1 /tmp

  • Background commands
  • Background command priority
  • binfs
  • +
  • board_app_initialize()
  • break
  • Built-In applications
  • Built-In application start-up main()
  • @@ -4268,7 +4269,6 @@ mount -t vfat /dev/ram1 /tmp
  • nice
  • NSH library (nshlib)
  • NSH library (nshlib)
  • -
  • nsh_archinitialize()
  • nsh_consolemain()
  • nsh_initialize()
  • nsh_main()
  • From a9e2888c22173cf1b14b97d4f486e2359e402246 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 1 Apr 2015 09:05:43 -0600 Subject: [PATCH 1381/1518] Update Documentation --- Documentation/NuttxPortingGuide.html | 155 ++++++++++++++++++--------- 1 file changed, 103 insertions(+), 52 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 440487e334..8695be5912 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

    NuttX RTOS Porting Guide

    -

    Last Updated: February 28, 2015

    +

    Last Updated: April 1, 2015

    @@ -30,7 +30,7 @@ 1.0 Introduction
    2.0 Directory Structure 4.5 Address Environments - 4.6 APIs Exported by NuttX to Architecture-Specific Logic + 4.6 boardctl() Application Interface
    + 4.7 APIs Exported by NuttX to Architecture-Specific Logic - 4.7 Shared Memory + 4.8 Shared Memory - 4.8 On-Demand Paging
    - 4.9 LED Support + 4.9 On-Demand Paging
    + 4.10 LED Support 5.0 NuttX File System
    @@ -3813,23 +3814,73 @@ void lpwork_restorepriority(uint8_t reqprio); Zero (OK) on success; a negated errno value on failure. -

    4.6 APIs Exported by NuttX to Architecture-Specific Logic

    +

    4.6 boardctl() Application Interface

    + +

    Function Prototype:

    +

      + + include <sys/boardctl.h>
      + int boardctl(unsigned int cmd, uintptr_t arg); +
      +
    +

    Description:

    +
      +

      + In a small embedded system, there will typically be a much greater interaction between application and low-level board features. + The canonically correct to implement such interactions is by implementing a character driver and performing the interactions via low level ioctl() calls. + This, however, may not be practical in many cases and will lead to "correct" but awkward implementations. +

      +

      + boardctl() is non-standard OS interface to alleviate the problem. + It basically circumvents the normal device driver ioctl() interlace and allows the application to perform direction IOCTL-like calls to the board-specific logic. + It is especially useful for setting up board operational and test configurations. +

      +

      + NOTE: The other interfaces described in this document are internal OS interface. + boardctl() is an application interface to the OS. + There is not point, in fact, of using boardctl() within the OS; + the board interfaces prototyped in include/nuttx/board.h may be called directly from within the OS. +

      +

      + Application interfaces are described in the NuttX User Guide. + This application interface interface is described here only because it is so non-standard and because it is so closely tied to board porting logic. +

      +
    +

    Input Parameters:

    +
      +
    • + cmd: Identifies the board command to be executed. + See include/sys/boardctl.h for the complete list of common board commands. + Provisions are made to support non-common, board-specific commands as well. +
    • +
    • + arg: The argument that accompanies the command. + The nature of the argument is determined by the specific command. +
    • +
    +

    Returned Value:

    +
      + On success zero (OK) is returned; + -1 (ERROR) is returned on failure with the errno variable to to indicate the nature of the failure. +
    + +

    4.7 APIs Exported by NuttX to Architecture-Specific Logic

    These are standard interfaces that are exported by the OS for use by the architecture specific logic.

    -

    4.6.1 os_start()

    +

    4.7.1 os_start()

    To be provided

    -

    4.6.2 OS List Management APIs

    +

    4.7.2 OS List Management APIs

    To be provided

    -

    4.6.3 sched_process_timer()

    +

    4.7.3 sched_process_timer()

    Function Prototype: void sched_process_timer(void);

    Description. @@ -3840,7 +3891,7 @@ void lpwork_restorepriority(uint8_t reqprio); MSEC_PER_TICK.

    -

    4.6.4 sched_timer_expiration()

    +

    4.7.4 sched_timer_expiration()

    Function Prototype:

       #include <nuttx/arch.h>
      @@ -3863,7 +3914,7 @@ void sched_timer_expiration(void);
         Base code implementation assumes that this function is called from interrupt handling logic with interrupts disabled.
       
    -

    4.6.5 sched_alaram_expiration()

    +

    4.7.5 sched_alaram_expiration()

    Function Prototype:

       #include <nuttx/arch.h>
      @@ -3886,7 +3937,7 @@ void sched_timer_expiration(void);
         Base code implementation assumes that this function is called from interrupt handling logic with interrupts disabled.
       
    -

    4.6.6 irq_dispatch()

    +

    4.7.6 irq_dispatch()

    Function Prototype: void irq_dispatch(int irq, FAR void *context);

    Description. @@ -3895,7 +3946,7 @@ void sched_timer_expiration(void); the appropriate, registered handling logic.

    -

    4.7 Shared Memory

    +

    4.8 Shared Memory

    Shared memory interfaces are only available with the NuttX kernel build (CONFIG_BUILD_KERNEL=y). These interfaces support user memory regions that can be shared between multiple user processes. @@ -3904,7 +3955,7 @@ void sched_timer_expiration(void); Those interfaces are described below:

    -

    4.7.1 up_shmat()

    +

    4.8.1 up_shmat()

    Function Prototype:

       #include <nuttx/arch.h>
      @@ -3933,7 +3984,7 @@ int up_shmat(FAR uintptr_t *pages, unsigned int npages, uintptr_t vaddr);
         Zero (OK) is returned on success; a negated errno value is returned on failure.
       
    -

    4.7.2 up_shmdt()

    +

    4.8.2 up_shmdt()

    Function Prototype:

       #include <nuttx/arch.h>
      @@ -3959,7 +4010,7 @@ int up_shmdt(uintptr_t vaddr, unsigned int npages);
         Zero (OK) is returned on success; a negated errno value is returned on failure.
       
    -

    4.8 On-Demand Paging

    +

    4.9 On-Demand Paging

    The NuttX On-Demand Paging feature permits embedded MCUs with some limited RAM space to execute large programs from some non-random access media. If the platform meets certain requirements, then NuttX can provide on-demand paging: @@ -3968,7 +4019,7 @@ int up_shmdt(uintptr_t vaddr, unsigned int npages); Please see the NuttX Demand Paging design document for further information.

    -

    4.9 LED Support

    +

    4.10 LED Support

    A board architecture may or may not have LEDs. @@ -3978,7 +4029,7 @@ int up_shmdt(uintptr_t vaddr, unsigned int npages); However, the support provided by each architecture is sufficiently similar that it can be documented here.

    -

    4.9.1 Header Files

    +

    4.10.1 Header Files

    LED-related definitions are provided in two header files: @@ -4002,7 +4053,7 @@ int up_shmdt(uintptr_t vaddr, unsigned int npages);

    -

    4.9.2 LED Definitions

    +

    4.10.2 LED Definitions

    The implementation of LED support is very specific to a board architecture. @@ -4066,7 +4117,7 @@ int up_shmdt(uintptr_t vaddr, unsigned int npages); -

    4.9.3 Common LED interfaces

    +

    4.10.3 Common LED interfaces

    The include/nuttx/board.h has declarations like: From c5c50e687da7986b8320536c9e333c9c7ade08e6 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 1 Apr 2015 12:37:44 -0600 Subject: [PATCH 1382/1518] Move include/nuttx/timer.h, rtc.h and watchdog.h to include/nuttx/timers/. --- Documentation/NuttxPortingGuide.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 8695be5912..2f6c63f2c2 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -4598,7 +4598,7 @@ void board_led_off(int led);

    • Interface Definition. - The header file for the NuttX timer driver reside at include/nuttx/timer.h. + The header file for the NuttX timer driver reside at include/nuttx/timers/timer.h. This header file includes both the application level interface to the timer driver as well as the interface between the "upper half" and "lower half" drivers. The timer driver uses a standard character driver framework.
    • @@ -4627,7 +4627,7 @@ void board_led_off(int led);

      • Interface Definition. - The header file for the NuttX RTC driver reside at include/nuttx/rtc.h. + The header file for the NuttX RTC driver reside at include/nuttx/timers/rtc.h. This header file includes both the application level interface to the RTC driver as well as the interface between the "upper half" and "lower half" drivers. The RTC driver uses a standard character driver framework.
      • @@ -4656,7 +4656,7 @@ void board_led_off(int led);

        • Interface Definition. - The header file for the NuttX watchdog timer driver reside at include/nuttx/watchdog.h. + The header file for the NuttX watchdog timer driver reside at include/nuttx/timers/watchdog.h. This header file includes both the application level interface to the watchdog timer driver as well as the interface between the "upper half" and "lower half" drivers. The watchdog timer driver uses a standard character driver framework.
        • From 59499d5420f3b26ceb7e390ea43b83503008b473 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 2 Apr 2015 13:00:10 -0600 Subject: [PATCH 1383/1518] Add a very basic driver for the CS2100-CP Fractional-N Multipler chip. --- Documentation/NuttxPortingGuide.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 2f6c63f2c2..171c4a3ce7 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -3832,7 +3832,7 @@ void lpwork_restorepriority(uint8_t reqprio);

          boardctl() is non-standard OS interface to alleviate the problem. - It basically circumvents the normal device driver ioctl() interlace and allows the application to perform direction IOCTL-like calls to the board-specific logic. + It basically circumvents the normal device driver ioctl() interlace and allows the application to perform direct IOCTL-like calls to the board-specific logic. It is especially useful for setting up board operational and test configurations.

          From fed3c04fcb12b41f5fc3123e42bd00ffd72ee5fa Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 3 Apr 2015 16:44:07 -0600 Subject: [PATCH 1384/1518] Minor documentation update --- Documentation/NuttX.html | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 5cbd96a4ed..c8a1a79193 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

          NuttX RTOS

          -

          Last Updated: March 29, 2014

          +

          Last Updated: April 3, 2014

          @@ -3872,7 +3872,7 @@ Mem: 29232 5920 23312 23312 The first release of the SAMV71-XULT port is expected in NuttX-7.9.

          - Additional drivers, with status as of 2015-03-29, include: + Additional drivers, with status as of 2015-04-03, include:

          • PIO configuration, including PIO interrupts,
          • @@ -3885,7 +3885,10 @@ Mem: 29232 5920 23312 23312
          • TWIHS/I2C, with the support for the on-board serial EEPROM,
          • SSC/I2S (not fully tested),
          • Ethernet MAC,
          • -
          • USB device controller driver (not yet functional).
          • +
          • USB device controller driver (complete but not yet functional).
          • +
          • On-board AT24 I2C EEPROM.
          • +
          • On-board WM8904 Audio CODEC with CS2100-CP Fractional-N Multipier (not yet tested).
          • +
          • Support for the (optional) maXTouch Xplained Pro LCD module (still a work in progress).

          Refer to the NuttX board README file for further information. From 752ab56bc0407680f068cae171ede54675d21d4d Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 5 Apr 2015 08:50:01 -0600 Subject: [PATCH 1385/1518] Add a 'capped' boolean parameter to all drawline/drawLine functions/methods. The idea is that this will produce better joining between lines --- Documentation/NXGraphicsSubsystem.html | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/Documentation/NXGraphicsSubsystem.html b/Documentation/NXGraphicsSubsystem.html index c8c3e0b83b..d13a115b50 100644 --- a/Documentation/NXGraphicsSubsystem.html +++ b/Documentation/NXGraphicsSubsystem.html @@ -12,7 +12,7 @@

          NX Graphics Subsystem

          -

          Last Updated: December 28, 2013

          +

          Last Updated: April 5, 2015

          @@ -1759,7 +1759,8 @@ int nx_filltrapezoid(NXWINDOW hwnd, FAR const struct nxgl_rect_s *clip, #include <nuttx/nx/nx.h> int nx_drawline(NXWINDOW hwnd, FAR struct nxgl_vector_s *vector, - nxgl_coord_t width, nxgl_mxpixel_t color[CONFIG_NX_NPLANES]); + nxgl_coord_t width, nxgl_mxpixel_t color[CONFIG_NX_NPLANES], + bool capped);

        Description: @@ -1780,6 +1781,8 @@ int nx_drawline(NXWINDOW hwnd, FAR struct nxgl_vector_s *vector,

        The width of the line
        color
        The color to use to fill the line +
        capped +
        Draw a circular cap both ends of the line to support better line joins

    @@ -2385,7 +2388,8 @@ int nxtk_filltrapwindow(NXTKWINDOW hfwnd, #include <nuttx/nx/nxtk.h> int nxtk_drawlinewindow(NXTKWINDOW hfwnd, FAR struct nxgl_vector_s *vector, - nxgl_coord_t width, nxgl_mxpixel_t color[CONFIG_NX_NPLANES]); + nxgl_coord_t width, nxgl_mxpixel_t color[CONFIG_NX_NPLANES], + bool capped);

    Description: @@ -2406,6 +2410,8 @@ int nxtk_drawlinewindow(NXTKWINDOW hfwnd, FAR struct nxgl_vector_s *vector,

    The width of the line
    color
    The color to use to fill the line +
    capped +
    Draw a circular cap both ends of the line to support better line joins

    @@ -2738,7 +2744,8 @@ int nxtk_filltraptoolbar(NXTKWINDOW hfwnd, FAR const struct nxgl_trapezoid_s *tr #include <nuttx/nx/nxtk.h> int nxtk_drawlinetoolbar(NXTKWINDOW hfwnd, FAR struct nxgl_vector_s *vector, - nxgl_coord_t width, nxgl_mxpixel_t color[CONFIG_NX_NPLANES]); + nxgl_coord_t width, nxgl_mxpixel_t color[CONFIG_NX_NPLANES], + capped);

    @@ -2759,6 +2766,8 @@ int nxtk_drawlinetoolbar(NXTKWINDOW hfwnd, FAR struct nxgl_vector_s *vector,

    The width of the line
    color
    The color to use to fill the line +
    capped +
    Draw a circular cap both ends of the line to support better line joins

    From 0f643a45fe2ca7f44bbe9bb3f26a7ab073083224 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 5 Apr 2015 16:53:51 -0600 Subject: [PATCH 1386/1518] drawline/drawLine should not take a boolean to select non lines caps or capping at both ends. drawline/drawLine also needs to be able to put a line cap on one one end of a line --- Documentation/NXGraphicsSubsystem.html | 45 ++++++++++++++++++++------ 1 file changed, 36 insertions(+), 9 deletions(-) diff --git a/Documentation/NXGraphicsSubsystem.html b/Documentation/NXGraphicsSubsystem.html index d13a115b50..dd866bd67c 100644 --- a/Documentation/NXGraphicsSubsystem.html +++ b/Documentation/NXGraphicsSubsystem.html @@ -1760,7 +1760,7 @@ int nx_filltrapezoid(NXWINDOW hwnd, FAR const struct nxgl_rect_s *clip, int nx_drawline(NXWINDOW hwnd, FAR struct nxgl_vector_s *vector, nxgl_coord_t width, nxgl_mxpixel_t color[CONFIG_NX_NPLANES], - bool capped); + uint8_t caps);

    Description: @@ -1781,8 +1781,17 @@ int nx_drawline(NXWINDOW hwnd, FAR struct nxgl_vector_s *vector,

    The width of the line
    color
    The color to use to fill the line -
    capped -
    Draw a circular cap both ends of the line to support better line joins +
    caps +
    Draw a circular cap on the ends of the line to support better line joins. + One of: +
      +/* Line caps */
      +
      +#define NX_LINECAP_NONE  0x00, /* No line caps */
      +#define NX_LINECAP_PT1   0x01  /* Line cap on pt1 on of the vector only */
      +#define NX_LINECAP_PT2   0x02  /* Line cap on pt2 on of the vector only */
      +#define NX_LINECAP_BOTH  0x03  /* Line cap on both ends of the vector only */
      +

    @@ -2389,7 +2398,7 @@ int nxtk_filltrapwindow(NXTKWINDOW hfwnd, int nxtk_drawlinewindow(NXTKWINDOW hfwnd, FAR struct nxgl_vector_s *vector, nxgl_coord_t width, nxgl_mxpixel_t color[CONFIG_NX_NPLANES], - bool capped); + uint8_t caps);

    Description: @@ -2410,8 +2419,17 @@ int nxtk_drawlinewindow(NXTKWINDOW hfwnd, FAR struct nxgl_vector_s *vector,

    The width of the line
    color
    The color to use to fill the line -
    capped -
    Draw a circular cap both ends of the line to support better line joins +
    caps +
    Draw a circular cap on the ends of the line to support better line joins. + One of: +
      +/* Line caps */
      +
      +#define NX_LINECAP_NONE  0x00, /* No line caps */
      +#define NX_LINECAP_PT1   0x01  /* Line cap on pt1 on of the vector only */
      +#define NX_LINECAP_PT2   0x02  /* Line cap on pt2 on of the vector only */
      +#define NX_LINECAP_BOTH  0x03  /* Line cap on both ends of the vector only */
      +

    @@ -2745,7 +2763,7 @@ int nxtk_filltraptoolbar(NXTKWINDOW hfwnd, FAR const struct nxgl_trapezoid_s *tr int nxtk_drawlinetoolbar(NXTKWINDOW hfwnd, FAR struct nxgl_vector_s *vector, nxgl_coord_t width, nxgl_mxpixel_t color[CONFIG_NX_NPLANES], - capped); + uint8_t caps);

    @@ -2766,8 +2784,17 @@ int nxtk_drawlinetoolbar(NXTKWINDOW hfwnd, FAR struct nxgl_vector_s *vector,

    The width of the line
    color
    The color to use to fill the line -
    capped -
    Draw a circular cap both ends of the line to support better line joins +
    caps +
    Draw a circular cap on the ends of the line to support better line joins. + One of: +
      +/* Line caps */
      +
      +#define NX_LINECAP_NONE  0x00, /* No line caps */
      +#define NX_LINECAP_PT1   0x01  /* Line cap on pt1 on of the vector only */
      +#define NX_LINECAP_PT2   0x02  /* Line cap on pt2 on of the vector only */
      +#define NX_LINECAP_BOTH  0x03  /* Line cap on both ends of the vector only */
      +

    From c1ca91873c9d4649fef14efc254b31c4a07b14f5 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 9 Apr 2015 10:16:35 -0600 Subject: [PATCH 1387/1518] Add sigset() --- Documentation/NuttxUserGuide.html | 171 ++++++++++++++++++++++++++---- 1 file changed, 152 insertions(+), 19 deletions(-) diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 917b52559f..c2d65d00d1 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -13,7 +13,7 @@

    NuttX Operating System

    User's Manual

    by

    Gregory Nutt

    -

    Last Updated: November 29, 2014

    +

    Last Updated: April 9, 2015

    @@ -4487,14 +4487,19 @@ interface of the same name.
  • 2.7.4 sigdelset
  • 2.7.5 sigismember
  • 2.7.6 sigaction
  • -
  • 2.7.7 sigprocmask
  • -
  • 2.7.8 sigpending
  • -
  • 2.7.9 sigsuspend
  • -
  • 2.7.10 sigwaitinfo
  • -
  • 2.7.11 sigtimedwait
  • -
  • 2.7.12 sigqueue
  • -
  • 2.7.13 kill
  • -
  • 2.7.14 pause
  • +
  • 2.7.7 sigignore
  • +
  • 2.7.8 sigset
  • +
  • 2.7.9 sigprocmask
  • +
  • 2.7.10 sighold
  • +
  • 2.7.11 sigrelse
  • +
  • 2.7.12 sigpending
  • +
  • 2.7.13 sigsuspend
  • +
  • 2.7.14 sigpause
  • +
  • 2.7.15 sigwaitinfo
  • +
  • 2.7.16 sigtimedwait
  • +
  • 2.7.17 sigqueue
  • +
  • 2.7.18 kill
  • +
  • 2.7.19 pause
  • 2.7.1 sigemptyset

    @@ -4729,7 +4734,65 @@ Differences from the POSIX implementation include: -

    2.7.7 sigprocmask

    +

    2.7.7 sigignore

    + +

    +Function Prototype: +

    +    #include <signal.h>
    +    int sigignore(int signo);
    +
    + +

    +Description: The sigignore() function will set the disposition of signo to SIG_IGN. +

    +Input Parameters: +

      +
    • signo. The signal number to act on +
    + +

    +Returned Value: +

      +
    • Zero is returned upon successful completion, otherwise -1 (ERROR) is returned with the errno set appropriately. The errno value of EINVAL, for example, would indicate that signo argument is not a valid signal number. +
    + +

    2.7.8 sigset

    + +

    +Function Prototype: +

    +    #include <signal.h>
    +    void (*sigset(int signo, void (*disp)(int)))(int);
    +
    + +

    +Description: + The sigset() function will modify signal dispositions. + The signo argument specifies the signal. + The disp argument specifies the signal's disposition, which may be SIG_DFL, SIG_IGN, or the address of a signal handler. + If disp is the address of a signal handler, the system will add signo to the calling process' signal mask before executing the signal handler; when the signal handler returns, the system will restore the calling process' signal mask to its state prior to the delivery of the signal. + signo will be removed from the calling process' signal mask. +

    +

    + NOTE: The value SIG_HOLD for disp is not currently supported. +

    +

    +Input Parameters: +

      +
    • signo. The signal number to operate on +
    • disp. The new disposition of the signal +
    + +

    +Returned Value: +

      +
    • +Upon successful completion, sigset() will the previous disposition of the signal. +Otherwise, SIG_ERR will be returned and errno set to indicate the error. +
    + +

    2.7.9 sigprocmask

    Function Prototype: @@ -4779,7 +4842,55 @@ pointed to by the set input parameter. POSIX Compatibility: Comparable to the POSIX interface of the same name. -

    2.7.8 sigpending

    +

    2.7.10 sighold

    + +

    +Function Prototype: +

    +    #include <signal.h>
    +    int sighold(int signo);
    +
    + +

    +Description: The sighold() function will add signo to the calling process' signal mask +

    +

    +Input Parameters: +

      +
    • signo. Identifies the signal to be blocked. +
    + +

    +Returned Value: +

      +
    • Zero is returned upon successful completion, otherwise -1 (ERROR) is returned with the errno set appropriately. The errno value of EINVAL, for example, would indicate that signo argument is not a valid signal number. +
    + +

    2.7.11 sigrelse

    + +

    +Function Prototype: +

    +    #include <signal.h>
    +    int sigrelse(int signo);
    +
    + +

    +Description: The sighold() function will remove signo from the calling process' signal mask +

    +

    +Input Parameters: +

      +
    • signo. Identifies the signal to be unblocked. +
    + +

    +Returned Value: +

      +
    • Zero is returned upon successful completion, otherwise -1 (ERROR) is returned with the errno set appropriately. The errno value of EINVAL, for example, would indicate that signo argument is not a valid signal number. +
    + +

    2.7.12 sigpending

    Function Prototype: @@ -4817,7 +4928,7 @@ is delivered more than once." POSIX Compatibility: Comparable to the POSIX interface of the same name. -

    2.7.9 sigsuspend

    +

    2.7.13 sigsuspend

    Function Prototype: @@ -4865,7 +4976,30 @@ function or to terminate the task." Only delivery of the signal is required in the present implementation (even if the signal is ignored). -

    2.7.10 sigwaitinfo

    +

    2.7.14 sigpause

    +

    +Function Prototype: +

    +    #include <signal.h>
    +    int sigpause(int signo);
    +
    + +

    +Description: The sigpause()) function will remove signo) from the calling process' signal mask and suspend the calling process until a signal is received. +The sigpause()) function will restore the process' signal mask to its original state before returning. +

    +Input Parameters: +

      +
    • set. Identifies the signal to be unblocked while waiting. +
    + +

    +Returned Value: +

      +
    • sigpause always returns -1 (ERROR). On a successful wait for a signal, the errno will be set to EINTR. +
    + +

    2.7.15 sigwaitinfo

    Function Prototype: @@ -4894,10 +5028,9 @@ with a NULL timeout parameter. (see below).

    Assumptions/Limitations:

    - POSIX Compatibility: Comparable to the POSIX -interface of the same name. + POSIX Compatibility: Comparable to the POSIX interface of the same name. -

    2.7.11 sigtimedwait

    +

    2.7.16 sigtimedwait

    Function Prototype: @@ -4963,7 +5096,7 @@ that the unblocked signal be caught; the task will be resumed even if the unblocked signal is ignored. -

    2.7.12 sigqueue

    +

    2.7.17 sigqueue

    Function Prototype: @@ -5020,7 +5153,7 @@ There is no null signal in the present implementation; a zero signal will be sent. -

    2.7.13 kill

    +

    2.7.18 kill

    Function Prototype: @@ -5076,7 +5209,7 @@ be sent.

  • Sending of signals to 'process groups' is not supported in NuttX.
  • -

    2.7.14 pause

    +

    2.7.19 pause

    Function Prototype: From 0dbff0abc31214bc4a3feef6ac46e9d1a2685042 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 11 Apr 2015 12:13:18 -0600 Subject: [PATCH 1388/1518] Allow NSH date command with no RTC. This command is useful without an RTC too. Also, this permits testing on the simulator which never has an RTC --- Documentation/NuttShell.html | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index ff55c0655a..244a7889a3 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -8,7 +8,7 @@

    NuttShell (NSH)

    -

    Last Updated: August 7, 2014

    +

    Last Updated: April 11, 2015

    @@ -1181,7 +1181,6 @@ date [-s "MMM DD HH:MM:SS YYYY"]

    Synopsis. Show or set the current date and time. - This command is only supported if the platform supported RTC hardware (CONFIG_RTC=y).

    Only one format is used both on display and when setting the date/time: @@ -2568,7 +2567,7 @@ nsh> date - CONFIG_RTC +
    CONFIG_NSH_DISABLE_DATE From 1b1568a149f16d802021d5cba6f199613a39f737 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 13 Apr 2015 15:36:50 -0600 Subject: [PATCH 1389/1518] Remove all traces of the Galileo board. That port is not going to happen -- I dont' even have the Galileo board anymore. --- Documentation/README.html | 2 -- 1 file changed, 2 deletions(-) diff --git a/Documentation/README.html b/Documentation/README.html index 02552d659d..cb881e3020 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -98,8 +98,6 @@ | | | `- README.txt | | |- fire-stm32v2/ | | | `- README.txt - | | |- galileo/ - | | | `- README.txt | | |- freedom-kl25z/ | | | `- README.txt | | |- freedom-kl26z/ From 0cbe77cfca79d54733813f43842200e1a2f88489 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 14 Apr 2015 14:17:55 -0600 Subject: [PATCH 1390/1518] Prep for 7.9 release --- Documentation/NuttX.html | 48 +++++++++++++++++++++++----------------- 1 file changed, 28 insertions(+), 20 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index c8a1a79193..1ffe74e2cc 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

    NuttX RTOS

    -

    Last Updated: April 3, 2014

    +

    Last Updated: April 14, 2015

    @@ -1249,29 +1249,20 @@

    Released Versions

    In addition to the ever-changing GIT repository, there are frozen released versions of NuttX available. - The current release is NuttX 7.8. - NuttX 7.8 is the 108th release of NuttX. - It was released on February 11, 2015, and is available for download from the + The current release is NuttX 7.9. + NuttX 7.9 is the 109th release of NuttX. + It was released on April 14, 2015, and is available for download from the SourceForge website. - Note that the release consists of two tarballs: nuttx-7.8.tar.gz and apps-7.8.tar.gz. + Note that the release consists of two tarballs: nuttx-7.9.tar.gz and apps-7.9.tar.gz. Both may be needed (see the top-level nuttx/README.txt file for build information).

    -

    - This release is primarily a bugfix release for the NuttX-7.7 version that - was release just two weeks prior. That release included substantial - modifications in the NuttX networking to accommodate support for IPv6. This - release follows close behind NuttX-7.7 in order to correct some the problems - discovered in that networking code. This release does, however, include a - small number of new features and bug fixes unrelated to NuttX networking. -

    -

    Release Notes and Change Logs:

    • nuttx.

        - Release notes for NuttX 7.8 are available here; + Release notes for NuttX 7.9 are available here; release notes for all released versions on NuttX are available in the SourceForge GIT The ChangeLog for all releases of NuttX is available in the ChangeLog file that can viewed in the SourceForge GIT. The ChangeLog for the current release is at the bottom of that file. @@ -1279,7 +1270,7 @@

    • apps.
    • Atmel AVR @@ -1491,9 +1482,10 @@
    • Texas Instruments (some formerly Luminary) @@ -3241,6 +3233,22 @@ nsh>

      + +
      + +

      + STMicro STM32 F372/F373 (Cortex-M4). +

      +

      + Basic architecture support for the STM32F372/F373 was contributed by Marten Svanfeldt in NuttX 7.9. + There are no STM32F*72 boards currently supported, however. +

      + + + +
      +
      +
      @@ -3390,7 +3398,7 @@ nsh> This support was contributed by Mike Smith.

      - The F427/f37 port adds (1) additional SPI ports, (2) additional UART ports, (3) analog and digital noise filters on the I2C ports, (4) up to 2MB of flash, (5) an additional lower-power mode for the internal voltage regulator, (6) a new prescaling option for timer clock, (7) a larger FSMSC write FIFO, and (8) additional crypto modes (F437 only). + The F427/437 port adds (1) additional SPI ports, (2) additional UART ports, (3) analog and digital noise filters on the I2C ports, (4) up to 2MB of flash, (5) an additional lower-power mode for the internal voltage regulator, (6) a new prescaling option for timer clock, (7) a larger FSMSC write FIFO, and (8) additional crypto modes (F437 only).

      @@ -3945,7 +3953,7 @@ Mem: 29232 5920 23312 23312

        STATUS: - The basic function port support the NuttShell (NSH) was contribute by Jedi Tek'Enum and first appeard in the NuttX 7.8 release. + The basic function port support the NuttShell (NSH) was contribute by Jedi Tek'Enum and first appeared in the NuttX 7.8 release.

    From 0de88a3b9db03aa504df6495f291d46561ed9f0c Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 15 Apr 2015 09:31:44 -0600 Subject: [PATCH 1391/1518] Update README files --- Documentation/README.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/README.html b/Documentation/README.html index cb881e3020..bbf312d3ec 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -347,7 +347,8 @@ | |- install/README.txt | |- nxplayer/README.txt | |- usbmsc/README.txt - | `- zmodem/README.txt + | |- zmodem/README.txt + | `- zoneinfo/README.txt `- NxWidgets |- Doxygen | `- README.txt From 0b348b5b95e66ed208fe5a69871958cc3a1a5ccf Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 1 May 2015 10:49:22 -0600 Subject: [PATCH 1392/1518] Update document to include USB hub feature --- Documentation/NuttX.html | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 1ffe74e2cc..23a9421525 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

    NuttX RTOS

    -

    Last Updated: April 14, 2015

    +

    Last Updated: May 1, 2015

    @@ -884,7 +884,7 @@

    -

  • USB host controller drivers available for the NXP LPC17xx.
  • +
  • USB host controller drivers available for the Atmel SAMA5Dx, NXP LPC17xx, LPC31xx, and STmicro STM32
  • @@ -894,6 +894,13 @@
  • Device-dependent USB class drivers available for USB mass storage, HID keyboard, and HID mouse.
  • + +
    + +

    +

  • Seam-less support for USB hubs.
  • +

    + @@ -912,7 +919,7 @@

    -

  • USB device controller drivers available for the PIC32, NXP LPC17xx, LPC214x, LPC313x, LPC43xx, STMicro STM32 and TI DM320.
  • +
  • USB device controller drivers available for the PIC32, Atmel AVR, SAM3, SAM4, and SAMA5Dx, NXP LPC17xx, LPC214x, LPC313x, and LPC43xx, Silicon Laboraties EFM32, STMicro STM32 F1, F2, F3, and F4, and TI DM320.
  • From b796582fe1eabf9343cc8ac81103ace302f2362d Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 6 May 2015 14:11:29 -0600 Subject: [PATCH 1393/1518] Rename usbhost_storageinit() to usbhost_msc_initialize(). Add calls to usbhost_cdcacm_initialize() is CONFIG_USBHOST_CDCACM is selected. --- Documentation/NuttxPortingGuide.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 171c4a3ce7..9712eb01de 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -5523,7 +5523,7 @@ int kbd_decode(FAR struct lib_instream_s *stream, FAR struct kbd_getstate_s *sta

    Examples: - The function usbhost_storageinit() in the file drivers/usbhost/usbhost_storage.c + The function usbhost_msc_initialize() in the file drivers/usbhost/usbhost_storage.c

  • From 8498a73061be92100612743e40a85dd96509010d Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 7 May 2015 07:06:50 -0600 Subject: [PATCH 1394/1518] Adds board support for the Teensy LC board. Support is based off the Freedom KL25Z board. LED, PWM, and UART0 have been tested. The SPI pins are mapped correctly but have not yet been tested. From Michael Hope as SourceForge patch 51. --- Documentation/README.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/README.html b/Documentation/README.html index bbf312d3ec..031c5d39df 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -8,7 +8,7 @@

    NuttX README Files

    -

    Last Updated: March 9, 2015

    +

    Last Updated: May 7, 2015

    @@ -236,6 +236,8 @@ | | | `- README.txt | | |- teensy/ | | | `- README.txt + | | |- teensy-lc/ + | | | `- README.txt | | |- tm4c123g-launchpad/ | | | `- README.txt | | |- tm4c1294-launchpad/ From f2944cc1bfed3932d6e7d914dcea8227bfe9ada4 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 10 May 2015 10:01:22 -0600 Subject: [PATCH 1395/1518] OHCI: Fix length calculation in all OHCI drivers: CBP==0 means that the entire buffer was transferred, not that a null packet was tranaferred --- Documentation/NuttX.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 23a9421525..83716155a6 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -891,7 +891,7 @@

    -

  • Device-dependent USB class drivers available for USB mass storage, HID keyboard, and HID mouse.
  • +
  • Device-dependent USB class drivers available for USB mass storage, CDC/ACM serial, HID keyboard, and HID mouse.
  • From f4939e48ed3d811429d6c39ea5c48ae6767c97b5 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 12 May 2015 13:43:04 -0600 Subject: [PATCH 1396/1518] Fix some references to statfs being in stdio.h in documentation --- Documentation/NuttxUserGuide.html | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index c2d65d00d1..8eecc9052b 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -8089,7 +8089,6 @@ FAR FILE *fdopen(int fd, FAR const char *type); int dprintf(int fd, FAR const char *fmt, ...); int vdprintf(int fd, FAR const char *fmt, va_list ap); -int statfs(FAR const char *path, FAR struct statfs *buf); FAR char *tmpnam(FAR char *s); FAR char *tempnam(FAR const char *dir, FAR const char *pfx); @@ -8102,8 +8101,8 @@ int fstat(int fd, FAR struct stat *buf); #include <sys/statfs.h> -int statfs(const char *path, struct statfs *buf); -int fstatfs(int fd, struct statfs *buf); +int statfs(FAR const char *path, FAR struct statfs *buf); +int fstatfs(int fd, FAR struct statfs *buf);

    2.10.6 Standard Library

    From 2a3aae7b35d8f131f41e46abd0a234700110aaa0 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 18 May 2015 08:53:42 -0600 Subject: [PATCH 1397/1518] Update the type passed to watchdog timer handlers. Using uint32_t is a problem for 64-bit machines. --- Documentation/NuttxUserGuide.html | 34 +++++++++++++++---------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 8eecc9052b..26079b5752 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -9743,25 +9743,25 @@ notify a task when a message is available on a queue.

    Where argc is the number of uint32_t type arguments that follow.

    - The arguments are passed as uint32_t values. - For systems where the sizeof(pointer) < sizeof(uint32_t), the - following union defines the alignment of the pointer within the - uint32_t. For example, the SDCC MCS51 general pointer is - 24-bits, but uint32_t is 32-bits (of course). -

    -
    -    union wdparm_u
    -    {
    -      void   *pvarg;
    -      uint32_t *dwarg;
    -    };
    -    typedef union wdparm_u wdparm_t;
    -

    - For most 32-bit systems, pointers and uint32_t are the same size - For systems where sizeof(pointer) > sizeof(uint32_t), we will - have to do some redesign. + The arguments are passed as wdparm_t values. For systems where the sizeof(pointer) < sizeof(uint32_t), the following union defines the alignment of the pointer within the uint32_t. For example, the SDCC MCS51 general pointer is 24-bits, but uint32_t is 32-bits (of course).

    + We always have sizeof(pointer) <= sizeof(uintptr_t) by definitions. +

    +
      +union wdparm_u
      +{
      +  FAR void     *pvarg; /* The size one generic point */
      +  uint32_t      dwarg; /* Big enough for a 32-bit value in any case */
      +  uintptr_t     uiarg; /* sizeof(uintptr_t) >= sizeof(pointer) */
      +};
      +
      +#if UINTPTR_MAX >= UINT32_MAX
      +typedef uintptr_t wdparm_t;
      +#else
      +typedef uint32_t  wdpartm_t;
      +#endif
      +
    From c9bbde307868ea5c89c263b179b2f674e4cb6a7a Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 18 May 2015 13:16:32 -0600 Subject: [PATCH 1398/1518] Add basic board build configurat for the SAML21 Xplained. Initial commit is jsut the SAMD20 Xplained with name changes and does not yet build --- Documentation/README.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/README.html b/Documentation/README.html index 031c5d39df..98617020a0 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -194,6 +194,8 @@ | | | `- README.txt | | |- samd20-xplained/ | | | `- README.txt + | | |- saml21-xplained/ + | | | `- README.txt | | |- sam3u-ek/ | | | `- README.txt | | |- sam4e-ek/ From 6fbe614a752f827b276781c3c9901d7c6044ed37 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 18 May 2015 13:41:35 -0600 Subject: [PATCH 1399/1518] Update Documentation --- Documentation/NuttX.html | 27 ++++++++++++++++++++-- Documentation/NuttxPortingGuide.html | 34 +++++++++++++++++++++++++++- Documentation/NuttxUserGuide.html | 31 ------------------------- 3 files changed, 58 insertions(+), 34 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 83716155a6..236c5d6d19 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

    NuttX RTOS

    -

    Last Updated: May 1, 2015

    +

    Last Updated: May 18, 2015

    @@ -1330,7 +1330,7 @@
  • ARM926EJS (4)
  • ARM Cortex-A5 (2)
  • ARM Cortex-A8 (1)
  • -
  • ARM Cortex-M0/M0+ (4)
  • +
  • ARM Cortex-M0/M0+ (5)
  • ARM Cortex-M3 (32)
  • ARM Cortex-M4 (20)
  • ARM Cortex-M7 (1)
  • @@ -1402,6 +1402,7 @@
  • AVR AT90USB64x and AT90USB6128x (8-bit AVR)
  • AVR32 AT32UC3BXXX (32-bit AVR32)
  • Atmel SAMD20 (ARM Cortex-M0+)
  • +
  • Atmel SAML21 (ARM Cortex-M0+)
  • Atmel SAM3U (ARM Cortex-M3)
  • Atmel SAM3X (ARM Cortex-M3)
  • Atmel SAM4C (ARM Cortex-M4)
  • @@ -2229,6 +2230,28 @@ nsh> + +
    +
    + + +
    + +

    + Atmel SAML21. + The port of NuttX to the Atmel SAML21-Xplained Pro development board. + This board features the ATSAML21J18A MCU (Cortex-M0+ with 256KB of FLASH and 32KB of SRAM). +

    +
      +

      + STATUS. + This is a work in progress. + Initial support for the SAML21 Xplained Pro is expected in the NuttX 7.10 timeframe. + Refer to the SAML21 Explained Pro board README file for further information. +

      +
    + + diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 9712eb01de..2f6fbaf601 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

    NuttX RTOS Porting Guide

    -

    Last Updated: April 1, 2015

    +

    Last Updated: May 18, 2015

    @@ -2725,6 +2725,8 @@ int up_timer_start(FAR const struct timespec *ts);
  • 4.3.5.3 wd_start
  • 4.3.5.4 wd_cancel
  • 4.3.5.5 wd_gettime
  • +
  • 4.3.5.6 Watchdog Timer Callback
  • +

    4.3.5.1 wd_create/wd_static

    @@ -2927,6 +2929,36 @@ VxWorks provides the following comparable interface: means either that wdog is not valid or that the wdog has already expired.

    +

    4.3.5.6 Watchdog Timer Callback

    +

    + When a watchdog expires, the callback function with this type is called: +

    +
    +    typedef void (*wdentry_t)(int argc, ...);
    +
    +

    + Where argc is the number of wdparm_t type arguments that follow. +

    +

    + The arguments are passed as scalar wdparm_t values. For systems where the sizeof(pointer) < sizeof(uint32_t), the following union defines the alignment of the pointer within the uint32_t. For example, the SDCC MCS51 general pointer is 24-bits, but uint32_t is 32-bits (of course). +

    + We always have sizeof(pointer) <= sizeof(uintptr_t) by definition. +

    +
      +union wdparm_u
      +{
      +  FAR void     *pvarg; /* The size one generic point */
      +  uint32_t      dwarg; /* Big enough for a 32-bit value in any case */
      +  uintptr_t     uiarg; /* sizeof(uintptr_t) >= sizeof(pointer) */
      +};
      +
      +#if UINTPTR_MAX >= UINT32_MAX
      +typedef uintptr_t wdparm_t;
      +#else
      +typedef uint32_t  wdparm_t;
      +#endif
      +
    +

    4.4 Work Queues

    Work Queues. NuttX provides work queues. Work queues are threads the service a queue of work items to be performed. There are useful for off-loading work to a different threading context, for delayed processing, or for serializing activities. diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 26079b5752..4e028ae0bd 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -9731,37 +9731,6 @@ notify a task when a message is available on a queue. }; -

    3.4.9 Watchdog Data Types

    - -

    - When a watchdog expires, the callback function with this - type is called: -

    -
    -    typedef void (*wdentry_t)(int argc, ...);
    -
    -

    - Where argc is the number of uint32_t type arguments that follow. -

    -

    - The arguments are passed as wdparm_t values. For systems where the sizeof(pointer) < sizeof(uint32_t), the following union defines the alignment of the pointer within the uint32_t. For example, the SDCC MCS51 general pointer is 24-bits, but uint32_t is 32-bits (of course). -

    - We always have sizeof(pointer) <= sizeof(uintptr_t) by definitions. -

    -
      -union wdparm_u
      -{
      -  FAR void     *pvarg; /* The size one generic point */
      -  uint32_t      dwarg; /* Big enough for a 32-bit value in any case */
      -  uintptr_t     uiarg; /* sizeof(uintptr_t) >= sizeof(pointer) */
      -};
      -
      -#if UINTPTR_MAX >= UINT32_MAX
      -typedef uintptr_t wdparm_t;
      -#else
      -typedef uint32_t  wdpartm_t;
      -#endif
      -
    From 32dcac3ab98c25cc0bb1099b778c0dae97db6ba8 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 22 May 2015 19:56:45 -0600 Subject: [PATCH 1400/1518] Update documentatino and README files for the LPCXpresso LPC1115 board support --- Documentation/NuttX.html | 28 ++++++++++++++++++++++++++-- Documentation/README.html | 2 ++ 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 236c5d6d19..d84a9328b8 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

    NuttX RTOS

    -

    Last Updated: May 18, 2015

    +

    Last Updated: May 22, 2015

    @@ -1330,7 +1330,7 @@
  • ARM926EJS (4)
  • ARM Cortex-A5 (2)
  • ARM Cortex-A8 (1)
  • -
  • ARM Cortex-M0/M0+ (5)
  • +
  • ARM Cortex-M0/M0+ (6)
  • ARM Cortex-M3 (32)
  • ARM Cortex-M4 (20)
  • ARM Cortex-M7 (1)
  • @@ -1452,6 +1452,7 @@
  • NXP + +
    +
    + + +
    + +

    + NXP LPC11xx. + Support is provided for the NXP LPC11xx family of processors. In particular, + support is provided for LPCXpression LPC1115 board. + This port was contributed by Alan Carvalho de Assis. +

    +
      +

      + STATUS: + This port is still very much a work in progress. + The first usable version is expected in NuttX 7.10. + Refer to the board README.txt file for further information. +

      +
    + + diff --git a/Documentation/README.html b/Documentation/README.html index 98617020a0..697e58fb3d 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -119,6 +119,8 @@ | | | `- README.txt | | |- lpc4357-evb/ | | | `- README.txt + | | |- lpcxpresso-lpc1115/ + | | | `- README.txt | | |- lpcxpresso-lpc1768/ | | | `- README.txt | | |- maple/ From 33790f4d16095e8744b72fabec5a3632f128c650 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 23 May 2015 17:08:35 -0600 Subject: [PATCH 1401/1518] Fix numerous typos in configuration variable names. Tracked down by Alan Carvalho de Assis --- Documentation/NXGraphicsSubsystem.html | 2 +- Documentation/NuttxPortingGuide.html | 16 ++++++++-------- Documentation/NuttxUserGuide.html | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Documentation/NXGraphicsSubsystem.html b/Documentation/NXGraphicsSubsystem.html index dd866bd67c..10985fa376 100644 --- a/Documentation/NXGraphicsSubsystem.html +++ b/Documentation/NXGraphicsSubsystem.html @@ -3464,7 +3464,7 @@ int nxf_convert_32bpp(FAR uint32_t *dest, uint16_t height, By default, keyboard input is taken from stdin (/dev/console). If this option is set, then the interfacenxterm_kdbin() is enabled. That interface may be driven by window callback functions so that keyboard input only goes to the top window. -
    CONFIG__NXTERM_KBDBUFSIZE: +
    CONFIG_NXTERM_KBDBUFSIZE:
    If CONFIG_NXTERM_NXKBDIN is enabled, then this value may be used to define the size of the per-window keyboard input buffer. Default: 16
    CONFIG_NXTERM_NPOLLWAITERS: diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 2f6fbaf601..c0c6eb1fca 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -2257,23 +2257,23 @@ The system can be re-made subsequently by just typing make.

    System Timer In most implementations, system time is provided by a timer interrupt. - That timer interrupt runs at rate determined by CONFIG_USEC_PER_TICKS (default 10000 microseconds or 100Hz. If CONFIG_SCHED_TICKLESS is selected, the default is 100 microseconds). - The timer generates an interrupt each CONFIG_USEC_PER_TICKS microseconds and increments a counter called g_system_timer. - g_system_timer then provides a time-base for calculating up-time and elapsed time intervals in units of CONFIG_USEC_PER_TICKS. + That timer interrupt runs at rate determined by CONFIG_USEC_PER_TICK (default 10000 microseconds or 100Hz. If CONFIG_SCHED_TICKLESS is selected, the default is 100 microseconds). + The timer generates an interrupt each CONFIG_USEC_PER_TICK microseconds and increments a counter called g_system_timer. + g_system_timer then provides a time-base for calculating up-time and elapsed time intervals in units of CONFIG_USEC_PER_TICK. The range of g_system_timer is, by default, 32-bits. However, if the MCU supports type long long and CONFIG_SYSTEM_TIME16 is selected, a 64-bit system timer will be supported instead.

    System Timer Accuracy - On many system, the exact timer interval specified by CONFIG_USEC_PER_TICKS cannot be achieved due to limitations in frequencies or in dividers. - As a result, the time interval specified by CONFIG_USEC_PER_TICKS may only be approximate and there may be small errors in the apparent up-time time. + On many system, the exact timer interval specified by CONFIG_USEC_PER_TICK cannot be achieved due to limitations in frequencies or in dividers. + As a result, the time interval specified by CONFIG_USEC_PER_TICK may only be approximate and there may be small errors in the apparent up-time time. These small errors, however, will accumulate over time and after a long period of time may have an unacceptably large error in the apparent up-time of the MCU.

    - If the timer tick period generated by the hardware is not exactly CONFIG_USEC_PER_TICKS and if there you require accurate up-time for the MCU, then there are measures that you can take: + If the timer tick period generated by the hardware is not exactly CONFIG_USEC_PER_TICK and if there you require accurate up-time for the MCU, then there are measures that you can take:

    • - Perhaps you can adjust CONFIG_USEC_PER_TICKS to a different value so that an exactly CONFIG_USEC_PER_TICKS can be realized. + Perhaps you can adjust CONFIG_USEC_PER_TICK to a different value so that an exactly CONFIG_USEC_PER_TICK can be realized.
    • Or you can use a technique known as Delta-Sigma Modulation. (Suggested by Uros Platise). Consider the example below. @@ -2284,7 +2284,7 @@ The system can be re-made subsequently by just typing make. Consider this case: The system timer is a count-up timer driven at 32.768KHz. There are dividers that can be used, but a divider of one yields the highest accuracy. This counter counts up until the count equals a match value, then a timer interrupt is generated. - The desire frequency is 100Hz (CONFIG_USEC_PER_TICKS is 10000). + The desire frequency is 100Hz (CONFIG_USEC_PER_TICK is 10000).

      This exact frequency of 100Hz cannot be obtained in this case. diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 4e028ae0bd..cdca1f59b1 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -4729,7 +4729,7 @@ Differences from the POSIX implementation include:

    • All sa_flags in struct sigaction of act input are ignored (all treated like SA_SIGINFO). - The one exception is if CONFIG_SCHED_CHILDSTATUS is defined; + The one exception is if CONFIG_SCHED_CHILD_STATUS is defined; then SA_NOCLDWAIT is supported but only for SIGCHLD.
    From d201c132b7d25bb876002db5b646fdccf0da0088 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 25 May 2015 18:29:43 -0600 Subject: [PATCH 1402/1518] Rename configs/teensy to configs/teensy-2.0 to distinguish teensy-lc and teensy-3.1 --- Documentation/NuttX.html | 2 +- Documentation/README.html | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index d84a9328b8..52ff1f10aa 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -4059,7 +4059,7 @@ Mem: 29232 5920 23312 23312 An SPI driver and a USB device driver exist for the AT90USB as well as a USB mass storage configuration. However, this configuration is not fully debugged as of the NuttX-6.5 release. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

    diff --git a/Documentation/README.html b/Documentation/README.html index 697e58fb3d..8f7092a940 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -238,8 +238,8 @@ | | | `- README.txt | | |- sure-pic32mx/ | | | `- README.txt - | | |- teensy/ - | | | `- README.txt + | | |- teensy-2.0/ + | | | `- README.txt | | |- teensy-lc/ | | | `- README.txt | | |- tm4c123g-launchpad/ From cb973951633102cf4404250e3163606cdabce0ea Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 2 Jun 2015 11:43:44 -0600 Subject: [PATCH 1403/1518] Comment out references to fstat(). It is not yet supported. --- Documentation/NuttxUserGuide.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index cdca1f59b1..6aa9905fe0 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -13,7 +13,7 @@

    NuttX Operating System

    User's Manual

    by

    Gregory Nutt

    -

    Last Updated: April 9, 2015

    +

    Last Updated: June 2, 2015

    @@ -8097,7 +8097,9 @@ FAR char *tempnam(FAR const char *dir, FAR const char *pfx); int mkdir(FAR const char *pathname, mode_t mode); int mkfifo(FAR const char *pathname, mode_t mode); int stat(const char *path, FAR struct stat *buf); +#if 0 /* Not yet supported */ int fstat(int fd, FAR struct stat *buf); +#endif #include <sys/statfs.h> From 01697bf14a58e4ede28555d54b761112923714df Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 5 Jun 2015 13:18:06 -0600 Subject: [PATCH 1404/1518] Add support for a union file system that can be used to overlay and merge the content of two mounted file systems. --- Documentation/README.html | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Documentation/README.html b/Documentation/README.html index 8f7092a940..d01ea93c9b 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -8,7 +8,7 @@

    NuttX README Files

    -

    Last Updated: May 7, 2015

    +

    Last Updated: June 5, 2015

    @@ -299,8 +299,10 @@ | | | `- README.txt | | |- smartfs/ | | | `- README.txt - | | `- procfs/ - | | `- README.txt + | | |- procfs/ + | | | `- README.txt + | | `- unionfs/ + | | `- README.txt | |- graphics/ | | `- README.txt | |- lib/ From 6cf9cfd45746f08f29c6194c93a93f9f0bbc0383 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 6 Jun 2015 19:13:31 -0600 Subject: [PATCH 1405/1518] Update documentation and README file --- Documentation/NuttX.html | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 52ff1f10aa..a9541fefd6 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

    NuttX RTOS

    -

    Last Updated: May 22, 2015

    +

    Last Updated: June 6, 2015

    @@ -424,6 +424,7 @@

  • Tiny, in-memory, root pseudo-file-system.
  • +
    @@ -431,6 +432,7 @@

  • Virtual file system supports drivers and mountpoints.
  • +
    @@ -440,6 +442,7 @@ Mount-able volumes. Bind mountpoint, filesystem, and block device driver.
  • +
    @@ -447,6 +450,7 @@

  • Generic system logging (SYSLOG) support.
  • +
    @@ -456,6 +460,7 @@ FAT12/16/32 filesystem support with optional FAT long file name support1.

    +
    @@ -465,6 +470,7 @@ NFS Client. Client side support for a Network File System (NFS, version 3, UDP).

    +
    @@ -474,6 +480,7 @@ NXFFS. The tiny NuttX wear-leveling FLASH file system.

    +
    @@ -483,6 +490,7 @@ SMART. FLASH file system from Ken Pettit.

    +
    @@ -490,6 +498,7 @@

  • ROMFS filesystem support.
  • +
    @@ -497,6 +506,15 @@

  • BINFS pseudo-filesystem support.
  • + + + +
    + +

    +

  • Union filesystem - Supports combining and overlaying file systems.
  • +

    +
    @@ -504,6 +522,7 @@

  • procfs/ pseudo-filesystem support.
  • +
    @@ -523,6 +542,7 @@

    +
    @@ -530,6 +550,7 @@

  • PATH variable support.
  • +
    @@ -542,6 +563,7 @@ Intel HEX file conversions.

    +
    @@ -551,6 +573,7 @@ FAT long file name support may be subject to certain Microsoft patent restrictions if enabled. See the top-level COPYING file for details.

    + From 658e27b968f68926c71649bf27f4ae1b899a06fa Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 7 Jun 2015 11:22:14 -0600 Subject: [PATCH 1406/1518] Documentation: Add target=_blank to some URLs so they can be opened from DocuWiki. Some Sourceforge content cannot be served in a frame --- Documentation/README.html | 370 +++++++++++++++++++------------------- 1 file changed, 185 insertions(+), 185 deletions(-) diff --git a/Documentation/README.html b/Documentation/README.html index d01ea93c9b..3ece509955 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -22,349 +22,349 @@ From b0cbae45047b1dc514389073fab43be9b5fc0564 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 7 Jun 2015 11:44:56 -0600 Subject: [PATCH 1407/1518] Update more broken URLs and a README --- Documentation/NuttXGettingStarted.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttXGettingStarted.html b/Documentation/NuttXGettingStarted.html index a7b88ee8d3..c49ddb031e 100644 --- a/Documentation/NuttXGettingStarted.html +++ b/Documentation/NuttXGettingStarted.html @@ -18,7 +18,7 @@ There is no "Getting Started" Guide for NuttX yet. However, most everything that you need to get started with NuttX can be found in the README.txt file located in the top-level NuttX directory. That README.txt can also be read online in the NuttX GIT repository - here. + here. Just click on "Links to HEAD: (view)" on that page.

    From 82f8fef609398e7971fbed206dc17f10e0ccb719 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 7 Jun 2015 12:02:06 -0600 Subject: [PATCH 1408/1518] Update more broken URLs --- Documentation/NuttX.html | 196 +++++++++++++++++++-------------------- 1 file changed, 98 insertions(+), 98 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index a9541fefd6..c2b50a54ba 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1579,7 +1579,7 @@

    STATUS: Does not support interrupts but is otherwise fully functional. - Refer to the NuttX README file for further information. + Refer to the NuttX README file for further information.

    @@ -1604,7 +1604,7 @@

    STATUS: This port is complete, verified, and included in the initial NuttX release. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

    @@ -1629,7 +1629,7 @@ This port was contributed by Denis Carilki and includes the work of Denis Carikli, Alan Carvalho de Assis, and Stefan Richter. Calypso support first appeared in NuttX-6.17 with LCD drivers. Support for the Calypso keyboard was added in NuttX-6.24 by Denis Carilki. - Refer to the NuttX board README files for the Compal E88, Compal E99 and Pirelli DP-L10 phones for further information. + Refer to the NuttX board README files for the Compal E88, Compal E99 and Pirelli DP-L10 phones for further information.

    @@ -1656,7 +1656,7 @@ timer interrupts, serial console, USB driver, and SPI-based MMC/SD card support. A verified NuttShell (NSH) configuration is also available. - Refer to the NuttX board README files for the mcu123.com and for the ZPA213X/4XPA boards for further information. + Refer to the NuttX board README files for the mcu123.com and for the ZPA213X/4XPA boards for further information.

    Development Environments: @@ -1691,7 +1691,7 @@ The port is complete and verified. As of NuttX 5.3, the port included only basic timer interrupts and serial console support. In NuttX 7.1, Lizhuoyi contributed additional I2C and SPI drivers. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

    Development Environments: (Same as for the NXP LPC214x). @@ -1724,7 +1724,7 @@ SD cards). An SPI-based ENC28J60 Ethernet driver for add-on hardware is available and but has not been fully verified on the Olimex board (due to issues powering the ENC28J60 add-on board). - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

    Development Environments: @@ -1756,7 +1756,7 @@ STATUS: This port has stalled due to development tool issues. Coding is complete on the basic port (timer, serial console, SPI). - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

    @@ -1785,7 +1785,7 @@ The basic port (timer interrupts, serial ports, network, framebuffer, etc.) is complete. All implemented features have been verified with the exception of the USB device-side driver; that implementation is complete but untested. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

    @@ -1821,7 +1821,7 @@ However, as of this writing, I have not had the opportunity to verify this new feature.

    - Refer to the Embedded Artists EA3131 board README file for further information. + Refer to the Embedded Artists EA3131 board README file for further information.

    @@ -1837,7 +1837,7 @@ NOTE: That driver should work on the EA3131 as well. However, the EA3131 uses a PCA9532 PWM part to controller the port power so the it would not quite be a simple drop-in.

    - Refer to the Olimex LPC-H3131 board README file for further information. + Refer to the Olimex LPC-H3131 board README file for further information.

    @@ -1865,7 +1865,7 @@ At this point, verification of the EA3152 port has been overcome by events and may never happen. However, the port is available for anyone who may want to use it. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

    @@ -2016,7 +2016,7 @@ NuttX-7.4 added support for the on-board WM8904 CODEC chip and for Tickless operation.

    - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

  • @@ -2037,7 +2037,7 @@ The SAMA5D3 Xplained board does not have NOR FLASH and, as a consequence NuttX must boot into SDRAM with the help of U-Boot.

    - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

  • @@ -2068,7 +2068,7 @@ The TM7000 LCDC with the maXTouch multi-touch controller are also fully support in a special NxWM configuration for that larger display. Support for a graphics media player is included (although there were issues with the WM8904 audio CODEC on my board). An SRAM bootloader was also included. - Refer to the NuttX board README file for current status. + Refer to the NuttX board README file for current status.

    @@ -2110,7 +2110,7 @@ This port was developed on the v1 board, but the others may be compatible:

    - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

    STATUS. @@ -2143,7 +2143,7 @@ This initial support is very minimal: There is a NuttShell (NSH) configuration that might be the basis for an application development. As of this writing, more device drivers are needed to make this a more complete port. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

    Memory Usage. @@ -2203,7 +2203,7 @@ nsh> As of NuttX-6.28 more device driver development would be needed to make this a complete port, particularly to support USB OTG. A TSI and a SPI driver were added in NuttX-6.29. Alan contributed a PWM driver in NuttX-6.32. - Refer to the Freedom KL25Z board README file for further information. + Refer to the Freedom KL25Z board README file for further information.

    @@ -2226,7 +2226,7 @@ nsh> This work was contributed in NuttX 7.8 by Derek B. Noonburg. The board support is very similar to the Freedom-KL25Z. It was decided to support this a a separate board, however, due to some small board-level differences. - Refer to the Freedom KL26Z board README file for further information. + Refer to the Freedom KL26Z board README file for further information.

    @@ -2249,7 +2249,7 @@ nsh> The initial SAMD20 Xplained Pro release (NuttX 7.1) included a functional NuttShell (NSH) configuration. An SPI driver was also included to support the OLED1 and I/O1 modules. That SPI driver, however, was not completed verified due to higher priority tasks that came up (I hope to get back to this later). - Refer to the SAMD20 Explained Pro board README file for further information. + Refer to the SAMD20 Explained Pro board README file for further information.

    @@ -2271,7 +2271,7 @@ nsh> STATUS. This is a work in progress. Initial support for the SAML21 Xplained Pro is expected in the NuttX 7.10 timeframe. - Refer to the SAML21 Explained Pro board README file for further information. + Refer to the SAML21 Explained Pro board README file for further information.

    @@ -2294,7 +2294,7 @@ nsh> STATUS: This port is still very much a work in progress. The first usable version is expected in NuttX 7.10. - Refer to the board README.txt file for further information. + Refer to the board README.txt file for further information.

    @@ -2335,7 +2335,7 @@ nsh>

    STATUS: This port was was released in NuttX 6.14. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

    @@ -2359,7 +2359,7 @@ nsh> The current port includes timer, serial console, Ethernet, SSI, and microSD support. There are working configurations to run the NuttShell (NSH), the NuttX networking test, and the uIP web server. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

    @@ -2399,7 +2399,7 @@ nsh> NOTE: As it is configured now, you MUST have a network connected. Otherwise, the NSH prompt will not come up because the Ethernet driver is waiting for the network to come up. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

    @@ -2425,7 +2425,7 @@ nsh> STATUS: This port was released in NuttX 5.10. Features are the same as with the Eagle-100 LM3S6918 described above. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

    @@ -2442,7 +2442,7 @@ nsh> Header file support was contributed by Tiago Maluta for this part. Jose Pablo Rojas V. is used those header file changes to port NuttX to the TI/Stellaris EKK-LM3S9B96. That port was available in the NuttX-6.20 release. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

    @@ -2485,7 +2485,7 @@ nsh> DMA and USART-based SPI supported are included, but not fully tested.

    - Refer to the EFM32 Gecko Starter Kit README.txt file for further information. + Refer to the EFM32 Gecko Starter Kit README.txt file for further information.

  • @@ -2509,7 +2509,7 @@ nsh> The board suppport is complete but untested because of tool-related issues. An OpenOCD compatible, SWD debugger would be required to make further progress in testing.

    - Refer to the Olimex EFM32G880F120-STK README.txt for further information. + Refer to the Olimex EFM32G880F120-STK README.txt for further information.

  • @@ -2604,7 +2604,7 @@ nsh> This initial support includes a configuration using the NuttShell (NSH) that might be the basis for an application development. A driver for the on-board segment LCD is included as well as an option to drive the segment LCD from an NSH "built-in" command. As of this writing, a few more things are needed to make this a more complete port: 1) Verfication of more device drivers (timers, quadrature encoders, PWM, etc.), and 2) logic that actually uses the low-power consumption modes of the EnergyLite part. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

    Memory Usage. @@ -2671,7 +2671,7 @@ nsh> Generic Board Support (obsoleted) This logic was extended to support the high density STM32F100RC chips by Freddie Chopin There is generic support for STM32F100RC boards. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

    Obsoleted. @@ -2686,7 +2686,7 @@ nsh> STM32VL-Discovery. In NuttX-6.33, support for the STMicro STM32VL-Discovery board was contributed by Alan Carvalho de Assis. The STM32VL-Discovery board features an STM32F100RB MCU. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

    @@ -2729,7 +2729,7 @@ nsh> STATUS: The basic STM32F103C8 port was released in NuttX version 6.28. This work was contributed by Laurent Latil. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

    @@ -2754,7 +2754,7 @@ nsh> STM3210E-EVAL. A port for the STMicro STM3210E-EVAL development board that features the STM32F103ZET6 MCU. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

  • @@ -2762,21 +2762,21 @@ nsh> ISOTEL NetClamps VSN. The ISOTEL NetClamps VSN V1.2 ready2go sensor network platform based on the STMicro STM32F103RET6. Contributed by Uros Platise. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

  • HY-Mini STM32v board. This board is based on the STM32F103VCT chip. Port contributed by Laurent Latil. - Refer to the NuttX board README file. + Refer to the NuttX board README file.

  • The M3 Wildfire development board (STM32F103VET6), version 2. See http://firestm32.taobao.com (the current board is version 3). - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

  • @@ -2784,7 +2784,7 @@ nsh> LeafLab's Maple and Maple Mini boards. These boards are based on the STM32F103RBT6 chip for the standard version and on the STM32F103CBT6 for the mini version. See the LeafLabs web site for hardware information; - see the NuttX board README file for further information about the NuttX port. + see the NuttX board README file for further information about the NuttX port.

  • @@ -2793,7 +2793,7 @@ nsh> The Spark boards are based on the STM32F103CBT6 chip and feature wireless networking using the TI CC3000 WLAN module. See the Spark web site for hardware information; The emulated Spark is a base board for the Maple Mini board (see above) developed by David Sidrane that supports Spark development while we all way breathlessly for or Spark boards. - see the NuttX board README file for further information about the NuttX port. + see the NuttX board README file for further information about the NuttX port.

    Initially Spark support was introduced in NuttX 6.31 and completed in NuttX 6.32. @@ -2922,7 +2922,7 @@ nsh> (1) Basic Cortex-M3 port, (2) Ethernet, (3) On-board LEDs. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

  • @@ -2949,7 +2949,7 @@ nsh> STATUS: Networking and touchscreen support are well test. But, at present, neither USB nor LCD functionality have been verified. - Refer to the SViewtool STM32F103/F107 README file for further information. + Refer to the SViewtool STM32F103/F107 README file for further information.

  • @@ -2976,7 +2976,7 @@ nsh> STATUS: The peripherals of the STM32 F2 family are compatible with the STM32 F4 family. See discussion of the STM3240G-EVAL board below for further information. - Refer also to the NuttX board README file for further information. + Refer also to the NuttX board README file for further information. @@ -3009,7 +3009,7 @@ nsh>

    Subsequent NuttX releases will extend this port and add support for the SDIO-based SD cards and USB device. - Refer to the NuttX board README file for further information about this port. + Refer to the NuttX board README file for further information about this port.

    @@ -3039,7 +3039,7 @@ nsh> STATUS: As of this writing, the basic port is code complete and a fully verified configuration exists for the NuttShell NSH). The first fully functional Arduino Due port was released in NuttX-6.29. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

    @@ -3102,7 +3102,7 @@ nsh>

  • The first functional release for the NXP LPC1768/Nucleus2G occured with NuttX 5.7 with Some additional enhancements through NuttX-5.9. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.
  • @@ -3122,7 +3122,7 @@ nsh>
    • Support for the mbed board was contributed by Dave Marples and released in NuttX-5.11. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

    @@ -3146,7 +3146,7 @@ nsh> The NuttX-5.17 released added support for low-speed USB devices, interrupt endpoints, and a USB host HID keyboard class driver.
  • - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.
  • @@ -3165,7 +3165,7 @@ nsh> An fully verified board configuration is included in NuttX-6.2. The Code Red toolchain is supported under either Linux or Windows. Verified configurations include DHCPD, the NuttShell (NSH), NuttX graphis (NX), THTTPD, and USB mass storage device. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

  • @@ -3176,7 +3176,7 @@ nsh> The initial release was included NuttX-6.26. The Nuttx Buildroot toolchain is used by default. Verifed configurations include the "Hello, World!" example application and a THTTPD demonstration. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

  • @@ -3184,7 +3184,7 @@ nsh>

    This board configuration was contributed and made available in NuttX-6.20. As contributed board support, I am unsure of what all has been verfied and what has not. - See the Microment website Lincoln60 board and the NuttX board README file for further information about the Lincoln board. + See the Microment website Lincoln60 board and the NuttX board README file for further information about the Lincoln board.

  • @@ -3219,7 +3219,7 @@ nsh> The NSH configuration includes verified support for a DMA-based SD card interface. The frame-buffer LCD driver is functional and uses the SDRAM for frame-buffer memory. A touchscreen interface has been developed but there appears to be a hardware issue with the WaveShare implementation of the XPT2046 touchscreen controller. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information. @@ -3248,7 +3248,7 @@ nsh> (2) bring up the NuttShell NSH, (3) develop support for the SDHC-based SD card, (4) develop support for USB host and device, and (2) develop an LCD driver. NOTE: Some of these remaining tasks are shared with the K60 work described below. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

    @@ -3278,7 +3278,7 @@ nsh> the Ethernet driver is completely untested. Additional work remaining includes: (1) integrate the Ethernet and SDHC drivers, and (2) develop support for USB host and device. NOTE: Most of these remaining tasks (excluding the Ethernet driver) are the same as the pending K40 tasks described above. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

    @@ -3301,7 +3301,7 @@ nsh> The basic port for the STM32F3-Discover was first released in NuttX-6.26. Many of the drivers previously released for the STM32 F1, Value Line, and F2 and F4 may be usable on this platform as well. New drivers will be required for ADC and I2C which are very different on this platform. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

    @@ -3343,7 +3343,7 @@ nsh>
  • NuttX-7.2 The basic port for STMicro Nucleo F401RE board was contributed by Frank Bennett.
  • - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.
  • @@ -3396,7 +3396,7 @@ nsh> Support for the Olimex STM32 H405 board was added in NuttX-7.3.
  • - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.
  • @@ -3427,7 +3427,7 @@ nsh> STATUS: The basic port for the STM32F4-Discovery was contributed by Mike Smith and was first released in NuttX-6.14. All drivers listed for the STM3240G-EVAL are usable on this platform as well. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

    @@ -3444,7 +3444,7 @@ nsh>

  • Battery connect and batter charger circuit.
  • - See the Mikroelektronika website for more information about this board and the NuttX board README file for further information about the NuttX port. + See the Mikroelektronika website for more information about this board and the NuttX board README file for further information about the NuttX port.

      @@ -3456,7 +3456,7 @@ nsh>

      Olimex STM32 H405. Support for the Olimex STM32 H405 development board was contributed by Martin Lederhilger and appeared in NuttX-7.3. - See the NuttX board README file for further information about the NuttX port. + See the NuttX board README file for further information about the NuttX port.

      @@ -3510,7 +3510,7 @@ nsh>

    - Refer to the STM32F429I-Discovery board README file for further information. + Refer to the STM32F429I-Discovery board README file for further information.

    @@ -3534,7 +3534,7 @@ nsh>
    • STATUS: - Refer to the NuttX board README file for more detailed information about this port. + Refer to the NuttX board README file for more detailed information about this port.

    • @@ -3581,7 +3581,7 @@ nsh>
      • STATUS: - Refer to the NuttX board README file for more detailed information about this port. + Refer to the NuttX board README file for more detailed information about this port.

      • @@ -3644,7 +3644,7 @@ nsh>

      - Refer to the EK-TM4C123GXL board README file for more detailed information about this port. + Refer to the EK-TM4C123GXL board README file for more detailed information about this port.

    @@ -3670,7 +3670,7 @@ nsh>

    - Refer to the EK-TM4C1294XL board README file for more detailed information about this port. + Refer to the EK-TM4C1294XL board README file for more detailed information about this port.

    @@ -3700,11 +3700,11 @@ nsh>
  • This board supports included two configurations for the NuttShell (NSH). Both are networked enabled: One configured to support IPv4 and one configured to supported IPv6. - Instructions are included in the board README file for configuring both IPv4 and IPv6 simultaneously.. + Instructions are included in the board README file for configuring both IPv4 and IPv6 simultaneously..
  • - Refer to the DK-TM4C129X board README file for more detailed information about this port. + Refer to the DK-TM4C129X board README file for more detailed information about this port.

    @@ -3727,7 +3727,7 @@ nsh> The basic port was released in NuttX-7.5. This basic board supported includes an verified configuration for the NuttShell NSH). Key wireless networking capability is still missing. - Refer to the CC3200 LaunchPad board README file for more detailed information about this port. + Refer to the CC3200 LaunchPad board README file for more detailed information about this port.

    @@ -3763,7 +3763,7 @@ nsh>

    - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

    Memory Usage. @@ -3839,7 +3839,7 @@ Mem: 29232 5920 23312 23312 A DMA-base SPI driver is supported and has been verified with the AT25 Serial FLASH. Touchscreen and LCD support was added in NuttX-7.3, but has not been fully integrated as of this writing. The SAM4E-EK should be compatible with most of the other SAM3/4 drivers (like HSMCI, DMAC, etc.) but those have not be verified on the SAM4E-EK as of this writing. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information. @@ -3868,7 +3868,7 @@ Mem: 29232 5920 23312 23312 Support for the on-board 1MB SRAM was added in NuttX-6.29. An RTT driver was Bob Doiron in NuttX-7.3. Bob also added an high resolution RTC emulation using the RTT for the sub-second counter. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

    @@ -3883,7 +3883,7 @@ Mem: 29232 5920 23312 23312 As of this writing, the basic port is code complete and a fully verified configuration exists for the the NuttShell NSH). The first fully functional SAM4S Xplained Pro port was released in NuttX-7.2. This supported also added HSMCI, RTC, and watchdog and verified support for USB device. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

    @@ -3916,7 +3916,7 @@ Mem: 29232 5920 23312 23312 A new Ethernet MAC driver has been developed and is functional in the NSH configuration. A DMA-base SPI driver is supported and has been verified with the AT25 Serial FLASH. The SAM4E-EK should be compatible with most of the other SAM3/4 drivers (like HSMCI, DMAC, etc.) but those have not be verified on the SAM4E-EK as of this writing. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information. @@ -3976,7 +3976,7 @@ Mem: 29232 5920 23312 23312
  • Support for the (optional) maXTouch Xplained Pro LCD module (still a work in progress).
  • - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

    @@ -4018,14 +4018,14 @@ Mem: 29232 5920 23312 23312

    STATUS: Work on this port has stalled due to toolchain issues. Complete, but untested code for this port appears in the NuttX 6.5 release. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

    LowPowerLab MoteinoMEGA. This port of NuttX to the MoteinoMEGA from LowPowerLab. The MoteinoMEGA is based on an Atmel ATMega1284P. - See the LowPowerlab website and the board README file for further information. + See the LowPowerlab website and the board README file for further information.

      @@ -4060,7 +4060,7 @@ Mem: 29232 5920 23312 23312 The basic port was released in NuttX-6.5. This basic port consists only of a "Hello, World!!" example that demonstrates initialization of the OS, creation of a simple task, and serial console output. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

    @@ -4082,7 +4082,7 @@ Mem: 29232 5920 23312 23312 An SPI driver and a USB device driver exist for the AT90USB as well as a USB mass storage configuration. However, this configuration is not fully debugged as of the NuttX-6.5 release. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

    @@ -4175,7 +4175,7 @@ Mem: 29232 5920 23312 23312 The basic, port was be released in NuttX-5.13. A complete port will include drivers for additional AVR32 UC3 devices -- like SPI and USB --- and will be available in a later release, time permitting. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

    @@ -4212,7 +4212,7 @@ Mem: 29232 5920 23312 23312 However, testing has not yet begun due to issues with BDMs, Code Warrior, and the paging in the build process. Progress is slow, but I hope to see a fully verified MC9S12NE64 port in the near future. - Refer to the NuttX board README files for DEMO9S12NE64 and for the NE64 /PoE Badge for further information. + Refer to the NuttX board README files for DEMO9S12NE64 and for the NE64 /PoE Badge for further information.

    @@ -4238,7 +4238,7 @@ Mem: 29232 5920 23312 23312 address space during interrupt handling. This architecture has not been built in some time will likely have some compilation problems because of SDCC compiler differences. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

    @@ -4271,7 +4271,7 @@ Mem: 29232 5920 23312 23312 The port is reported to be functional on the Bifferboard as well. In NuttX 7.1, Lizhuoyi contributed additional keyboard and VGA drivers. This is a great, stable starting point for anyone interest in fleshing out the x86 port! - Refer to the NuttX README file for further information. + Refer to the NuttX README file for further information.

    @@ -4299,7 +4299,7 @@ Mem: 29232 5920 23312 23312 This initial port of NuttX to RGMP was provided in NuttX-6.3. This initial RGP port provides only minimal driver support and does not use the native NuttX interrupt system. This is a great, stable starting point for anyone interest in working with NuttX under RGMP! - Refer to the NuttX README file for further information. + Refer to the NuttX README file for further information.

    @@ -4330,7 +4330,7 @@ Mem: 29232 5920 23312 23312 The PGA117, however, is not yet fully integrated to support ADC sampling. See the NSH User Guide for further information about NSH. The first verified port to the Mirtoo module was available with the NuttX 6.20 release. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

    @@ -4364,7 +4364,7 @@ Mem: 29232 5920 23312 23312 An untested USB device-side driver is available in the source tree. A more complete port would include support of the USB OTG port and of the LCD display on this board. Those drivers are not yet available as of this writing. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

    @@ -4380,7 +4380,7 @@ Mem: 29232 5920 23312 23312 STATUS: The basic port is code complete and fully verified in NuttX 6.13. Available configurations include the NuttShell (NSH - see the NSH User Guide). - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

  • UBW32 Board from Sparkfun This is the port to the Sparkfun UBW32 board. @@ -4393,7 +4393,7 @@ Mem: 29232 5920 23312 23312 The basic port is code complete and fully verified in NuttX 6.18. Available configurations include the the NuttShell (NSH - see the NSH User Guide). USB has not yet been fully tested but on first pass appears to be functional. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

    @@ -4424,7 +4424,7 @@ Mem: 29232 5920 23312 23312 A verified configuration is available for the NuttShel (NSH) appeared in NuttX-6.16. Board support includes a verified USB (device-side) driver. Also included are a a verified Ethernet driver, a partially verified USB device controller driver, and an unverifed SPI driver. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

  • Mikroelektronika PIC32MX7 Mulitmedia Board (MMB). A port has been completed for the Mikroelektronika PIC32MX7 Multimedia Board (MMB). @@ -4447,7 +4447,7 @@ Mem: 29232 5920 23312 23312 However, additional verification and tuning of this driver is required. Further display/touchscreen verification would require C++ support (for NxWidgets and NxWM). Since I there is no PIC32 C++ is the free version of the MPLAB C32 toolchain, further graphics development is stalled. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

    @@ -4518,7 +4518,7 @@ Mem: 29232 5920 23312 23312
  • Ethernet (code complete, but not yet functional),
  • - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

    @@ -4564,7 +4564,7 @@ Mem: 29232 5920 23312 23312 (which has very limit SH-1 support to begin with), or perhaps with the CMON debugger. At any rate, I have exhausted all of the energy that I am willing to put into this cool old processor for the time being. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

    @@ -4601,7 +4601,7 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1);

    No workaround is known at this time. This is a show stopper for M16C. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

    @@ -4628,7 +4628,7 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1); The initial release of support for the z16f was made available in NuttX version 0.3.7. A working NuttShell (NSH) configuration as added in NuttX-6.33 (although a patch is required to work around an issue with a ZDS-II 5.0.1 tool problem). An ESPI driver was added in NuttX-7.2. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

  • @@ -4641,7 +4641,7 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1); STATUS: The initial release of support for the 16z board was made available in NuttX version 6.33. Both the 16z board and the NuttX port are works in progress and are not ready for usage as of NuttX-7.2. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

    Obsoleted. @@ -4682,7 +4682,7 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1); The first integrated version was released in NuttX version 0.4.2 (with important early bugfixes in 0.4.3 and 0.4.4). As of this writing, that port provides basic board support with a serial console, SPI, and eZ80F91 EMAC driver. - Refer to the NuttX board README files for the ez80f0910200kitg and ez80f910200zcofile for further information. + Refer to the NuttX board README files for the ez80f0910200kitg and ez80f910200zcofile for further information.

    @@ -4713,7 +4713,7 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1); STATUS: This release has been verified only on the ZiLOG ZDS-II Z8Encore! chip simulation as of nuttx-0.3.9. - Refer to the NuttX board README files for the z8encore000zco and for thez8f64200100kit for further information. + Refer to the NuttX board README files for the z8encore000zco and for thez8f64200100kit for further information.

      @@ -4742,7 +4742,7 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1); Most of the NuttX is in port for both the Z80182 and for the P112 board. Boards from Kickstarter project will not be available, however, until the third quarter of 2013. So it will be some time before this port is verified on hardware. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

        @@ -4769,7 +4769,7 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1); STATUS: This port is complete and stable to the extent that it can be tested using an instruction set simulator. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

          @@ -4793,7 +4793,7 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1); STATUS: Basically the same as for the Z80 instruction set simulator. This port was contributed by Jacques Pelletier. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

            @@ -5180,7 +5180,7 @@ if [ -x "$WINELOADER" ]; then exec "$WINELOADER" "$appname" "$@"; fi 1 This configuration variable document is auto-generated using the kconfig2html tool That tool analyzes the NuttX Kconfig files and generates the HTML document. - As a consequence, this file may not be present at any given time but can be regenerated following the instructions in tools directory README file. + As a consequence, this file may not be present at any given time but can be regenerated following the instructions in tools directory README file. From be186914fd7edcd680589807a065552dad9291e1 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 8 Jun 2015 14:16:32 -0600 Subject: [PATCH 1409/1518] Update more broken URLs --- Documentation/NXGraphicsSubsystem.html | 2 +- Documentation/NuttX.html | 38 +++++++++++++------------- Documentation/NuttXBinfmt.html | 4 +-- Documentation/NuttXNxFlat.html | 14 +++++----- Documentation/NuttxPortingGuide.html | 4 +-- 5 files changed, 31 insertions(+), 31 deletions(-) diff --git a/Documentation/NXGraphicsSubsystem.html b/Documentation/NXGraphicsSubsystem.html index 10985fa376..a0dd7b5986 100644 --- a/Documentation/NXGraphicsSubsystem.html +++ b/Documentation/NXGraphicsSubsystem.html @@ -3747,7 +3747,7 @@ sudo ln -s libXext.so.6.4.0 libXext.so
          • Refer to the readme file in sim configuration - README.txt file for additional information. + README.txt file for additional information.

          diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index c2b50a54ba..ff46aa59ed 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1272,7 +1272,7 @@

          Git Repository

          - The working version of NuttX is available from the SourceForge GIT repository here. + The working version of NuttX is available from the SourceForge GIT repository here. That same page provides the URLs and instructions for cloning the GIT repository.

          @@ -1293,37 +1293,37 @@
        • nuttx.

            Release notes for NuttX 7.9 are available here; - release notes for all released versions on NuttX are available in the SourceForge GIT - The ChangeLog for all releases of NuttX is available in the ChangeLog file that can viewed in the SourceForge GIT. + release notes for all released versions on NuttX are available in the SourceForge GIT. + The ChangeLog for all releases of NuttX is available in the ChangeLog file that can viewed in the SourceForge GIT. The ChangeLog for the current release is at the bottom of that file.

        • apps.

            Release notes for NuttX 7.9 are available here; - release notes for all released versions on NuttX are available in the SourceForge GIT - The ChangeLog for the all releases of apps is available in the ChangeLog file that can viewed in the SourceForge GIT. + release notes for all released versions on NuttX are available in the SourceForge GIT + The ChangeLog for the all releases of apps is available in the ChangeLog file that can viewed in the SourceForge GIT. The ChangeLog for the current release is at the bottom of that file.

        • NxWidgets.

            Release notes for NxWidgets 1.13 are available here; - release notes for all released versions on NxWidgets are available in the SourceForge GIT - The ChangeLog for all releases of NxWidgets is available at the bottom of the ChangeLog file that can viewed in the SourceForge GIT. + release notes for all released versions on NxWidgets are available in the SourceForge GIT + The ChangeLog for all releases of NxWidgets is available at the bottom of the ChangeLog file that can viewed in the SourceForge GIT.

        • pascal.

            - Release notes for all released versions on pascal are available in the SourceForge GIT - The ChangeLog for all releases of pascal is available at the bottom of the ChangeLog file that can viewed in the SourceForge GIT. + Release notes for all released versions on pascal are available in the SourceForge GIT + The ChangeLog for all releases of pascal is available at the bottom of the ChangeLog file that can viewed in the SourceForge GIT.

        • buildroot.

            Release notes for buildroot 1.14 are available here; - release notes for all released versions on buildroot are available in the SourceForge GIT - The ChangeLog for all releases of buildroot is available at the bottom of the ChangeLog file that can viewed in the SourceForge GIT. + release notes for all released versions on buildroot are available in the SourceForge GIT + The ChangeLog for all releases of buildroot is available at the bottom of the ChangeLog file that can viewed in the SourceForge GIT.

        @@ -2676,7 +2676,7 @@ nsh>

        Obsoleted. This generic board supported has been obsoleted. - The code has been moved out of the NuttX source tree but can still be found be found in Obsoleted directory. + The code has been moved out of the NuttX source tree but can still be found be found in Obsoleted directory. This support was obsoleted because of a decision to stop support of generic board configurations. Generic board configurations do not provide support for any specific hardware but can be useful only if there are not other examples for the setup for a particular architecture.

        @@ -4244,7 +4244,7 @@ Mem: 29232 5920 23312 23312

        Obsoleted. This architecture has been obsoleted. - The code has been moved out of the NuttX source tree but can still be found be found in Obsoleted directory. + The code has been moved out of the NuttX source tree but can still be found be found in Obsoleted directory. This support was obsoleted because (1) the architecture limitations of the 8051 family make ongoing development of more advanced NuttX features too difficult, and (2) although the basic port was marginally functional, it has never really been demonstrated convincingly in any application.

        @@ -4646,7 +4646,7 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1);

        Obsoleted. This board support has been obsoleted. - The code has been moved out of the NuttX source tree but can still be found be found in Obsoleted directory. + The code has been moved out of the NuttX source tree but can still be found be found in Obsoleted directory. This support was obsoleted because of technical issues that make NuttX unusable on the board at least in the short term. This configuration may return to the NuttX source tree at some time in the future.

        @@ -4762,7 +4762,7 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1); under Linux or Cygwin (verified using version 2.6.0). This port has been verified using only a Z80 instruction simulator. That simulator can be found in the NuttX GIT - here. + here.

          @@ -4833,7 +4833,7 @@ avr, m68k, m68hc11, m68hc12, m9s12, blackfin, m32c, h8, and SuperH ports.NuttX GIT. + NuttX GIT.

          @@ -5110,7 +5110,7 @@ if [ -x "$WINELOADER" ]; then exec "$WINELOADER" "$appname" "$@"; fi

            - The current list of NuttX Things-To-Do in GIT here. + The current list of NuttX Things-To-Do in GIT here.

          @@ -5168,7 +5168,7 @@ if [ -x "$WINELOADER" ]; then exec "$WINELOADER" "$appname" "$@"; fi - + @@ -5178,7 +5178,7 @@ if [ -x "$WINELOADER" ]; then exec "$WINELOADER" "$appname" "$@"; fi
          1 - This configuration variable document is auto-generated using the kconfig2html tool + This configuration variable document is auto-generated using the kconfig2html tool That tool analyzes the NuttX Kconfig files and generates the HTML document. As a consequence, this file may not be present at any given time but can be regenerated following the instructions in tools directory README file.
          diff --git a/Documentation/NuttXBinfmt.html b/Documentation/NuttXBinfmt.html index cb6be7e6f7..95d9128ead 100644 --- a/Documentation/NuttXBinfmt.html +++ b/Documentation/NuttXBinfmt.html @@ -108,7 +108,7 @@

          2.1 Binary Loader Header Files

          The interface to the binary loader is described in the header file - + include/nuttx/binfmt/binfmt.h. A brief summary of the data structurs and interfaces prototyped in that header file are listed below.

          @@ -458,7 +458,7 @@ void exepath_release(EXEPATH_HANDLE handle);

          3.1 Symbol Table Header Files

          The interface to the symbol table logic is described in the header file - + include/nuttx/binfmt/symtab.h. A brief summary of the data structurs and interfaces prototyped in that header file are listed below.

          diff --git a/Documentation/NuttXNxFlat.html b/Documentation/NuttXNxFlat.html index 89b415041b..ef4968fba5 100644 --- a/Documentation/NuttXNxFlat.html +++ b/Documentation/NuttXNxFlat.html @@ -157,14 +157,14 @@
          • A dynamic loader that is built into the NuttX core - (See GIT). + (See GIT).
          • Minor changes to RTOS to support position independent code, and
          • A linker to bind ELF binaries to produce the NXFLAT binary format - (See GIT). + (See GIT).
          @@ -287,7 +287,7 @@ The initial release of NXFLAT was made in NuttX version 0.4.9. Testing is limited to the tests found under apps/examples/nxflat in the source tree. Some known problems exist - (see the TODO list). + (see the TODO list). As such, NXFLAT is currently in an early alpha phase.

          @@ -435,7 +435,7 @@ cat ../syscall/syscall.csv ../libc/libc.csv | sort >tmp.csv

          Below is a snippet from an NXFLAT make file (simplified from NuttX - + Hello, World! example.

            NuttX To-Do ListNuttX To-Do List
            @@ -557,18 +557,18 @@ cat ../syscall/syscall.csv ../libc/libc.csv | sort >tmp.csv diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index c0c6eb1fca..cbf627710c 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -668,7 +668,7 @@ z80 instruction simulator. The set simulator can be found in the NuttX GIT at http://sourceforge.net/p/nuttx/git/ci/master/tree/misc/sims/z80sim. - This port also uses the SDCC toolchain (http://sdcc.sourceforge.net/") + This port also uses the SDCC toolchain (http://sdcc.sourceforge.net/) (verified with version 2.6.0 and 2.7.0). @@ -1060,7 +1060,7 @@
          • configs/z80sim: z80 Microcontroller. This port uses a Z80 instruction set simulator. That simulator can be found in the NuttX GIT - here. + here. This port also the SDCC toolchain under Linux or Cygwin(verified with version 2.6.0).
          • From 44927f097b12d784bb7bb871cc5810d0fd22a2ef Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 9 Jun 2015 07:03:25 -0600 Subject: [PATCH 1410/1518] Update/add README.txt files --- Documentation/README.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/README.html b/Documentation/README.html index 3ece509955..07e7819b9b 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -240,6 +240,8 @@ | | | `- README.txt | | |- teensy-2.0/ | | | `- README.txt + | | |- teensy-3.1/ + | | | `- README.txt | | |- teensy-lc/ | | | `- README.txt | | |- tm4c123g-launchpad/ From 2db4456e516bb10407f85c592483a20aecd3fce9 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 9 Jun 2015 11:33:50 -0600 Subject: [PATCH 1411/1518] Prep for the NuttX-7.10 Release --- Documentation/NuttX.html | 141 ++++++++++++++++++++++++++++++--------- 1 file changed, 111 insertions(+), 30 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index ff46aa59ed..7f534b02dc 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

            NuttX RTOS

            -

            Last Updated: June 6, 2015

            +

            Last Updated: June 9, 2015

            @@ -1279,11 +1279,11 @@

            Released Versions

            In addition to the ever-changing GIT repository, there are frozen released versions of NuttX available. - The current release is NuttX 7.9. - NuttX 7.9 is the 109th release of NuttX. - It was released on April 14, 2015, and is available for download from the + The current release is NuttX 7.10. + NuttX 7.10 is the 110th release of NuttX. + It was released on June 9, 2015, and is available for download from the SourceForge website. - Note that the release consists of two tarballs: nuttx-7.9.tar.gz and apps-7.9.tar.gz. + Note that the release consists of two tarballs: nuttx-7.10.tar.gz and apps-7.10.tar.gz. Both may be needed (see the top-level nuttx/README.txt file for build information).

            @@ -1292,7 +1292,7 @@ @@ -1507,12 +1508,14 @@
          • STMicro STM32F103C4/C8 (STM32 F1 "Low- and Medium-Density Line" Family, ARM Cortex-M3)
          • STMicro STM32F103x (STM32 F1 Family, ARM Cortex-M3)
          • STMicro STM32F107x (STM32 F1 "Connectivity Line" family, ARM Cortex-M3)
          • +
          • STMicro STM32F205x (STM32 F2 family, ARM Cortex-M3)
          • STMicro STM32F207x (STM32 F2 family, ARM Cortex-M3)
            +
          • STMicro STM32F302x (STM32 F3 family, ARM Cortex-M4).
          • STMicro STM32F303x (STM32 F3 family, ARM Cortex-M4).
          • STMicro STM32 F372/F373 (ARM Cortex-M4)
          • STMicro STM32F401x (STM32 F4 family, ARM Cortex-M4)
          • @@ -2190,21 +2193,40 @@ nsh>

            - FreeScale Freedom KL25Z. - This is a port of NuttX to the Freedom KL25Z board that features the MKL25Z128 Cortex-M0+ MCU, 128KB of FLASH and 16KB of SRAM. - See the Freescale website for further information about this board. + FreeScale KL25Z. + There are two board ports for the KL25Z parts:

              -

              - STATUS. - This is the work of Alan Carvalho de Assis. - Verified, initial, minimal support for the Freedom KL25Z is in place in NuttX 6.27 and 6.28: - There is a working NuttShell (NSH) configuration that might be the basis for an application development. - As of NuttX-6.28 more device driver development would be needed to make this a complete port, particularly to support USB OTG. - A TSI and a SPI driver were added in NuttX-6.29. - Alan contributed a PWM driver in NuttX-6.32. - Refer to the Freedom KL25Z board README file for further information. +

              Freedom KL25Z. + This is a port of NuttX to the Freedom KL25Z board that features the MKL25Z128 Cortex-M0+ MCU, 128KB of FLASH and 16KB of SRAM. + See the Freescale website for further information about this board.

              +
                +

                + STATUS. + This is the work of Alan Carvalho de Assis. + Verified, initial, minimal support for the Freedom KL25Z is in place in NuttX 6.27 and 6.28: + There is a working NuttShell (NSH) configuration that might be the basis for an application development. + As of NuttX-6.28 more device driver development would be needed to make this a complete port, particularly to support USB OTG. + A TSI and a SPI driver were added in NuttX-6.29. + Alan contributed a PWM driver in NuttX-6.32. + Refer to the Freedom KL25Z board README file for further information. +

                +
              +

              + PJRC Teensy-LC. + This is a port of NuttX to the PJRC Teensy-LC board that features the MKL25Z64 Cortex-M0+ MCU, 64KB of FLASH and 8KB of SRAM. + The Teensy LC is a DIP style breakout board for the MKL25Z64 and comes with a USB based bootloader. + See the Freescale website for further information about this board. +

              +
                +

                + STATUS. + This is the work of Michael Hope. + Verified, initial support for the Teensy-LC first appeared in NuttX-7.10. + Refer to the Teensy-LC board README file for further information. +

                +
            @@ -2270,7 +2292,9 @@ nsh>

            STATUS. This is a work in progress. - Initial support for the SAML21 Xplained Pro is expected in the NuttX 7.10 timeframe. + Initial support for the SAML21 Xplained Pro was release in the NuttX 7.10. + This initial support included a basic configuration for the NuttShell (NSH) + (see the NSH User Guide). Refer to the SAML21 Explained Pro board README file for further information.

          @@ -2285,15 +2309,14 @@ nsh>

          NXP LPC11xx. - Support is provided for the NXP LPC11xx family of processors. In particular, - support is provided for LPCXpression LPC1115 board. + Support is provided for the NXP LPC11xx family of processors. + In particular, support is provided for LPCXpression LPC1115 board. This port was contributed by Alan Carvalho de Assis.

            STATUS: - This port is still very much a work in progress. - The first usable version is expected in NuttX 7.10. + The first released version was provided in NuttX 7.10. Refer to the board README.txt file for further information.

          @@ -2958,6 +2981,22 @@ nsh>

          + +
          + +

          + STMicro STM32F205 (STM32 F2 family). + Architecture only support for the STM32F205RG was contributed as an anonymous contribution in NuttX-7.10 +

          +
            + STATUS: + There are currently on board configurations for any board using the STM32F205. + + + +
            +
            +
            @@ -3229,6 +3268,28 @@ nsh> ARM Cortex-M4. + +
            + +

            + FreeScale Kinetis K20. + Archicture support (only) was added in NuttX-7.10. + This support was taken from PX4 and is the work of Jakob Odersky. +

            +
              +

              + STATUS: + There are no K20 boards yet supported. + Work is underway on the the PJRC Teensy-3.1 board and that port is expected in NuttX-7.11. + Refer to the Teensy-3.1 board README file for further information. +

              +
            + + + +
            +
            +
            @@ -3291,7 +3352,26 @@ nsh>

            - STMicro STM32F3-Discovery (STM32 F3 family). + STMicro STM32 F302 (STM32 F3 family). + Architecture (only) support for the STM32 F302 was contributed in NuttX-7.10 by Ben Dyer (vi the PX4 team and David Sidrane). +

            +
              +

              + STATUS: + There are currently no board configurations using the STM32 F302. +

              +
            + + + +
            +
            + + +
            + +

            + STMicro STM32 F302 / STM32F3-Discovery (STM32 F3 family). This port uses the STMicro STM32F3-Discovery board featuring the STM32F303VCT6 MCU (STM32 F3 family). Refer to the STMicro web site for further information about this board.

            @@ -3954,7 +4034,8 @@ Mem: 29232 5920 23312 23312 STATUS: The basic port is complete and there are several different, verified configurations available. All configurations use the the NuttShell (NSH) and a serial console. - The first release of the SAMV71-XULT port is expected in NuttX-7.9. + The first release of the SAMV71-XULT port was available in NuttX-7.9. + Support for the connect maXTouch Xplained Pro LCD as added in NuttX-7.10.

            Additional drivers, with status as of 2015-04-03, include: @@ -4503,7 +4584,7 @@ Mem: 29232 5920 23312 23312 STATUS: This is a collaborative effort between Kristopher Tate, David Sidrane and myself. The basic port is functional and a NuttShell (NSH) configurqation is available. - The first official is expected in NuttX-7.9. + The first official release was in NuttX-7.9. Current efforts are focused on driver development. Many drivers port simply from the PIC32MX; others require more extensive efforts. Driver status as of (2015-03-29) is provided below: From 2576ef555dc58eea0a52406f5d25b0df4e256264 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 9 Jun 2015 15:54:04 -0600 Subject: [PATCH 1412/1518] Rename teensy-3.1 directory to teensy-3.x. Add board.h header file --- Documentation/NuttX.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 7f534b02dc..507ee76868 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -3281,7 +3281,7 @@ nsh> STATUS: There are no K20 boards yet supported. Work is underway on the the PJRC Teensy-3.1 board and that port is expected in NuttX-7.11. - Refer to the Teensy-3.1 board README file for further information. + Refer to the Teensy-3.1 board README file for further information.

          From 13a916d3add1ab46736c5dc338764ddc34b4b539 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 12 Jun 2015 11:52:49 -0600 Subject: [PATCH 1413/1518] Add asctime(), asctime_r(), ctime(), and ctime_r(). --- Documentation/NuttxUserGuide.html | 291 ++++++++++++++++++++++-------- 1 file changed, 216 insertions(+), 75 deletions(-) diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index 6aa9905fe0..70d8a6c7fa 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -13,7 +13,7 @@

          NuttX Operating System

          User's Manual

          by

          Gregory Nutt

          -

          Last Updated: June 2, 2015

          +

          Last Updated: June 12, 2015

          @@ -3884,14 +3884,18 @@ interface of the same name.
        • 2.6.4 mktime
        • 2.6.5 gmtime
        • 2.6.6 localtime
        • -
        • 2.6.7 gmtime_r
        • -
        • 2.6.8 localtime_r
        • -
        • 2.6.9 timer_create
        • -
        • 2.6.10 timer_delete
        • -
        • 2.6.11 timer_settime
        • -
        • 2.6.12 timer_gettime
        • -
        • 2.6.13 timer_getoverrun
        • -
        • 2.6.14 gettimeofday
        • +
        • 2.6.7 asctime
        • +
        • 2.6.8 ctime
        • +
        • 2.6.9 gmtime_r
        • +
        • 2.6.10 localtime_r
        • +
        • 2.6.11 asctime_r
        • +
        • 2.6.12 ctime_r
        • +
        • 2.6.13 timer_create
        • +
        • 2.6.14 timer_delete
        • +
        • 2.6.15 timer_settime
        • +
        • 2.6.16 timer_gettime
        • +
        • 2.6.17 timer_getoverrun
        • +
        • 2.6.18 gettimeofday

        2.6.1 clock_settime

        @@ -3913,14 +3917,9 @@ interface of the same name.

      Returned Value: -

      -

      If successful, the clock_settime() function will return zero (OK). Otherwise, an non-zero error number will be returned to indicate the error:

      -
        -
      • To be provided.
      • -

      2.6.2 clock_gettime

      @@ -3941,14 +3940,9 @@ interface of the same name.

      Returned Value: -

      -

      If successful, the clock_gettime() function will return zero (OK). Otherwise, an non-zero error number will be returned to indicate the error:

      -
        -
      • To be provided.
      • -

      2.6.3 clock_getres

      @@ -3969,14 +3963,9 @@ interface of the same name.

      Returned Value: -

      -

      If successful, the clock_getres() function will return zero (OK). Otherwise, an non-zero error number will be returned to indicate the error:

      -
        -
      • To be provided.
      • -

      2.6.4 mktime

      @@ -3997,14 +3986,9 @@ interface of the same name.

      Returned Value: -

      -

      If successful, the mktime() function will return zero (OK). Otherwise, an non-zero error number will be returned to indicate the error:

      -
        -
      • To be provided.
      • -

      2.6.5 gmtime

      @@ -4012,80 +3996,241 @@ interface of the same name.

           #include <time.h>
      -    struct tm *gmtime(const time_t *clock);
      +    FAR struct tm *gmtime(FAR const time_t *timep);
       

      Description: + Represents GMT date/time in a type struct tm. + This function is not re-entrant.

      Input Parameters:

        -
      • clock. - Represents calendar time. - This is an absolute time value representing the number of seconds elapsed since 00:00:00 - on January 1, 1970, Coordinated Universal Time (UTC). +
      • timep. + Represents GMT calendar time. + This is an absolute time value representing the number of seconds elapsed since 00:00:00 on January 1, 1970, Coordinated Universal Time (UTC).

      Returned Value: -

      -

      - If successful, the gmtime() function will return the pointer to a statically - defined instance of struct tim. + If successful, the gmtime() function will return the pointer to a statically defined instance of struct tm. Otherwise, a NULL will be returned to indicate the error:

      -
        -
      • To be provided.
      • -

      2.6.6 localtime

      -
      -    #include <time.h>
      -    #define localtime(c) gmtime(c)
      -
      +
        +#include <time.h>
        +#ifdef CONFIG_LIBC_LOCALTIME
        +#  define localtime(c) gmtime(c)
        +#else
        +FAR struct tm *localtime(FAR const time_t *timep);
        +#endif
        +
      +

      + Description: + Represents local date/time in a type struct tm. + This function is not re-entrant. +

      +

      + Input Parameters: +

      +
        +
      • timep. + Represents GMT calendar time. + This is an absolute time value representing the number of seconds elapsed since 00:00:00 on January 1, 1970, Coordinated Universal Time (UTC). +
      +

      + Returned Value: + Returned Value: + If successful, the localtime() function will return the pointer to a statically defined instance of struct tm. + Otherwise, a NULL will be returned to indicate the error: +

      -

      2.6.7 gmtime_r

      +

      2.6.7 asctime

      +

      + Function Prototype: +

      +
        +#include <time.h>
        +#ifdef CONFIG_TIME_EXTENDED
        +FAR char *asctime(FAR const struct tm *tp);
        +#endif
        +
      +

      + Description: + asctime() convert the time provided in a struct tm to a string representation. + asctime() is not re-entrant. +

      +

      + Input Parameters: +

      +
        +
      • tp. + Pointer to the time to be converted. +
      • +
      +

      + Returned Value: + If successful, the asctime() function will return a pointer to a statically defined string holding the converted time. + Otherwise, a NULL will be returned to indicate the error. +

      + +

      2.6.8 ctime

      +

      + Function Prototype: +

      +
        +#include <time.h>
        +#ifdef CONFIG_TIME_EXTENDED
        +FAR char *ctime(FAR const time_t *timep);
        +#endif
        +
      +

      + Description: + ctime() converts the time provided in seconds since the epoch to a string representation. + ctime() is not re-entrant. +

      +

      + Input Parameters: +

      +
        +
      • timep. + The current time represented as seconds since the epoch. +
      • +
      +

      + Returned Value: + If successful, the ctime() function will return the pointer to the converted string. + Otherwise, a NULL will be returned to indicate the error. +

      + +

      2.6.9 gmtime_r

      Function Prototype:

           #include <time.h>
      -    struct tm *gmtime_r(const time_t *clock, struct tm *result);
      +    struct tm *gmtime_r(const time_t *timep, struct tm *result);
       

      Description: + Represents GMT date/time in a type struct tm. + This function is re-entrant.

      Input Parameters:

        -
      • clock. - Represents calendar time. - This is an absolute time value representing the number of seconds elapsed since 00:00:00 - on January 1, 1970, Coordinated Universal Time (UTC). +
      • timep. + Represents GMT calendar time. + This is an absolute time value representing the number of seconds elapsed since 00:00:00 on January 1, 1970, Coordinated Universal Time (UTC).
      • result. A user-provided buffer to receive the converted time structure.

      Returned Value: -

      -

      If successful, the gmtime_r() function will return the pointer, result, provided by the caller. Otherwise, a NULL will be returned to indicate the error:

      + +

      2.6.10 localtime_r

      +
        +#include <time.h>
        +#ifdef CONFIG_LIBC_LOCALTIME
        +#  define localtime_r(c,r) gmtime_r(c,r)
        +#else
        +FAR struct tm *localtime_r(FAR const time_t *timep, FAR struct tm *result);
        +#endif
        +
      +

      + Description: + Represents local date/time in a type struct tm. + This function is re-entrant. +

      +

      + Input Parameters: +

        -
      • To be provided.
      • +
      • timep. + Represents GMT calendar time. + This is an absolute time value representing the number of seconds elapsed since 00:00:00 on January 1, 1970, Coordinated Universal Time (UTC). +
      • result. + A user-provided buffer to receive the converted time structure.
      +

      + Returned Value: + Returned Value: + If successful, the localtime_r() function will return the pointer, result, + provided by the caller. + Otherwise, a NULL will be returned to indicate the error: +

      -

      2.6.8 localtime_r

      -
      -    #include <time.h>
      -    #define localtime_r(c,r) gmtime_r(c,r)
      -
      +

      2.6.11 asctime_r

      +

      + Function Prototype: +

      +
        +#include <time.h>
        +#ifdef CONFIG_TIME_EXTENDED
        +FAR char *asctime_r(FAR const struct tm *tp, FAR char *buf);
        +#endif
        +
      +

      + Description: + asctime_r() converts the time provided in a struct tm to a string representation. + asctime-r() is re-entrant. +

      +

      + Input Parameters: +

      +
        +
      • tp. + Pointer to the time to be converted. +
      • +
      • buf. + The user provider buffer. of size >= 26 characters, to receive the converted time. +
      • +
      +

      + Returned Value: + If successful, the asctime_r() function will return the pointer, buf, provided by the caller. + Otherwise, a NULL will be returned to indicate the error. +

      -

      2.6.9 timer_create

      +

      2.6.12 ctime_r

      +

      + Function Prototype: +

      +
        +#include <time.h>
        +#ifdef CONFIG_TIME_EXTENDED
        +#endif
        +
      +

      + Description: + ctime_r() converts the time provided in seconds since the epoch to a string representation. + ctime() is re-entrant. +

      +

      + Input Parameters: +

      +
        +
      • timep. + The current time represented as seconds since the epoch. +
      • +
      • buf. + The user provider buffer. of size >= 26 characters, to receive the converted time. +
      • +
      +

      + Returned Value: + If successful, the ctime_r() function will return the pointer, buf, provided by the caller. + Otherwise, a NULL will be returned to indicate the error. +

      + +

      2.6.13 timer_create

      Function Prototype:

      @@ -4130,8 +4275,6 @@ interface of the same name.

      Returned Value: -

      -

      If the call succeeds, timer_create() will return 0 (OK) and update the location referenced by timerid to a timer_t, which can be passed to the other per-thread timer calls. If an error occurs, the function will return @@ -4155,7 +4298,7 @@ interface of the same name.

    • Only CLOCK_REALTIME is supported for the clockid argument.
    • -

      2.6.10 timer_delete

      +

      2.6.14 timer_delete

      Function Prototype:

      @@ -4180,8 +4323,6 @@ interface of the same name.

      Returned Value: -

      -

      If successful, the timer_delete() function will return zero (OK). Otherwise, the function will return a value of -1 (ERROR) and set errno to indicate the error: @@ -4194,7 +4335,7 @@ interface of the same name. Comparable to the POSIX interface of the same name.

      -

      2.6.11 timer_settime

      +

      2.6.15 timer_settime

      Function Prototype:

      @@ -4258,8 +4399,6 @@ interface of the same name.

      Returned Value: -

      -

      If the timer_gettime() succeeds, a value of 0 (OK) will be returned. If an error occurs, the value -1 (ERROR) will be returned, and errno set to indicate the error. @@ -4277,7 +4416,7 @@ interface of the same name.

    • The ovalue argument is ignored.
    • -

      2.6.12 timer_gettime

      +

      2.6.16 timer_gettime

      Function Prototype:

      @@ -4309,8 +4448,6 @@ interface of the same name.

      Returned Value: -

      -

      If successful, the timer_gettime() function will return zero (OK). Otherwise, an non-zero error number will be returned to indicate the error:

      @@ -4324,7 +4461,7 @@ interface of the same name. Comparable to the POSIX interface of the same name.

      -

      2.6.13 timer_getoverrun

      +

      2.6.17 timer_getoverrun

      Function Prototype:

      @@ -4385,7 +4522,7 @@ interface of the same name. interface of the same name.

      -

      2.6.14 gettimeofday

      +

      2.6.18 gettimeofday

      Function Prototype:

      @@ -9754,6 +9891,8 @@ notify a task when a message is available on a queue.
    • aio_return
    • aio_suspend
    • aio_write
    • +
    • asctime
    • +
    • asctime_r
    • atexit
    • bind
    • BIOC_XIPBASE
    • @@ -9766,6 +9905,8 @@ notify a task when a message is available on a queue.
    • closedir
    • connect
    • creat
    • +
    • ctime
    • +
    • ctime_r
    • Data structures
    • Directory operations
    • dirent.h
    • @@ -9829,10 +9970,10 @@ notify a task when a message is available on a queue.
    • mq_timedsend
    • mq_unlink
    • mmap
    • -
    • Network Interfaces
    • -
    • on_exit +
    • Network Interfaces
    • +
    • on_exit
    • open
    • opendir
    • OS Interfaces
    • From ea685dda8bc586bd28f228686a2d9d25fc163a10 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 21 Jun 2015 07:48:46 -0600 Subject: [PATCH 1414/1518] Add board configuration for the SAMD21 Xplained board --- Documentation/README.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/README.html b/Documentation/README.html index 07e7819b9b..c8b7780967 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -8,7 +8,7 @@

      NuttX README Files

      -

      Last Updated: June 5, 2015

      +

      Last Updated: June 21, 2015

      @@ -196,6 +196,8 @@ | | | `- README.txt | | |- samd20-xplained/ | | | `- README.txt + | | |- samd21-xplained/ + | | | `- README.txt | | |- saml21-xplained/ | | | `- README.txt | | |- sam3u-ek/ From 973eae7a5aad41a29a881fafb91089965f029002 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 26 Jun 2015 17:29:32 -0600 Subject: [PATCH 1415/1518] Change some Sourceforge URLs to bitbucket URLs --- Documentation/NXGraphicsSubsystem.html | 2 +- Documentation/NuttX.html | 238 ++++++++-------- Documentation/NuttXBinfmt.html | 4 +- Documentation/NuttXDocumentation.html | 2 +- Documentation/NuttXGettingStarted.html | 2 +- Documentation/NuttXLinks.html | 2 +- Documentation/NuttXNxFlat.html | 14 +- Documentation/NuttxPortingGuide.html | 4 +- Documentation/README.html | 374 ++++++++++++------------- 9 files changed, 321 insertions(+), 321 deletions(-) diff --git a/Documentation/NXGraphicsSubsystem.html b/Documentation/NXGraphicsSubsystem.html index a0dd7b5986..ce3299b16e 100644 --- a/Documentation/NXGraphicsSubsystem.html +++ b/Documentation/NXGraphicsSubsystem.html @@ -3747,7 +3747,7 @@ sudo ln -s libXext.so.6.4.0 libXext.so
    • Refer to the readme file in sim configuration - README.txt file for additional information. + README.txt file for additional information.

    • diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 507ee76868..cd9646edaa 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1272,7 +1272,7 @@

      Git Repository

      - The working version of NuttX is available from the SourceForge GIT repository here. + The working version of NuttX is available from the Bitbucket GIT repository here. That same page provides the URLs and instructions for cloning the GIT repository.

      @@ -1293,37 +1293,37 @@
    • nuttx.

        Release notes for NuttX 7.10 are available here; - release notes for all released versions on NuttX are available in the SourceForge GIT. - The ChangeLog for all releases of NuttX is available in the ChangeLog file that can viewed in the SourceForge GIT. + release notes for all released versions on NuttX are available in the Bitbucket GIT. + The ChangeLog for all releases of NuttX is available in the ChangeLog file that can viewed in the Bitbucket GIT. The ChangeLog for the current release is at the bottom of that file.

    • apps.

        Release notes for NuttX 7.10 are available here; - release notes for all released versions on NuttX are available in the SourceForge GIT - The ChangeLog for the all releases of apps is available in the ChangeLog file that can viewed in the SourceForge GIT. + release notes for all released versions on NuttX are available in the Bitbucket GIT + The ChangeLog for the all releases of apps is available in the ChangeLog file that can viewed in the Bitbucket GIT. The ChangeLog for the current release is at the bottom of that file.

    • NxWidgets.

        Release notes for NxWidgets 1.13 are available here; - release notes for all released versions on NxWidgets are available in the SourceForge GIT - The ChangeLog for all releases of NxWidgets is available at the bottom of the ChangeLog file that can viewed in the SourceForge GIT. + release notes for all released versions on NxWidgets are available in the BitBucket GIT + The ChangeLog for all releases of NxWidgets is available at the bottom of the ChangeLog file that can viewed in the Bitbucket GIT.

    • pascal.

        - Release notes for all released versions on pascal are available in the SourceForge GIT - The ChangeLog for all releases of pascal is available at the bottom of the ChangeLog file that can viewed in the SourceForge GIT. + Release notes for all released versions on pascal are available in the Bitbucket GIT + The ChangeLog for all releases of pascal is available at the bottom of the ChangeLog file that can viewed in the Bitbucket GIT.

    • buildroot.

        Release notes for buildroot 1.14 are available here; - release notes for all released versions on buildroot are available in the SourceForge GIT - The ChangeLog for all releases of buildroot is available at the bottom of the ChangeLog file that can viewed in the SourceForge GIT. + release notes for all released versions on buildroot are available in the Bitbucket GIT + The ChangeLog for all releases of buildroot is available at the bottom of the ChangeLog file that can viewed in the Bitbucket GIT.

      @@ -1582,7 +1582,7 @@

      STATUS: Does not support interrupts but is otherwise fully functional. - Refer to the NuttX README file for further information. + Refer to the NuttX README file for further information.

      @@ -1607,7 +1607,7 @@

      STATUS: This port is complete, verified, and included in the initial NuttX release. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

      @@ -1632,7 +1632,7 @@ This port was contributed by Denis Carilki and includes the work of Denis Carikli, Alan Carvalho de Assis, and Stefan Richter. Calypso support first appeared in NuttX-6.17 with LCD drivers. Support for the Calypso keyboard was added in NuttX-6.24 by Denis Carilki. - Refer to the NuttX board README files for the Compal E88, Compal E99 and Pirelli DP-L10 phones for further information. + Refer to the NuttX board README files for the Compal E88, Compal E99 and Pirelli DP-L10 phones for further information.

      @@ -1659,7 +1659,7 @@ timer interrupts, serial console, USB driver, and SPI-based MMC/SD card support. A verified NuttShell (NSH) configuration is also available. - Refer to the NuttX board README files for the mcu123.com and for the ZPA213X/4XPA boards for further information. + Refer to the NuttX board README files for the mcu123.com and for the ZPA213X/4XPA boards for further information.

      Development Environments: @@ -1694,7 +1694,7 @@ The port is complete and verified. As of NuttX 5.3, the port included only basic timer interrupts and serial console support. In NuttX 7.1, Lizhuoyi contributed additional I2C and SPI drivers. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

      Development Environments: (Same as for the NXP LPC214x). @@ -1727,7 +1727,7 @@ SD cards). An SPI-based ENC28J60 Ethernet driver for add-on hardware is available and but has not been fully verified on the Olimex board (due to issues powering the ENC28J60 add-on board). - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

      Development Environments: @@ -1759,7 +1759,7 @@ STATUS: This port has stalled due to development tool issues. Coding is complete on the basic port (timer, serial console, SPI). - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

      @@ -1788,7 +1788,7 @@ The basic port (timer interrupts, serial ports, network, framebuffer, etc.) is complete. All implemented features have been verified with the exception of the USB device-side driver; that implementation is complete but untested. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

      @@ -1824,7 +1824,7 @@ However, as of this writing, I have not had the opportunity to verify this new feature.

      - Refer to the Embedded Artists EA3131 board README file for further information. + Refer to the Embedded Artists EA3131 board README file for further information.

    • @@ -1840,7 +1840,7 @@ NOTE: That driver should work on the EA3131 as well. However, the EA3131 uses a PCA9532 PWM part to controller the port power so the it would not quite be a simple drop-in.

      - Refer to the Olimex LPC-H3131 board README file for further information. + Refer to the Olimex LPC-H3131 board README file for further information.

      @@ -1868,7 +1868,7 @@ At this point, verification of the EA3152 port has been overcome by events and may never happen. However, the port is available for anyone who may want to use it. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

      @@ -2019,7 +2019,7 @@ NuttX-7.4 added support for the on-board WM8904 CODEC chip and for Tickless operation.

      - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

    • @@ -2040,7 +2040,7 @@ The SAMA5D3 Xplained board does not have NOR FLASH and, as a consequence NuttX must boot into SDRAM with the help of U-Boot.

      - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

    • @@ -2071,7 +2071,7 @@ The TM7000 LCDC with the maXTouch multi-touch controller are also fully support in a special NxWM configuration for that larger display. Support for a graphics media player is included (although there were issues with the WM8904 audio CODEC on my board). An SRAM bootloader was also included. - Refer to the NuttX board README file for current status. + Refer to the NuttX board README file for current status.

      @@ -2113,7 +2113,7 @@ This port was developed on the v1 board, but the others may be compatible:

      - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

      STATUS. @@ -2146,7 +2146,7 @@ This initial support is very minimal: There is a NuttShell (NSH) configuration that might be the basis for an application development. As of this writing, more device drivers are needed to make this a more complete port. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

      Memory Usage. @@ -2210,7 +2210,7 @@ nsh> As of NuttX-6.28 more device driver development would be needed to make this a complete port, particularly to support USB OTG. A TSI and a SPI driver were added in NuttX-6.29. Alan contributed a PWM driver in NuttX-6.32. - Refer to the Freedom KL25Z board README file for further information. + Refer to the Freedom KL25Z board README file for further information.

      @@ -2224,7 +2224,7 @@ nsh> STATUS. This is the work of Michael Hope. Verified, initial support for the Teensy-LC first appeared in NuttX-7.10. - Refer to the Teensy-LC board README file for further information. + Refer to the Teensy-LC board README file for further information.

      @@ -2248,7 +2248,7 @@ nsh> This work was contributed in NuttX 7.8 by Derek B. Noonburg. The board support is very similar to the Freedom-KL25Z. It was decided to support this a a separate board, however, due to some small board-level differences. - Refer to the Freedom KL26Z board README file for further information. + Refer to the Freedom KL26Z board README file for further information.

      @@ -2271,7 +2271,7 @@ nsh> The initial SAMD20 Xplained Pro release (NuttX 7.1) included a functional NuttShell (NSH) configuration. An SPI driver was also included to support the OLED1 and I/O1 modules. That SPI driver, however, was not completed verified due to higher priority tasks that came up (I hope to get back to this later). - Refer to the SAMD20 Explained Pro board README file for further information. + Refer to the SAMD20 Explained Pro board README file for further information.

      @@ -2295,7 +2295,7 @@ nsh> Initial support for the SAML21 Xplained Pro was release in the NuttX 7.10. This initial support included a basic configuration for the NuttShell (NSH) (see the NSH User Guide). - Refer to the SAML21 Explained Pro board README file for further information. + Refer to the SAML21 Explained Pro board README file for further information.

      @@ -2317,7 +2317,7 @@ nsh>

      STATUS: The first released version was provided in NuttX 7.10. - Refer to the board README.txt file for further information. + Refer to the board README.txt file for further information.

      @@ -2358,7 +2358,7 @@ nsh>

      STATUS: This port was was released in NuttX 6.14. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

      @@ -2382,7 +2382,7 @@ nsh> The current port includes timer, serial console, Ethernet, SSI, and microSD support. There are working configurations to run the NuttShell (NSH), the NuttX networking test, and the uIP web server. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

      @@ -2422,7 +2422,7 @@ nsh> NOTE: As it is configured now, you MUST have a network connected. Otherwise, the NSH prompt will not come up because the Ethernet driver is waiting for the network to come up. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

      @@ -2448,7 +2448,7 @@ nsh> STATUS: This port was released in NuttX 5.10. Features are the same as with the Eagle-100 LM3S6918 described above. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

      @@ -2465,7 +2465,7 @@ nsh> Header file support was contributed by Tiago Maluta for this part. Jose Pablo Rojas V. is used those header file changes to port NuttX to the TI/Stellaris EKK-LM3S9B96. That port was available in the NuttX-6.20 release. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

      @@ -2508,7 +2508,7 @@ nsh> DMA and USART-based SPI supported are included, but not fully tested.

      - Refer to the EFM32 Gecko Starter Kit README.txt file for further information. + Refer to the EFM32 Gecko Starter Kit README.txt file for further information.

    • @@ -2532,7 +2532,7 @@ nsh> The board suppport is complete but untested because of tool-related issues. An OpenOCD compatible, SWD debugger would be required to make further progress in testing.

      - Refer to the Olimex EFM32G880F120-STK README.txt for further information. + Refer to the Olimex EFM32G880F120-STK README.txt for further information.

    • @@ -2627,7 +2627,7 @@ nsh> This initial support includes a configuration using the NuttShell (NSH) that might be the basis for an application development. A driver for the on-board segment LCD is included as well as an option to drive the segment LCD from an NSH "built-in" command. As of this writing, a few more things are needed to make this a more complete port: 1) Verfication of more device drivers (timers, quadrature encoders, PWM, etc.), and 2) logic that actually uses the low-power consumption modes of the EnergyLite part. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

      Memory Usage. @@ -2694,12 +2694,12 @@ nsh> Generic Board Support (obsoleted) This logic was extended to support the high density STM32F100RC chips by Freddie Chopin There is generic support for STM32F100RC boards. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

      Obsoleted. This generic board supported has been obsoleted. - The code has been moved out of the NuttX source tree but can still be found be found in Obsoleted directory. + The code has been moved out of the NuttX source tree but can still be found be found in Obsoleted directory. This support was obsoleted because of a decision to stop support of generic board configurations. Generic board configurations do not provide support for any specific hardware but can be useful only if there are not other examples for the setup for a particular architecture.

      @@ -2709,7 +2709,7 @@ nsh> STM32VL-Discovery. In NuttX-6.33, support for the STMicro STM32VL-Discovery board was contributed by Alan Carvalho de Assis. The STM32VL-Discovery board features an STM32F100RB MCU. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

      @@ -2752,7 +2752,7 @@ nsh> STATUS: The basic STM32F103C8 port was released in NuttX version 6.28. This work was contributed by Laurent Latil. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

      @@ -2777,7 +2777,7 @@ nsh> STM3210E-EVAL. A port for the STMicro STM3210E-EVAL development board that features the STM32F103ZET6 MCU. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

    • @@ -2785,21 +2785,21 @@ nsh> ISOTEL NetClamps VSN. The ISOTEL NetClamps VSN V1.2 ready2go sensor network platform based on the STMicro STM32F103RET6. Contributed by Uros Platise. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

    • HY-Mini STM32v board. This board is based on the STM32F103VCT chip. Port contributed by Laurent Latil. - Refer to the NuttX board README file. + Refer to the NuttX board README file.

    • The M3 Wildfire development board (STM32F103VET6), version 2. See http://firestm32.taobao.com (the current board is version 3). - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

    • @@ -2807,7 +2807,7 @@ nsh> LeafLab's Maple and Maple Mini boards. These boards are based on the STM32F103RBT6 chip for the standard version and on the STM32F103CBT6 for the mini version. See the LeafLabs web site for hardware information; - see the NuttX board README file for further information about the NuttX port. + see the NuttX board README file for further information about the NuttX port.

    • @@ -2816,7 +2816,7 @@ nsh> The Spark boards are based on the STM32F103CBT6 chip and feature wireless networking using the TI CC3000 WLAN module. See the Spark web site for hardware information; The emulated Spark is a base board for the Maple Mini board (see above) developed by David Sidrane that supports Spark development while we all way breathlessly for or Spark boards. - see the NuttX board README file for further information about the NuttX port. + see the NuttX board README file for further information about the NuttX port.

      Initially Spark support was introduced in NuttX 6.31 and completed in NuttX 6.32. @@ -2945,7 +2945,7 @@ nsh> (1) Basic Cortex-M3 port, (2) Ethernet, (3) On-board LEDs. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

    • @@ -2972,7 +2972,7 @@ nsh> STATUS: Networking and touchscreen support are well test. But, at present, neither USB nor LCD functionality have been verified. - Refer to the SViewtool STM32F103/F107 README file for further information. + Refer to the SViewtool STM32F103/F107 README file for further information.

    • @@ -3015,7 +3015,7 @@ nsh> STATUS: The peripherals of the STM32 F2 family are compatible with the STM32 F4 family. See discussion of the STM3240G-EVAL board below for further information. - Refer also to the NuttX board README file for further information. + Refer also to the NuttX board README file for further information. @@ -3048,7 +3048,7 @@ nsh>

      Subsequent NuttX releases will extend this port and add support for the SDIO-based SD cards and USB device. - Refer to the NuttX board README file for further information about this port. + Refer to the NuttX board README file for further information about this port.

      @@ -3078,7 +3078,7 @@ nsh> STATUS: As of this writing, the basic port is code complete and a fully verified configuration exists for the NuttShell NSH). The first fully functional Arduino Due port was released in NuttX-6.29. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

      @@ -3141,7 +3141,7 @@ nsh>

    • The first functional release for the NXP LPC1768/Nucleus2G occured with NuttX 5.7 with Some additional enhancements through NuttX-5.9. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.
    • @@ -3161,7 +3161,7 @@ nsh>
      • Support for the mbed board was contributed by Dave Marples and released in NuttX-5.11. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

      @@ -3185,7 +3185,7 @@ nsh> The NuttX-5.17 released added support for low-speed USB devices, interrupt endpoints, and a USB host HID keyboard class driver.
    • - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.
    • @@ -3204,7 +3204,7 @@ nsh> An fully verified board configuration is included in NuttX-6.2. The Code Red toolchain is supported under either Linux or Windows. Verified configurations include DHCPD, the NuttShell (NSH), NuttX graphis (NX), THTTPD, and USB mass storage device. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

    • @@ -3215,7 +3215,7 @@ nsh> The initial release was included NuttX-6.26. The Nuttx Buildroot toolchain is used by default. Verifed configurations include the "Hello, World!" example application and a THTTPD demonstration. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

    • @@ -3223,7 +3223,7 @@ nsh>

      This board configuration was contributed and made available in NuttX-6.20. As contributed board support, I am unsure of what all has been verfied and what has not. - See the Microment website Lincoln60 board and the NuttX board README file for further information about the Lincoln board. + See the Microment website Lincoln60 board and the NuttX board README file for further information about the Lincoln board.

    • @@ -3258,7 +3258,7 @@ nsh> The NSH configuration includes verified support for a DMA-based SD card interface. The frame-buffer LCD driver is functional and uses the SDRAM for frame-buffer memory. A touchscreen interface has been developed but there appears to be a hardware issue with the WaveShare implementation of the XPT2046 touchscreen controller. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information. @@ -3281,7 +3281,7 @@ nsh> STATUS: There are no K20 boards yet supported. Work is underway on the the PJRC Teensy-3.1 board and that port is expected in NuttX-7.11. - Refer to the Teensy-3.1 board README file for further information. + Refer to the Teensy-3.1 board README file for further information.

      @@ -3309,7 +3309,7 @@ nsh> (2) bring up the NuttShell NSH, (3) develop support for the SDHC-based SD card, (4) develop support for USB host and device, and (2) develop an LCD driver. NOTE: Some of these remaining tasks are shared with the K60 work described below. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

      @@ -3339,7 +3339,7 @@ nsh> the Ethernet driver is completely untested. Additional work remaining includes: (1) integrate the Ethernet and SDHC drivers, and (2) develop support for USB host and device. NOTE: Most of these remaining tasks (excluding the Ethernet driver) are the same as the pending K40 tasks described above. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

      @@ -3381,7 +3381,7 @@ nsh> The basic port for the STM32F3-Discover was first released in NuttX-6.26. Many of the drivers previously released for the STM32 F1, Value Line, and F2 and F4 may be usable on this platform as well. New drivers will be required for ADC and I2C which are very different on this platform. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

      @@ -3423,7 +3423,7 @@ nsh>
    • NuttX-7.2 The basic port for STMicro Nucleo F401RE board was contributed by Frank Bennett.
    • - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.
    • @@ -3476,7 +3476,7 @@ nsh> Support for the Olimex STM32 H405 board was added in NuttX-7.3.
    • - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.
    • @@ -3507,7 +3507,7 @@ nsh> STATUS: The basic port for the STM32F4-Discovery was contributed by Mike Smith and was first released in NuttX-6.14. All drivers listed for the STM3240G-EVAL are usable on this platform as well. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

      @@ -3524,7 +3524,7 @@ nsh>

    • Battery connect and batter charger circuit.
    • - See the Mikroelektronika website for more information about this board and the NuttX board README file for further information about the NuttX port. + See the Mikroelektronika website for more information about this board and the NuttX board README file for further information about the NuttX port.

        @@ -3536,7 +3536,7 @@ nsh>

        Olimex STM32 H405. Support for the Olimex STM32 H405 development board was contributed by Martin Lederhilger and appeared in NuttX-7.3. - See the NuttX board README file for further information about the NuttX port. + See the NuttX board README file for further information about the NuttX port.

        @@ -3590,7 +3590,7 @@ nsh>

      - Refer to the STM32F429I-Discovery board README file for further information. + Refer to the STM32F429I-Discovery board README file for further information.

      @@ -3614,7 +3614,7 @@ nsh>
      • STATUS: - Refer to the NuttX board README file for more detailed information about this port. + Refer to the NuttX board README file for more detailed information about this port.

      • @@ -3661,7 +3661,7 @@ nsh>
        • STATUS: - Refer to the NuttX board README file for more detailed information about this port. + Refer to the NuttX board README file for more detailed information about this port.

        • @@ -3724,7 +3724,7 @@ nsh>

        - Refer to the EK-TM4C123GXL board README file for more detailed information about this port. + Refer to the EK-TM4C123GXL board README file for more detailed information about this port.

      @@ -3750,7 +3750,7 @@ nsh>

      - Refer to the EK-TM4C1294XL board README file for more detailed information about this port. + Refer to the EK-TM4C1294XL board README file for more detailed information about this port.

      @@ -3780,11 +3780,11 @@ nsh>
    • This board supports included two configurations for the NuttShell (NSH). Both are networked enabled: One configured to support IPv4 and one configured to supported IPv6. - Instructions are included in the board README file for configuring both IPv4 and IPv6 simultaneously.. + Instructions are included in the board README file for configuring both IPv4 and IPv6 simultaneously..
    • - Refer to the DK-TM4C129X board README file for more detailed information about this port. + Refer to the DK-TM4C129X board README file for more detailed information about this port.

      @@ -3807,7 +3807,7 @@ nsh> The basic port was released in NuttX-7.5. This basic board supported includes an verified configuration for the NuttShell NSH). Key wireless networking capability is still missing. - Refer to the CC3200 LaunchPad board README file for more detailed information about this port. + Refer to the CC3200 LaunchPad board README file for more detailed information about this port.

      @@ -3843,7 +3843,7 @@ nsh>

      - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

      Memory Usage. @@ -3919,7 +3919,7 @@ Mem: 29232 5920 23312 23312 A DMA-base SPI driver is supported and has been verified with the AT25 Serial FLASH. Touchscreen and LCD support was added in NuttX-7.3, but has not been fully integrated as of this writing. The SAM4E-EK should be compatible with most of the other SAM3/4 drivers (like HSMCI, DMAC, etc.) but those have not be verified on the SAM4E-EK as of this writing. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information. @@ -3948,7 +3948,7 @@ Mem: 29232 5920 23312 23312 Support for the on-board 1MB SRAM was added in NuttX-6.29. An RTT driver was Bob Doiron in NuttX-7.3. Bob also added an high resolution RTC emulation using the RTT for the sub-second counter. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

      @@ -3963,7 +3963,7 @@ Mem: 29232 5920 23312 23312 As of this writing, the basic port is code complete and a fully verified configuration exists for the the NuttShell NSH). The first fully functional SAM4S Xplained Pro port was released in NuttX-7.2. This supported also added HSMCI, RTC, and watchdog and verified support for USB device. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

      @@ -3996,7 +3996,7 @@ Mem: 29232 5920 23312 23312 A new Ethernet MAC driver has been developed and is functional in the NSH configuration. A DMA-base SPI driver is supported and has been verified with the AT25 Serial FLASH. The SAM4E-EK should be compatible with most of the other SAM3/4 drivers (like HSMCI, DMAC, etc.) but those have not be verified on the SAM4E-EK as of this writing. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information. @@ -4057,7 +4057,7 @@ Mem: 29232 5920 23312 23312
    • Support for the (optional) maXTouch Xplained Pro LCD module (still a work in progress).
    • - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

      @@ -4099,14 +4099,14 @@ Mem: 29232 5920 23312 23312

      STATUS: Work on this port has stalled due to toolchain issues. Complete, but untested code for this port appears in the NuttX 6.5 release. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

      LowPowerLab MoteinoMEGA. This port of NuttX to the MoteinoMEGA from LowPowerLab. The MoteinoMEGA is based on an Atmel ATMega1284P. - See the LowPowerlab website and the board README file for further information. + See the LowPowerlab website and the board README file for further information.

        @@ -4141,7 +4141,7 @@ Mem: 29232 5920 23312 23312 The basic port was released in NuttX-6.5. This basic port consists only of a "Hello, World!!" example that demonstrates initialization of the OS, creation of a simple task, and serial console output. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

      @@ -4163,7 +4163,7 @@ Mem: 29232 5920 23312 23312 An SPI driver and a USB device driver exist for the AT90USB as well as a USB mass storage configuration. However, this configuration is not fully debugged as of the NuttX-6.5 release. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

      @@ -4256,7 +4256,7 @@ Mem: 29232 5920 23312 23312 The basic, port was be released in NuttX-5.13. A complete port will include drivers for additional AVR32 UC3 devices -- like SPI and USB --- and will be available in a later release, time permitting. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

      @@ -4293,7 +4293,7 @@ Mem: 29232 5920 23312 23312 However, testing has not yet begun due to issues with BDMs, Code Warrior, and the paging in the build process. Progress is slow, but I hope to see a fully verified MC9S12NE64 port in the near future. - Refer to the NuttX board README files for DEMO9S12NE64 and for the NE64 /PoE Badge for further information. + Refer to the NuttX board README files for DEMO9S12NE64 and for the NE64 /PoE Badge for further information.

      @@ -4319,13 +4319,13 @@ Mem: 29232 5920 23312 23312 address space during interrupt handling. This architecture has not been built in some time will likely have some compilation problems because of SDCC compiler differences. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

      Obsoleted. This architecture has been obsoleted. - The code has been moved out of the NuttX source tree but can still be found be found in Obsoleted directory. + The code has been moved out of the NuttX source tree but can still be found be found in Obsoleted directory. This support was obsoleted because (1) the architecture limitations of the 8051 family make ongoing development of more advanced NuttX features too difficult, and (2) although the basic port was marginally functional, it has never really been demonstrated convincingly in any application.

      @@ -4352,7 +4352,7 @@ Mem: 29232 5920 23312 23312 The port is reported to be functional on the Bifferboard as well. In NuttX 7.1, Lizhuoyi contributed additional keyboard and VGA drivers. This is a great, stable starting point for anyone interest in fleshing out the x86 port! - Refer to the NuttX README file for further information. + Refer to the NuttX README file for further information.

      @@ -4380,7 +4380,7 @@ Mem: 29232 5920 23312 23312 This initial port of NuttX to RGMP was provided in NuttX-6.3. This initial RGP port provides only minimal driver support and does not use the native NuttX interrupt system. This is a great, stable starting point for anyone interest in working with NuttX under RGMP! - Refer to the NuttX README file for further information. + Refer to the NuttX README file for further information.

      @@ -4411,7 +4411,7 @@ Mem: 29232 5920 23312 23312 The PGA117, however, is not yet fully integrated to support ADC sampling. See the NSH User Guide for further information about NSH. The first verified port to the Mirtoo module was available with the NuttX 6.20 release. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

      @@ -4445,7 +4445,7 @@ Mem: 29232 5920 23312 23312 An untested USB device-side driver is available in the source tree. A more complete port would include support of the USB OTG port and of the LCD display on this board. Those drivers are not yet available as of this writing. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

      @@ -4461,7 +4461,7 @@ Mem: 29232 5920 23312 23312 STATUS: The basic port is code complete and fully verified in NuttX 6.13. Available configurations include the NuttShell (NSH - see the NSH User Guide). - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

    • UBW32 Board from Sparkfun This is the port to the Sparkfun UBW32 board. @@ -4474,7 +4474,7 @@ Mem: 29232 5920 23312 23312 The basic port is code complete and fully verified in NuttX 6.18. Available configurations include the the NuttShell (NSH - see the NSH User Guide). USB has not yet been fully tested but on first pass appears to be functional. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

      @@ -4505,7 +4505,7 @@ Mem: 29232 5920 23312 23312 A verified configuration is available for the NuttShel (NSH) appeared in NuttX-6.16. Board support includes a verified USB (device-side) driver. Also included are a a verified Ethernet driver, a partially verified USB device controller driver, and an unverifed SPI driver. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

    • Mikroelektronika PIC32MX7 Mulitmedia Board (MMB). A port has been completed for the Mikroelektronika PIC32MX7 Multimedia Board (MMB). @@ -4528,7 +4528,7 @@ Mem: 29232 5920 23312 23312 However, additional verification and tuning of this driver is required. Further display/touchscreen verification would require C++ support (for NxWidgets and NxWM). Since I there is no PIC32 C++ is the free version of the MPLAB C32 toolchain, further graphics development is stalled. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

      @@ -4599,7 +4599,7 @@ Mem: 29232 5920 23312 23312
    • Ethernet (code complete, but not yet functional),
    • - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

      @@ -4645,7 +4645,7 @@ Mem: 29232 5920 23312 23312 (which has very limit SH-1 support to begin with), or perhaps with the CMON debugger. At any rate, I have exhausted all of the energy that I am willing to put into this cool old processor for the time being. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

      @@ -4682,7 +4682,7 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1);

      No workaround is known at this time. This is a show stopper for M16C. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

      @@ -4709,7 +4709,7 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1); The initial release of support for the z16f was made available in NuttX version 0.3.7. A working NuttShell (NSH) configuration as added in NuttX-6.33 (although a patch is required to work around an issue with a ZDS-II 5.0.1 tool problem). An ESPI driver was added in NuttX-7.2. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

    • @@ -4722,12 +4722,12 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1); STATUS: The initial release of support for the 16z board was made available in NuttX version 6.33. Both the 16z board and the NuttX port are works in progress and are not ready for usage as of NuttX-7.2. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

      Obsoleted. This board support has been obsoleted. - The code has been moved out of the NuttX source tree but can still be found be found in Obsoleted directory. + The code has been moved out of the NuttX source tree but can still be found be found in Obsoleted directory. This support was obsoleted because of technical issues that make NuttX unusable on the board at least in the short term. This configuration may return to the NuttX source tree at some time in the future.

    • @@ -4763,7 +4763,7 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1); The first integrated version was released in NuttX version 0.4.2 (with important early bugfixes in 0.4.3 and 0.4.4). As of this writing, that port provides basic board support with a serial console, SPI, and eZ80F91 EMAC driver. - Refer to the NuttX board README files for the ez80f0910200kitg and ez80f910200zcofile for further information. + Refer to the NuttX board README files for the ez80f0910200kitg and ez80f910200zcofile for further information.

      @@ -4794,7 +4794,7 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1); STATUS: This release has been verified only on the ZiLOG ZDS-II Z8Encore! chip simulation as of nuttx-0.3.9. - Refer to the NuttX board README files for the z8encore000zco and for thez8f64200100kit for further information. + Refer to the NuttX board README files for the z8encore000zco and for thez8f64200100kit for further information.

        @@ -4823,7 +4823,7 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1); Most of the NuttX is in port for both the Z80182 and for the P112 board. Boards from Kickstarter project will not be available, however, until the third quarter of 2013. So it will be some time before this port is verified on hardware. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

          @@ -4843,14 +4843,14 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1); under Linux or Cygwin (verified using version 2.6.0). This port has been verified using only a Z80 instruction simulator. That simulator can be found in the NuttX GIT - here. + here.

            STATUS: This port is complete and stable to the extent that it can be tested using an instruction set simulator. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

              @@ -4874,7 +4874,7 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1); STATUS: Basically the same as for the Z80 instruction set simulator. This port was contributed by Jacques Pelletier. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

                @@ -4914,7 +4914,7 @@ avr, m68k, m68hc11, m68hc12, m9s12, blackfin, m32c, h8, and SuperH ports.NuttX GIT. + NuttX GIT.

                @@ -5191,7 +5191,7 @@ if [ -x "$WINELOADER" ]; then exec "$WINELOADER" "$appname" "$@"; fi

                  - The current list of NuttX Things-To-Do in GIT here. + The current list of NuttX Things-To-Do in GIT here.

                @@ -5249,7 +5249,7 @@ if [ -x "$WINELOADER" ]; then exec "$WINELOADER" "$appname" "$@"; fi - + @@ -5259,9 +5259,9 @@ if [ -x "$WINELOADER" ]; then exec "$WINELOADER" "$appname" "$@"; fi
                1 - This configuration variable document is auto-generated using the kconfig2html tool + This configuration variable document is auto-generated using the kconfig2html tool That tool analyzes the NuttX Kconfig files and generates the HTML document. - As a consequence, this file may not be present at any given time but can be regenerated following the instructions in tools directory README file. + As a consequence, this file may not be present at any given time but can be regenerated following the instructions in tools directory README file.
                diff --git a/Documentation/NuttXBinfmt.html b/Documentation/NuttXBinfmt.html index 95d9128ead..7fac36ed61 100644 --- a/Documentation/NuttXBinfmt.html +++ b/Documentation/NuttXBinfmt.html @@ -108,7 +108,7 @@

                2.1 Binary Loader Header Files

                The interface to the binary loader is described in the header file - + include/nuttx/binfmt/binfmt.h. A brief summary of the data structurs and interfaces prototyped in that header file are listed below.

                @@ -458,7 +458,7 @@ void exepath_release(EXEPATH_HANDLE handle);

                3.1 Symbol Table Header Files

                The interface to the symbol table logic is described in the header file - + include/nuttx/binfmt/symtab.h. A brief summary of the data structurs and interfaces prototyped in that header file are listed below.

                diff --git a/Documentation/NuttXDocumentation.html b/Documentation/NuttXDocumentation.html index 1e04e4e97b..dcec9873b4 100644 --- a/Documentation/NuttXDocumentation.html +++ b/Documentation/NuttXDocumentation.html @@ -41,7 +41,7 @@
              • Demand Paging
              • USB Trace
              • README Files
              • -
              • To-Do List
              • +
              • To-Do List
              • diff --git a/Documentation/NuttXGettingStarted.html b/Documentation/NuttXGettingStarted.html index c49ddb031e..a165a36b13 100644 --- a/Documentation/NuttXGettingStarted.html +++ b/Documentation/NuttXGettingStarted.html @@ -18,7 +18,7 @@ There is no "Getting Started" Guide for NuttX yet. However, most everything that you need to get started with NuttX can be found in the README.txt file located in the top-level NuttX directory. That README.txt can also be read online in the NuttX GIT repository - here. + here. Just click on "Links to HEAD: (view)" on that page.

                diff --git a/Documentation/NuttXLinks.html b/Documentation/NuttXLinks.html index 1ed75096ab..be7b1b6682 100644 --- a/Documentation/NuttXLinks.html +++ b/Documentation/NuttXLinks.html @@ -27,7 +27,7 @@
              • Downloads
              • Wiki
              • Toolchains
              • -
              • Browse GIT
              • +
              • Browse GIT
              • Free Ports
              • diff --git a/Documentation/NuttXNxFlat.html b/Documentation/NuttXNxFlat.html index ef4968fba5..fe9c252650 100644 --- a/Documentation/NuttXNxFlat.html +++ b/Documentation/NuttXNxFlat.html @@ -157,14 +157,14 @@
                • A dynamic loader that is built into the NuttX core - (See GIT). + (See GIT).
                • Minor changes to RTOS to support position independent code, and
                • A linker to bind ELF binaries to produce the NXFLAT binary format - (See GIT). + (See GIT).
                @@ -287,7 +287,7 @@ The initial release of NXFLAT was made in NuttX version 0.4.9. Testing is limited to the tests found under apps/examples/nxflat in the source tree. Some known problems exist - (see the TODO list). + (see the TODO list). As such, NXFLAT is currently in an early alpha phase.

                @@ -435,7 +435,7 @@ cat ../syscall/syscall.csv ../libc/libc.csv | sort >tmp.csv

                Below is a snippet from an NXFLAT make file (simplified from NuttX - + Hello, World! example.

                  NuttX To-Do ListNuttX To-Do List
                  @@ -557,18 +557,18 @@ cat ../syscall/syscall.csv ../libc/libc.csv | sort >tmp.csv diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index cbf627710c..c42ea74ea3 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -667,7 +667,7 @@ The Z80 port was released in nuttx-0.3.6 has been verified using only a z80 instruction simulator. The set simulator can be found in the NuttX GIT at - http://sourceforge.net/p/nuttx/git/ci/master/tree/misc/sims/z80sim. + https://bitbucket.org/patacongo/nuttx/src/master/misc/sims/z80sim. This port also uses the SDCC toolchain (http://sdcc.sourceforge.net/) (verified with version 2.6.0 and 2.7.0). @@ -1060,7 +1060,7 @@
                • configs/z80sim: z80 Microcontroller. This port uses a Z80 instruction set simulator. That simulator can be found in the NuttX GIT - here. + here. This port also the SDCC toolchain under Linux or Cygwin(verified with version 2.6.0).
                • diff --git a/Documentation/README.html b/Documentation/README.html index c8b7780967..f93b2d1373 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -22,353 +22,353 @@ From be534e73f73c2e75cb541ad9d3d50736958ec440 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 26 Jun 2015 18:13:20 -0600 Subject: [PATCH 1416/1518] This cleans up most of the remaining SourceForge references --- Documentation/NuttX.html | 40 +++++++++++++++++----------------- Documentation/NuttXNxFlat.html | 2 +- Documentation/freeports.html | 3 +-- 3 files changed, 22 insertions(+), 23 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index cd9646edaa..34164366f6 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -71,7 +71,7 @@
                  @@ -1124,7 +1124,7 @@ @@ -1282,7 +1282,7 @@ The current release is NuttX 7.10. NuttX 7.10 is the 110th release of NuttX. It was released on June 9, 2015, and is available for download from the - SourceForge website. + Bitbucket.org website. Note that the release consists of two tarballs: nuttx-7.10.tar.gz and apps-7.10.tar.gz. Both may be needed (see the top-level nuttx/README.txt file for build information).

                  @@ -1292,7 +1292,7 @@
                  • nuttx.

                      - Release notes for NuttX 7.10 are available here; + Release notes for NuttX 7.10 are available here; release notes for all released versions on NuttX are available in the Bitbucket GIT. The ChangeLog for all releases of NuttX is available in the ChangeLog file that can viewed in the Bitbucket GIT. The ChangeLog for the current release is at the bottom of that file. @@ -1300,7 +1300,7 @@

                  • apps.

                      - Release notes for NuttX 7.10 are available here; + Release notes for NuttX 7.10 are available here; release notes for all released versions on NuttX are available in the Bitbucket GIT The ChangeLog for the all releases of apps is available in the ChangeLog file that can viewed in the Bitbucket GIT. The ChangeLog for the current release is at the bottom of that file. @@ -1308,7 +1308,7 @@

                  • NxWidgets.

                      - Release notes for NxWidgets 1.13 are available here; + Release notes for NxWidgets 1.13 are available here; release notes for all released versions on NxWidgets are available in the BitBucket GIT The ChangeLog for all releases of NxWidgets is available at the bottom of the ChangeLog file that can viewed in the Bitbucket GIT.

                      @@ -1321,7 +1321,7 @@
                  • buildroot.

                      - Release notes for buildroot 1.14 are available here; + Release notes for buildroot 1.14 are available here; release notes for all released versions on buildroot are available in the Bitbucket GIT The ChangeLog for all releases of buildroot is available at the bottom of the ChangeLog file that can viewed in the Bitbucket GIT.

                      @@ -1666,7 +1666,7 @@ 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS with Windows native toolchain (CodeSourcery or devkitARM), or 4) Native Windows. A DIY toolchain for Linux or Cygwin is provided by the NuttX - buildroot + buildroot package.

                    @@ -1734,7 +1734,7 @@ 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS with Windows native toolchain (CodeSourcery or devkitARM), or 4) Native Windows. A DIY toolchain for Linux or Cygwin is provided by the NuttX - buildroot + buildroot package.

                  @@ -2181,7 +2181,7 @@ nsh> 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS with Windows native toolchain, or 4) Native Windows. A DIY toolchain for Linux or Cygwin is provided by the NuttX - buildroot package. + buildroot package.

                  @@ -2390,7 +2390,7 @@ nsh> 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS with Windows native toolchain (CodeSourcery or devkitARM), or 4) Native Windows. A DIY toolchain for Linux or Cygwin is provided by the NuttX - buildroot + buildroot package.

                  @@ -2904,7 +2904,7 @@ nsh> 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS with Windows native toolchain (RIDE7, CodeSourcery or devkitARM), or 4) Native Windows. A DIY toolchain or Linux or Cygwin is provided by the NuttX - buildroot + buildroot package.

                  @@ -3056,7 +3056,7 @@ nsh> 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS with Windows native toolchain (CodeSourcery or devkitARM), or 4) Native Windows. A DIY toolchain for inux or Cygwin is provided by the NuttX - buildroot + buildroot package.

                  @@ -3233,7 +3233,7 @@ nsh> 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS with Windows native toolchain (CodeSourcery devkitARM or Code Red), or 4) Native Windows. A DIY toolchain for Linux or Cygwin is provided by the NuttX - buildroot package. + buildroot package.

                  @@ -4010,7 +4010,7 @@ Mem: 29232 5920 23312 23312

                  Development Environments: 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU Cortex-M3 or 4 toolchain, 3) Cygwin/MSYS with Windows native GNU Cortex-M3 or M4 toolchain (CodeSourcery or devkitARM), or 4) Native Windows. A DIY toolchain for Linux or Cygwin is provided by the NuttX - buildroot package. + buildroot package.

                  @@ -4207,7 +4207,7 @@ Mem: 29232 5920 23312 23312 Development Environments: 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS with Windows native toolchain, or 4) Native Windows. All testing, however, has been performed using the NuttX DIY toolchain for Linux or Cygwin is provided by the NuttX - buildroot package. + buildroot package. As a result, that toolchain is recommended.

                  @@ -4284,7 +4284,7 @@ Mem: 29232 5920 23312 23312

                  Both use a GNU arm-nuttx-elf toolchain* under Linux or Cygwin. - The NuttX buildroot provides a properly patched GCC 3.4.4 toolchain that is highly optimized for the m9s12x family. + The NuttX buildroot provides a properly patched GCC 3.4.4 toolchain that is highly optimized for the m9s12x family.

                    @@ -4909,7 +4909,7 @@ avr, m68k, m68hc11, m68hc12, m9s12, blackfin, m32c, h8, and SuperH ports.buildroot available for download from the - NuttX SourceForge + NuttX Bitbucket.org page. This download may be used to build a NuttX-compatible ELF toolchain under Linux or Cygwin. That toolchain will support ARM, m68k, m68hc11, m68hc12, and SuperH ports. @@ -4950,7 +4950,7 @@ avr, m68k, m68hc11, m68hc12, m9s12, blackfin, m32c, h8, and SuperH ports. This combination works well too. It works just as well as the native Linux environment except that compilation and build times are a little longer. - The custom NuttX buildroot referenced above may be build in the Cygwin environment as well. + The custom NuttX buildroot referenced above may be build in the Cygwin environment as well.

                    diff --git a/Documentation/NuttXNxFlat.html b/Documentation/NuttXNxFlat.html index fe9c252650..e8f68046f8 100644 --- a/Documentation/NuttXNxFlat.html +++ b/Documentation/NuttXNxFlat.html @@ -305,7 +305,7 @@ In order to use NXFLAT, you must use special NXFLAT tools to create the binary module in FLASH. To do this, you will need to download the buildroot package and build it on your Linux or Cygwin machine. The buildroot can be downloaded from - Sourceforge. + Sourceforge. You will need version 0.1.7 or later.

                    diff --git a/Documentation/freeports.html b/Documentation/freeports.html index 608b05cdf2..83bda1fbd4 100644 --- a/Documentation/freeports.html +++ b/Documentation/freeports.html @@ -14,8 +14,7 @@

                  - Release Notes + Release Notes What has changed in the last release of NuttX? What has changed in previous releases of NuttX? Are there any unreleased changes. @@ -231,7 +231,7 @@

                  Compatible GNU toolchains based on buildroot available for - download + download to provide a complete development environment for many architectures.

                • The Pascal add-on is available for download from the - SourceForge + Bitbucket.org website.
                • If you have a hardware platform that you would like to see NuttX ported to then have I got a deal for you: I am willing to port NuttX to run on your hardware FREE. - If you are interested, contact - patacongo at SourceForge. + If you are interested, contact gnutt at nuttx.org. >>back<<.
                  From 959f78d3cce870470f5a92d49c7644b7320f9636 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 27 Jun 2015 09:26:12 -0600 Subject: [PATCH 1417/1518] Remove old, unused files in Documentation/ directory --- Documentation/NuttXBanner.html | 32 ------------ Documentation/NuttXCommercial.html | 60 ---------------------- Documentation/NuttXDocumentation.html | 69 -------------------------- Documentation/NuttXLinks.html | 66 ------------------------ Documentation/NuttXRelated.html | 58 ---------------------- Documentation/freeports.gif | Bin 5087 -> 0 bytes Documentation/freeports.html | 23 --------- Documentation/index.html | 20 -------- 8 files changed, 328 deletions(-) delete mode 100644 Documentation/NuttXBanner.html delete mode 100644 Documentation/NuttXCommercial.html delete mode 100644 Documentation/NuttXDocumentation.html delete mode 100644 Documentation/NuttXLinks.html delete mode 100644 Documentation/NuttXRelated.html delete mode 100644 Documentation/freeports.gif delete mode 100644 Documentation/freeports.html delete mode 100644 Documentation/index.html diff --git a/Documentation/NuttXBanner.html b/Documentation/NuttXBanner.html deleted file mode 100644 index c47c8b066e..0000000000 --- a/Documentation/NuttXBanner.html +++ /dev/null @@ -1,32 +0,0 @@ - - -NuttX Banner - - - - - - - - - - - - -
                  - -   - - Get NuttX at SourceForge.net. Fast, secure and Free Open Source software downloads - -
                  -

                  NuttX RTOS

                  -
                  - - Click to join nuttx - -
                  - - diff --git a/Documentation/NuttXCommercial.html b/Documentation/NuttXCommercial.html deleted file mode 100644 index 27ce21a8d9..0000000000 --- a/Documentation/NuttXCommercial.html +++ /dev/null @@ -1,60 +0,0 @@ - - - NuttX Links - - -  - - - - - - - - - - - - - - - - - - - - -
                  - - - - - Project Links -
                  - - - - - Documentation -
                  - - - - - Related Projects -
                  - - - Commercial Sites -
                    -
                • NX-Engineering
                • -
                • Raztek Solutions
                • -
                • North Shore Design Group
                • -
                • 2G Engineering
                • -
                • ISOTEL Research
                • -
                • DSPWorks
                • -
                  - - diff --git a/Documentation/NuttXDocumentation.html b/Documentation/NuttXDocumentation.html deleted file mode 100644 index dcec9873b4..0000000000 --- a/Documentation/NuttXDocumentation.html +++ /dev/null @@ -1,69 +0,0 @@ - - - NuttX Links - - -  - - - - - - - - - - - - - - - - - - - - - -
                  - - - - - Project Links -
                  - - - NuttX Documentation -
                    -
                • Getting Started
                • -
                • User Guide
                • -
                • Porting Guide
                • -
                • Configuration Variables
                • -
                • NuttShell (NSH)
                • -
                • Binary Loader
                • -
                • NXFLAT
                • -
                • NX Graphics
                • -
                • NxWidgets
                • -
                • NFS How-To
                • -
                • Demand Paging
                • -
                • USB Trace
                • -
                • README Files
                • -
                • To-Do List
                • -
                  - - - - - Related Projects -
                  - - - - - Commercial Sites -
                  - - diff --git a/Documentation/NuttXLinks.html b/Documentation/NuttXLinks.html deleted file mode 100644 index be7b1b6682..0000000000 --- a/Documentation/NuttXLinks.html +++ /dev/null @@ -1,66 +0,0 @@ - - - NuttX Links - - -  - - - - - - - - - - - - - - - - - - - - - -
                  - - - Project Links -
                    -
                • Home
                • -
                • SourceForge
                • -
                • FreshMeat
                • -
                • Forum
                • -
                • Ohloh
                • -
                • OSChina
                • -
                • Downloads
                • -
                • Wiki
                • -
                • Toolchains
                • -
                • Browse GIT
                • -
                • Free Ports
                • -
                  - - - - - Documentation -
                  - - - - - Related Projects -
                  - - - - - Commercial Sites -
                  - - diff --git a/Documentation/NuttXRelated.html b/Documentation/NuttXRelated.html deleted file mode 100644 index bd1bc83621..0000000000 --- a/Documentation/NuttXRelated.html +++ /dev/null @@ -1,58 +0,0 @@ - - - NuttX Links - - -  - - - - - - - - - - - - - - - - - - - - -
                  - - - - - Project Links -
                  - - - - - Documentation -
                  - - - Related Projects -
                    -
                • Osmocom-BB
                • -
                • PX4 Autopilot
                • -
                • RGMP
                • -
                • Top Multi-Rotor (TMR)
                • -
                  - - - - - Commercial Sites -
                  - - diff --git a/Documentation/freeports.gif b/Documentation/freeports.gif deleted file mode 100644 index 9bdcdcf185bccadc79dad8d59e623873d7ccf7e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5087 zcmWlcd0dQ(|HVJE@6S9fC`C`}ZNnr>n@kJJO(u#;7%jHKly1c>%~aa7Obc?!cPc7L zrUh}icUrXAnq*0mNvXMn(IQ0i^ZWO_-sk*xUgvezd9Jmy-}M-rVN?zCK$C#;1&G4o z!YL49@=Jgez{lGHjttp$zyLxa5YB5s0zfU`D}j>Z3M3Ys#=|XJ29AiY*M&4Mz-xiT zjf`7O10c1q;10kb5FY~JISX2Kp^6Cao!PJzSOGYKHnb68(f}Il=YS4$1;KnE|6Bks zd|7Y+2OBjYn1)-U3nnn+g5kDnK^#HLR}aEbaI%0vJ;0KL?Qj{(A;AgvKWh*#gJegj zuz<51h;zlu3?Rc1j=4g@8n|r+$6etsdx&2TC!HbI8}eM>)*?vp#MLc@+%-_)0FTY# zsso(#go|#t|Eh3bDQCeKU8djD?ZTf z4)s28Wh=aPhRSWw?hP$IP!sK-@Bk{KU@!ktNUPx2TudwpCky20>!9X?4o`d%l&{q%tT>*6&?ngO{Uxn{gB;_@{ zx&}VpfQf4`TMvp>7-@p9H(~rAm~F&;YzFn;p#B$rG{bZ!sPDp9H+*>n>U*Gm0F#eF zEr(BipneKJUck40Q1|1e2SGguUq?Yb3e#gSse+$l@L>u*Pk{O(etH7`<1=AM4YT9$ zWg66zFfju^rs2~pe4hdJH<(t#&sk8baR6XAJI5_5Y*%zxC>FafdN1a?Hw;_nxq%0U z--tLmsKNRd1pi+ap#JjE^gX1Krevy?Wl)E-q$LeCUVqM`wzOG$uI>K*j@q*JT+$Mu zzGvNq&I0nBP;>ta9$87I?xp8E>&rKYmgk!o#)Ur4PjXN1*I(aY-l{>)6^xgK@{4!p zU0^!lGc&s{``5P#J|D(3`K^x{zfn@QG=>Ec7iajgeDsqXw(KtcJ$5+9%v;KAtvjGE zHQhfD7ryo5CLPo4>-*}5!z5aZIPcbC#zX;X2q|B7jG-;1(&SJq1oynB$h z|9cq2(tV}*{qsM?w1$Hvx8rVJ@ZRxvWJ6`s%jci^tApQ-T`E|fx*iMeUHntBq4+3$ z0qJ6d)t*NIMgi}>&vw2%?PT!pvB?LW^*083&+rBw9WhS1z|VR2wSHXQ6hbo)ZPOv- zIuwg~yjRbRCFialnM%%GHN)Mz(f(Oh59080tSO!ArSqA<`gVM8p+=HUDP^9(ckqGW zdvyrg@u#Y+D{ES%wJT}nYw|{?Z=A+1yPZU%H2oAWygPfYt{4dH6orsr$j6!rHHF-6 z;s$39j%sFSA}T;UI)QBHB*c-~9uhH0$BUnI#@iXIIJeP3m{iDECKc2DGwns|Jb%%?c))R^ z7{n_?^jXUy&aeCp{|RYk@t7+^>L3>WMc*ZHWf-YwNfd(yc@+iY%eZ)oy}XI`cWEE~ zs&vQY{gg#s3K@aoY2PHheCvA^ovkB~t&N<#=xwhQ_MBNcqTkVVXGUJY&;F*=Dsh}{ z>?vC{a=mutn6Qd!TPYOb7@m?aM*lI6Tit?6Sp-#XHVL&x@xseB zM*hE#NfEF@$;bmiGtEFKuCBWh)gM(i;J`--h#;%#TIa`mm#>;`)o!=$wD^r}pKTs| zfBC4gXQR^>F7?up6(ez1ou`#Oj|4Nap@+KjS4k!)dQKJ<1>2&m$M4c?IE!bmnh8}O z2pj)`%deN}r8G6XI`26`blE7ZqrXPng+wGm*i1N@4DTuNspu$y#`oeC zYa&Y#$EHH|9BwnRnQ1~b9+A1_M!k%8Svx}}igtEaw(Tzd9JRnRrDvMx$DmQIq;Vy=cj+>og7dyJTMY{q>ScmFFq$F5(K$sS%Lo(F; zurN0ck*2q>h+|ytuRJQ14soLzSe6kK;E%Z?H zl*LC6vlH#A7S7J^>eWtR$EO?5Z%;&9%7OCfYY?ZUd57O)z*RPSG;a#QP;+CunEjnzOj2Ad+#G8L9u8-V9A^ zY6>g*xOk0mm?LnG>RanM2V1F3s3i8Dd90 zs_ou2k&_TK#Ecbpw5e{03yQfU!{QhBt9nsNrNloXyXfxxH;sq{3h|Nf`)b)1e3FFp zgf9B#yeZw(*H!O}GR;xxf^76pUZcX+nVu@iNr*_+cv6&VWcQhBD|ON7^(U{e9$ucH z+-oq-p%|CS(pI^7#fK-CkPAFe2f2)!_nCF)mKSPvYr2R zieu(7i2g>e)`rRmhSr13Z1XisI+`kv$;x!ogcp6DHZeD*v>2#_YfV}`G9s1{=9LJ^ zHXpfZJ|->t-y4jVTIn!-O-hkq0bU~*Ky7ny%gK14@J;K9S?@P!1VEiL=VhW37Vz+% z0mc8Cs6kU6g6>YI96V{;)I>kAIm*I4TAZ>GZP8PDv^zYj?TV?!Yc}_i9X1`N?Q3W; z_<*&UO9nG`wB~b_T+)I%4rQehzkm^yRu=6pIb7X6Z)>HYo2%3`G_0riJK>|pYE?zL z2?X%;x6jsj^mVeLa|x}c9#oT&8-dx;e$|V7R{y0r_VQ1ts1 znd!R4b-|Q>ngb_~5o&Fu|4wpoRYzn-(1m7=XlP6N_%>J9zGI7v?Oep|LZeoDLLSDuk2 zqK){at?uo9n&Rz>?&c9JZ`))BHViG?AMS1!9Lb1tqApbGq?&iwAQ5&g`YZb=j)kL0 z;t^xrNMVwjVt0_Q>$Jb6;_;(E`JRpE`DEFFj;3!Wdro;jhz67Y{?lCS&)~S@Z?FC6 zHp{8Fxb?UfQNQww`v8v?kuEiO&s}FM7BRP-Gtzl#M_eZFMh-1A(m8#%EqB_+!&6YU zU|itqe7I0@OuWHBS+qt+u0n5=uTR8!W#oJoUc0gDkmce&ngeezwSl%p(LdO2$61Ul z>n^^RbnYtq4L@w^h!KV@@U)uyIjz!=R-{95>eXQH^)-t9K&99p6=jA;49!1NL|h?^ z%tUK=k`vPQRpXKDm`NL#d&%FN`vx;tN^wT#nYt8-365ZH5lt@oQ&2G_vU{GJxe!Z_ zI=n)JT63S#{AG=jvomSdimRco(uq2Ps@#kq!*yI&eSRJ*TDoq*c`CV2Ia`8wa*cIk zsjHVtY%;g-hdSOVQ@(s^n*GziDr;6iSuH>N7awh=T`0AxJ!h9!no#|T?qh1N6=?`u zJryqXu=Ng#2K^bXZd~JOE8Y_OlWao_lvD5UkYOn@BNM&lQVrepKM0sb9F|l;PU5kK z#Ek7iidf8e32cR6U*~7@P}{_;Qm1uqqsJx46CQ1kT$>>ZU!aN~j9wgj8m0ZVbZ8U$ z;Yq~ZYkbXu6spDnhr1dm_}_VkYV+`pJZdWzR~crZk}~SBxN-j4Dqy~p(yDP!H5Es@sf{>bt5BUY6kw$7db0~6PPV!4oMK-9_Dp1Em6$0 zpQiq!VkxE3xtdvlwm#pIkU@-jj7wZ1wsCNa)Gjf#5BZZ&i~Fs`CfClkKiPe3a_iNe zEsHn=Ot_V32xyaKrTcMu3CT}NZs4>2iDX{n`VNbb8X03q!8#(GKO$$8^N{Hx)_|CC zke8MzVD2RxosqGB&RsErGDSR+W7Dtous7nTJiHq|Sc#%?@BTM%_qRQbrP-9Gm~EP7 zgUc3~i8H7+;g8KXIrLb+X`Dqx0^;f2$Vmyatio|XOdS^UL?|){tZWW~y0RxZ$T^_r zD98~K`m=e)SxbE;_OL&2*)hkAc#-8d)Q?B5;%9zuLl)>59*<;hJ^s7nTAGX(@KtV9 zgE2nL3j8MJNUKevJ$?nXdEqz@xg(~8NW%^W!wQlnF zb?-OEhn1sQ1y+&m_H}i8Fv6NeXHYvSQOaF%@~zXVB=!u-D(7b^QAVv0c_pXzaoJQn z`-BUkk~oQjE$lr?XO`=K6(EB`W;~Wc+l4ztbkG->X7&6LR=Tya9%aeR{t1o|x@8Z? zp?H<)ooV!Ri`^%CyKQe4ZKY~h2?=ou#&ZFSScmkRmHd<={a`pEpaZ>t_ zidm#!jfu|K7a5<@H1w=69+J>}xYWBxYfNiN4d}u#?g~x11upsEfP`@gsN2Q#UX(5s zu#h>%=Ftnyj=KIVXFo(K*`gZiON}6z-m4d0CJx5&lh_vl(kEc{ikbVxBq9IU7ZuWR z!F6J~HYU_}7-jYpO3lMHN;6p=&t{9CTNtBOCFnhNe;VtooOGB^D&iv@J>?fpdF^(K zekW#~gEEUh8`!nPD?;W&G4qy+@r>tsab(E`iqABUJ;O(yqVz%mQ^~P-ebaA-i?pj4 ztr)WdWA5b*C(CHV^ownyuO=DabbDs_B#Uu1- z-K;r*ZbIqtl}KrKw0FhwoYI@$Q`e39Sab}V57XFtdRS4aTW$AIKHu-sbyh#d{v^FY zH}ctXpFM@L&1c`GjdPH80V}eXby^^8*ZYS!NJ^2i1_jJKF11wXwSA7E?NT56y$j3V zvOU*biy3AKWKmBQtXj#uH#7gL<%DDj^@xPD1ttBhxIMY;@2>ak&nokuse!8)p);68 zub6TaBYSYEXJkZIkiB6LmSe=H6Kr1@gMep0!7xTMqWX2UG}#}-NY{PjEuUFWEfuNe zs#WB*5`qV=x$Sq{d>+b^G25uj5Sbol>GDy@5{**UxD1)X*lh|@v2gwiAvKtX>KL|S z@x;3dR*{4h%cVMPb;;*22MvGEN13ByWL(DB!68TS7(GJTMrez7LS2Q7`ai^p!EzRH zGo6Rg?%>#WLYp3>xDY;iKnemPdVke7wXKt`QqF|7bnz(OLXF)D=@9MKOPZX?yH=- LCYjAR960_TVEQbR diff --git a/Documentation/freeports.html b/Documentation/freeports.html deleted file mode 100644 index 83bda1fbd4..0000000000 --- a/Documentation/freeports.html +++ /dev/null @@ -1,23 +0,0 @@ - - -Free NuttX Ports - - -
                  - - - - -
                  - - - - - If you have a hardware platform that you would like to see NuttX ported to then have I got a deal for you: - I am willing to port NuttX to run on your hardware FREE. - If you are interested, contact gnutt at nuttx.org. - >>back<<. -
                  - - - diff --git a/Documentation/index.html b/Documentation/index.html deleted file mode 100644 index ea2e3a3271..0000000000 --- a/Documentation/index.html +++ /dev/null @@ -1,20 +0,0 @@ - - -NuttX - - - - - - - - - <body> - <p> - This page uses frames, but your browser doesn't support them. - Try this <a href="http://www.nuttx.org/Documentation/NuttX.html">link</a>. - </p> - </body> - - - From a0d28e24156f4cd47d24a6f53d97b56a51341bce Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 28 Jun 2015 08:08:57 -0600 Subject: [PATCH 1418/1518] Fix references to the no-longer-existent misc/ directory in comments, README files, and documentation --- Documentation/NuttShell.html | 2 +- Documentation/NuttX.html | 84 +++------------------------- Documentation/NuttXNxFlat.html | 6 +- Documentation/NuttxPortingGuide.html | 12 ++-- 4 files changed, 15 insertions(+), 89 deletions(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index 244a7889a3..206d284960 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -4068,7 +4068,7 @@ mount -t vfat /dev/ram1 /tmp
                • The genromfs tool(available from http://romfs.sourceforge.net) or included within the NuttX buildroot toolchain. - There is a snapshot here: misc/tools/genromfs-0.5.2.tar.gz. + There is also a snapshot available in the NuttX tools repository here.

                • diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 34164366f6..cbef2d4552 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1315,15 +1315,15 @@

              • pascal.

                  - Release notes for all released versions on pascal are available in the Bitbucket GIT - The ChangeLog for all releases of pascal is available at the bottom of the ChangeLog file that can viewed in the Bitbucket GIT. + Release notes for all released versions on pascal are available in the Bitbucket GIT + The ChangeLog for all releases of pascal is available at the bottom of the ChangeLog file that can viewed in the Bitbucket GIT.

              • buildroot.

                  Release notes for buildroot 1.14 are available here; - release notes for all released versions on buildroot are available in the Bitbucket GIT - The ChangeLog for all releases of buildroot is available at the bottom of the ChangeLog file that can viewed in the Bitbucket GIT. + release notes for all released versions on buildroot are available in the Bitbucket GIT + The ChangeLog for all releases of buildroot is available at the bottom of the ChangeLog file that can viewed in the Bitbucket GIT.

              @@ -1373,7 +1373,6 @@
            • Intel
            • @@ -1455,7 +1454,6 @@
            • Intel
            • @@ -2689,21 +2687,6 @@ nsh> Chip support for these STM32 "Value Line" family was contributed by Mike Smith and users have reported that they have successful brought up NuttX on their proprietary boards using this logic.

              -
            • -

              - Generic Board Support (obsoleted) - This logic was extended to support the high density STM32F100RC chips by Freddie Chopin - There is generic support for STM32F100RC boards. - Refer to the NuttX board README file for further information. -

              -

              - Obsoleted. - This generic board supported has been obsoleted. - The code has been moved out of the NuttX source tree but can still be found be found in Obsoleted directory. - This support was obsoleted because of a decision to stop support of generic board configurations. - Generic board configurations do not provide support for any specific hardware but can be useful only if there are not other examples for the setup for a particular architecture. -

              -
            • STM32VL-Discovery. @@ -4298,38 +4281,6 @@ Mem: 29232 5920 23312 23312

            - - - - Intel 80C52 Microcontroller. - - - -
            - -

            - PJRC 87C52 Development Board. - This port uses the PJRC 87C52 development system and the SDCC toolchain under Linux or Cygwin. -

            -
              -

              - STATUS: - This port is complete but not stable with timer interrupts enabled. - There seems to be some issue when the stack pointer enters into the indirect IRAM - address space during interrupt handling. - This architecture has not been built in some time will likely have some compilation - problems because of SDCC compiler differences. - Refer to the NuttX board README file for further information. -

              -
            -

            - Obsoleted. - This architecture has been obsoleted. - The code has been moved out of the NuttX source tree but can still be found be found in Obsoleted directory. - This support was obsoleted because (1) the architecture limitations of the 8051 family make ongoing development of more advanced NuttX features too difficult, and (2) although the basic port was marginally functional, it has never really been demonstrated convincingly in any application. -

            - - @@ -4712,25 +4663,6 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1); Refer to the NuttX board README file for further information.

            -
          • -

            - Toyaga 16z (obsoleted). - This port if for the Toyaga 16z board that also use the Zilog ZNEOZ16F2811AL20EG microntroller with the Zilog ZDS-II Windows command line tools. - The development environment is either Windows native or Cygwin under Windows. -

            -

            - STATUS: - The initial release of support for the 16z board was made available in NuttX version 6.33. - Both the 16z board and the NuttX port are works in progress and are not ready for usage as of NuttX-7.2. - Refer to the NuttX board README file for further information. -

            -

            - Obsoleted. - This board support has been obsoleted. - The code has been moved out of the NuttX source tree but can still be found be found in Obsoleted directory. - This support was obsoleted because of technical issues that make NuttX unusable on the board at least in the short term. This configuration may return to the NuttX source tree at some time in the future. -

            -
          @@ -4841,9 +4773,7 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1); Z80 Instruction Set Simulator. This port uses the SDCC toolchain under Linux or Cygwin (verified using version 2.6.0). - This port has been verified using only a Z80 instruction simulator. - That simulator can be found in the NuttX GIT - here. + This port has been verified using only a Z80 instruction simulator called z80sim.

            @@ -4913,8 +4843,8 @@ avr, m68k, m68hc11, m68hc12, m9s12, blackfin, m32c, h8, and SuperH ports.NuttX GIT. + The buildroot GIT may be accessed in the NuttX + buildroot GIT.

            diff --git a/Documentation/NuttXNxFlat.html b/Documentation/NuttXNxFlat.html index e8f68046f8..1a05023375 100644 --- a/Documentation/NuttXNxFlat.html +++ b/Documentation/NuttXNxFlat.html @@ -164,7 +164,7 @@
          • A linker to bind ELF binaries to produce the NXFLAT binary format - (See GIT). + (See GIT).
          @@ -321,10 +321,10 @@
        • Unpack <some-dir>/buildroot-0.x.y.tar.gz using a command like tar zxf buildroot-0.x.y. - This will result in a new directory like <some-dir>/misc/buildroot-0.x.y + This will result in a new directory like <some-dir>/buildroot-0.x.y
        • - Move this into position: mv <some-dir>/misc/buildroot-0.x.y<some-dir>/buildroot + Move this into position: mv <some-dir>/buildroot-0.x.y<some-dir>/buildroot
        • cd <some-dir>/buildroot diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index c42ea74ea3..ee746d9a30 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -665,9 +665,7 @@
        • arch/z80/include/z80 and arch/z80/src/z80: The Z80 port was released in nuttx-0.3.6 has been verified using only a - z80 instruction simulator. - The set simulator can be found in the NuttX GIT at - https://bitbucket.org/patacongo/nuttx/src/master/misc/sims/z80sim. + z80 instruction simulator called z80sim. This port also uses the SDCC toolchain (http://sdcc.sourceforge.net/) (verified with version 2.6.0 and 2.7.0).
        • @@ -1058,11 +1056,9 @@
        • configs/z80sim: - z80 Microcontroller. This port uses a Z80 instruction set simulator. - That simulator can be found in the NuttX GIT - here. - This port also the SDCC toolchain - under Linux or Cygwin(verified with version 2.6.0). + z80 Microcontroller. This port uses a Z80 instruction set simulator + called z80sim. + This port also the SDCC toolchain under Linux or Cygwin(verified with version 2.6.0).
        • configs/z8encore000zco From 549b63c56692cdd87501ec2d1a84371016c6a88e Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 28 Jun 2015 09:14:52 -0600 Subject: [PATCH 1419/1518] Correct many bitbucket.org URLs --- Documentation/NuttX.html | 44 ++++++++++++-------------- Documentation/NuttXNxFlat.html | 4 +-- Documentation/README.html | 58 +++++++++++++++++----------------- 3 files changed, 51 insertions(+), 55 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index cbef2d4552..2d4197e240 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -231,7 +231,7 @@

          Compatible GNU toolchains based on buildroot available for - download + download to provide a complete development environment for many architectures.

          @@ -1124,7 +1124,7 @@

        • The Pascal add-on is available for download from the - Bitbucket.org + Bitbucket.org website.
        • @@ -1292,24 +1292,21 @@
          • nuttx.

              - Release notes for NuttX 7.10 are available here; - release notes for all released versions on NuttX are available in the Bitbucket GIT. + Release notes for all released versions on NuttX are available in the Bitbucket GIT. The ChangeLog for all releases of NuttX is available in the ChangeLog file that can viewed in the Bitbucket GIT. The ChangeLog for the current release is at the bottom of that file.

          • apps.

              - Release notes for NuttX 7.10 are available here; - release notes for all released versions on NuttX are available in the Bitbucket GIT - The ChangeLog for the all releases of apps is available in the ChangeLog file that can viewed in the Bitbucket GIT. + Release notes for all released versions on NuttX are available in the Bitbucket GIT + The ChangeLog for the all releases of apps/ is available in the ChangeLog file that can viewed in the Bitbucket GIT. The ChangeLog for the current release is at the bottom of that file.

          • NxWidgets.

              - Release notes for NxWidgets 1.13 are available here; - release notes for all released versions on NxWidgets are available in the BitBucket GIT + Release notes for all released versions on NxWidgets are available in the BitBucket GIT The ChangeLog for all releases of NxWidgets is available at the bottom of the ChangeLog file that can viewed in the Bitbucket GIT.

            @@ -1321,9 +1318,8 @@
        • buildroot.

            - Release notes for buildroot 1.14 are available here; - release notes for all released versions on buildroot are available in the Bitbucket GIT - The ChangeLog for all releases of buildroot is available at the bottom of the ChangeLog file that can viewed in the Bitbucket GIT. + Release notes for all released versions on buildroot are available in the Bitbucket GIT + The ChangeLog for all releases of buildroot is available at the bottom of the ChangeLog file that can viewed in the Bitbucket GIT.

        @@ -1664,7 +1660,7 @@ 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS with Windows native toolchain (CodeSourcery or devkitARM), or 4) Native Windows. A DIY toolchain for Linux or Cygwin is provided by the NuttX - buildroot + buildroot package.

        @@ -1732,7 +1728,7 @@ 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS with Windows native toolchain (CodeSourcery or devkitARM), or 4) Native Windows. A DIY toolchain for Linux or Cygwin is provided by the NuttX - buildroot + buildroot package.

        @@ -2179,7 +2175,7 @@ nsh> 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS with Windows native toolchain, or 4) Native Windows. A DIY toolchain for Linux or Cygwin is provided by the NuttX - buildroot package. + buildroot package.

        @@ -2388,7 +2384,7 @@ nsh> 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS with Windows native toolchain (CodeSourcery or devkitARM), or 4) Native Windows. A DIY toolchain for Linux or Cygwin is provided by the NuttX - buildroot + buildroot package.

        @@ -2887,7 +2883,7 @@ nsh> 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS with Windows native toolchain (RIDE7, CodeSourcery or devkitARM), or 4) Native Windows. A DIY toolchain or Linux or Cygwin is provided by the NuttX - buildroot + buildroot package.

        @@ -3039,7 +3035,7 @@ nsh> 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS with Windows native toolchain (CodeSourcery or devkitARM), or 4) Native Windows. A DIY toolchain for inux or Cygwin is provided by the NuttX - buildroot + buildroot package.

        @@ -3216,7 +3212,7 @@ nsh> 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS with Windows native toolchain (CodeSourcery devkitARM or Code Red), or 4) Native Windows. A DIY toolchain for Linux or Cygwin is provided by the NuttX - buildroot package. + buildroot package.

        @@ -3993,7 +3989,7 @@ Mem: 29232 5920 23312 23312

        Development Environments: 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU Cortex-M3 or 4 toolchain, 3) Cygwin/MSYS with Windows native GNU Cortex-M3 or M4 toolchain (CodeSourcery or devkitARM), or 4) Native Windows. A DIY toolchain for Linux or Cygwin is provided by the NuttX - buildroot package. + buildroot package.

        @@ -4190,7 +4186,7 @@ Mem: 29232 5920 23312 23312 Development Environments: 1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU toolchain, 3) Cygwin/MSYS with Windows native toolchain, or 4) Native Windows. All testing, however, has been performed using the NuttX DIY toolchain for Linux or Cygwin is provided by the NuttX - buildroot package. + buildroot package. As a result, that toolchain is recommended.

        @@ -4267,7 +4263,7 @@ Mem: 29232 5920 23312 23312

        Both use a GNU arm-nuttx-elf toolchain* under Linux or Cygwin. - The NuttX buildroot provides a properly patched GCC 3.4.4 toolchain that is highly optimized for the m9s12x family. + The NuttX buildroot provides a properly patched GCC 3.4.4 toolchain that is highly optimized for the m9s12x family.

          @@ -4839,7 +4835,7 @@ avr, m68k, m68hc11, m68hc12, m9s12, blackfin, m32c, h8, and SuperH ports.buildroot available for download from the - NuttX Bitbucket.org + NuttX Bitbucket.org page. This download may be used to build a NuttX-compatible ELF toolchain under Linux or Cygwin. That toolchain will support ARM, m68k, m68hc11, m68hc12, and SuperH ports. @@ -4880,7 +4876,7 @@ avr, m68k, m68hc11, m68hc12, m9s12, blackfin, m32c, h8, and SuperH ports. This combination works well too. It works just as well as the native Linux environment except that compilation and build times are a little longer. - The custom NuttX buildroot referenced above may be build in the Cygwin environment as well. + The custom NuttX buildroot referenced above may be build in the Cygwin environment as well.

          diff --git a/Documentation/NuttXNxFlat.html b/Documentation/NuttXNxFlat.html index 1a05023375..62eb03e735 100644 --- a/Documentation/NuttXNxFlat.html +++ b/Documentation/NuttXNxFlat.html @@ -305,7 +305,7 @@ In order to use NXFLAT, you must use special NXFLAT tools to create the binary module in FLASH. To do this, you will need to download the buildroot package and build it on your Linux or Cygwin machine. The buildroot can be downloaded from - Sourceforge. + Bitbucket.org. You will need version 0.1.7 or later.

          @@ -435,7 +435,7 @@ cat ../syscall/syscall.csv ../libc/libc.csv | sort >tmp.csv

          Below is a snippet from an NXFLAT make file (simplified from NuttX - + Hello, World! example.

          diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 2ba7ac9794..e8254f2cc8 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

          NuttX RTOS

          -

          Last Updated: June 9, 2015

          +

          Last Updated: June 29, 2015

          @@ -1580,7 +1580,7 @@

          STATUS: Does not support interrupts but is otherwise fully functional. - Refer to the NuttX README file for further information. + Refer to the NuttX README file for further information.

        @@ -1605,7 +1605,7 @@

        STATUS: This port is complete, verified, and included in the initial NuttX release. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

        @@ -1630,7 +1630,7 @@ This port was contributed by Denis Carilki and includes the work of Denis Carikli, Alan Carvalho de Assis, and Stefan Richter. Calypso support first appeared in NuttX-6.17 with LCD drivers. Support for the Calypso keyboard was added in NuttX-6.24 by Denis Carilki. - Refer to the NuttX board README files for the Compal E88, Compal E99 and Pirelli DP-L10 phones for further information. + Refer to the NuttX board README files for the Compal E88, Compal E99 and Pirelli DP-L10 phones for further information.

        @@ -1657,7 +1657,7 @@ timer interrupts, serial console, USB driver, and SPI-based MMC/SD card support. A verified NuttShell (NSH) configuration is also available. - Refer to the NuttX board README files for the mcu123.com and for the ZPA213X/4XPA boards for further information. + Refer to the NuttX board README files for the mcu123.com and for the ZPA213X/4XPA boards for further information.

        Development Environments: @@ -1692,7 +1692,7 @@ The port is complete and verified. As of NuttX 5.3, the port included only basic timer interrupts and serial console support. In NuttX 7.1, Lizhuoyi contributed additional I2C and SPI drivers. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

        Development Environments: (Same as for the NXP LPC214x). @@ -1725,7 +1725,7 @@ SD cards). An SPI-based ENC28J60 Ethernet driver for add-on hardware is available and but has not been fully verified on the Olimex board (due to issues powering the ENC28J60 add-on board). - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

        Development Environments: @@ -1757,7 +1757,7 @@ STATUS: This port has stalled due to development tool issues. Coding is complete on the basic port (timer, serial console, SPI). - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

        @@ -1786,7 +1786,7 @@ The basic port (timer interrupts, serial ports, network, framebuffer, etc.) is complete. All implemented features have been verified with the exception of the USB device-side driver; that implementation is complete but untested. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

        @@ -1822,7 +1822,7 @@ However, as of this writing, I have not had the opportunity to verify this new feature.

        - Refer to the Embedded Artists EA3131 board README file for further information. + Refer to the Embedded Artists EA3131 board README file for further information.

        @@ -1838,7 +1838,7 @@ NOTE: That driver should work on the EA3131 as well. However, the EA3131 uses a PCA9532 PWM part to controller the port power so the it would not quite be a simple drop-in.

        - Refer to the Olimex LPC-H3131 board README file for further information. + Refer to the Olimex LPC-H3131 board README file for further information.

        @@ -1866,7 +1866,7 @@ At this point, verification of the EA3152 port has been overcome by events and may never happen. However, the port is available for anyone who may want to use it. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

        @@ -2017,7 +2017,7 @@ NuttX-7.4 added support for the on-board WM8904 CODEC chip and for Tickless operation.

        - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

      • @@ -2038,7 +2038,7 @@ The SAMA5D3 Xplained board does not have NOR FLASH and, as a consequence NuttX must boot into SDRAM with the help of U-Boot.

        - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

      • @@ -2069,7 +2069,7 @@ The TM7000 LCDC with the maXTouch multi-touch controller are also fully support in a special NxWM configuration for that larger display. Support for a graphics media player is included (although there were issues with the WM8904 audio CODEC on my board). An SRAM bootloader was also included. - Refer to the NuttX board README file for current status. + Refer to the NuttX board README file for current status.

        @@ -2111,7 +2111,7 @@ This port was developed on the v1 board, but the others may be compatible:

        - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

        STATUS. @@ -2144,7 +2144,7 @@ This initial support is very minimal: There is a NuttShell (NSH) configuration that might be the basis for an application development. As of this writing, more device drivers are needed to make this a more complete port. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

        Memory Usage. @@ -2208,7 +2208,7 @@ nsh> As of NuttX-6.28 more device driver development would be needed to make this a complete port, particularly to support USB OTG. A TSI and a SPI driver were added in NuttX-6.29. Alan contributed a PWM driver in NuttX-6.32. - Refer to the Freedom KL25Z board README file for further information. + Refer to the Freedom KL25Z board README file for further information.

        @@ -2222,7 +2222,7 @@ nsh> STATUS. This is the work of Michael Hope. Verified, initial support for the Teensy-LC first appeared in NuttX-7.10. - Refer to the Teensy-LC board README file for further information. + Refer to the Teensy-LC board README file for further information.

        @@ -2246,7 +2246,7 @@ nsh> This work was contributed in NuttX 7.8 by Derek B. Noonburg. The board support is very similar to the Freedom-KL25Z. It was decided to support this a a separate board, however, due to some small board-level differences. - Refer to the Freedom KL26Z board README file for further information. + Refer to the Freedom KL26Z board README file for further information.

        @@ -2269,7 +2269,7 @@ nsh> The initial SAMD20 Xplained Pro release (NuttX 7.1) included a functional NuttShell (NSH) configuration. An SPI driver was also included to support the OLED1 and I/O1 modules. That SPI driver, however, was not completed verified due to higher priority tasks that came up (I hope to get back to this later). - Refer to the SAMD20 Explained Pro board README file for further information. + Refer to the SAMD20 Explained Pro board README file for further information.

        @@ -2293,7 +2293,7 @@ nsh> Initial support for the SAML21 Xplained Pro was release in the NuttX 7.10. This initial support included a basic configuration for the NuttShell (NSH) (see the NSH User Guide). - Refer to the SAML21 Explained Pro board README file for further information. + Refer to the SAML21 Explained Pro board README file for further information.

        @@ -2315,7 +2315,7 @@ nsh>

        STATUS: The first released version was provided in NuttX 7.10. - Refer to the board README.txt file for further information. + Refer to the board README.txt file for further information.

        @@ -2356,7 +2356,7 @@ nsh>

        STATUS: This port was was released in NuttX 6.14. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

        @@ -2380,7 +2380,7 @@ nsh> The current port includes timer, serial console, Ethernet, SSI, and microSD support. There are working configurations to run the NuttShell (NSH), the NuttX networking test, and the uIP web server. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

        @@ -2420,7 +2420,7 @@ nsh> NOTE: As it is configured now, you MUST have a network connected. Otherwise, the NSH prompt will not come up because the Ethernet driver is waiting for the network to come up. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

        @@ -2446,7 +2446,7 @@ nsh> STATUS: This port was released in NuttX 5.10. Features are the same as with the Eagle-100 LM3S6918 described above. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

        @@ -2463,7 +2463,7 @@ nsh> Header file support was contributed by Tiago Maluta for this part. Jose Pablo Rojas V. is used those header file changes to port NuttX to the TI/Stellaris EKK-LM3S9B96. That port was available in the NuttX-6.20 release. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

        @@ -2506,7 +2506,7 @@ nsh> DMA and USART-based SPI supported are included, but not fully tested.

        - Refer to the EFM32 Gecko Starter Kit README.txt file for further information. + Refer to the EFM32 Gecko Starter Kit README.txt file for further information.

      • @@ -2530,7 +2530,7 @@ nsh> The board suppport is complete but untested because of tool-related issues. An OpenOCD compatible, SWD debugger would be required to make further progress in testing.

        - Refer to the Olimex EFM32G880F120-STK README.txt for further information. + Refer to the Olimex EFM32G880F120-STK README.txt for further information.

      • @@ -2625,7 +2625,7 @@ nsh> This initial support includes a configuration using the NuttShell (NSH) that might be the basis for an application development. A driver for the on-board segment LCD is included as well as an option to drive the segment LCD from an NSH "built-in" command. As of this writing, a few more things are needed to make this a more complete port: 1) Verfication of more device drivers (timers, quadrature encoders, PWM, etc.), and 2) logic that actually uses the low-power consumption modes of the EnergyLite part. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

        Memory Usage. @@ -2692,7 +2692,7 @@ nsh> STM32VL-Discovery. In NuttX-6.33, support for the STMicro STM32VL-Discovery board was contributed by Alan Carvalho de Assis. The STM32VL-Discovery board features an STM32F100RB MCU. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

        @@ -2735,7 +2735,7 @@ nsh> STATUS: The basic STM32F103C8 port was released in NuttX version 6.28. This work was contributed by Laurent Latil. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

        @@ -2760,7 +2760,7 @@ nsh> STM3210E-EVAL. A port for the STMicro STM3210E-EVAL development board that features the STM32F103ZET6 MCU. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

      • @@ -2768,21 +2768,21 @@ nsh> ISOTEL NetClamps VSN. The ISOTEL NetClamps VSN V1.2 ready2go sensor network platform based on the STMicro STM32F103RET6. Contributed by Uros Platise. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

      • HY-Mini STM32v board. This board is based on the STM32F103VCT chip. Port contributed by Laurent Latil. - Refer to the NuttX board README file. + Refer to the NuttX board README file.

      • The M3 Wildfire development board (STM32F103VET6), version 2. See http://firestm32.taobao.com (the current board is version 3). - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

      • @@ -2790,7 +2790,7 @@ nsh> LeafLab's Maple and Maple Mini boards. These boards are based on the STM32F103RBT6 chip for the standard version and on the STM32F103CBT6 for the mini version. See the LeafLabs web site for hardware information; - see the NuttX board README file for further information about the NuttX port. + see the NuttX board README file for further information about the NuttX port.

      • @@ -2799,7 +2799,7 @@ nsh> The Spark boards are based on the STM32F103CBT6 chip and feature wireless networking using the TI CC3000 WLAN module. See the Spark web site for hardware information; The emulated Spark is a base board for the Maple Mini board (see above) developed by David Sidrane that supports Spark development while we all way breathlessly for or Spark boards. - see the NuttX board README file for further information about the NuttX port. + see the NuttX board README file for further information about the NuttX port.

        Initially Spark support was introduced in NuttX 6.31 and completed in NuttX 6.32. @@ -2928,7 +2928,7 @@ nsh> (1) Basic Cortex-M3 port, (2) Ethernet, (3) On-board LEDs. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

      • @@ -2955,7 +2955,7 @@ nsh> STATUS: Networking and touchscreen support are well test. But, at present, neither USB nor LCD functionality have been verified. - Refer to the SViewtool STM32F103/F107 README file for further information. + Refer to the SViewtool STM32F103/F107 README file for further information.

      • @@ -2998,7 +2998,7 @@ nsh> STATUS: The peripherals of the STM32 F2 family are compatible with the STM32 F4 family. See discussion of the STM3240G-EVAL board below for further information. - Refer also to the NuttX board README file for further information. + Refer also to the NuttX board README file for further information. @@ -3031,7 +3031,7 @@ nsh>

        Subsequent NuttX releases will extend this port and add support for the SDIO-based SD cards and USB device. - Refer to the NuttX board README file for further information about this port. + Refer to the NuttX board README file for further information about this port.

        @@ -3061,7 +3061,7 @@ nsh> STATUS: As of this writing, the basic port is code complete and a fully verified configuration exists for the NuttShell NSH). The first fully functional Arduino Due port was released in NuttX-6.29. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

        @@ -3124,7 +3124,7 @@ nsh>

      • The first functional release for the NXP LPC1768/Nucleus2G occured with NuttX 5.7 with Some additional enhancements through NuttX-5.9. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.
      • @@ -3144,7 +3144,7 @@ nsh>
        • Support for the mbed board was contributed by Dave Marples and released in NuttX-5.11. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

        @@ -3168,7 +3168,7 @@ nsh> The NuttX-5.17 released added support for low-speed USB devices, interrupt endpoints, and a USB host HID keyboard class driver.
      • - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.
      • @@ -3187,7 +3187,7 @@ nsh> An fully verified board configuration is included in NuttX-6.2. The Code Red toolchain is supported under either Linux or Windows. Verified configurations include DHCPD, the NuttShell (NSH), NuttX graphis (NX), THTTPD, and USB mass storage device. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

      • @@ -3198,7 +3198,7 @@ nsh> The initial release was included NuttX-6.26. The Nuttx Buildroot toolchain is used by default. Verifed configurations include the "Hello, World!" example application and a THTTPD demonstration. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

      • @@ -3206,7 +3206,7 @@ nsh>

        This board configuration was contributed and made available in NuttX-6.20. As contributed board support, I am unsure of what all has been verfied and what has not. - See the Microment website Lincoln60 board and the NuttX board README file for further information about the Lincoln board. + See the Microment website Lincoln60 board and the NuttX board README file for further information about the Lincoln board.

      • @@ -3241,7 +3241,7 @@ nsh> The NSH configuration includes verified support for a DMA-based SD card interface. The frame-buffer LCD driver is functional and uses the SDRAM for frame-buffer memory. A touchscreen interface has been developed but there appears to be a hardware issue with the WaveShare implementation of the XPT2046 touchscreen controller. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information. @@ -3264,7 +3264,7 @@ nsh> STATUS: There are no K20 boards yet supported. Work is underway on the the PJRC Teensy-3.1 board and that port is expected in NuttX-7.11. - Refer to the Teensy-3.1 board README file for further information. + Refer to the Teensy-3.1 board README file for further information.

        @@ -3292,7 +3292,7 @@ nsh> (2) bring up the NuttShell NSH, (3) develop support for the SDHC-based SD card, (4) develop support for USB host and device, and (2) develop an LCD driver. NOTE: Some of these remaining tasks are shared with the K60 work described below. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

        @@ -3322,7 +3322,7 @@ nsh> the Ethernet driver is completely untested. Additional work remaining includes: (1) integrate the Ethernet and SDHC drivers, and (2) develop support for USB host and device. NOTE: Most of these remaining tasks (excluding the Ethernet driver) are the same as the pending K40 tasks described above. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

        @@ -3364,7 +3364,7 @@ nsh> The basic port for the STM32F3-Discover was first released in NuttX-6.26. Many of the drivers previously released for the STM32 F1, Value Line, and F2 and F4 may be usable on this platform as well. New drivers will be required for ADC and I2C which are very different on this platform. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

        @@ -3406,7 +3406,7 @@ nsh>
      • NuttX-7.2 The basic port for STMicro Nucleo F401RE board was contributed by Frank Bennett.
      • - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.
      • @@ -3459,7 +3459,7 @@ nsh> Support for the Olimex STM32 H405 board was added in NuttX-7.3.
      • - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.
      • @@ -3490,7 +3490,7 @@ nsh> STATUS: The basic port for the STM32F4-Discovery was contributed by Mike Smith and was first released in NuttX-6.14. All drivers listed for the STM3240G-EVAL are usable on this platform as well. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

        @@ -3507,7 +3507,7 @@ nsh>

      • Battery connect and batter charger circuit.
      • - See the Mikroelektronika website for more information about this board and the NuttX board README file for further information about the NuttX port. + See the Mikroelektronika website for more information about this board and the NuttX board README file for further information about the NuttX port.

          @@ -3519,7 +3519,7 @@ nsh>

          Olimex STM32 H405. Support for the Olimex STM32 H405 development board was contributed by Martin Lederhilger and appeared in NuttX-7.3. - See the NuttX board README file for further information about the NuttX port. + See the NuttX board README file for further information about the NuttX port.

          @@ -3573,7 +3573,7 @@ nsh>

        - Refer to the STM32F429I-Discovery board README file for further information. + Refer to the STM32F429I-Discovery board README file for further information.

        @@ -3597,7 +3597,7 @@ nsh>
        • STATUS: - Refer to the NuttX board README file for more detailed information about this port. + Refer to the NuttX board README file for more detailed information about this port.

        • @@ -3644,7 +3644,7 @@ nsh>
          • STATUS: - Refer to the NuttX board README file for more detailed information about this port. + Refer to the NuttX board README file for more detailed information about this port.

          • @@ -3707,7 +3707,7 @@ nsh>

          - Refer to the EK-TM4C123GXL board README file for more detailed information about this port. + Refer to the EK-TM4C123GXL board README file for more detailed information about this port.

        @@ -3733,7 +3733,7 @@ nsh>

        - Refer to the EK-TM4C1294XL board README file for more detailed information about this port. + Refer to the EK-TM4C1294XL board README file for more detailed information about this port.

        @@ -3763,11 +3763,11 @@ nsh>
      • This board supports included two configurations for the NuttShell (NSH). Both are networked enabled: One configured to support IPv4 and one configured to supported IPv6. - Instructions are included in the board README file for configuring both IPv4 and IPv6 simultaneously.. + Instructions are included in the board README file for configuring both IPv4 and IPv6 simultaneously..
      • - Refer to the DK-TM4C129X board README file for more detailed information about this port. + Refer to the DK-TM4C129X board README file for more detailed information about this port.

        @@ -3790,7 +3790,7 @@ nsh> The basic port was released in NuttX-7.5. This basic board supported includes an verified configuration for the NuttShell NSH). Key wireless networking capability is still missing. - Refer to the CC3200 LaunchPad board README file for more detailed information about this port. + Refer to the CC3200 LaunchPad board README file for more detailed information about this port.

        @@ -3826,7 +3826,7 @@ nsh>

        - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

        Memory Usage. @@ -3902,7 +3902,7 @@ Mem: 29232 5920 23312 23312 A DMA-base SPI driver is supported and has been verified with the AT25 Serial FLASH. Touchscreen and LCD support was added in NuttX-7.3, but has not been fully integrated as of this writing. The SAM4E-EK should be compatible with most of the other SAM3/4 drivers (like HSMCI, DMAC, etc.) but those have not be verified on the SAM4E-EK as of this writing. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information. @@ -3931,7 +3931,7 @@ Mem: 29232 5920 23312 23312 Support for the on-board 1MB SRAM was added in NuttX-6.29. An RTT driver was Bob Doiron in NuttX-7.3. Bob also added an high resolution RTC emulation using the RTT for the sub-second counter. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

        @@ -3946,7 +3946,7 @@ Mem: 29232 5920 23312 23312 As of this writing, the basic port is code complete and a fully verified configuration exists for the the NuttShell NSH). The first fully functional SAM4S Xplained Pro port was released in NuttX-7.2. This supported also added HSMCI, RTC, and watchdog and verified support for USB device. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

        @@ -3979,7 +3979,7 @@ Mem: 29232 5920 23312 23312 A new Ethernet MAC driver has been developed and is functional in the NSH configuration. A DMA-base SPI driver is supported and has been verified with the AT25 Serial FLASH. The SAM4E-EK should be compatible with most of the other SAM3/4 drivers (like HSMCI, DMAC, etc.) but those have not be verified on the SAM4E-EK as of this writing. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information. @@ -4040,7 +4040,7 @@ Mem: 29232 5920 23312 23312
      • Support for the (optional) maXTouch Xplained Pro LCD module (still a work in progress).
      • - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

        @@ -4082,14 +4082,14 @@ Mem: 29232 5920 23312 23312

        STATUS: Work on this port has stalled due to toolchain issues. Complete, but untested code for this port appears in the NuttX 6.5 release. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

        LowPowerLab MoteinoMEGA. This port of NuttX to the MoteinoMEGA from LowPowerLab. The MoteinoMEGA is based on an Atmel ATMega1284P. - See the LowPowerlab website and the board README file for further information. + See the LowPowerlab website and the board README file for further information.

          @@ -4124,7 +4124,7 @@ Mem: 29232 5920 23312 23312 The basic port was released in NuttX-6.5. This basic port consists only of a "Hello, World!!" example that demonstrates initialization of the OS, creation of a simple task, and serial console output. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

        @@ -4146,7 +4146,7 @@ Mem: 29232 5920 23312 23312 An SPI driver and a USB device driver exist for the AT90USB as well as a USB mass storage configuration. However, this configuration is not fully debugged as of the NuttX-6.5 release. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

        @@ -4239,7 +4239,7 @@ Mem: 29232 5920 23312 23312 The basic, port was be released in NuttX-5.13. A complete port will include drivers for additional AVR32 UC3 devices -- like SPI and USB --- and will be available in a later release, time permitting. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

        @@ -4276,7 +4276,7 @@ Mem: 29232 5920 23312 23312 However, testing has not yet begun due to issues with BDMs, Code Warrior, and the paging in the build process. Progress is slow, but I hope to see a fully verified MC9S12NE64 port in the near future. - Refer to the NuttX board README files for DEMO9S12NE64 and for the NE64 /PoE Badge for further information. + Refer to the NuttX board README files for DEMO9S12NE64 and for the NE64 /PoE Badge for further information.

        @@ -4303,7 +4303,7 @@ Mem: 29232 5920 23312 23312 The port is reported to be functional on the Bifferboard as well. In NuttX 7.1, Lizhuoyi contributed additional keyboard and VGA drivers. This is a great, stable starting point for anyone interest in fleshing out the x86 port! - Refer to the NuttX README file for further information. + Refer to the NuttX README file for further information.

        @@ -4331,7 +4331,7 @@ Mem: 29232 5920 23312 23312 This initial port of NuttX to RGMP was provided in NuttX-6.3. This initial RGP port provides only minimal driver support and does not use the native NuttX interrupt system. This is a great, stable starting point for anyone interest in working with NuttX under RGMP! - Refer to the NuttX README file for further information. + Refer to the NuttX README file for further information.

        @@ -4362,7 +4362,7 @@ Mem: 29232 5920 23312 23312 The PGA117, however, is not yet fully integrated to support ADC sampling. See the NSH User Guide for further information about NSH. The first verified port to the Mirtoo module was available with the NuttX 6.20 release. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

        @@ -4396,7 +4396,7 @@ Mem: 29232 5920 23312 23312 An untested USB device-side driver is available in the source tree. A more complete port would include support of the USB OTG port and of the LCD display on this board. Those drivers are not yet available as of this writing. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

        @@ -4412,7 +4412,7 @@ Mem: 29232 5920 23312 23312 STATUS: The basic port is code complete and fully verified in NuttX 6.13. Available configurations include the NuttShell (NSH - see the NSH User Guide). - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

      • UBW32 Board from Sparkfun This is the port to the Sparkfun UBW32 board. @@ -4425,7 +4425,7 @@ Mem: 29232 5920 23312 23312 The basic port is code complete and fully verified in NuttX 6.18. Available configurations include the the NuttShell (NSH - see the NSH User Guide). USB has not yet been fully tested but on first pass appears to be functional. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

        @@ -4456,7 +4456,7 @@ Mem: 29232 5920 23312 23312 A verified configuration is available for the NuttShel (NSH) appeared in NuttX-6.16. Board support includes a verified USB (device-side) driver. Also included are a a verified Ethernet driver, a partially verified USB device controller driver, and an unverifed SPI driver. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

      • Mikroelektronika PIC32MX7 Mulitmedia Board (MMB). A port has been completed for the Mikroelektronika PIC32MX7 Multimedia Board (MMB). @@ -4479,7 +4479,7 @@ Mem: 29232 5920 23312 23312 However, additional verification and tuning of this driver is required. Further display/touchscreen verification would require C++ support (for NxWidgets and NxWM). Since I there is no PIC32 C++ is the free version of the MPLAB C32 toolchain, further graphics development is stalled. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

        @@ -4550,7 +4550,7 @@ Mem: 29232 5920 23312 23312
      • Ethernet (code complete, but not yet functional),
      • - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

        @@ -4596,7 +4596,7 @@ Mem: 29232 5920 23312 23312 (which has very limit SH-1 support to begin with), or perhaps with the CMON debugger. At any rate, I have exhausted all of the energy that I am willing to put into this cool old processor for the time being. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

        @@ -4633,7 +4633,7 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1);

        No workaround is known at this time. This is a show stopper for M16C. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

        @@ -4660,7 +4660,7 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1); The initial release of support for the z16f was made available in NuttX version 0.3.7. A working NuttShell (NSH) configuration as added in NuttX-6.33 (although a patch is required to work around an issue with a ZDS-II 5.0.1 tool problem). An ESPI driver was added in NuttX-7.2. - Refer to the NuttX board README file for further information. + Refer to the NuttX board README file for further information.

        @@ -4695,7 +4695,7 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1); The first integrated version was released in NuttX version 0.4.2 (with important early bugfixes in 0.4.3 and 0.4.4). As of this writing, that port provides basic board support with a serial console, SPI, and eZ80F91 EMAC driver. - Refer to the NuttX board README files for the ez80f0910200kitg and ez80f910200zcofile for further information. + Refer to the NuttX board README files for the ez80f0910200kitg and ez80f910200zcofile for further information.

        @@ -4726,7 +4726,7 @@ BFD_ASSERT (*plt_offset != (bfd_vma) -1); STATUS: This release has been verified only on the ZiLOG ZDS-II Z8Encore! chip simulation as of nuttx-0.3.9. - Refer to the NuttX board README files for the z8encore000zco and for thez8f64200100kit for further information. + Refer to the NuttX board README files for the z8encore000zco and for thez8f64200100kit for further information.

        +

        2.10 nuttx/libxx

        @@ -1599,7 +1599,7 @@ netutils/

        - If your application directory is not in the standard location (../apps or ../apps-<version>), + If your application directory is not in the standard location (../apps or ../apps-<version>), then you should also specify the location of the application directory on the command line like:

          @@ -1739,7 +1739,7 @@ The system can be re-made subsequently by just typing make.
                 An interface which is unique to a certain microprocessor should be prefixed with the name of the microprocessor, for example stm32_, and be prototyped in some header file in the arch/ directories.
               

          - There is also a arch//include//chip.h header file that can be used to communicate other microprocessor-specific information between the board logic and even application logic. + There is also a arch/<architecture>/include/<chip>/chip.h header file that can be used to communicate other microprocessor-specific information between the board logic and even application logic. Application logic may, for example, need to know specific capabilities of the chip. Prototypes in that chip.h header file should follow the microprocessor-specific naming convention.

          @@ -1751,7 +1751,7 @@ The system can be re-made subsequently by just typing make. These board_ definitions provide the interface between the board-level logic and the architecture-specific logic.

          - There is also a configs//include/board.h header file that can be used to communicate other board-specific information between the architecture logic and even application logic. + There is also a configs/<board>/include/board.h header file that can be used to communicate other board-specific information between the architecture logic and even application logic. Any definitions which are common between a single architecture and several boards should go in this board.h header file; include/nuttx/arch.his reserved for board-related definitions common to all architectures.

          @@ -1760,7 +1760,7 @@ The system can be re-made subsequently by just typing make. Board-Specific Interfaces. Any interface which is unique to a board should be prefixed with the board name, for example stm32f4discovery_. Sometimes the board name is too long so stm32_ would be okay too. - These should be prototyped in configs//src/.h and should not be used outside of that directory since board-specific definitions have no meaning outside of the board directory. + These should be prototyped in configs/<board>/src/<board>.h and should not be used outside of that directory since board-specific definitions have no meaning outside of the board directory.
        @@ -2468,7 +2468,7 @@ In order to use the Tickless OS, one must provide special support from the platf Currently these timer resources are only provided on a few platforms. An example implementation is for the simulation is at nuttx/arch/sim/src/up_tickless.c. There is another example for the Atmel SAMA5 at nuttx/arch/arm/src/sama5/sam_tickless.c. These paragraphs will explain how to provide the Tickless OS support to any platform. -

        4.3.4.3 Tickless Configuration Options

        +

        4.3.4.3 Tickless Configuration Options

        • @@ -2519,7 +2519,7 @@ config ARCH_SIM

        -

        4.3.4.4 Tickless Imported Intefaces

        +

        4.3.4.4 Tickless Imported Intefaces

        The interfaces that must be provided by the platform specified code are defined in include/nuttx/arch.h, listed below, and summarized in the following paragraphs:

        @@ -2586,7 +2586,7 @@ config ARCH_SIM
           #include <nuttx/arch.h>
           void up_timer_initialize(void);
          -
        +

        Description:

          Initializes all platform-specific timer facilities. This function is called early in the initialization sequence by up_intialize(). On return, the current up-time should be available from up_timer_gettime() and the interval timer is ready for use (but not actively timing). @@ -2609,7 +2609,7 @@ void up_timer_initialize(void);
             #include <nuttx/arch.h>
             int up_timer_gettime(FAR struct timespec *ts);
            -
          +

        Description:

        Return the elapsed time since power-up (or, more correctly, since up_timer_initialize() was called). This function is functionally equivalent to clock_gettime() for the clock ID CLOCK_MONOTONIC. This function provides the basis for reporting the current time and also is used to eliminate error build-up from small errors in interval time calculations.
          @@ -2633,7 +2633,7 @@ int up_timer_gettime(FAR struct timespec *ts);
             #include <nuttx/arch.h>
             int up_alarm_cancel(FAR struct timespec *ts);
            -
          +

        Description:

        Cancel the alarm and return the time of cancellation of the alarm. These two steps need to be as nearly atomic as possible. sched_timer_expiration() will not be called unless the alarm is restarted with up_alarm_start(). If, as a race condition, the alarm has already expired when this function is called, then time returned is the current time.
          @@ -2656,7 +2656,7 @@ int up_alarm_cancel(FAR struct timespec *ts);
             #include <nuttx/arch.h>
             int up_alarm_start(FAR const struct timespec *ts);
            -
          +

        Description:

        Start the alarm. sched_timer_expiration() will be called when the alarm occurs (unless up_alaram_cancel is called to stop it).
          @@ -2679,7 +2679,7 @@ int up_alarm_start(FAR const struct timespec *ts);
             #include <nuttx/arch.h>
             int up_timer_cancel(FAR struct timespec *ts);
            -
          +

        Description:

        Cancel the interval timer and return the time remaining on the timer. These two steps need to be as nearly atomic as possible. sched_timer_expiration() will not be called unless the timer is restarted with up_timer_start(). If, as a race condition, the timer has already expired when this function is called, then that pending interrupt must be cleared so that sched_timer_expiration() is not called spuriously and the remaining time of zero should be returned.
          @@ -2702,7 +2702,7 @@ int up_timer_cancel(FAR struct timespec *ts);
             #include <nuttx/arch.h>
             int up_timer_start(FAR const struct timespec *ts);
            -
          +

        Description:

        Start the interval timer. sched_timer_expiration() will be called at the completion of the timeout (unless up_timer_cancel() is called to stop the timing).
        -

        2.4.2 Summary of Files

        -

        2.4.2.1 Board Specific Logic

        +

        2.5.2 Summary of Files

        +

        2.5.2.1 Board Specific Logic

        • include/: @@ -773,7 +769,7 @@ It must support the following targets: libext$(LIBEXT), clean, and distclean.
        -

        2.4.2.2 Board Specific Configuration Sub-Directories

        +

        2.5.2.2 Board Specific Configuration Sub-Directories

        The configs/<board-name>/ sub-directory holds all of the files that are necessary to configure NuttX for the particular board. @@ -845,248 +841,11 @@ -

        2.4.3 Supported Boards

        +

        2.5.3 Supported Boards

        - All of the specific boards supported by NuttX are identified below. - These are the specific <board-name>'s that may be used to configure NuttX - as described below. + All of the specific boards supported by NuttX are identified in the README.txt file.

        -
          -
        • configs/avr32dev1: - This is a port of NuttX to the Atmel AVR32DEV1 board. That board is - based on the Atmel AT32UC3B0256 MCU and uses a specially patched - version of the GNU toolchain: The patches provide support for the - AVR32 family. That patched GNU toolchain is available only from the - Atmel website. STATUS: This port is functional but very basic. There - are configurations for NSH and the OS test. -
        • - -
        • configs/c5471evm: - This is a port to the Spectrum Digital C5471 evaluation board. The - C5471 is a dual core processor from TI with an ARM7TDMI general purpose - processor and a c54 DSP. It is also known as TMS320DA180 or just DA180. - NuttX runs on the ARM core and is built with with a GNU arm-nuttx-elf toolchain - under Linux or Cygwin. This port is complete and verified. -
        • - -
        • configs/demo9s12ne64: - Freescale DMO9S12NE64 board based on the MC9S12NE64 hcs12 cpu. This - port uses the m9s12x GCC toolchain. STATUS: (Still) under development; it - is code complete but has not yet been verified. -
        • - -
        • configs/ea3131: - Embedded Artists EA3131 Development bard. This board is based on the - an NXP LPC3131 MCU. This OS is built with the arm-nuttx-elf toolchain. - STATUS: This port is complete and mature. -
        • - -
        • configs/eagle100: - Micromint Eagle-100 Development board. This board is based on the - an ARM Cortex-M3 MCU, the Luminary LM3S6918. This OS is built with the - arm-nuttx-elf toolchain. STATUS: This port is complete and mature. -
        • - -
        • configs/ez80f0910200kitg - ez80Acclaim! Microcontroller. This port use the Zilog ez80f0910200kitg - development kit, eZ80F091 part, and the Zilog ZDS-II Windows command line - tools. The development environment is Cygwin under WinXP. -
        • - -
        • configs/ez80f910200zco: - ez80Acclaim! Microcontroller. This port use the Zilog ez80f0910200zco - development kit, eZ80F091 part, and the Zilog ZDS-II Windows command line - tools. The development environment is Cygwin under WinXP. -
        • - -
        • configs/lm3s6965-ek: - Stellaris LM3S6965 Evaluation Kit. This board is based on the - an ARM Cortex-M3 MCU, the Luminary/TI LM3S6965. This OS is built with the - arm-nuttx-elf toolchain. STATUS: This port is complete and mature. -
        • - -
        • configs/lm3s8962-ek: - Stellaris LMS38962 Evaluation Kit. STATUS: contributed. -
        • - -
        • configs/lpcxpresso-lpc1768: - Embedded Artists base board with NXP LPCExpresso LPC1768. This board - is based on the NXP LPC1768. The Code Red toolchain is used by default. -
        • - -
        • configs/mbed: - The configurations in this directory support the mbed board (http://mbed.org) - that features the NXP LPC1768 microcontroller. This OS is also built - with the arm-nuttx-elf toolchain. STATUS: Contributed. -
        • - -
        • configs/mcu123-lpc214x: - This port is for the NXP LPC2148 as provided on the mcu123.com - lpc214x development board. - This OS is also built with the arm-nuttx-elf toolchain* under Linux or Cygwin. - The port supports serial, timer0, spi, and usb. -
        • - -
        • configs/mirtoo: - This is the port to the DTX1-4000L "Mirtoo" module. - This module uses MicroChipPIC32MX250F128D. - See the Dimitech website for further information. -
        • - -
        • configs/mx1ads: - This is a port to the Motorola MX1ADS development board. That board - is based on the Freescale i.MX1 processor. The i.MX1 is an ARM920T. - STATUS: This port is nearly code complete but was never fully - integrated due to tool-related issues. -
        • - -
        • configs/ne64badge: - Future Electronics Group NE64 /PoE Badge board based on the - MC9S12NE64 hcs12 cpu. This port uses the m9s12x GCC toolchain. - STATUS: The port is code-complete but was never fully tested. -
        • - -
        • configs/ntosd-dm320: - This port uses the Neuros OSD with a GNU arm-nuttx-elf toolchain* under Linux or Cygwin. - See Neuros Wiki - for further information. - NuttX operates on the ARM9EJS of this dual core processor. - STATUS: This port is code complete, verified, and included in the - NuttX 0.2.1 release. -
        • - -
        • configs/nucleus2g: - This port uses the Nucleus 2G board (with Babel CAN board). - This board features an NXP LPC1768 processor. - See the 2G Engineering website for more information about the Nucleus 2G. -
        • - -
        • configs/olimex-lpc1766stk: - This port uses the Olimex LPC1766-STK board and a GNU GCC toolchain under - Linux or Cygwin. STATUS: Complete and mature. -
        • - -
        • configs/olimex-lpc2378: - This port uses the Olimex-lpc2378 board and a GNU arm-nuttx-elf toolchain under - Linux or Cygwin. STATUS: ostest and NSH configurations available. -
        • - -
        • configs/olimex-strp711: - This port uses the Olimex STR-P711 board arm-nuttx-elf toolchain* under Linux or Cygwin. - See the Olimex web site - for further information. - STATUS: Configurations for the basic OS test and NSH are complete and verified. -
        • - -
        • configs/pcblogic-pic32mx: - This is the port of NuttX to the PIC32MX board from PCB Logic Design Co. - This board features the MicroChip PIC32MX460F512L. - The board is a very simple -- little more than a carrier for the PIC32 - MCU plus voltage regulation, debug interface, and an OTG connector. - STATUS: Code complete but testing has been stalled due to tool related problems - (PICkit 2 does not work with the PIC32). -
        • - -
        • configs/qemu-i486: - Port of NuttX to QEMU in i486 mode. This port will also run on real i486 - hardware (Google the Bifferboard). -
        • - -
        • configs/rgmp: - RGMP stands for RTOS and GPOS on Multi-Processor. RGMP is a project for - running GPOS and RTOS simultaneously on multi-processor platforms. You can - port your favorite RTOS to RGMP together with an unmodified Linux to form a - hybrid operating system. This makes your application able to use both RTOS - and GPOS features. - See the RGMP Wiki for further information about RGMP. -
        • - -
        • configs/sam3u-ek: - The port of NuttX to the Atmel SAM3U-EK development board. -
        • - -
        • configs/skp16c26: - Renesas M16C processor on the Renesas SKP16C26 StarterKit. This port - uses the GNU m32c toolchain. STATUS: The port is complete but untested - due to issues with compiler internal errors. -
        • - -
        • configs/stm3210e-eval: - STMicro STM3210E-EVAL development board based on the STMicro STM32F103ZET6 - microcontroller (ARM Cortex-M3). This port uses the GNU Cortex-M3 - toolchain. -
        • - -
        • configs/sim: - A user-mode port of NuttX to the x86 Linux platform is available. - The purpose of this port is primarily to support OS feature development. - This port does not support interrupts or a real timer (and hence no - round robin scheduler) Otherwise, it is complete. -
        • - -
        • configs/us7032evb1: - This is a port of the Hitachi SH-1 on the Hitachi SH-1/US7032EVB1 board. - STATUS: This port is available as of release 0.3.18 of NuttX. The port is basically - complete and many examples run correctly. However, there are remaining instabilities - that make the port un-usable. The nature of these is not understood; the behavior is - that certain SH-1 instructions stop working as advertised. This could be a silicon - problem, some pipeline issue that is not handled properly by the gcc 3.4.5 toolchain - (which has very limited SH-1 support to begin with), or perhaps with the CMON debugger. - At any rate, I have exhausted all of the energy that I am willing to put into this cool - old processor for the time being. -
        • - -
        • configs/vsn: - ISOTEL NetClamps VSN V1.2 ready2go sensor network platform based on the - STMicro STM32F103RET6. Contributed by Uros Platise. - See the Isotel web site for further information - about the NetClamps board. -
        • - -
        • configs/xtrs: - TRS80 Model 3. This port uses a vintage computer based on the Z80. - An emulator for this computer is available to run TRS80 programs on a - Linux platform (http://www.tim-mann.org/xtrs.html). -
        • - -
        • configs/z16f2800100zcog - z16f Microcontroller. - This port use the Zilog z16f2800100zcog development kit and the - Zilog ZDS-II Windows command line tools. - The development environment is Cygwin under WinXP. -
        • - -
        • configs/z80sim: - z80 Microcontroller. This port uses a Z80 instruction set simulator - called z80sim. - This port also the SDCC toolchain under Linux or Cygwin(verified with version 2.6.0). -
        • - -
        • configs/z8encore000zco - z8Encore! Microcontroller. This port use the Zilog z8encore000zco - development kit, Z8F6403 part, and the Zilog ZDS-II Windows command line - tools. The development environment is Cygwin under WinXP. -
        • - -
        • configs/z8encore000zco - z8Encore! Microcontroller. This port use the Zilog z8f64200100kit - development kit, Z8F6423 part, and the Zilog ZDS-II Windows command line - tools. The development environment is Cygwin under WinXP. -
        • - -
        • configs/z8f64200100kit: - z8Encore! Microcontroller. This port use the Zilog z8f64200100kit - development kit, Z8F6423 part, and the Zilog ZDS-II Windows command line - tools. The development environment is Cygwin under WinXP. -
        • -
        - -

        - * A customized version of the buildroot - is available to build these toolchains under Linux or Cygwin. -

        - -

        2.4.4 Adding a New Board Configuration

        +

        2.5.4 Adding a New Board Configuration

        Okay, so you have created a new board configuration directory. Now, how do you hook this board into the configuration system so that you can select with make menuconfig? @@ -1164,7 +923,13 @@ endif This includes additional, board-specific configuration variable definitions in configs/myboard/Kconfig.

        -

        2.5 nuttx/drivers

        +

        2.6 nuttx/crypto

        + +

        + This sub-directory holds the NuttX cryptographic sub-system. +

        + +

        2.7 nuttx/drivers

        This directory holds architecture-independent device drivers. @@ -1228,7 +993,7 @@ drivers/ `-- (Various common driver source files) -

        2.6 nuttx/fs

        +

        2.8 nuttx/fs

        This directory contains the NuttX file system. @@ -1261,7 +1026,7 @@ fs/ `-- (common file system source files) -

        2.7 nuttx/graphics

        +

        2.9 nuttx/graphics

        This directory contains files for graphics/video support under NuttX. @@ -1288,7 +1053,7 @@ graphics/ `-- (common file system source files) -

        2.8 nuttx/include

        +

        2.10 nuttx/include

        This directory holds NuttX header files. Standard header files file retained in can be included in the normal fashion: @@ -1351,7 +1116,15 @@ include/ `-- (More standard header files) -

        2.9 nuttx/libc

        +

        2.11 nuttx

        + +

        + This is a (almost) empty directory that has a holding place for generated static libraries. + The NuttX build system generates a collection of such static libraries in this directory during the compile phaase. + These libraries are then in a known place for the final link phase where they are accessed to generated the final binaries. +

        + +

        2.12 nuttx/libc

        This directory holds a collection of standard libc-like functions with custom interfaces into NuttX. @@ -1399,28 +1172,28 @@ libc/ `-- (Implementation of some functions from unistd.h) -

        2.10 nuttx/libxx

        +

        2.13 nuttx/libxx

        This directory holds a tiny, minimal standard std C++ that can be used to build some, simple C++ applications in NuttX.

        -

        2.11 nuttx/mm

        +

        2.14 nuttx/mm

        This is the NuttX memory manager.

        -

        2.12 nuttx/net

        +

        2.15 nuttx/net

        This directory contains the implementation of the NuttX networking layer including internal socket APIs.

        -

        2.13 nuttx/sched

        +

        2.16 nuttx/sched

        The files forming core of the NuttX RTOS reside here.

        -

        2.14 nuttx/syscall

        +

        2.17 nuttx/syscall

        If NuttX is built as a separately compiled kernel (with CONFIG_BUILD_PROTECTED=y or CONFIG_BUILD_KERNEL=y), then the contents of this directory are built. @@ -1428,7 +1201,7 @@ libc/ between user-mode applications and the kernel-mode RTOS.

        -

        2.15 nuttx/tools

        +

        2.18 nuttx/tools

        This directory holds a collection of tools and scripts to simplify configuring, building and maintaining NuttX. @@ -1466,88 +1239,19 @@ tools/ Some of these tools are discussed below as well in the discussion of configuring and building NuttX.

        -

        2.16 nuttx/Makefile

        +

        2.19 nuttx/wireless

        + +

        + This directory holds support for hardware-independent wireless support. +

        + +

        2.20 nuttx/Makefile

        The top-level Makefile in the ${TOPDIR} directory contains all of the top-level control logic to build NuttX. Use of this Makefile to build NuttX is described below.

        -

        2.17 apps/netutils

        -

        - This directory contains most of the network applications. - Some of these are original with NuttX (like tftpc and dhcpd) and others were leveraged from the uIP-1.0 apps directory. - As the uIP apps/README says, these applications "are not all heavily tested." -

        -
          -netutils/
          -|-- Kconfig
          -|-- Makefile
          -|-- dhcdp/
          -|   |-- Kconfig
          -|   |-- Make.defs
          -|   `-- (DHCP client source files)
          -|-- dhcpd/
          -|   |-- Kconfig
          -|   |-- Make.defs
          -|   `-- (DHCP server source files)
          -|-- ftpc/
          -|   |-- Kconfig
          -|   |-- Make.defs
          -|   `-- (FTP client source files)
          -|-- ftpd/
          -|   |-- Kconfig
          -|   |-- Make.defs
          -|   `-- (FTP server source files)
          -|-- resolv/
          -|   |-- Kconfig
          -|   |-- Make.defs
          -|   `-- (resolv source files)
          -|-- resolv/
          -|   |-- Kconfig
          -|   |-- Make.defs
          -|   `-- (resolv source files)
          -|-- smtp/
          -|   |-- Kconfig
          -|   |-- Make.defs
          -|   `-- (smtp source files)
          -|-- telnetd/
          -|   |-- Kconfig
          -|   |-- Make.defs
          -|   `-- (Telnet client source files)
          -|-- tftpc/
          -|   |-- Kconfig
          -|   |-- Make.defs
          -|   `-- (TFTP client source files)
          -|-- thttpd/
          -|   |-- Kconfig
          -|   |-- Make.defs
          -|   `-- (thttpd HTTP server source files)
          -|-- netlib/
          -|   |-- Kconfig
          -|   |-- Make.defs
          -|   `-- (netlib source files)
          -|-- weblclient/
          -|   |-- Kconfig
          -|   |-- Make.defs
          -|   `-- (webclient source files)
          -|-- webserver/
          -|   |-- Kconfig
          -|   |-- Make.defs
          -|   `-- (uIP webserver source files)
          -`-- (netutils common files)
          -
        - -

        2.18 apps/nshlib

        -

        - This directory contains for the core of the NuttShell (NSH) application. -

        - -

        2.19 apps/examples

        -

        - Example and test programs to build against. -

        - -
        @@ -3907,24 +3611,230 @@ void lpwork_restorepriority(uint8_t reqprio); -1 (ERROR) is returned on failure with the errno variable to to indicate the nature of the failure. -

        4.7 APIs Exported by NuttX to Architecture-Specific Logic

        +

        4.7 Symmetric Multiprocssing (SMP) Application Interface

        +

        +According to Wikipedia: "Symmetric multiprocessing (SMP) involves a symmetric multiprocessor system hardware and software architecture where two or more identical processors connect to a single, shared main memory, have full access to all I/O devices, and are controlled by a single operating system instance that treats all processors equally, reserving none for special purposes. Most multiprocessor systems today use an SMP architecture. In the case of multi-core processors, the SMP architecture applies to the cores, treating them as separate processors. +

        +

        +"SMP systems are tightly coupled multiprocessor systems with a pool of homogeneous processors running independently, each processor executing different programs and working on different data and with capability of sharing common resources (memory, I/O device, interrupt system and so on) and connected using a system bus or a crossbar." +

        +

        +For a technical description of the NuttX implementation of SMP, see the NuttX SMP Wiki Page. +

        + + None + + +

        4.7.1 up_testset()

        +

        Function Prototype:

        +

          +#include <nuttx/spinlock.h>
          +#ifdef CONFIG_SPINLOCK
          +spinlock_t up_testset(volatile FAR spinlock_t *lock);
          +#endif
          +
        + +

        Description:

        +
          +

          + Perform and atomic test and set operation on the provided spinlock. +

          +
        +

        Input Parameters:

        +
          +
        • + lock: The address of spinlock object. +
        • +
        +

        Returned Value:

        +
          +

          + The spinlock is always locked upon return. + The value of previous value of the spinlock variable is returned, either SP_LOCKED if the spinlock was previously locked (meaning that the test-and-set operation failed to obtain the lock) or SP_UNLOCKED if the spinlock was previously unlocked (meaning that we successfully obtained the lock) +

          +
        + +

        4.7.2 up_cpu_index()

        +

        Function Prototype:

        +

          +#include <nuttx/arch.h>
          +#ifdef CONFIG_SMP
          +int up_cpu_index(void);
          +#else
          +#  define up_cpu_index() (0)
          +#endif
          +
        + +

        Description:

        +
          +

          + Return an index in the range of 0 through (CONFIG_SMP_NCPUS-1) that corresponds to the currently executing CPU. +

          +
        +

        Input Parameters:

        +
          + None +
        +

        Returned Value:

        +
          +

          + An integer index in the range of 0 through (CONFIG_SMP_NCPUS-1) that corresponds to the currently executing CPU. +

          +
        + +

        4.7.3 up_cpu_start()

        +

        Function Prototype:

        +

          +#include <nuttx/arch.h>
          +#ifdef CONFIG_SMP
          +int up_cpu_start(int cpu);
          +#endif
          +
        + +

        Description:

        +
          +

          + In an SMP configution, only one CPU is initially active (CPU 0). + System initialization occurs on that single thread. + At the completion of the initialization of the OS, just before beginning normal multitasking, the additional CPUs would be started by calling this function. +

          +

          + Each CPU is provided the entry point to is IDLE task when started. + A TCB for each CPU's IDLE task has been initialized and placed in the CPU's g_assignedtasks[cpu] list. + A stack has also been allocated and initialized. +

          +

          + The OS initialization logic calls this function repeatedly until each CPU has been started, 1 through (CONFIG_SMP_NCPUS-1). +

          +
        +

        Input Parameters:

        +
          +
        • + cpu: The index of the CPU being started. + This will be a numeric value in the range of from one to (CONFIG_SMP_NCPUS-1)). + (CPU 0 is already active). +
        • +
        +

        Returned Value:

        +
          +

          + Zero (OK) is returned on success; a negated errno value on failure. +

          +
        + +

        4.7.4 up_cpu_initialize()

        +

        Function Prototype:

        +

          +#include <nuttx/arch.h>
          +#ifdef CONFIG_SMP
          +int up_cpu_initialize(void);
          +#endif
          +
        + +

        Description:

        +
          +

          + After the CPU has been started (via up_cpu_start()) the system will call back into the architecture-specific code with this function on the thread of execution of the newly started CPU. + This gives the architecture-specific a chance to perform ny initial, CPU-specific initialize on that thread. +

          +
        +

        Input Parameters:

        +
          + None +
        +

        Returned Value:

        +
          +

          + Zero (OK) is returned on success; a negated errno value on failure. +

          +
        + +

        4.7.5 up_cpu_pause()

        +

        Function Prototype:

        +

          +#include <nuttx/arch.h>
          +#ifdef CONFIG_SMP
          +int up_cpu_pause(int cpu);
          +#endif
          +
        + +

        Description:

        +
          +

          + Save the state of the current task at the head of the g_assignedtasks[cpu] task list and then pause task execution on the CPU. +

          +

          + This function is called by the OS when the logic executing on one CPU needs to modify the state of the g_assignedtasks[cpu] list for another CPU. +

          +
        +

        Input Parameters:

        +
          +
        • + cpu: The index of the CPU to be paused. + This will not be the index of the currently executing CPU. +
        • +
        +

        Returned Value:

        +
          +

          + Zero (OK) is returned on success; a negated errno value on failure. +

          +
        + +

        4.7.6 up_cpu_resume()

        +

        Function Prototype:

        +

          +#include <nuttx/arch.h>
          +#ifdef CONFIG_SMP
          +int up_cpu_resume(int cpu);
          +#endif
          +
        + +

        Description:

        +
          +

          + Restart the cpu after it was paused via up_cpu_pause(), restoring the state of the task at the head of the g_assignedtasks[cpu] list, and resume normal tasking. +

          +

          + This function is called after up_cpu_pause() in order resume operation of the CPU after modifying its g_assignedtasks[cpu] list. +

          +
        +

        Input Parameters:

        +
          +
        • + cpu: The index of the CPU being resumed. + This will not be the index of the currently executing CPU. +
        • +
        +

        Returned Value:

        +
          +

          + Zero (OK) is returned on success; a negated errno value on failure. +

          +
        + +

        4.8 APIs Exported by NuttX to Architecture-Specific Logic

        These are standard interfaces that are exported by the OS for use by the architecture specific logic.

        -

        4.7.1 os_start()

        +

        4.8.1 os_start()

        To be provided

        -

        4.7.2 OS List Management APIs

        +

        4.8.2 OS List Management APIs

        To be provided

        -

        4.7.3 sched_process_timer()

        -

        Function Prototype: void sched_process_timer(void);

        +

        4.8.3 sched_process_timer()

        +

        Function Prototype:

        +
          +#include <nuttx/arch.h>
          +void sched_process_timer(void);
          +

        Description. This function handles system timer events. @@ -3934,7 +3844,30 @@ void lpwork_restorepriority(uint8_t reqprio); MSEC_PER_TICK.

        -

        4.7.4 sched_timer_expiration()

        +

        4.8.4 sched_timer_expiration()

        +

        Function Prototype:

        +

          +#include <nuttx/arch.h>
          +void sched_timer_expiration(void);
          +
        +

        Description:

        + Description: if CONFIG_SCHED_TICKLESS is defined, then this function is provided by the RTOS base code and called from platform-specific code when the interval timer used to implemented the tick-less OS expires. +
          +
        +

        Input Parameters:

        +
          + None +
        +

        Returned Value:

        +
          + None +
        +

        Assumptions:

        +
          + Base code implementation assumes that this function is called from interrupt handling logic with interrupts disabled. +
        + +

        4.8.5 sched_alaram_expiration()

        Function Prototype:

           #include <nuttx/arch.h>
          @@ -3957,30 +3890,7 @@ void sched_timer_expiration(void);
             Base code implementation assumes that this function is called from interrupt handling logic with interrupts disabled.
           
        -

        4.7.5 sched_alaram_expiration()

        -

        Function Prototype:

        -

          -#include <nuttx/arch.h>
          -void sched_timer_expiration(void);
          -
        -

        Description:

        - Description: if CONFIG_SCHED_TICKLESS is defined, then this function is provided by the RTOS base code and called from platform-specific code when the interval timer used to implemented the tick-less OS expires. -
          -
        -

        Input Parameters:

        -
          - None -
        -

        Returned Value:

        -
          - None -
        -

        Assumptions:

        -
          - Base code implementation assumes that this function is called from interrupt handling logic with interrupts disabled. -
        - -

        4.7.6 irq_dispatch()

        +

        4.8.6 irq_dispatch()

        Function Prototype: void irq_dispatch(int irq, FAR void *context);

        Description. @@ -3989,7 +3899,7 @@ void sched_timer_expiration(void); the appropriate, registered handling logic.

        -

        4.8 Shared Memory

        +

        4.9 Shared Memory

        Shared memory interfaces are only available with the NuttX kernel build (CONFIG_BUILD_KERNEL=y). These interfaces support user memory regions that can be shared between multiple user processes. @@ -3998,7 +3908,7 @@ void sched_timer_expiration(void); Those interfaces are described below:

        -

        4.8.1 up_shmat()

        +

        4.9.1 up_shmat()

        Function Prototype:

           #include <nuttx/arch.h>
          @@ -4027,7 +3937,7 @@ int up_shmat(FAR uintptr_t *pages, unsigned int npages, uintptr_t vaddr);
             Zero (OK) is returned on success; a negated errno value is returned on failure.
           
        -

        4.8.2 up_shmdt()

        +

        4.9.2 up_shmdt()

        Function Prototype:

           #include <nuttx/arch.h>
          @@ -4053,7 +3963,7 @@ int up_shmdt(uintptr_t vaddr, unsigned int npages);
             Zero (OK) is returned on success; a negated errno value is returned on failure.
           
        -

        4.9 On-Demand Paging

        +

        4.10 On-Demand Paging

        The NuttX On-Demand Paging feature permits embedded MCUs with some limited RAM space to execute large programs from some non-random access media. If the platform meets certain requirements, then NuttX can provide on-demand paging: @@ -4062,7 +3972,7 @@ int up_shmdt(uintptr_t vaddr, unsigned int npages); Please see the NuttX Demand Paging design document for further information.

        -

        4.10 LED Support

        +

        4.11 LED Support

        A board architecture may or may not have LEDs. @@ -4072,7 +3982,7 @@ int up_shmdt(uintptr_t vaddr, unsigned int npages); However, the support provided by each architecture is sufficiently similar that it can be documented here.

        -

        4.10.1 Header Files

        +

        4.11.1 Header Files

        LED-related definitions are provided in two header files: @@ -4096,7 +4006,7 @@ int up_shmdt(uintptr_t vaddr, unsigned int npages);

        -

        4.10.2 LED Definitions

        +

        4.11.2 LED Definitions

        The implementation of LED support is very specific to a board architecture. @@ -4160,7 +4070,7 @@ int up_shmdt(uintptr_t vaddr, unsigned int npages); -

        4.10.3 Common LED interfaces

        +

        4.11.3 Common LED interfaces

        The include/nuttx/board.h has declarations like: From 1b53c9dd33d2f3fd58c92b4eefaf737c92dfdcf3 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 14 Mar 2016 14:51:29 -0600 Subject: [PATCH 1510/1518] Fix some HTML errors --- Documentation/NuttXCCodingStandard.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttXCCodingStandard.html b/Documentation/NuttXCCodingStandard.html index fbf05aa931..d1e96795c7 100644 --- a/Documentation/NuttXCCodingStandard.html +++ b/Documentation/NuttXCCodingStandard.html @@ -33,7 +33,7 @@ 1.2 Lines
        1.3 Comments
        1.4 Braces
        - 1.5 Indentation
        + 1.5
        Indentation
        1.6 Parentheses
        2.0 Data and Type Definitions @@ -88,7 +88,7 @@

        File Extensions Use the .h extension for C header files and .c for C source files. -

        +

        File header. Every C, C++, make file, or script begins with a file header. From 621a610163ab768b20a789a79c7e062e55012201 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 14 Mar 2016 15:48:44 -0600 Subject: [PATCH 1511/1518] Fix HTML syntax errors --- Documentation/NuttShell.html | 6 ++---- Documentation/NuttX.html | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index 3317150bbc..3d54152ba8 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -563,9 +563,7 @@

        Index -
        - + @@ -1893,7 +1891,7 @@ nsh>

        Command Syntax 1:

          -losetup [-o ] [-r] <dev-path> <file-path>
          +losetup [-o <offset>] [-r] <dev-path> <file-path>
           

        Synopsis. diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index a1a2533380..ed57f93ed5 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -256,6 +256,7 @@

      • Fully pre-emptible.
      • + @@ -264,6 +265,7 @@

      • Naturally scalable.
      • + @@ -272,6 +274,7 @@

      • Highly configurable.
      • + @@ -283,6 +286,7 @@ A Porting Guide is available.

        + @@ -291,6 +295,7 @@

      • FIFO and round-robin scheduling.
      • + @@ -299,6 +304,7 @@

      • Realtime, deterministic, with support for priority inheritance
      • + @@ -323,6 +329,7 @@

      • VxWorks-like task management and watchdog timers.
      • + @@ -331,6 +338,7 @@

      • BSD socket interface.
      • + @@ -347,6 +355,7 @@

      • Optional tasks with address environments (Processes).
      • + @@ -355,6 +364,7 @@

      • Loadable kernel modules.
      • + @@ -363,6 +373,7 @@

      • Memory Configurations: (1) Flat embedded build, (2) Protected build with MPU, and (3) Kernel build with MMU.
      • + @@ -371,6 +382,7 @@

      • Memory Allocators: (1) standard heap memory allocation, (2) granule allocator, (3) shared memory, and (4) dynamically sized, per-process heaps.
      • + @@ -386,6 +398,7 @@

      • On-demand paging.
      • + @@ -393,6 +406,7 @@
      • System logging.
      • + @@ -401,6 +415,7 @@

      • May be built either as an open, flat embedded RTOS or as a separately built, secure, monolithic kernel with a system call interface.
      • + @@ -409,6 +424,7 @@

      • Built-in, per-thread CPU load measurements.
      • + @@ -417,6 +433,7 @@

      • Well documented in the NuttX User Guide.
      • + From 95c542f6d1addcc1d06122e09f2afe0bbcb22b20 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 25 Mar 2016 15:01:39 -0600 Subject: [PATCH 1512/1518] Update README --- Documentation/README.html | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Documentation/README.html b/Documentation/README.html index 78ff0f0735..8ea7c15c05 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -8,7 +8,7 @@

        NuttX README Files

        -

        Last Updated: February 28, 2016

        +

        Last Updated: March 25, 2016

        @@ -258,6 +258,10 @@ nuttx/ | | `- README.txt | |- stm32f746g-disco/ | | `- README.txt + | |- stm32l476vg-disco/ + | | `- README.txt + | |- stm32ldiscovery/ + | | `- README.txt | |- stm32vldiscovery/ | | `- README.txt | |- sure-pic32mx/ From 6a326962bd96c9e485e99c194332e77f2a9c70a0 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 26 Mar 2016 12:15:43 -0600 Subject: [PATCH 1513/1518] Prep for 7.15 release --- Documentation/NuttX.html | 125 +++++++++++++++++++++++++++++++++++---- 1 file changed, 115 insertions(+), 10 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index ed57f93ed5..3b39e7e75d 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

        NuttX RTOS

        -

        Last Updated: March 13, 2016

        +

        Last Updated: March 27, 2016

        @@ -1336,11 +1336,11 @@

        Released Versions

        In addition to the ever-changing GIT repository, there are frozen released versions of NuttX available. - The current release is NuttX 7.14. - NuttX 7.14 is the 114th release of NuttX. - It was released on January 28, 2016, and is available for download from the + The current release is NuttX 7.15. + NuttX 7.15 is the 115th release of NuttX. + It was released on March 27, 2016, and is available for download from the Bitbucket.org website. - Note that the release consists of two tarballs: nuttx-7.14.tar.gz and apps-7.14.tar.gz. + Note that the release consists of two tarballs: nuttx-7.15.tar.gz and apps-7.15.tar.gz. Both may be needed (see the top-level nuttx/README.txt file for build information).

        @@ -1349,7 +1349,7 @@ + + + + + ARM Cortex-A9. + + + +
        + +

        + NXP/Freescale i.MX6. + A port is underway for the following i.MX6 board +

        +

          +
        • +

          + Sabre-6Quad. + This is a port to the NXP/Freescale Sabre-6Quad board. + Refer to the NuttX board README file for further information. +

          +

          + STATUS: + The basic, minimal port is code complete and introduced in NuttX-7.15, but has not yet been tested. + I am still waiting for the reciept of the Sabre board. + Expect to see the verified Sabre-6Quad support (with SMP!) in NuttX-7.16. +

          +
        • +
        + + + @@ -3221,7 +3258,7 @@ nsh> NXP LPC1766, LPC1768, and LPC1769. Drivers are available for CAN, DAC, Ethernet, GPIO, GPIO interrupts, I2C, UARTs, SPI, SSP, USB host, and USB device. Additional drivers for the RTC, ADC, DAC, Timers, PWM and MCPWM were contributed by Max (himax) in NuttX-7.3. - Verified LPC17xx configurations are available for three boards. + Verified LPC17xx configurations are available for these boards:
        • The Nucleus 2G board from 2G Engineering (LPC1768), @@ -3241,6 +3278,9 @@ nsh>
        • The Micromint Lincoln60 board with an NXP LPC1769.
        • +
        • + A version of the LPCXPresso LPC1768 board with special support for the U-Blox model evaluation board. +

        @@ -3349,6 +3389,14 @@ nsh> See the Microment website Lincoln60 board and the NuttX board README file for further information about the Lincoln board.

        +
      • +

        U-Blox Modem Evaluation (LPCXpresso LPC1768)

        +

        + This board configuration was contributed by Vladimir Komendantskiy and made available in NuttX-7.15. + This is a variant of the LPCXpresso LPC1768 board support with special provisions for the U-Blox Model Evaluation board. + See the NuttX board README file for further information about this port. +

        +
      • @@ -3757,6 +3805,63 @@ nsh>

        + + +
        +
        + + +
        + +

        + STMicro STM32 F46xx. + Architecture-only support is available for the STM32 F46xx family (meaning that the parts are supported, but there is not example board supported in the system). + This support was contributed by Paul Alexander Patienc and made available in NuttX-7.15. +

        + + + + +
        +
        + + +
        + +

        + STMicro STM32 L476. + Two boards are supported in this family: +

        +
          +
        • +

          + Nucleo-L476RG. + Board support for the STMicro NucleoL476RG board from ST Micro was contributed by Sebastien Lorquet in NuttX-7.15. See the STMicro website and the board README file for further information. +

          +
        • +
        • +

          + STM32L476VG Discovery. + Board support for the STMicro STM32L476VG Discovery board from ST Micro was contributed by Dave in NuttX-7.15. See the STMicro website and the board README file for further information. +

          +
        • +
        +

        Status:

        +
          +

          + NuttX-7.15. + Only the first initial release of support for this family is present. + This is an ongoing, work-in-progress. + It includes these basics: +

          +
            +
          • RCC, clocking, Interrupts, System timer
          • +
          • UART, USART, Serial Console
          • +
          • GPIO, DMA, I2C, RNG, SPI
          • +
          + + +

          From 39284088a205074bd70b0cf08398712bdb415e17 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 27 Mar 2016 11:18:25 -0600 Subject: [PATCH 1514/1518] PM: Add activity domain to all PM callbacks --- Documentation/NuttxPortingGuide.html | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 4dc78a6a0a..7567e4f65d 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -5752,7 +5752,7 @@ enum pm_state_e pm_checkstate(void);

          Function Prototype:

             #include <nuttx/power/pm.h>
            - int pm_changestate(enum pm_state_e newstate);
            + int pm_changestate(int domain, enum pm_state_e newstate);
             

          Description: This function is used by platform-specific power management logic. @@ -5760,6 +5760,8 @@ enum pm_state_e pm_checkstate(void);

          Input Parameters:

          +
          domain +
          Identifies the domain of the new PM state
          newstate
          Identifies the new PM state
          @@ -5786,7 +5788,7 @@ enum pm_state_e pm_checkstate(void);

          6.4.3.1 prepare()

          Function Prototype:

            -int (*prepare)(FAR struct pm_callback_s *cb, enum pm_state_e pmstate);
            +int (*prepare)(FAR struct pm_callback_s *cb, int domain, enum pm_state_e pmstate);
             

          Description: Request the driver to prepare for a new power state. @@ -5799,6 +5801,8 @@ int (*prepare)(FAR struct pm_callback_s *cb, enum pm_state_e pmstate);

          cb
          Returned to the driver. The driver version of the callback structure may include additional, driver-specific state data at the end of the structure. +
          domain +
          Identifies the activity domain of the state change
          pmstate
          Identifies the new PM state @@ -5815,7 +5819,7 @@ int (*prepare)(FAR struct pm_callback_s *cb, enum pm_state_e pmstate);

          Function Prototype:

             #include <nuttx/power/pm.h>
            -void (*notify)(FAR struct pm_callback_s *cb, enum pm_state_e pmstate);
            +void (*notify)(FAR struct pm_callback_s *cb, int domain, enum pm_state_e pmstate);
             

          Description: Notify the driver of new power state. @@ -5826,6 +5830,8 @@ void (*notify)(FAR struct pm_callback_s *cb, enum pm_state_e pmstate);

          cb
          Returned to the driver. The driver version of the callback structure may include additional, driver-specific state data at the end of the structure. +
          domain +
          Identifies the activity domain of the state change
          pmstate
          Identifies the new PM state From ede532e57bf111380ba6fd058251ee3ca416e77c Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 27 Mar 2016 13:01:09 -0600 Subject: [PATCH 1515/1518] PM: Add domain to all PM interfaces. Internal PM data structures now handle multiple PM domains. --- Documentation/NuttxPortingGuide.html | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 7567e4f65d..5a6de2f947 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -5698,7 +5698,7 @@ Zero (OK) on success; otherwise a negated errno value

          Function Prototype:

             #include <nuttx/power/pm.h>
            -void pm_activity(int priority);
            +void pm_activity(int domain, int priority);
             

          Description: This function is called by a device driver to indicate that it is performing meaningful activities (non-idle). @@ -5706,6 +5706,8 @@ void pm_activity(int priority);

          Input Parameters:

          +
          domain +
          Identifies the domain of the new PM activity
          priority
          Activity priority, range 0-9. @@ -5725,7 +5727,7 @@ void pm_activity(int priority);

          Function Prototype:

             #include <nuttx/power/pm.h>
            -enum pm_state_e pm_checkstate(void);
            +enum pm_state_e pm_checkstate(int domain);
             

          Description: This function is called from the MCU-specific IDLE loop to monitor the power management conditions. @@ -5742,7 +5744,10 @@ enum pm_state_e pm_checkstate(void); The IDLE loop may need to make these calls atomic by either disabling interrupts until the state change is completed.

          Input Parameters: - None +

          +
          domain +
          Identifies the PM domain to check +

          Returned Value: The recommended power management state. From 690888b75ce474d8b36444b4901b7262aa39f8b0 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 28 Mar 2016 08:06:27 -0600 Subject: [PATCH 1516/1518] Minor update to PM discussion in the porting guide --- Documentation/NuttxPortingGuide.html | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 5a6de2f947..f5f927dea1 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

          NuttX RTOS Porting Guide

          -

          Last Updated: March 13, 2016

          +

          Last Updated: March 28, 2016

          @@ -5580,12 +5580,13 @@ int kbd_decode(FAR struct lib_instream_s *stream, FAR struct kbd_getstate_s *sta

          6.4.1 Overview

          + Power Management (PM) Sub-System. NuttX supports a simple power management (PM) sub-system. This sub-system:

          • - Monitors driver activity, and + Monitors activity from drivers (and from other parts of the syste), and

          • @@ -5624,6 +5625,7 @@ int kbd_decode(FAR struct lib_instream_s *stream, FAR struct kbd_getstate_s *sta

          + Low Power Consumption States. Various "sleep" and low power consumption states have various names and are sometimes used in conflicting ways. In the NuttX PM logic, we will use the following terminology:

          @@ -5652,6 +5654,14 @@ int kbd_decode(FAR struct lib_instream_s *stream, FAR struct kbd_getstate_s *sta These various states are represented with type enum pm_state_e in include/nuttx/power/pm.h.

          +

          + Power Management Domains. + Each PM interfaces includes a integer domain number. + By default, only a single power domain is supported (CONFIG_PM_NDOMAINS=1). + But that is configurable; any number of PM domains can be supported. + Multiple PM domains might be useful, for example, if you would want to control power states associated with a network separately from power states associated with a user interface. +

          +

          6.4.2 Interfaces

          All PM interfaces are declared in the file include/nuttx/power/pm.h. From 84151986de696e9848a98c5350438c7f0dd9d665 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 30 Mar 2016 18:13:00 -0600 Subject: [PATCH 1517/1518] Remove references to the VSN configuration from the Documentation --- Documentation/NuttShell.html | 13 ------------- Documentation/NuttX.html | 18 +----------------- Documentation/README.html | 3 --- 3 files changed, 1 insertion(+), 33 deletions(-) diff --git a/Documentation/NuttShell.html b/Documentation/NuttShell.html index 3d54152ba8..a4d7c2a76a 100644 --- a/Documentation/NuttShell.html +++ b/Documentation/NuttShell.html @@ -4673,7 +4673,6 @@ mount -t vfat /dev/ram1 /tmp configs/sim/nx
          configs/sim/nx11
          configs/sim/touchscreen
          - configs/vsn/nsh

        In most of these cases, the configuration sets up the default /etc/init.d/rcS script. @@ -4683,11 +4682,7 @@ mount -t vfat /dev/ram1 /tmp

        If that default behavior is not what you want, then you can provide your own custom rcS script by defining CONFIG_NSH_ARCHROMFS=y in the configuration file. - The only example that uses a custom /etc/init.d/rcS file in the NuttX source tree is this one: configs/vsn/nsh. - The configs/vsn/nsh/defconfig file also has this definition:

        -
          CONFIG_NSH_ARCHROMFS=y -- Support an architecture specific ROMFS file.
        -

        Modifying the ROMFS Image. The contents of the /etc directory are retained in the file apps/nshlib/nsh_romfsimg.h OR, if CONFIG_NSH_ARCHROMFS is defined, include/arch/board/nsh_romfsimg.h. @@ -4750,11 +4745,6 @@ mount -t vfat /dev/ram1 /tmp NOTE when the OS is configured, include/arch/board will be linked to configs/<board>/include.

        -

        - As mention above, the only example that uses a custom /etc/init.d/rcS file in the NuttX source tree is this one: configs/vsn/nsh. - The custom script for the configs/vsn case is located at configs/vsn/include/rcS.template. -

        -

        All of the startup-behavior is contained in rcS.template. The role of mkromfsimg.sh script is to (1) apply the specific configuration settings to rcS.template to create the final rcS, and (2) to generate the header file nsh_romfsimg.h containg the ROMFS file system image. @@ -4770,9 +4760,6 @@ mount -t vfat /dev/ram1 /tmp The xxd tool that is used to create the C header file.

        -

        - You can find the generated ROMFS file system for the configs/vsn case here: configs/vsn/include/rcS.template -

        diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 3b39e7e75d..5a0e41e83a 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -1414,7 +1414,7 @@
      • ARM Cortex-A9 (1)
      • ARM Cortex-R4 (1)
      • ARM Cortex-M0/M0+ (7)
      • -
      • ARM Cortex-M3 (35)
      • +
      • ARM Cortex-M3 (34)
      • ARM Cortex-M4 (28)
      • ARM Cortex-M7 (4)
      • @@ -2940,14 +2940,6 @@ nsh> Refer to the NuttX board README file for further information.

        -
      • -

        - ISOTEL NetClamps VSN. - The ISOTEL NetClamps VSN V1.2 ready2go sensor network platform based on the - STMicro STM32F103RET6. Contributed by Uros Platise. - Refer to the NuttX board README file for further information. -

        -
      • HY-Mini STM32v board. @@ -3011,14 +3003,6 @@ nsh> the USB serial device class, and the USB mass storage device class example.

      • -
      • -

        - NetClamps VSN. - Support for the NetClamps VSN was included in version 5.18 of NuttX. - Uros Platise added support for timers, RTC, I2C, FLASH, extended power management - and other features. -

        -
      • Additional Drivers. diff --git a/Documentation/README.html b/Documentation/README.html index 8ea7c15c05..07ca5241df 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -286,9 +286,6 @@ nuttx/ | | `- README.txt | |- viewtool-stm32f107/ | | `- README.txt - | |- vsn/ - | | |- src/README.txt - | | `- README.txt | |- xtrs/ | | `- README.txt | |- z16f2800100zcog/ From 2693be512baf6dce076e1a35bebcc90adf67dcec Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 6 Apr 2016 17:55:14 -0600 Subject: [PATCH 1518/1518] Fix all URLs to the NuttX repository --- Documentation/NuttX.html | 26 ++++++------- Documentation/NuttXBinfmt.html | 4 +- Documentation/NuttXGettingStarted.html | 2 +- Documentation/NuttXNxFlat.html | 10 ++--- Documentation/README.html | 52 +++++++++++++------------- 5 files changed, 47 insertions(+), 47 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 5a0e41e83a..2ebc2eb693 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -71,7 +71,7 @@

      • - Release Notes + Release Notes What has changed in the last release of NuttX? What has changed in previous releases of NuttX? Are there any unreleased changes. @@ -1329,7 +1329,7 @@

        Git Repository

        - The working version of NuttX is available from the Bitbucket GIT repository here. + The working version of NuttX is available from the Bitbucket GIT repository here. That same page provides the URLs and instructions for cloning the GIT repository.

        @@ -1339,7 +1339,7 @@ The current release is NuttX 7.15. NuttX 7.15 is the 115th release of NuttX. It was released on March 27, 2016, and is available for download from the - Bitbucket.org website. + Bitbucket.org website. Note that the release consists of two tarballs: nuttx-7.15.tar.gz and apps-7.15.tar.gz. Both may be needed (see the top-level nuttx/README.txt file for build information).

        @@ -1349,16 +1349,16 @@
        • nuttx.

            - Release notes for NuttX 7.15 are available here. - Release notes for all released versions on NuttX are available in the Bitbucket GIT. - The ChangeLog for all releases of NuttX is available in the ChangeLog file that can viewed in the Bitbucket GIT. + Release notes for NuttX 7.15 are available here. + Release notes for all released versions on NuttX are available in the Bitbucket GIT. + The ChangeLog for all releases of NuttX is available in the ChangeLog file that can viewed in the Bitbucket GIT. The ChangeLog for the current release is at the bottom of that file.

        • apps.

            Release notes for NuttX 7.15 are available here. - Release notes for all released versions on NuttX are available in the Bitbucket GIT + Release notes for all released versions on NuttX are available in the Bitbucket GIT The ChangeLog for the all releases of apps/ is available in the ChangeLog file that can viewed in the Bitbucket GIT. The ChangeLog for the current release is at the bottom of that file.

            @@ -1366,8 +1366,8 @@
          • NxWidgets.

              Release notes for NxWidgets 1.13 are available here. - Release notes for all released versions on NxWidgets are available in the BitBucket GIT - The ChangeLog for all releases of NxWidgets is available at the bottom of the ChangeLog file that can viewed in the Bitbucket GIT. + Release notes for all released versions on NxWidgets are available in the BitBucket GIT + The ChangeLog for all releases of NxWidgets is available at the bottom of the ChangeLog file that can viewed in the Bitbucket GIT.

          • pascal. @@ -5514,7 +5514,7 @@ if [ -x "$WINELOADER" ]; then exec "$WINELOADER" "$appname" "$@"; fi

              - The current list of NuttX Things-To-Do in GIT here. + The current list of NuttX Things-To-Do in GIT here.

            @@ -5572,7 +5572,7 @@ if [ -x "$WINELOADER" ]; then exec "$WINELOADER" "$appname" "$@"; fi - + @@ -5582,9 +5582,9 @@ if [ -x "$WINELOADER" ]; then exec "$WINELOADER" "$appname" "$@"; fi
            1 - This configuration variable document is auto-generated using the kconfig2html tool + This configuration variable document is auto-generated using the kconfig2html tool That tool analyzes the NuttX Kconfig files and generates the HTML document. - As a consequence, this file may not be present at any given time but can be regenerated following the instructions in tools directory README file. + As a consequence, this file may not be present at any given time but can be regenerated following the instructions in tools directory README file.
            diff --git a/Documentation/NuttXBinfmt.html b/Documentation/NuttXBinfmt.html index 4d85da6312..49a999846c 100644 --- a/Documentation/NuttXBinfmt.html +++ b/Documentation/NuttXBinfmt.html @@ -108,7 +108,7 @@

            2.1 Binary Loader Header Files

            The interface to the binary loader is described in the header file - + include/nuttx/binfmt/binfmt.h. A brief summary of the data structurs and interfaces prototyped in that header file are listed below.

            @@ -458,7 +458,7 @@ void exepath_release(EXEPATH_HANDLE handle);

            3.1 Symbol Table Header Files

            The interface to the symbol table logic is described in the header file - + include/nuttx/binfmt/symtab.h. A brief summary of the data structurs and interfaces prototyped in that header file are listed below.

            diff --git a/Documentation/NuttXGettingStarted.html b/Documentation/NuttXGettingStarted.html index f69d9333bb..ddc02844b2 100644 --- a/Documentation/NuttXGettingStarted.html +++ b/Documentation/NuttXGettingStarted.html @@ -18,7 +18,7 @@ There is no "Getting Started" Guide for NuttX yet. However, most everything that you need to get started with NuttX can be found in the README.txt file located in the top-level NuttX directory. That README.txt can also be read online in the NuttX GIT repository - here. + here. Just click on "Links to HEAD: (view)" on that page.

            diff --git a/Documentation/NuttXNxFlat.html b/Documentation/NuttXNxFlat.html index fc1bcf1d91..0b8561a624 100644 --- a/Documentation/NuttXNxFlat.html +++ b/Documentation/NuttXNxFlat.html @@ -157,7 +157,7 @@
            NuttX To-Do ListNuttX To-Do List