Chipset Dump Utility CSDump
Im Verlauf der Treiber-Entwicklung kann es immer wieder einmal wichtig
sein, die Register-Inhalte der Hardware zu überprüfen. Sie können dies durch
den Einbau von Debug Messages im Treiber erreichen, allerdings müssen Sie
hierzu erst zusätzlichen Code einbauen. Mit unserem Tool CSDump können Sie
beliebige Register-Inhalte zur Laufzeit analysieren. Ein direkter Speicher-Zugriff
auf physikalische Adressen ist seit CE 6.0 nicht mehr erlaubt, wir verwenden
daher einen speziellen Treiber, der die Zugriffe durchführt.
Die Auswahl der auszugebenden Adressen können Sie über eine Konfigurationsdatei
vorgeben. Zusätzlich zum Inhalt der Adresse können Sie sich auch einzelne
Bitgruppen ausgeben lassen. Das vereinfacht die Auswertung, wenn Sie die
Resultate mit dem zugehörigen Datasheet abgleichen möchten.
Durch die Verwendung von Konfigurationsdateien ist dieses Tool sehr flexibel
einsetzbar. Sie können beispielsweise einzelne Blöcke des Chipsatzes wie
z.B. die aktuelle Interrupt-Konfiguration in einer Konfigurationsdatei definieren.
Moderne Embedded Prozessoren sind heutzutage so komplex, dass Sie typischerweise
nur einen Teil des ganzen Chipsatzes betrachten möchten.
Sie können dieses Tool beliebig an unterschiedliche Chipsätze anpassen.
Sie benötigen lediglich eine Version von CSDump, das für Ihre CPU kompiliert
wurde.
Syntax:
csdump <configuration file>
Beispiel:
csdump pwm.cfg >pwm.txt
Dieses Beispiel schreibt die Ausgaben in die Datei pwm.txt.
Syntax einer Konfigurationsdatei:
ADDR <address> <bus width> <register name> <register description>
Displays the contents of an address in hexadecimal. Bus width can be
1, 2 or 4.
BITS <starting bit> <ending bit> <bitgroup description>
Displays the contents of a bit group in decimal.
ECHO <text>
Displays some text.
LINEFEED
Prints an empty line.
echo "Pulse Width Modulator Controller"
echo "--------------------------------"
addr 0x40b00000 4 PWMCR0 "PWM Control Register"
bits 6 6 "Pulse Width Modulator Shutdown Mode"
bits 0 5 "Prescaler"
addr 0x40b00004 4 PWMDCR0 "PWM Duty Cycle Register"
bits 10 10 "Full Duty Cycle"
bits 0 9 "Duty Cycle of PWM_OUT"
addr 0x40b00008 4 PWMPCR0 "PWM Period Control Register"
bits 0 9 "Period Value"
linefeed
addr 0x40c00000 4 PWMCR1 "PWM Control Register"
bits 6 6 "Pulse Width Modulator Shutdown Mode"
bits 0 5 "Prescaler"
addr 0x40c00004 4 PWMDCR1 "PWM Duty Cycle Register"
bits 10 10 "Full Duty Cycle"
bits 0 9 "Duty Cycle of PWM_OUT"
addr 0x40c00008 4 PWMPCR1 "PWM Period Control Register"
bits 0 9 "Period Value"
linefeed
addr 0x40b00010 4 PWMCR2 "PWM Control Register"
bits 6 6 "Pulse Width Modulator Shutdown Mode"
bits 0 5 "Prescaler"
addr 0x40b00014 4 PWMDCR2 "PWM Duty Cycle Register"
bits 10 10 "Full Duty Cycle"
bits 0 9 "Duty Cycle of PWM_OUT"
addr 0x40b00018 4 PWMPCR2 "PWM Period Control Register"
bits 0 9 "Period Value"
linefeed
addr 0x40c00010 4 PWMCR3 "PWM Control Register"
bits 6 6 "Pulse Width Modulator Shutdown Mode"
bits 0 5 "Prescaler"
addr 0x40c00014 4 PWMDCR3 "PWM Duty Cycle Register"
bits 10 10 "Full Duty Cycle"
bits 0 9 "Duty Cycle of PWM_OUT"
addr 0x40c00018 4 PWMPCR3 "PWM Period Control Register"
bits 0 9 "Period Value" |
pwm.cfg
|
csdump.exe v2.00, Oct 16 2008 14:01:19
Copyright (c) 2008 Pfaadt Software
Pulse Width Modulator Controller
--------------------------------
PWMCR0[0x40B00000]=0x00000000 PWM Control Register
[6]=0 Pulse Width Modulator Shutdown Mode
[5:0]=0 Prescaler
PWMDCR0[0x40B00004]=0x00000000 PWM Duty Cycle Register
[10]=0 Full Duty Cycle
[9:0]=0 Duty Cycle of PWM_OUT
PWMPCR0[0x40B00008]=0x00000004 PWM Period Control Register
[9:0]=4 Period Value
PWMCR1[0x40C00000]=0x00000000 PWM Control Register
[6]=0 Pulse Width Modulator Shutdown Mode
[5:0]=0 Prescaler
PWMDCR1[0x40C00004]=0x00000000 PWM Duty Cycle Register
[10]=0 Full Duty Cycle
[9:0]=0 Duty Cycle of PWM_OUT
PWMPCR1[0x40C00008]=0x00000004 PWM Period Control Register
[9:0]=4 Period Value
PWMCR2[0x40B00010]=0x00000000 PWM Control Register
[6]=0 Pulse Width Modulator Shutdown Mode
[5:0]=0 Prescaler
PWMDCR2[0x40B00014]=0x00000000 PWM Duty Cycle Register
[10]=0 Full Duty Cycle
[9:0]=0 Duty Cycle of PWM_OUT
PWMPCR2[0x40B00018]=0x00000004 PWM Period Control Register
[9:0]=4 Period Value
PWMCR3[0x40C00010]=0x00000020 PWM Control Register
[6]=0 Pulse Width Modulator Shutdown Mode
[5:0]=32 Prescaler
PWMDCR3[0x40C00014]=0x000000C8 PWM Duty Cycle Register
[10]=0 Full Duty Cycle
[9:0]=200 Duty Cycle of PWM_OUT
PWMPCR3[0x40C00018]=0x000000C8 PWM Period Control Register
[9:0]=200 Period Value |
Ausgabe
|