Bus error timeout

sd-bus-errors, SD_BUS_ERROR_FAILED, SD_BUS_ERROR_NO_MEMORY, SD_BUS_ERROR_SERVICE_UNKNOWN, SD_BUS_ERROR_NAME_HAS_NO_OWNER, SD_BUS_ERROR_NO_REPLY, SD_BUS_ERROR_IO_ERROR, SD_BUS_ERROR_BAD_ADDRESS, SD_BUS_ERROR_NOT_SUPPORTED, SD_BUS_ERROR_LIMITS_EXCEEDED, SD_BUS_ERROR_ACCESS_DENIED, SD_BUS_ERROR_AUTH_FAILED, SD_BUS_ERROR_NO_SERVER, SD_BUS_ERROR_TIMEOUT, SD_BUS_ERROR_NO_NETWORK, SD_BUS_ERROR_ADDRESS_IN_USE, SD_BUS_ERROR_DISCONNECTED, SD_BUS_ERROR_INVALID_ARGS, SD_BUS_ERROR_FILE_NOT_FOUND, SD_BUS_ERROR_FILE_EXISTS, SD_BUS_ERROR_UNKNOWN_METHOD, SD_BUS_ERROR_UNKNOWN_OBJECT, SD_BUS_ERROR_UNKNOWN_INTERFACE, SD_BUS_ERROR_UNKNOWN_PROPERTY, SD_BUS_ERROR_PROPERTY_READ_ONLY, SD_BUS_ERROR_UNIX_PROCESS_ID_UNKNOWN, SD_BUS_ERROR_INVALID_SIGNATURE, SD_BUS_ERROR_INCONSISTENT_MESSAGE, SD_BUS_ERROR_MATCH_RULE_NOT_FOUND, SD_BUS_ERROR_MATCH_RULE_INVALID, SD_BUS_ERROR_INTERACTIVE_AUTHORIZATION_REQUIRED - Standard D-Bus error names
SD-BUS-ERRORS(3) sd-bus-errors SD-BUS-ERRORS(3)

NAME

sd-bus-errors, SD_BUS_ERROR_FAILED, SD_BUS_ERROR_NO_MEMORY,
SD_BUS_ERROR_SERVICE_UNKNOWN, SD_BUS_ERROR_NAME_HAS_NO_OWNER,
SD_BUS_ERROR_NO_REPLY, SD_BUS_ERROR_IO_ERROR, SD_BUS_ERROR_BAD_ADDRESS,
SD_BUS_ERROR_NOT_SUPPORTED, SD_BUS_ERROR_LIMITS_EXCEEDED,
SD_BUS_ERROR_ACCESS_DENIED, SD_BUS_ERROR_AUTH_FAILED,
SD_BUS_ERROR_NO_SERVER, SD_BUS_ERROR_TIMEOUT, SD_BUS_ERROR_NO_NETWORK,
SD_BUS_ERROR_ADDRESS_IN_USE, SD_BUS_ERROR_DISCONNECTED,
SD_BUS_ERROR_INVALID_ARGS, SD_BUS_ERROR_FILE_NOT_FOUND,
SD_BUS_ERROR_FILE_EXISTS, SD_BUS_ERROR_UNKNOWN_METHOD,
SD_BUS_ERROR_UNKNOWN_OBJECT, SD_BUS_ERROR_UNKNOWN_INTERFACE,
SD_BUS_ERROR_UNKNOWN_PROPERTY, SD_BUS_ERROR_PROPERTY_READ_ONLY,
SD_BUS_ERROR_UNIX_PROCESS_ID_UNKNOWN, SD_BUS_ERROR_INVALID_SIGNATURE,
SD_BUS_ERROR_INCONSISTENT_MESSAGE, SD_BUS_ERROR_MATCH_RULE_NOT_FOUND,
SD_BUS_ERROR_MATCH_RULE_INVALID,
SD_BUS_ERROR_INTERACTIVE_AUTHORIZATION_REQUIRED — Standard D-Bus error
names

SYNOPSIS

#include <systemd/sd-bus.h>
#define SD_BUS_ERROR_FAILED                     "org.freedesktop.DBus.Error.Failed"
#define SD_BUS_ERROR_NO_MEMORY                  "org.freedesktop.DBus.Error.NoMemory"
#define SD_BUS_ERROR_SERVICE_UNKNOWN            "org.freedesktop.DBus.Error.ServiceUnknown"
#define SD_BUS_ERROR_NAME_HAS_NO_OWNER          "org.freedesktop.DBus.Error.NameHasNoOwner"
#define SD_BUS_ERROR_NO_REPLY                   "org.freedesktop.DBus.Error.NoReply"
#define SD_BUS_ERROR_IO_ERROR                   "org.freedesktop.DBus.Error.IOError"
#define SD_BUS_ERROR_BAD_ADDRESS                "org.freedesktop.DBus.Error.BadAddress"
#define SD_BUS_ERROR_NOT_SUPPORTED              "org.freedesktop.DBus.Error.NotSupported"
#define SD_BUS_ERROR_LIMITS_EXCEEDED            "org.freedesktop.DBus.Error.LimitsExceeded"
#define SD_BUS_ERROR_ACCESS_DENIED              "org.freedesktop.DBus.Error.AccessDenied"
#define SD_BUS_ERROR_AUTH_FAILED                "org.freedesktop.DBus.Error.AuthFailed"
#define SD_BUS_ERROR_NO_SERVER                  "org.freedesktop.DBus.Error.NoServer"
#define SD_BUS_ERROR_TIMEOUT                    "org.freedesktop.DBus.Error.Timeout"
#define SD_BUS_ERROR_NO_NETWORK                 "org.freedesktop.DBus.Error.NoNetwork"
#define SD_BUS_ERROR_ADDRESS_IN_USE             "org.freedesktop.DBus.Error.AddressInUse"
#define SD_BUS_ERROR_DISCONNECTED               "org.freedesktop.DBus.Error.Disconnected"
#define SD_BUS_ERROR_INVALID_ARGS               "org.freedesktop.DBus.Error.InvalidArgs"
#define SD_BUS_ERROR_FILE_NOT_FOUND             "org.freedesktop.DBus.Error.FileNotFound"
#define SD_BUS_ERROR_FILE_EXISTS                "org.freedesktop.DBus.Error.FileExists"
#define SD_BUS_ERROR_UNKNOWN_METHOD             "org.freedesktop.DBus.Error.UnknownMethod"
#define SD_BUS_ERROR_UNKNOWN_OBJECT             "org.freedesktop.DBus.Error.UnknownObject"
#define SD_BUS_ERROR_UNKNOWN_INTERFACE          "org.freedesktop.DBus.Error.UnknownInterface"
#define SD_BUS_ERROR_UNKNOWN_PROPERTY           "org.freedesktop.DBus.Error.UnknownProperty"
#define SD_BUS_ERROR_PROPERTY_READ_ONLY         "org.freedesktop.DBus.Error.PropertyReadOnly"
#define SD_BUS_ERROR_UNIX_PROCESS_ID_UNKNOWN    "org.freedesktop.DBus.Error.UnixProcessIdUnknown"
#define SD_BUS_ERROR_INVALID_SIGNATURE          "org.freedesktop.DBus.Error.InvalidSignature"
#define SD_BUS_ERROR_INCONSISTENT_MESSAGE       "org.freedesktop.DBus.Error.InconsistentMessage"
#define SD_BUS_ERROR_MATCH_RULE_NOT_FOUND       "org.freedesktop.DBus.Error.MatchRuleNotFound"
#define SD_BUS_ERROR_MATCH_RULE_INVALID         "org.freedesktop.DBus.Error.MatchRuleInvalid"
#define SD_BUS_ERROR_INTERACTIVE_AUTHORIZATION_REQUIRED 

"org.freedesktop.DBus.Error.InteractiveAuthorizationRequired"

DESCRIPTION

In addition to the error names user programs define, D-Bus knows a
number of generic, standardized error names that are listed below.

In addition to this list, in sd-bus, the special error namespace
«System.Error.» is used to map arbitrary Linux system errors (as
defined by errno(3)) to D-Bus errors and back. For example, the error
EUCLEAN is mapped to «System.Error.EUCLEAN» and back.

SD_BUS_ERROR_FAILED

A generic error indication. See the error message for
further details. This error name should be avoided, in favor of a more
expressive error name.

SD_BUS_ERROR_NO_MEMORY

A memory allocation failed, and the requested operation
could not be completed.

SD_BUS_ERROR_SERVICE_UNKNOWN

The contacted bus service is unknown and cannot be
activated.

SD_BUS_ERROR_NAME_HAS_NO_OWNER

The specified bus service name currently has no
owner.

SD_BUS_ERROR_NO_REPLY

A message did not receive a reply. This error is usually
generated after a timeout.

SD_BUS_ERROR_IO_ERROR

Generic input/output error, for example when accessing a
socket or other I/O context.

SD_BUS_ERROR_BAD_ADDRESS

The specified D-Bus bus address string is
malformed.

SD_BUS_ERROR_NOT_SUPPORTED

The requested operation is not supported on the local
system.

SD_BUS_ERROR_LIMITS_EXCEEDED

Some limited resource has been exhausted.

SD_BUS_ERROR_ACCESS_DENIED

Access to a resource has been denied due to security
restrictions.

SD_BUS_ERROR_AUTH_FAILED

Authentication did not complete successfully.

SD_BUS_ERROR_NO_SERVER

Unable to connect to the specified server.

SD_BUS_ERROR_TIMEOUT

An operation timed out. Note that method calls which
timeout generate a SD_BUS_ERROR_NO_REPLY.

SD_BUS_ERROR_NO_NETWORK

No network available to execute requested network
operation on.

SD_BUS_ERROR_ADDRESS_IN_USE

The specified network address is already being listened
on.

SD_BUS_ERROR_DISCONNECTED

The connection has been terminated.

SD_BUS_ERROR_INVALID_ARGS

One or more invalid arguments have been passed.

SD_BUS_ERROR_FILE_NOT_FOUND

The requested file could not be found.

SD_BUS_ERROR_FILE_EXISTS

The requested file already exists.

SD_BUS_ERROR_UNKNOWN_METHOD

The requested method does not exist in the selected
interface.

SD_BUS_ERROR_UNKNOWN_OBJECT

The requested object does not exist in the selected
service.

SD_BUS_ERROR_UNKNOWN_INTERFACE

The requested interface does not exist on the selected
object.

SD_BUS_ERROR_UNKNOWN_PROPERTY

The requested property does not exist in the selected
interface.

SD_BUS_ERROR_PROPERTY_READ_ONLY

A write operation was requested on a read-only
property.

SD_BUS_ERROR_UNIX_PROCESS_ID_UNKNOWN

The requested PID is not known.

SD_BUS_ERROR_INVALID_SIGNATURE

The specified message signature is not valid.

SD_BUS_ERROR_INCONSISTENT_MESSAGE

The passed message does not validate correctly.

SD_BUS_ERROR_MATCH_RULE_NOT_FOUND

The specified match rule does not exist.

SD_BUS_ERROR_MATCH_RULE_INVALID

The specified match rule is invalid.

SD_BUS_ERROR_INTERACTIVE_AUTHORIZATION_REQUIRED

Access to the requested operation is not permitted.
However, it might be available after interactive authentication. This is
usually returned by method calls supporting a framework for additional
interactive authorization, when interactive authorization was not enabled with
the sd_bus_message_set_allow_interactive_authorization(3) for the
method call message.

NOTES

These APIs are implemented as a shared library, which can be
compiled and linked to with the
libsystemd pkg-config(1) file.

SEE ALSO

systemd(1), sd-bus(3), sd_bus_error(3),
sd_bus_message_set_allow_interactive_authorization(3),
errno(3), strerror_r(3)

bus timeout error

Сетевые технологии: ошибка тайм-аута шины

Универсальный англо-русский словарь.
.
2011.

Смотреть что такое «bus timeout error» в других словарях:

  • ошибка тайм-аута шины — Сигнал, идентифицирующий неполучение от исполнителя необходимого сигнала ответа в течение цикла взаимодействия в современных интерфейсах в фазе адресации абонента. [Е.С.Алексеев, А.А.Мячев. Англо русский толковый словарь по системотехнике ЭВМ.… …   Справочник технического переводчика

  • Microdrive — For other uses, see Microdrive (disambiguation). IBM 1 GB Microdrive Microdrive (MD) is a brand name for a miniature, 1 inch hard disk designed to fit in a CompactFlash (CF) Type II slot. The release of similar drives by other makers has led to… …   Wikipedia

  • RAID — This article is about the data storage technology. For other uses, see Raid (disambiguation). RAID, an acronym for Redundant Array of Independent Disks (originally Redundant Array of Inexpensive Disks),[1] is a storage… …   Wikipedia

  • Wireless USB specification — Certified Wireless USB (W USB for short) is the specification of a wireless extension of the USB standard which intends to further increase the availability of general USB based solutions. It is maintained by the WiMedia Alliance, and as of 2007… …   Wikipedia

  • OSI model — 7. Application layer NNTP  · SIP  · SSI  · DNS  · FTP  · Gopher  · …   Wikipedia

  • PCI Express — Not to be confused with PCI X. PCI Express Year created 2004 Created by Intel · Dell · IBM · …   Wikipedia

  • NTLDR — (abbreviation of NT loader) is the boot loader for all releases of Windows NT operating system up to and including Windows XP and Windows Server 2003. NTLDR is typically run from the primary hard disk drive, but it can also run from portable… …   Wikipedia

  • Wireless USB (especificación) — Certified Wireless USB (abreviado Wireless USB o W USB) es la especificación de una extensión inalámbrica del estándar USB cuyo propósito es aumentar la disponibilidad de soluciones de conectividad basadas en USB. WiMedia Alliance es la encargada …   Wikipedia Español

  • SCSI contingent allegiance condition — On a computer SCSI connection, a contingent allegiance condition occurs while a SCSI device reports an error. SCSI communication takes place between an initiator and a target. The initiator sends a command to the target which then responds. At… …   Wikipedia

  • 400 (number) — ← 399 401 → 400 List of numbers Integers ← 0 100 200 …   Wikipedia

  • Liste der BIOS-Signaltöne — Dieser Artikel wurde aufgrund von inhaltlichen Mängeln auf der Qualitätssicherungsseite der Redaktion Informatik eingetragen. Dies geschieht, um die Qualität der Artikel aus dem Themengebiet Informatik auf ein akzeptables Niveau zu bringen. Hilf… …   Deutsch Wikipedia

GStreamer Daemon
GStreamer Daemon
GStreamer Daemon Basics
Building GStreamer Daemon
Quick Start Guide
Interacting with Pipelines
Modifying Element Properties
Sending Events
Receiving Messages from the Bus
  • EOS
  • Seek
  • Flush start/Flush stop
Receiving Signals
Enabling the Debug Subsystem
Low-level Implementation for Applications
Response Format
API Reference
  • C/C++ API
  • Python API
  • JavaScript API
  • HTTP API
Simple Examples
  • Gapless Playback
  • MP4 Video Recording
  • New Clock
  • Slow Motion
  • Reverse Playback
  • Monitor pipeline errors
Advanced Examples
  • Gstd and Interpipes
  • CCTV
  • Digital Camera
  • GstD Digital PTZ
  • GstD with ROS
API Examples
  • Python Video Player Example
  • Javascript Video Player Example
Troubleshooting
  • Interpipesink
Releases
Licensing
FAQ
Contact Us

A GStreamer bus takes care of forwarding messages from a pipeline. A bus is needed so applications do not need to be thread-aware, even though the underlying pipeline is heavily threaded. For GStreamer Daemon, the concept of a bus is not important, but we use the terminology to maintain consistency with GStreamer. What is important is a pipeline can generate messages and GStreamer Daemon allows those messages to flow back to the client application.

This wiki describes the basics of how to interact with GStreamer bus properties. Specifically, how to receive messages from the bus. You’ll find that the family of commands used to interact with pipelines are prefixed with bus_<action>.

Contents

  • 1 Read bus
  • 2 Read and filter bus
  • 3 Bus timeout
  • 4 Messages
  • 5 Examples Application
    • 5.1 Error bus filter
    • 5.2 Error bus filter and timeout
    • 5.3 Error+EOS bus filter

Read bus

In order to read a bus use the following command:

bus_read <name> 
       Read the bus of the pipeline.

Read and filter bus

Sometimes is important to read and filter some messages from the bus, Gstd has the capability to read and filter (ie:error+warning+eos), In order to read and filter use the following command:

bus_filter <name> <filter> 
       Read and filter the bus of the pipeline.

Bus timeout

This command will block while waiting for messages set with the bus_filter command. You can specify a maximum time with the timeout parameter, the time argument is set on nanoseconds.

bus_timeout <name> <time in nanoseconds> 
       bus timeout of the pipeline.

There are lots of bus messages that are defined. The documentation tends to lag the implementation, so if you want the latest, most complete list of support bus messages, look at the gstd_msg_type_get_type table in gstd_msg_type.c.

The following table lists the supported bus messages. You can use either a hyphen or underscore in the bus message name.

Bus Message Version Meaning
eos all After the pipeline sink element finishes processing EOS, the bus reports the event to the application.
error all An element in the pipeline is in the error state.
warning all An element in the pipeline encountered a recoverable error.
info all An element in the pipeline produced some information.
tag all An element in the pipeline decoded metadata about the stream.
buffering all An element in the pipeline is buffering would add a delay until the buffer is full.
clock_lost all The pipeline clock is unusable.
new_clock all A new clock was selected for the pipeline.
structure_change all The buffer flow through the pipeline changed.
stream_status all The pipeline started, stopped, or paused.
element all Element specific message.
segment_start all New stream segment being processed.
segment_done all Segment seek requested and segment playback completed.
duration_changed all Stream duration changed.
latency all Pipeline latency changed.
async_start all Pipeline sink element changed its asynchronous processing behavior.
async_done all Pipeline sink element received first stream buffer after changing its asynchronous processing behavior.
request_state all Element in pipeline wants to change its state.
step_start all Pipeline stepping operation started.
qos all A buffer in the pipeline was dropped or an element changed its processing strategy for Quality of Service reasons.
progress all A pipeline element has made progress processing an asynchronous operation.
toc all Pipeline encountered a new table of contents.
reset_time all
stream_start all Pipeline processing new stream.
extended minor > 4
device_added minor > 4
device_removed minor > 4
property_notify minor > 10
stream_collection minor > 10
streams_selected minor > 10
redirect minor > 10

Examples Application

A very useful application using a bus filter is when is needed to know if there is an error or EOS. These examples show how to use the bus filter and bus read.

Error bus filter

This example only filter errors with an infinite timeout.

Gstd Commands:

 1 # Create the pipeline that generate an error  
 2 pipeline_create p filesrc location=/tmp/test.avi ! identity error-after=2000 ! avidemux ! avdec_mpeg4 ! fpsdisplaysink 
 3 
 4 # Filter only a message error
 5 bus_filter p error
 6 
 7 # Play the pipeline
 8 pipeline_play p
 9 
10 # Waiting until bus read a message error 
11 bus_read p

Error bus filter and timeout

This example only filter errors with a 100s of timeout. If did get an error message it returns

Gstd Commands:

 1 # Create the pipeline that generate an error  
 2 pipeline_create p filesrc location=/tmp/test.avi ! identity error-after=2000 ! avidemux ! avdec_mpeg4 ! fpsdisplaysink 
 3 
 4 # Filter only a message error
 5 bus_filter p error
 6 
 7 # wait 100s to read message error, if not, returns 
 8 bus_timeout p 100000000000 
 9 
10 # Play the pipeline
11 pipeline_play p
12 
13 # Waiting until bus read a message error 
14 bus_read p

Error+EOS bus filter

This example filter errors and eos messages with an infinite timeout.

Gstd Commands:

 1 # Create the pipeline that generate an eos  
 2 pipeline_create p filesrc location=/tmp/test.avi  ! avidemux ! avdec_mpeg4 ! fpsdisplaysink 
 3 
 4 # Filter a message error and EOS message
 5 bus_filter p error+eos
 6 
 7 # Play the pipeline
 8 pipeline_play p
 9 
10 # Waiting until bus read a message error or eos message
11 bus_read p

Example Gstd bus_read Response:

 1 {
 2   "code" : 0,
 3   "description" : "Success",
 4   "response" : {
 5     "type" : "error",
 6     "source" : "avidemux2",
 7     "timestamp" : "99:99:99.999999999",
 8     "seqnum" : 104,
 9     "message" : "Internal data stream error.",
10     "debug" : "gstavidemux.c(5713): gst_avi_demux_loop (): /GstPipeline:p/GstAviDemux:avidemux2:nstreaming stopped, reason not-linked"
11   }
12 }

BUS THREE-STATED

BG ASSERTED

BR VALID INTERNAL

BR SAMPLED

BR ASSERTED

CLK

BUS RELEASED FROM THREE STATE AND PROCESSOR STARTS NEXT BUS CYCLE BR NEGATED INTERNAL

BR SAMPLED

BR NEGATED

S0

S2

S4

S6

S0

S2

S4

S6

S0

BR

BG

BGACK

FC2–FC0

A23–A1

AS

UDS

LDS

R/W

DTACK

D15–D0

PROCESSOR ALTERNATE BUS MASTER PROCESSOR

Figure 5-24. 2-Wire Bus Arbitration Timing Diagram—Special Case

In a bus architecture that requires a handshake from an external device, such as the asynchronous bus used in the M68000 Family, the handshake may not always occur. A bus error input is provided to terminate a bus cycle in error when the expected signal is not asserted. Different systems and different devices within the same system require different maximum-response times. External circuitry can be provided to assert the bus error signal after the appropriate delay following the assertion of address strobe.

In a virtual memory system, the bus error signal can be used to indicate either a page fault or a bus timeout. An external memory management unit asserts bus error when the page that contains the required data is not resident in memory. The processor suspends execution of the current instruction while the page is loaded into memory. The MC68010 pushes enough information on the stack to be able to resume execution of the instruction following return from the bus error exception handler.

MOTOROLA

M68000 8-/16-/32-BIT MICROPROCESSORS USER’S MANUAL

5-23

The MC68010 also differs from the other microprocessors described in this manual regarding bus errors. The MC68010 can detect a late bus error signal asserted within one clock cycle after the assertion of data transfer acknowledge. When receiving a bus error signal, the processor can either initiate a bus error exception sequence or try running the cycle again.

5.4.1 Bus Error Operation

In all the microprocessors described in this manual, a bus error is recognized when

DTACK and HALT are negated and BERR is asserted. In the MC68010, a late bus error is also recognized when HALT is negated, and DTACK and BERR are asserted within one clock cycle.

When the bus error condition is recognized, the current bus cycle is terminated in S9 for a read cycle, a write cycle, or the read portion of a read-modify-write cycle. For the write portion of a read-modify-write cycle, the current bus cycle is terminated in S21. As long as

BERR remains asserted, the data and address buses are in the high-impedance state. Figure 5-25 shows the timing for the normal bus error, and Figure 5-26 shows the timing for the MC68010 late bus error.

S0

S2

S4

w

w

w

w

S6

S8

CLK

FC2–FC0

A23–A1

AS

LDS/UDS

R/W

DTACK

D15–D0

BERR

HALT

INITIATE

RESPONSE

BUS ERROR

INITIATE BUS

READ

FAILURE

DETECTION

ERROR STACKING

Figure 5-25. Bus Error Timing Diagram

5-24

M68000 8-/16-/32-BIT MICROPROCESSORS USER’S MANUAL

MOTOROLA

CLK

FC2–FC0

A23–A1

AS

UDS/LDS

R/W

DTACK

D15–D0

BERR

HALT

BUS ERROR

INITIATE BUS

READ CYCLE

DETECTION

ERROR STACKING

Figure 5-26. Delayed Bus Error Timing Diagram (MC68010)

After the aborted bus cycle is terminated and BERR is negated, the processor enters exception processing for the bus error exception. During the exception processing sequence, the following information is placed on the supervisor stack:

1.Status register

2.Program counter (two words, which may be up to five words past the instruction being executed)

3.Error information

The first two items are identical to the information stacked by any other exception. The error information differs for the MC68010. The MC68000, MC68HC000, MC68HC001, MC68EC000, and MC68008 stack bus error information to help determine and to correct the error. The MC68010 stacks the frame format and the vector offset followed by 22 words of internal register information. The return from exception (RTE) instruction restores the internal register information so that the MC68010 can continue execution of the instruction after the error handler routine completes.

After the processor has placed the required information on the stack, the bus error exception vector is read from vector table entry 2 (offset $08) and placed in the program counter. The processor resumes execution at the address in the vector, which is the first instruction in the bus error handler routine.

MOTOROLA

M68000 8-/16-/32-BIT MICROPROCESSORS USER’S MANUAL

5-25

NOTE

In the MC68010, if a read-modify-write operation terminates in a bus error, the processor reruns the entire read-modify-write operation when the RTE instruction at the end of the bus error handler returns control to the instruction in error. The processor reruns the entire operation whether the error occurred during the read or write portion.

5.4.2 Retrying The Bus Cycle

The assertion of the bus error signal during a bus cycle in which HALT is also asserted by an external device initiates a retry operation. Figure 5-27 is a timing diagram of the retry operation. The delayed BERR signal in the MC68010 also initiates a retry operation when

HALT is asserted by an external device. Figure 5-28 shows the timing of the delayed operation.

S0

S2

S4

S6

S8

S0

S2

S4

S6

CLK

FC2-FC0

A23–A1

AS

LDS/UDS

R/W

DTACK

D15–D0

BERR

³ 1 CLOCK PERIOD

HALT

READ HALT RETRY

Figure 5-27. Retry Bus Cycle Timing Diagram

5-26

M68000 8-/16-/32-BIT MICROPROCESSORS USER’S MANUAL

MOTOROLA

S0

S2

S4

S6

S0

S2

S4

S6

CLK

FC2–FC0

A23–A1

AS

UDS

LDS

R/W

DTACK

D0–D15

BERR

HALT

READ

HALT

RETRY

Figure 5-28. Delayed Retry Bus Cycle Timing Diagram

The processor terminates the bus cycle, then puts the address and data lines in the highimpedance state. The processor remains in this state until HALT is negated. Then the processor retries the preceding cycle using the same function codes, address, and data (for a write operation). BERR should be negated at least one clock cycle before HALT is negated.

NOTE

To guarantee that the entire read-modify-write cycle runs correctly and that the write portion of the operation is performed without negating the address strobe, the processor does not retry a read-modify-write cycle. When a bus error occurs during a read-modify-write operation, a bus error operation is performed whether or not HALT is asserted.

5.4.3 Halt Operation (

HALT performs a halt/run/single-step operation similar to the halt operation of an MC68000. When HALT is asserted by an external device, the processor halts and remains halted as long as the signal remains asserted, as shown in Figure 5-29.

MOTOROLA

M68000 8-/16-/32-BIT MICROPROCESSORS USER’S MANUAL

5-27

Соседние файлы в предмете Микроконтроллеры ЭВМ

  • #
  • #

    16.04.2013108.52 Кб13MC68000.txt

  • #
  • #

    16.04.201356 б10readme.txt

MR_will

New Member

  • Total Posts : 14
  • Reward points : 0
  • Joined: 2010/08/26 23:50:46
  • Location: 0
  • Status: offline

Hi!

I have a Problem with my USB Host. (HID mouse from the example-project):
after i connect the mouse to the host, the host reads out the size of the device descriptor without any problems. But after that, the host starts to read out the device descriptor. It initialize the transaction by sending the setup token. Then the complete device descriptor arrives. But after that i get two kinds of error:
.) Bus Timeout (4 of 5)
.) End of Frame (1 of 5)
and I have no idea where the Problem is because i completed a Transaction bevor (get size device descriptor) without any problems…
Anyone an idea why it fails???

lg
will

MR_will

New Member

  • Total Posts : 14
  • Reward points : 0
  • Joined: 2010/08/26 23:50:46
  • Location: 0
  • Status: offline

Re:USB Error: Bus Timeout / End of Frame


2010/11/29 05:18:25

(permalink)

im sorry i forgot:
im using a pic24fj256gb106 and HITECH

xiaofan

Super Member

  • Total Posts : 6296
  • Reward points : 0
  • Joined: 2005/04/14 07:05:25
  • Location: Singapore
  • Status: offline

Re:USB Error: Bus Timeout / End of Frame


2010/11/29 18:15:09

(permalink)

Forget about HiTech for a moment and use C30 instead.

I hear that HiTech dsPICC will be dropped in the future since C30 is way better.

MR_will

New Member

  • Total Posts : 14
  • Reward points : 0
  • Joined: 2010/08/26 23:50:46
  • Location: 0
  • Status: offline

Re:USB Error: Bus Timeout / End of Frame


2010/11/30 00:26:24

(permalink)

it works with c30 very well but i must use HTECH because my company does

i dont understand why the get descriptor size transaction works and the get descriptor transaction fails at the moment i send the last out token…

MR_will

New Member

  • Total Posts : 14
  • Reward points : 0
  • Joined: 2010/08/26 23:50:46
  • Location: 0
  • Status: offline

Re:USB Error: Bus Timeout / End of Frame


2010/11/30 04:39:39

(permalink)

i added a uart instruction… now it works 
thank you 
hitech…

jeshra_279

New Member

  • Total Posts : 12
  • Reward points : 0
  • Joined: 2012/08/08 04:36:24
  • Location: 0
  • Status: offline

Re:USB Error: Bus Timeout / End of Frame


2013/01/16 04:47:55

(permalink)

Hi,
Can You please let me know how to fix this problem, as I am not getting the Device Descriptor size. It is sending the Setup Token, but nothing is returning.
I am using the USB stack for my dsPIC33E controller.

  Regards
Rajesh

I strongly suggest you to update to version 0.7. It is now made its way to p9 and sisyphus repos so you won’t need any additional repos from now on. I did a large rewrite of GPT parsing functionality and fixed several critical bugs since 0.6.

Usually gpoa must be run by oddjobd with root privileges without any user interaction. It is supposed you (as a user) will use gpupdate utility to trigger group policy updates via D-Bus but at the moment it is unable to pass loglevel parameter.

As for the problem I can see the following log entries:

2020-07-22 08:44:56:GPO: GPO-WPP-Setting ({GUIDGUID-GUID-GUID-GUID-GUIDGUIDGUID})
2020-07-22 08:45:52:Re-caching Local Policy

Look at the timestamps. Policy parsing and re-caching begins right after GPO replication so it took nearly one minute to replicate policies. I think we need to investigate the case. Could you please tell me the size of the GPTs which were replicated? I want to determine if it is just slow network problem or Samba bug (because I use Samba code to trigger GPO replication).

We will try to update oddjobd to overcome the problem anyway.

P. S.: I would be glad if you tell me if it is needed to make the documentation on ALTWiki or on GitHub more user-friendly or verbose so it will be easier to use the software. Any suggestions and comments will be appreciated.

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 17:22, 21 мая 2019.

Ошибка на шине (bus error)- это ошибка, которая была вызвана аппаратным обеспечением, уведомляющим операционную систему о том , что процесс пытается получить доступ к памяти, которую процессор не может физически адресовать из-за того, что у адресной шины недопустимый адрес, а следовательно, и имя. В современном использовании на большинстве архитектур они встречаются гораздо реже , чем ошибки сегментации, которые возникают в основном из-за нарушений доступа к памяти: проблем с логическим адресом или разрешениями.
На платформах, совместимых с портативным интерфейсом операционной системы( POSIX), ошибки шины обычно приводят к тому, что сигнал SIGBUS, который сигнализирует об ошибке шины, при обращении к физической памяти, передается процессу, который вызвал ошибку. SIGBUS также может быть вызван любой общей неисправностью устройства, которую обнаруживает компьютер, хотя ошибка шины редко означает, что компьютерное оборудование физически сломано, в основном это вызвано ошибкой в программном обеспечении.

Содержание

  • 1 Причины возникновения
    • 1.1 Недействующий адрес
    • 1.2 Несогласованный доступ
    • 1.3 Ошибка страницы
    • 1.4 Несуществующий сегмент(x86)
  • 2 Источники

Причины возникновения

Существует 4 основных причины возникновения данной ошибки.
Рассмотрим каждую из них.

Недействующий адрес

Программное обеспечение указывает процессору на чтение или запись определенного адреса физической памяти . Соответственно, центральный процессор устанавливает этот физический адрес на своей адресной шине и запрашивает все другое оборудование, подключенное к нему, чтобы ответить с результатами, если они отвечают за этот конкретный адрес. Если никакое другое оборудование не отвечает, центральный процессор вызывает исключение, указывающее, что запрошенный физический адрес не распознан всей компьютерной системой. Состоит отметить, что это касается только физических адресов памяти. Попытка доступа к неопределенному адресу виртуальной памяти обычно считается ошибкой сегментации, а не ошибкой шины, хотя если блок управления памятью (MMU) является отдельным, процессор не может определить разницу.

Несогласованный доступ

В основном центральные процессоры (CPU) являются байт-адресуемыми, где каждый уникальный адрес памяти ссылается на 8-битный байт . Большинство из них могут получить доступ к отдельным байтам из каждого адреса памяти, но они, как правило, не могут получить доступ к более крупным блокам (16 бит, 32 бит, 64 бит и т. д.) без «выравнивания» структуры данных этих блоков к определенной границе.
К примеру, если многобайтовый доступ должен быть 16-битным, адреса (заданные в байтах) в 0, 2, 4, 6 и так далее будут считаться выровненными и, следовательно, доступными, в то время как адреса 1, 3, 5 и так далее будут считаться не выровненными. Аналогично, если многобайтовый доступ должен быть 32-разрядным, адреса 0, 4, 8, 12 и так далее будут считаться выровненными и, следовательно, доступными, а все промежуточные адреса будут считаться не выровненными. Попытка получить доступ к блоку размером больше байта по не выровненному адресу может привести к ошибке шины.
Некоторые системы могут быть смешанные в зависимости от используемой архитектуры. Например, для аппаратного обеспечения, основанного на мэйнфрейме IBM System/360 , включая IBM System z, Fujitsu B8000, RCA Spectra и UNIVAC Series 90 , инструкции должны находиться на 16-разрядной границе, то есть адреса выполнения должны начинаться с четного байта. Попытка ветвления на нечетный адрес приводит к исключению спецификации. Данные, однако, могут быть извлечены из любого адреса в памяти, и могут быть размером от одного байта или больше, в зависимости от инструкции.
Процессоры, как правило, получают доступ к данным на всей ширине своей шины данных в любое время.
Система связи , которая передает данные между компонентами внутри компьютера или между компьютерами.Шина это система связи , которая передает данные между компонентами внутри компьютера или между компьютерами. Чтобы обратиться к байтам, они обращаются к памяти на всей ширине своей шины данных, затем маскируют и сдвигают для обращения к отдельному байту. Системы терпят этот неэффективный алгоритм, так как он является неотъемлемой особенностью большинства программ, особенно обработки строк. В отличие от байтов, большие блоки могут охватывать два выровненных адреса и, таким образом, требуют более одной выборки на шине данных. Процессоры могут поддерживать эту функцию, но эта функциональность редко требуется непосредственно в машинном коде уровень, таким образом, проектировщики центрального процессора обычно избегают его реализации и вместо этого выдают ошибки шины для не выровненного доступа к памяти.

Ошибка страницы

Такие ОС как,FreeBSD, Linux и Solaris могут сигнализировать об ошибке шины, когда страницы виртуальной памяти не могут быть выгружены, например, потому, что она исчезла (например, доступ к файлу с отображением памяти или выполнение двоичного образа, который был усечен во время работы программы), или потому, что только что созданный файл с отображением памяти не может быть физически выделен, потому что диск заполнен.

Несуществующий сегмент(x86)

На x86(емейство архитектур наборов команд,основанных на микропроцессоре Intel 8086 ) существует старый механизм управления памятью, известный как сегментация. Если приложение загружает регистр сегмента с селектором несуществующего сегмента , генерируется исключение. Некоторые ОС использовали это для подкачки, но под Linux это генерирует SIGBUS.

Источники

  1. https://stackoverflow.com/questions/212466/what-is-a-bus-error
  2. https://www.geeksforgeeks.org/segmentation-fault-sigsegv-vs-bus-error-sigbus/
  3. https://studfiles.net/preview/307512/page:15/

When trying to reboot a Linux server I got the typical ‘System going down for reboot now’, but the server has not rebooted. I have tried:

reboot
shutdown -r now

The runlevel command returns 5. Any other options for getting this server to reboot? This is a remote machine, so I don’t want to just shut it down if I can avoid that.

I am trying to reboot because of a journal abort on /, so / is read-only. Most commands now return ‘bus error’

asked Aug 24, 2009 at 13:06

Kyle Brandt's user avatar

Kyle BrandtKyle Brandt

82.8k71 gold badges302 silver badges444 bronze badges

2

Kyle, I’m not quite sure if this is what you’re looking for (since it’s like pressing the reset button), but this has helped me in situations where a server refused to reboot:

echo 1 > /proc/sys/kernel/sysrq  
echo b > /proc/sysrq-trigger

The first line is for enabling SysRq, and the second one is for rebooting.

See emergency reboot or shutdown with magic commands for more details.

answered Aug 24, 2009 at 13:21

mfriedman's user avatar

5

What does the end of dmesg output?

From the description is sounds like you may have a serious hardware issue that will prevent you from being able to reboot, as the commends you’ve given should have done the job for you already.

Otherwise the only think I know of is issuing commands directly to init using telinit, but I thought that that was what shutdown and reboot both basically did anyway.

answered Aug 24, 2009 at 13:14

Bart Silverstrim's user avatar

Bart SilverstrimBart Silverstrim

31.2k9 gold badges65 silver badges87 bronze badges

2

This kind of problem can occur if the disk subsystem is not available due to a RAID controller failure or hard disk failure. Binaries and libraries which are still in memory/disk cache can still be run but any other binary fails with IO errors or other fatal errors. If the reboot binary is still runnable then reboot -fn will force an immediate warm boot of the system. If the hardware is still functional you should be back in about 5-10 minutes, otherwise the system will be offline until someone can physically get to it to repair/replace it.

answered Aug 24, 2009 at 17:44

mtinberg's user avatar

mtinbergmtinberg

1,80310 silver badges9 bronze badges

answered Aug 24, 2009 at 13:10

CK.'s user avatar

CK.CK.

1,1636 silver badges10 bronze badges

Sounds to me like the binaries that would be running the shutdown are all corrupted. What does init 0 do?

I would try to gracefully kill important processes, remount all your filesystems read-only, and yank the power.

answered Aug 24, 2009 at 13:19

chris's user avatar

chrischris

11.9k6 gold badges41 silver badges51 bronze badges

1

reboot -n -f

blah blah… need 15 characters

answered Aug 24, 2009 at 13:29

Thomas's user avatar

ThomasThomas

1,45611 silver badges16 bronze badges

mmap minimal POSIX 7 example

«Bus error» happens when the kernel sends SIGBUS to a process.

A minimal example that produces it because ftruncate was forgotten:

#include <fcntl.h> /* O_ constants */
#include <unistd.h> /* ftruncate */
#include <sys/mman.h> /* mmap */

int main() {
    int fd;
    int *map;
    int size = sizeof(int);
    char *name = "/a";

    shm_unlink(name);
    fd = shm_open(name, O_RDWR | O_CREAT, (mode_t)0600);
    /* THIS is the cause of the problem. */
    /*ftruncate(fd, size);*/
    map = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
    /* This is what generates the SIGBUS. */
    *map = 0;
}

Run with:

gcc -std=c99 main.c -lrt
./a.out

Tested in Ubuntu 14.04.

POSIX describes SIGBUS as:

Access to an undefined portion of a memory object.

The mmap spec says that:

References within the address range starting at pa and continuing for len bytes to whole pages following the end of an object shall result in delivery of a SIGBUS signal.

And shm_open says that it generates objects of size 0:

The shared memory object has a size of zero.

So at *map = 0 we are touching past the end of the allocated object.

Unaligned stack memory accesses in ARMv8 aarch64

This was mentioned at: What is a bus error? for SPARC, but here I will provide a more reproducible example.

All you need is a freestanding aarch64 program:

.global _start
_start:
asm_main_after_prologue:
    /* misalign the stack out of 16-bit boundary */
    add sp, sp, #-4
    /* access the stack */
    ldr w0, [sp]

    /* exit syscall in case SIGBUS does not happen */
    mov x0, 0
    mov x8, 93
    svc 0

That program then raises SIGBUS on Ubuntu 18.04 aarch64, Linux kernel 4.15.0 in a ThunderX2 server machine.

Unfortunately, I can’t reproduce it on QEMU v4.0.0 user mode, I’m not sure why.

The fault appears to be optional and controlled by the SCTLR_ELx.SA and SCTLR_EL1.SA0 fields, I have summarized the related docs a bit further here.

Понравилась статья? Поделить с друзьями:
  • Bus error python
  • Bus error core dumped ubuntu
  • Bus error 10 mac os что это
  • Bus ccw rot ошибка
  • Bus busy or hardware error 11 ponyprog