cross_origen 0.6.0 → 0.6.1

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: 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