Changeset d389819 in rtems-docs for bsp_howto


Ignore:
Timestamp:
Jan 18, 2016, 5:37:40 AM (4 years ago)
Author:
Amar Takhar <amar@…>
Branches:
4.11, master
Children:
f916fca
Parents:
11e1a6f
git-author:
Amar Takhar <amar@…> (01/18/16 05:37:40)
git-committer:
Amar Takhar <verm@…> (05/03/16 00:51:24)
Message:

Convert all Unicode to ASCII(128)

Location:
bsp_howto
Files:
16 edited

Legend:

Unmodified
Added
Removed
  • bsp_howto/analog.rst

    r11e1a6f rd389819  
    7272==========================
    7373
    74 At system initialization, the analog driver’s initialization entry point
     74At system initialization, the analog driver's initialization entry point
    7575will be invoked.  As part of initialization, the driver will perform
    7676whatever board initialization is required and then set all
  • bsp_howto/ata.rst

    r11e1a6f rd389819  
    102102ATA driver supports separate ATA requests queues for each IDE
    103103controller (one queue per controller). The following structure contains
    104 information about controller’s queue and devices attached to the controller:
     104information about controller's queue and devices attached to the controller:
    105105.. code:: c
    106106
     
    154154ATA request which is appended to the appropriate controller queue depending
    155155on ATA device the request belongs to. If appended request is single request in
    156 the controller’s queue then ATA driver event is generated.
     156the controller's queue then ATA driver event is generated.
    157157
    158158ATA driver task which manages queue of ATA driver events is core of ATA
  • bsp_howto/clock.rst

    r11e1a6f rd389819  
    99
    1010- A steady time basis to the kernel, so that the RTEMS primitives that need
    11   a clock tick work properly.  See the *Clock Manager* chapter of the*RTEMS Application C User’s Guide* for more details.
     11  a clock tick work properly.  See the *Clock Manager* chapter of the*RTEMS Application C User's Guide* for more details.
    1212
    1313- An optional time counter to generate timestamps of the uptime and wall
  • bsp_howto/console.rst

    r11e1a6f rd389819  
    3737Having RTEMS support for Termios is beneficial because:
    3838
    39 - from the user’s side because it provides standard primitive operations
     39- from the user's side because it provides standard primitive operations
    4040  to access the terminal and change configuration settings.  These operations
    4141  are the same under UNIX and RTEMS.
    4242
    43 - from the BSP developer’s side because it frees the
     43- from the BSP developer's side because it frees the
    4444  developer from dealing with buffer states and mutual exclusions on them.
    4545  Early RTEMS console device drivers also did their own special
  • bsp_howto/discrete.rst

    r11e1a6f rd389819  
    7777    is an array of the values that should be written to each output
    7878    word on the board during initialization.  This allows the driver
    79     to start with the board’s output  in a known state.
     79    to start with the board's output  in a known state.
    8080
    8181Initialize a Discrete I/O Board
    8282===============================
    8383
    84 At system initialization, the discrete I/O driver’s initialization entry point
     84At system initialization, the discrete I/O driver's initialization entry point
    8585will be invoked.  As part of initialization, the driver will perform
    8686whatever board initializatin is required and then set all
  • bsp_howto/index.rst

    r11e1a6f rd389819  
    33=======================================
    44
    5 COPYRIGHT © 1988 - 2015.
     5COPYRIGHT (c) 1988 - 2015.
    66
    77On-Line Applications Research Corporation (OAR).
  • bsp_howto/initilization_code.rst

    r11e1a6f rd389819  
    55============
    66
    7 The initialization code is the first piece of code executed when there’s a
     7The initialization code is the first piece of code executed when there's a
    88reset/reboot. Its purpose is to initialize the board for the application.
    99This chapter contains a narrative description of the initialization
     
    179179  entered, any C++ Global Constructors will be invoked.
    180180
    181 That’s it.  We just went through the entire sequence.
     181That's it.  We just went through the entire sequence.
    182182
    183183bsp_work_area_initialize() - BSP Specific Work Area Initialization
     
    228228defines device drivers entry points (initialization, open, close, read,
    229229write, and control). For more information about this table, please
    230 refer to the *Configuring a System* chapter in the*RTEMS Application C User’s Guide*.
     230refer to the *Configuring a System* chapter in the*RTEMS Application C User's Guide*.
    231231
    232232The RTEMS initialization procedure calls the initialization function for
     
    290290At ``__uhoh`` label is the default interrupt handler routine. This
    291291routine is only called when an unexpected interrupts is raised.  One can
    292 add their own routine there (in that case there’s a call to a routine -
     292add their own routine there (in that case there's a call to a routine -
    293293$BSP_ROOT/startup/dumpanic.c - that prints which address caused the
    294294interrupt and the contents of the registers, stack, etc.), but this should
     
    326326with multiple peripherals on the CPU itself.  For these devices,
    327327there are always some specific integrated processor registers
    328 that must be initialized.  Refer to the processors’ manuals for
     328that must be initialized.  Refer to the processors' manuals for
    329329details on these registers and be VERY careful programming them.
    330330
     
    349349The RTEMS configuration table contains the maximum number of objects RTEMS
    350350can handle during the application (e.g. maximum number of tasks,
    351 semaphores, etc.). It’s used to allocate the size for the RTEMS inner data
     351semaphores, etc.). It's used to allocate the size for the RTEMS inner data
    352352structures.
    353353
     
    368368information generated by ``<rtems/confdefs.h>`` constant and read only.
    369369
    370 For more information on the RTEMS Configuration Table, refer to the*RTEMS Application C User’s Guide*.
     370For more information on the RTEMS Configuration Table, refer to the*RTEMS Application C User's Guide*.
    371371
    372372.. COMMENT: COPYRIGHT (c) 1988-2008.
  • bsp_howto/linker_script.rst

    r11e1a6f rd389819  
    3535
    3636Even though RAM and ROM can be found in every personal computer,
    37 one generally doesn’t care about them.  In a personal computer,
     37one generally doesn't care about them.  In a personal computer,
    3838a program is nearly always stored on disk and executed in RAM.  Things
    3939are a bit different for embedded targets: the target will execute the
     
    5050
    5151- *code (``.text``) section*:
    52   is the program’s code and it should not be modified.
     52  is the program's code and it should not be modified.
    5353  This section may be placed in ROM.
    5454
     
    5858- *initialized data (``.data``) section*:
    5959  holds the initialized program data which may be modified during the
    60   program’s life.  This means they have to be in RAM.
     60  program's life.  This means they have to be in RAM.
    6161  On the other hand, these variables must be set to predefined values, and
    6262  those predefined values have to be stored in ROM.
     
    301301================
    302302
    303 Now there’s a problem with the initialized data: the ``.data`` section
     303Now there's a problem with the initialized data: the ``.data`` section
    304304has to be in RAM as this data may be modified during the program execution.
    305305But how will the values be initialized at boot time?
     
    355355
    356356Step 3 shows the final executable image as it logically appears in
    357 the target’s non-volatile program memory.  The board initialization
     357the target's non-volatile program memory.  The board initialization
    358358code will copy the ""copy of ``.data`` section" (which are stored in
    359359ROM) to their reserved location in RAM.
  • bsp_howto/makefiles.rst

    r11e1a6f rd389819  
    148148configuration file is ``make/custom/BSP.cfg``.
    149149
    150 The configuration file is taken into account when building one’s
     150The configuration file is taken into account when building one's
    151151application using the RTEMS template Makefiles (``make/templates``).
    152152These application template Makefiles have been included with the
    153 RTEMS source distribution since the early 1990’s.  However there is
     153RTEMS source distribution since the early 1990's.  However there is
    154154a desire in the RTEMS user community to move all provided examples to
    155155GNU autoconf. They are included in the 4.9 release series and used for
  • bsp_howto/miscellanous_support.rst

    r11e1a6f rd389819  
    115115All members of the Timing Test Suite are designed to run *WITHOUT*
    116116the Clock Device Driver installed.  This increases the predictability
    117 of the tests’ execution as well as avoids occassionally including the
     117of the tests' execution as well as avoids occassionally including the
    118118overhead of a clock tick interrupt in the time reported.  Because of
    119119this it is sometimes possible to use the clock tick interrupt source
  • bsp_howto/networking.rst

    r11e1a6f rd389819  
    77This chapter is intended to provide an introduction to the
    88procedure for writing RTEMS network device drivers.
    9 The example code is taken from the ‘Generic 68360’ network device
     9The example code is taken from the 'Generic 68360' network device
    1010driver.  The source code for this driver is located in the``c/src/lib/libbsp/m68k/gen68360/network`` directory in the RTEMS
    1111source code distribution.  Having a copy of this driver at
     
    1616
    1717Before starting to write the network driver become completely
    18 familiar with the programmer’s view of the device.
     18familiar with the programmer's view of the device.
    1919The following points list some of the details of the
    2020device that must be understood before a driver can be written.
     
    7171execute only when they hold the network semaphore (``rtems_bsdnet_semaphore``).
    7272The transmit and receive tasks must abide by this protocol.  Be very
    73 careful to avoid ‘deadly embraces’ with the other network tasks.
     73careful to avoid 'deadly embraces' with the other network tasks.
    7474A number of routines are provided to make it easier for the network
    7575driver code to conform to the network task scheduling conventions.
     
    162162``ifp->if_unit``
    163163    The device number.  The network stack uses this number and the
    164     device name for device name lookups.  For example, if``ifp->if_name`` is ‘``scc``’ and ``ifp->if_unit`` is ‘``1``’,
    165     the full device name would be ‘``scc1``’.  The unit number should be
    166     obtained from the ‘name’ entry in the configuration structure.
     164    device name for device name lookups.  For example, if``ifp->if_name`` is '``scc``' and ``ifp->if_unit`` is '``1``',
     165    the full device name would be '``scc1``'.  The unit number should be
     166    obtained from the 'name' entry in the configuration structure.
    167167
    168168``ifp->if_mtu``
     
    213213calling ``if_attach``.  Ethernet devices should then
    214214call ``ether_ifattach``.  Both functions take a pointer to the
    215 device’s ``ifnet`` structure as their only argument.
     215device's ``ifnet`` structure as their only argument.
    216216
    217217The attach function should return a non-zero value to indicate that
     
    223223This function is called each time the network stack wants to start the
    224224transmitter.  This occures whenever the network stack adds a packet
    225 to a device’s send queue and the ``IFF_OACTIVE`` bit in the
    226 device’s ``if_flags`` is not set.
     225to a device's send queue and the ``IFF_OACTIVE`` bit in the
     226device's ``if_flags`` is not set.
    227227
    228228For many devices this function need only set the ``IFF_OACTIVE`` bit in the``if_flags`` and send an event to the transmit task
  • bsp_howto/non_volatile_memory.rst

    r11e1a6f rd389819  
    128128=========================================
    129129
    130 At system initialization, the non-volatile memory driver’s
     130At system initialization, the non-volatile memory driver's
    131131initialization entry point will be invoked.  As part of
    132132initialization, the driver will perform
     
    141141===============================
    142142
    143 Depending on the target’s non-volatile memory configuration, it may be
     143Depending on the target's non-volatile memory configuration, it may be
    144144possible to write to a status register and make the memory area completely
    145145inaccessible.  This is target dependent and beyond the standard capabilities
  • bsp_howto/real_time_clock.rst

    r11e1a6f rd389819  
    3434of real-time clock is on a particular board.  This would be useful for
    3535a BSP supporting multiple board models.  The relevant ports of
    36 the DMV177’s ``RTC_Table`` configuration table is below:
     36the DMV177's ``RTC_Table`` configuration table is below:
    3737.. code:: c
    3838
     
    105105This configuration scheme allows one to support multiple versions
    106106of the same board with a single BSP.  For example, if the first
    107 generation of a board had Vendor A’s RTC chip and the second
    108 generation had Vendor B’s RTC chip, RTC_Table could contain
     107generation of a board had Vendor A's RTC chip and the second
     108generation had Vendor B's RTC chip, RTC_Table could contain
    109109information for both.  The ``deviceProbe`` configured
    110 for Vendor A’s RTC chip would need to return TRUE if the
     110for Vendor A's RTC chip would need to return TRUE if the
    111111board was a first generation one.  The ``deviceProbe``
    112112routines are very board dependent and must be provided by
  • bsp_howto/shared_memory_support.rst

    r11e1a6f rd389819  
    1212information on RTEMS multiprocessing capabilities and the
    1313MPCI, refer to the *Multiprocessing Manager* chapter
    14 of the *RTEMS Application C User’s Guide*.
     14of the *RTEMS Application C User's Guide*.
    1515
    1616Shared Memory Configuration Table
     
    9696window onto the shared memory.  For example, some VMEbus boards have
    9797special address windows to access addresses that are normally reserved
    98 in the CPU’s address space.
     98in the CPU's address space.
    9999.. code:: c
    100100
  • bsp_howto/target_dependant_files.rst

    r11e1a6f rd389819  
    3232The source code found in the ``cpukit/score/cpu`` is required to
    3333only depend upon the CPU model variations that GCC distinguishes
    34 for the purposes of multilib’ing.  Multilib is the term the GNU
     34for the purposes of multilib'ing.  Multilib is the term the GNU
    3535community uses to refer to building a single library source multiple
    3636times with different compiler options so the binary code generated
    37 is compatible.  As an example, from GCC’s perspective, many PowerPC
     37is compatible.  As an example, from GCC's perspective, many PowerPC
    3838CPU models are just a PPC603e.  Remember that GCC only cares about
    3939the CPU code itself and need not be aware of any peripherals.  In
     
    8787- Does a BSP for a similar board exists?
    8888
    89 - Is the board’s CPU supported?
     89- Is the board's CPU supported?
    9090
    9191If there is already a BSP for the board, then things may already be ready
     
    9393that the existing BSP provides device drivers for all the peripherals
    9494on the board that the application will be using.  For example, the application
    95 in question may require that the board’s Ethernet controller be used and
     95in question may require that the board's Ethernet controller be used and
    9696the existing BSP may not support this.
    9797
    98 If the BSP does not exist and the board’s CPU model is supported, then
     98If the BSP does not exist and the board's CPU model is supported, then
    9999examine the reusable chip library and existing BSPs for a close match.
    100100Other BSPs and libchip provide starting points for the development
     
    104104This will help reduce the development effort required.
    105105
    106 If the board’s CPU family is supported but the particular CPU model on
     106If the board's CPU family is supported but the particular CPU model on
    107107that board is not, then the RTEMS port to that CPU family will have to
    108108be augmented.  After this is done, development of the new BSP can proceed.
     
    180180
    181181- *clock*:
    182   support for the clock tick – a regular time basis to the kernel.
     182  support for the clock tick - a regular time basis to the kernel.
    183183
    184184- *timer*:
  • bsp_howto/timer.rst

    r11e1a6f rd389819  
    8484input FIFO full mode (FIFO means First In First Out and roughly means
    8585buffer). This mode consists in the UART raising an interrupt when n
    86 characters have been received (*n* is the UART’s FIFO length). It results
     86characters have been received (*n* is the UART's FIFO length). It results
    8787in a lower interrupt processing time, but the problem is that a scanf
    8888primitive will block on a receipt of less than *n* characters. The solution
    8989is to set a timer that will check whether there are some characters
    90 waiting in the UART’s input FIFO. The delay time has to be set carefully
     90waiting in the UART's input FIFO. The delay time has to be set carefully
    9191otherwise high rates will be broken:
    9292
Note: See TracChangeset for help on using the changeset viewer.