cross_origen 0.6.0 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d5e7b5c2e2e62729143d48392467fbbf5903885f
4
- data.tar.gz: 421c909d4b31cfe7614084194c06650b179ebd15
3
+ metadata.gz: 2f7582c611769181fb35ca1c63a9de7d0b91fb55
4
+ data.tar.gz: 12b85146240f75f5135419ef20420a9cc5f1ca20
5
5
  SHA512:
6
- metadata.gz: 316821d70b48bf422ecdfd736512bc232be143db822a8a0c7022a195ad8003cd01de2d796a861f73320cc4ee59b8c81fb4fb3cee0ac1a6f1ce4eace3df7a2712
7
- data.tar.gz: 803e9134ff9c1ed944f4529d0f84a73a53ea69d11b5252f7ab80f03e0d319577fed8497e4674221793662c51530cda1b68171acaf20d1338de4c8f1a88762282
6
+ metadata.gz: fd24d373d4d19d60f230db4d84feddf85eae354c2699a2f8405c0188e98d4cf0c926f1f8cb51f92bfe00d82a3eb3df9a9a94b6471f6e7584e86469aaee925017
7
+ data.tar.gz: 4a4143ef8cfef70ea40eed6a13859b329687b47cf19eee009416f480afa4eaebb552610c03372b7af6ca7dd5fc3bf0602f55f23dff07bed145902b0d0c115dd6
data/config/version.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  module CrossOrigen
2
2
  MAJOR = 0
3
3
  MINOR = 6
4
- BUGFIX = 0
4
+ BUGFIX = 1
5
5
  DEV = nil
6
6
 
7
7
  VERSION = [MAJOR, MINOR, BUGFIX].join(".") + (DEV ? ".pre#{DEV}" : '')
@@ -52,7 +52,7 @@ module CrossOrigen
52
52
  # Do a logical bitwise AND with the reset value and mask
53
53
  reset_value = reset_value & reset_mask
54
54
  end
55
- addr_block_obj.reg name, addr_offset, size: size, access: access do |reg|
55
+ addr_block_obj.reg name, addr_offset, size: size, access: access, description: reg_description(register) do |reg|
56
56
  register.xpath('spirit:field').each do |field|
57
57
  name = fetch field.at_xpath('spirit:name'), downcase: true, to_sym: true, get_text: true
58
58
  bit_offset = fetch field.at_xpath('spirit:bitOffset'), get_text: true, to_i: true
@@ -71,7 +71,7 @@ module CrossOrigen
71
71
  else
72
72
  range = (bit_offset + bit_width - 1)..bit_offset
73
73
  end
74
- reg.bit range, name, reset: reset_value[range], access: access
74
+ reg.bit range, name, reset: reset_value[range], access: access, description: bit_description(field)
75
75
  end
76
76
  end
77
77
  end
@@ -191,6 +191,27 @@ module CrossOrigen
191
191
 
192
192
  private
193
193
 
194
+ def reg_description(register)
195
+ fetch register.at_xpath('spirit:description'), get_text: true, whitespace: true
196
+ end
197
+
198
+ def bit_description(bit)
199
+ desc = fetch(bit.at_xpath('spirit:description'), get_text: true, whitespace: true) || ''
200
+ bit_val_present = false
201
+ bit.xpath('spirit:values').each do |val|
202
+ unless bit_val_present
203
+ desc += "\n"
204
+ bit_val_present = true
205
+ end
206
+ value = extract(val, 'spirit:value', format: :integer, hex: true)
207
+ value_desc = extract val, 'spirit:description'
208
+ if value && value_desc
209
+ desc += "\n#{value.to_s(2)} | #{value_desc}"
210
+ end
211
+ end
212
+ desc
213
+ end
214
+
194
215
  def mask(reg)
195
216
  m = 0
196
217
  reg.size.times do |i|
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cross_origen
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stephen McGinty