Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/dom/webidl/   (Firefox Browser Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 769 B image not shown  

Quelle  omap2plus.S   Sprache: unbekannt

 
/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Debugging macro include header
 *
 *  Copyright (C) 1994-1999 Russell King
 *  Moved from linux/arch/arm/kernel/debug.S by Ben Dooks
*/


#include <linux/serial_reg.h>

/* External port on Zoom2/3 */
#define ZOOM_UART_BASE  0x10000000
#define ZOOM_UART_VIRT  0xfa400000

#define OMAP_PORT_SHIFT  2
#define ZOOM_PORT_SHIFT  1

#define UART_OFFSET(addr) ((addr) & 0x00ffffff)

  .pushsection .data
  .align 2
omap_uart_phys: .word 0
omap_uart_virt: .word 0
omap_uart_lsr: .word 0
  .popsection

  .macro addruart, rp, rv, tmp

  /* Use omap_uart_phys/virt if already configured */
10:  adr \rp, 99f  @ get effective addr of 99f
  ldr \rv, [\rp]  @ get absolute addr of 99f
  sub \rv, \rv, \rp  @ offset between the two
  ldr \rp, [\rp, #4]  @ abs addr of omap_uart_phys
  sub \tmp, \rp, \rv  @ make it effective
  ldr \rp, [\tmp, #0]  @ omap_uart_phys
  ldr \rv, [\tmp, #4]  @ omap_uart_virt
  cmp \rp, #0   @ is port configured?
  cmpne \rv, #0
  bne 100f   @ already configured

  /* Configure the UART offset from the phys/virt base */
#ifdef CONFIG_DEBUG_ZOOM_UART
  ldr \rp, =ZOOM_UART_BASE
  str \rp, [\tmp, #0]  @ omap_uart_phys
  ldr \rp, =ZOOM_UART_VIRT
  str \rp, [\tmp, #4]  @ omap_uart_virt
  mov \rp, #(UART_LSR << ZOOM_PORT_SHIFT)
  str \rp, [\tmp, #8]  @ omap_uart_lsr
#endif
  b 10b

  .align
99:  .word .
  .word omap_uart_phys
  .ltorg

100:  /* Pass the UART_LSR reg address */
  ldr \tmp, [\tmp, #8] @ omap_uart_lsr
  add \rp, \rp, \tmp
  add \rv, \rv, \tmp
  .endm

  .macro senduart,rd,rx
  orr \rd, \rd, \rx, lsl #24 @ preserve LSR reg offset
  bic \rx, \rx, #0xff  @ get base (THR) reg address
  strb \rd, [\rx]  @ send lower byte of rd
  orr \rx, \rx, \rd, lsr #24 @ restore original rx (LSR)
  bic \rd, \rd, #(0xff << 24) @ restore original rd
  .endm

  .macro busyuart,rd,rx
1001:  ldrb \rd, [\rx]  @ rx contains UART_LSR address
  and \rd, \rd, #(UART_LSR_TEMT | UART_LSR_THRE)
  teq \rd, #(UART_LSR_TEMT | UART_LSR_THRE)
  bne 1001b
  .endm

  .macro waituartcts,rd,rx
  .endm

  .macro waituarttxrdy,rd,rx
  .endm

Messung V0.5 in Prozent
C=95 H=92 G=93

[zur Elbe Produktseite wechseln0.10QuellennavigatorsAnalyse erneut starten2026-06-07]