origen_arm_debug 0.4.1 → 0.4.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/config/commands.rb +4 -0
- data/config/version.rb +1 -1
- data/lib/origen_arm_debug/driver.rb +23 -2
- data/lib/origen_arm_debug/swj_dp.rb +0 -13
- data/pattern/read_write_reg.rb +3 -5
- data/pattern/read_write_reg_jtag.rb +10 -0
- data/pattern/read_write_reg_swd.rb +10 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cd4a3c91ea754230b8e799d2fdbb6fa5ebce4405
|
4
|
+
data.tar.gz: a4b18c224767fe55666e0366fb11700129165be5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 30e7d8fe43c7668ed2a5e8d0eb5da2e3ba2d2ea1a3a83e77e45e80c25dd98d4e907c03dbef77a6159204a31818ab484e8c5cb740153b1bd0f5107762f3f6cd44
|
7
|
+
data.tar.gz: a15f046b109e8b8778391ca73c1aba2afd84e0020423afd1a6e38feb1931510be99fee52360c51330b460c47b42a0c74e6b62193291a06347dedf45de02777a2
|
data/config/commands.rb
CHANGED
@@ -24,6 +24,10 @@ when "examples"
|
|
24
24
|
# Pattern generator tests
|
25
25
|
ARGV = %w(read_write_reg -t debug -r approved)
|
26
26
|
load "#{Origen.top}/lib/origen/commands/generate.rb"
|
27
|
+
ARGV = %w(read_write_reg_jtag -t debug -r approved)
|
28
|
+
load "#{Origen.top}/lib/origen/commands/generate.rb"
|
29
|
+
ARGV = %w(read_write_reg_swd -t debug -r approved)
|
30
|
+
load "#{Origen.top}/lib/origen/commands/generate.rb"
|
27
31
|
|
28
32
|
if Origen.app.stats.changed_files == 0 &&
|
29
33
|
Origen.app.stats.new_files == 0 &&
|
data/config/version.rb
CHANGED
@@ -16,6 +16,7 @@ module OrigenARMDebug
|
|
16
16
|
@owner = owner
|
17
17
|
end
|
18
18
|
|
19
|
+
# Create and/or return the SWJ_DP object with specified protocol
|
19
20
|
def swj_dp
|
20
21
|
if owner.respond_to?(:swd)
|
21
22
|
@swj_dp ||= SWJ_DP.new(self, :swd)
|
@@ -30,23 +31,43 @@ module OrigenARMDebug
|
|
30
31
|
end
|
31
32
|
|
32
33
|
# Method to add additional Memory Access Ports (MEM-AP) with specified base address
|
33
|
-
#
|
34
|
-
#
|
34
|
+
#
|
35
|
+
# @param [Integer] name Short name for mem_ap that is being created
|
36
|
+
# @param [Integer] base_address Base address
|
37
|
+
#
|
38
|
+
# @examples
|
39
|
+
# arm_debug.add_mem_ap('alt_ahbapi', 0x02000000)
|
40
|
+
#
|
35
41
|
def add_mem_ap(name, base_address)
|
36
42
|
instance_variable_set("@#{name}", MemAP.new(self, name: name, base_address: base_address))
|
37
43
|
self.class.send(:attr_accessor, name)
|
38
44
|
end
|
39
45
|
|
46
|
+
# Read from a MEM-AP register
|
47
|
+
#
|
48
|
+
# @param [Integer, Origen::Register::Reg, Origen::Register::BitCollection, Origen::Register::Bit] reg_or_val
|
49
|
+
# Value to be read. If a reg/bit collection is supplied this can be pre-marked for
|
50
|
+
# read, store or overlay and which will result in the requested action being applied to
|
51
|
+
# the cycles corresponding to those bits only (don't care cycles will be generated for the others).
|
52
|
+
# @param [Hash] options Options to customize the operation
|
40
53
|
def read_register(reg_or_val, options = {})
|
41
54
|
mem_ap.read(reg_or_val.address, size: reg_or_val.size, compare_data: reg_or_val.data)
|
42
55
|
end
|
43
56
|
|
57
|
+
# Write data to a MEM-AP register
|
58
|
+
#
|
59
|
+
# @param [Integer, Origen::Register::Reg, Origen::Register::BitCollection, Origen::Register::Bit] reg_or_val
|
60
|
+
# Value to be written to. If a reg/bit collection is supplied this can be pre-marked for
|
61
|
+
# read, store or overlay and which will result in the requested action being applied to
|
62
|
+
# the cycles corresponding to those bits only (don't care cycles will be generated for the others).
|
63
|
+
# @param [Hash] options Options to customize the operation
|
44
64
|
def write_register(reg_or_val, options = {})
|
45
65
|
mem_ap.write(reg_or_val.address, reg_or_val.data, size: reg_or_val.size)
|
46
66
|
end
|
47
67
|
|
48
68
|
private
|
49
69
|
|
70
|
+
# Short-cut to protocol driver
|
50
71
|
def arm_debug_driver
|
51
72
|
return @arm_debug_driver if @arm_debug_driver
|
52
73
|
if owner.respond_to?(:jtag)
|
@@ -57,19 +57,6 @@ module OrigenARMDebug
|
|
57
57
|
data: { pos: 0, bits: 32 }
|
58
58
|
end
|
59
59
|
|
60
|
-
# Method to add additional Memory Access Ports (MEM-AP) with specified base address
|
61
|
-
#
|
62
|
-
# @param [Integer] name Short name for mem_ap that is being created
|
63
|
-
# @param [Integer] base_address Base address
|
64
|
-
#
|
65
|
-
# @examples
|
66
|
-
# arm_debug.add_mem_ap('alt_ahbapi', 0x02000000)
|
67
|
-
#
|
68
|
-
def add_mem_ap(name, base_address)
|
69
|
-
instance_variable_set("@#{name}", MemAP.new(self, base_address: base_address))
|
70
|
-
self.class.send(:attr_accessor, name)
|
71
|
-
end
|
72
|
-
|
73
60
|
#-------------------------------------
|
74
61
|
# DPACC Access API
|
75
62
|
#-------------------------------------
|
data/pattern/read_write_reg.rb
CHANGED
@@ -11,10 +11,8 @@ Pattern.create do
|
|
11
11
|
$dut.read_register($dut.reg(:test))
|
12
12
|
$dut.write_register($dut.reg(:test), 0xFF02)
|
13
13
|
|
14
|
-
|
15
|
-
$
|
16
|
-
$
|
17
|
-
$dut_swd.arm_debug.swj_dp.read_ap(0x010000FC);
|
18
|
-
$dut_swd.arm_debug.swj_dp.write_read_ap(0x01000004, 0x10101010);
|
14
|
+
$dut.arm_debug.mem_ap.R(0x10000004, 0x00000000)
|
15
|
+
$dut.arm_debug.mem_ap.W(0x10000004, 0x55555555)
|
16
|
+
$dut.arm_debug.mem_ap.WR(0x10000004, 0x55555555)
|
19
17
|
|
20
18
|
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
Pattern.create do
|
2
|
+
|
3
|
+
$dut_jtag.arm_debug.swj_dp.read_dp("IDCODE")
|
4
|
+
$dut_jtag.arm_debug.swj_dp.read_expect_dp("IDCODE", 0xba5eba11)
|
5
|
+
$dut_jtag.arm_debug.swj_dp.write_read_dp("CTRL/STAT", 0x50000000, edata: 0xf0000000)
|
6
|
+
$dut_jtag.arm_debug.swj_dp.read_ap(0x010000FC)
|
7
|
+
$dut_jtag.arm_debug.swj_dp.write_read_ap(0x01000004, 0x10101010)
|
8
|
+
#$dut_jtag.arm_debug.swj_dp.read_expect_ap(0x01000004, 0x10101010)
|
9
|
+
|
10
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
Pattern.create do
|
2
|
+
|
3
|
+
$dut_swd.arm_debug.swj_dp.read_dp("IDCODE")
|
4
|
+
$dut_swd.arm_debug.swj_dp.read_expect_dp("IDCODE", 0xba5eba11)
|
5
|
+
$dut_swd.arm_debug.swj_dp.write_read_dp("CTRL/STAT", 0x50000000, edata: 0xf0000000)
|
6
|
+
$dut_swd.arm_debug.swj_dp.read_ap(0x010000FC)
|
7
|
+
$dut_swd.arm_debug.swj_dp.write_read_ap(0x01000004, 0x10101010)
|
8
|
+
#$dut_swd.arm_debug.swj_dp.read_expect_ap(0x01000004, 0x10101010)
|
9
|
+
|
10
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: origen_arm_debug
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ronnie Lajaunie
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-08-
|
11
|
+
date: 2015-08-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: origen
|
@@ -87,6 +87,8 @@ files:
|
|
87
87
|
- lib/origen_arm_debug/mem_ap.rb
|
88
88
|
- lib/origen_arm_debug/swj_dp.rb
|
89
89
|
- pattern/read_write_reg.rb
|
90
|
+
- pattern/read_write_reg_jtag.rb
|
91
|
+
- pattern/read_write_reg_swd.rb
|
90
92
|
- templates/web/index.md.erb
|
91
93
|
- templates/web/layouts/_basic.html.erb
|
92
94
|
- templates/web/partials/_navbar.html.erb
|