Changeset 7a6f8d0 in rtems


Ignore:
Timestamp:
Apr 9, 2010, 12:22:57 PM (10 years ago)
Author:
Thomas Doerfler <Thomas.Doerfler@…>
Branches:
4.10, 4.11, master
Children:
22f107b6
Parents:
6d614c47
Message:

added dma header
added thumb support to start.S
updated documentation

Location:
c/src/lib/libbsp/arm
Files:
1 added
5 edited

Legend:

Unmodified
Added
Removed
  • c/src/lib/libbsp/arm/ChangeLog

    r6d614c47 r7a6f8d0  
     12010-04-09      Sebastian Huber <sebastian.huber@embedded-brains.de>
     2
     3        * shared/lpc/include/lpc-dma.h: New file.
     4        * shared/lpc/clock/lpc-clock-config.c, shared/lpc/include/lpc-timer.h,
     5        shared/lpc/network/lpc-ethernet.c: Documentation.
     6        * shared/start/start.S: Do not require ARM mode for start hooks.
     7
     82010-01-12      Sebastian Huber <sebastian.huber@embedded-brains.de>
     9
     10        * shared/lpc/network/lpc-ethernet.c: New file.
     11        * shared/abort/abort.c, shared/abort/simple_abort.c: Use new mode
     12        switch macros.
     13        * shared/start/start.S: Fixed mode switching function calls.  Use
     14        standard PSR defines.
     15        * shared/startup/linkcmds.base, shared/include/linker-symbols.h: Added
     16        .vbarrier and .robarrier output sections. Added defines for output
     17        section end alignment.  Renamed undefined mode stack defines.
     18
    1192009-12-15      Sebastian Huber <sebastian.huber@embedded-brains.de>
    220
  • c/src/lib/libbsp/arm/shared/lpc/clock/lpc-clock-config.c

    r6d614c47 r7a6f8d0  
    22 * @file
    33 *
    4  * @ingroup lpc
     4 * @ingroup lpc_clock
    55 *
    66 * @brief Clock driver configuration.
  • c/src/lib/libbsp/arm/shared/lpc/include/lpc-timer.h

    r6d614c47 r7a6f8d0  
    22 * @file
    33 *
    4  * @ingroup lpc
     4 * @ingroup lpc_timer
    55 *
    66 * @brief Timer API.
     
    2929#endif
    3030
     31/**
     32 * @defgroup lpc_timer Timer Support
     33 *
     34 * @ingroup lpc
     35 *
     36 * @brief Timer support.
     37 *
     38 * @{
     39 */
     40
     41/**
     42 * @name Interrupt Register Defines
     43 *
     44 * @{
     45 */
     46
    3147#define LPC_TIMER_IR_MR0 0x1U
    3248#define LPC_TIMER_IR_MR1 0x2U
     
    3955#define LPC_TIMER_IR_ALL 0xffU
    4056
     57/** @} */
     58
     59/**
     60 * @name Timer Control Register Defines
     61 *
     62 * @{
     63 */
     64
    4165#define LPC_TIMER_TCR_EN 0x1U
    4266#define LPC_TIMER_TCR_RST 0x2U
     67
     68/** @} */
     69
     70/**
     71 * @name Match Control Register Defines
     72 *
     73 * @{
     74 */
    4375
    4476#define LPC_TIMER_MCR_MR0_INTR 0x1U
     
    5587#define LPC_TIMER_MCR_MR3_STOP 0x800U
    5688
     89/** @} */
     90
     91/**
     92 * @name Capture Control Register Defines
     93 *
     94 * @{
     95 */
     96
    5797#define LPC_TIMER_CCR_CAP0_RE 0x1U
    5898#define LPC_TIMER_CCR_CAP0_FE 0x2U
     
    68108#define LPC_TIMER_CCR_CAP3_INTR 0x800U
    69109
     110/** @} */
     111
     112/**
     113 * @name External Match Register Defines
     114 *
     115 * @{
     116 */
     117
    70118#define LPC_TIMER_EMR_EM0_RE 0x1U
    71119#define LPC_TIMER_EMR_EM1_FE 0x2U
     
    77125#define LPC_TIMER_EMR_EMC3_FE 0x80U
    78126
     127/** @} */
     128
     129/**
     130 * @brief Timer control block.
     131 */
    79132typedef struct {
    80133  uint32_t ir;
     
    97150} lpc_timer;
    98151
     152/** @} */
     153
    99154#ifdef __cplusplus
    100155}
  • c/src/lib/libbsp/arm/shared/lpc/network/lpc-ethernet.c

    r6d614c47 r7a6f8d0  
    22 * @file
    33 *
    4  * @ingroup lpc
     4 * @ingroup lpc_eth
    55 *
    66 * @brief Ethernet driver.
  • c/src/lib/libbsp/arm/shared/start/start.S

    r6d614c47 r7a6f8d0  
    141141         * Branch to start hook 0.
    142142         *
    143          * This code up to the start hook 0 may run with an address offset so
    144          * it must be position independent.  After the start hook 0 it is
    145          * assumed that the code can run at its intended position.  The link
    146          * register will be loaded with the absolute address.
     143         * The previous code and parts of the start hook 0 may run with an
     144         * address offset.  This implies that only branches relative to the
     145         * program counter are allowed.  After the start hook 0 it is assumed
     146         * that the code can run at its intended position.  Thus the link
     147         * register will be loaded with the absolute address.  In THUMB mode
     148         * the start hook 0 must be within a 2kByte range due to the branch
     149         * instruction limitation.
    147150         */
    148151
    149152        ldr     lr, =bsp_start_hook_0_done
     153#ifdef __thumb__
     154        orr     lr, #1
     155#endif
     156
     157        SWITCH_FROM_ARM_TO_THUMB        r0
     158
    150159        b       bsp_start_hook_0
    151160
    152161bsp_start_hook_0_done:
     162
     163        SWITCH_FROM_THUMB_TO_ARM
    153164
    154165        /*
     
    164175        stmia   r0!, {r2-r9}
    165176
     177        SWITCH_FROM_ARM_TO_THUMB        r0
     178
    166179        /* Branch to start hook 1 */
    167180        bl      bsp_start_hook_1
    168 
    169         SWITCH_FROM_ARM_TO_THUMB        r0
    170181
    171182        /* Branch to boot card */
Note: See TracChangeset for help on using the changeset viewer.