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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: dc238d6a6c1968e247feaf3a6b57c4b6222246e8
4
- data.tar.gz: 79ee7b36c4af7d4357fa541937b429a9b596525f
3
+ metadata.gz: cd4a3c91ea754230b8e799d2fdbb6fa5ebce4405
4
+ data.tar.gz: a4b18c224767fe55666e0366fb11700129165be5
5
5
  SHA512:
6
- metadata.gz: f13c97b08406af4d1748cea9ca1ce365cc910a14689f631aa9fc0156e4a454516978e5c4be3a1cc7579021b3df1c55624617ecc06fd9e59bba28fee0ea4a2707
7
- data.tar.gz: b061fba3f3ccad2c04cc8b94b0ac8b633aea8a25ac3fc2183cec9f802e110c7829c2990edc71e4c298b8066afaec33872230080bf3c32db356e8f5212ef8d7e1
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
@@ -1,7 +1,7 @@
1
1
  module OrigenARMDebug
2
2
  MAJOR = 0
3
3
  MINOR = 4
4
- BUGFIX = 1
4
+ BUGFIX = 2
5
5
  DEV = nil
6
6
 
7
7
  VERSION = [MAJOR, MINOR, BUGFIX].join(".") + (DEV ? ".pre#{DEV}" : '')
@@ -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
- # name - short name for mem_ap that is being created
34
- # base_address - base address
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
  #-------------------------------------
@@ -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
- $dut_swd.arm_debug.swj_dp.read_dp("IDCODE");
16
- $dut_swd.arm_debug.swj_dp.write_read_dp("CTRL/STAT", 0x50000000, edata: 0xf0000000);
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.1
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-25 00:00:00.000000000 Z
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