rggen-duh 0.1.0 → 0.2.0
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 +4 -4
- data/README.md +38 -0
- data/lib/rggen/duh.rb +1 -1
- data/lib/rggen/duh/exceptions.rb +18 -0
- data/lib/rggen/duh/extractor/type.rb +30 -0
- data/lib/rggen/duh/loader.rb +10 -2
- data/lib/rggen/duh/version.rb +1 -1
- metadata +9 -9
- data/lib/rggen/duh/validation_failed.rb +0 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d22b0dc17bcbcc805b0a645107a78aa4d80554f11112d0690e37cde1c4a6dcd7
|
4
|
+
data.tar.gz: 8638fefb8ae9f698b836c431c959ad2e36dacba4a77a61dc6364976d00909853
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 14588567b6340bbf8bcc9ce223d320d171ecc13c20f9b85f18bca3054fca27a5e4ef1b9ecb166dd8d39b61abe933445e33936ff9b49ee05a9ae900b32d342865
|
7
|
+
data.tar.gz: b98bdef9b548c0bfaf359f22e02c22c19e4e5c01792ecd8290def85392ba1a84ac14e3a8bd85ec167ce2fe3a3f21480a4bb58eeda41fc4478f6bc993c3a2e11e
|
data/README.md
CHANGED
@@ -34,6 +34,44 @@ $ export RGGEN_PLUGINS=${RGGEN_PLUGINS}:rggen-duh
|
|
34
34
|
$ rggen your_duh.json5
|
35
35
|
```
|
36
36
|
|
37
|
+
## Supported Bit Field Types
|
38
|
+
|
39
|
+
Following table describes which RgGen bit field types are supported by DUH format and corresponeded DUH properties.
|
40
|
+
|
41
|
+
| RgGen bit field type | Support? | access | modifiedWriteValue | readAction | reserved |
|
42
|
+
|:---------------------|:---------|:---------------|:-------------------|:--------------|:---------|
|
43
|
+
| rw | yes | read-write | not specified | not specified | no |
|
44
|
+
| ro | yes | read-only | don't care | not specified | no |
|
45
|
+
| rof | no | | | | no |
|
46
|
+
| wo | yes | write-only | not specified | don't care | no |
|
47
|
+
| wrc | yes | read-write | not specified | clear | no |
|
48
|
+
| wrs | yes | read-write | not specified | set | no |
|
49
|
+
| rc | yes | read-only | don't care | clear | no |
|
50
|
+
| w0c | yes | read-write | zeroToClear | not specified | no |
|
51
|
+
| w1c | yes | read-write | oneToClear | not specified | no |
|
52
|
+
| wc | yes | read-write | clear | not specified | no |
|
53
|
+
| woc | yes | write-only | clear | don't care | no |
|
54
|
+
| rs | yes | read-only | don't care | set | no |
|
55
|
+
| w0s | yes | read-write | zeroToSet | not specified | no |
|
56
|
+
| w1s | yes | read-write | oneToSet | not specified | no |
|
57
|
+
| ws | yes | read-write | set | not specified | no |
|
58
|
+
| wos | yes | write-only | set | don't care | no |
|
59
|
+
| rwc | no | | | | |
|
60
|
+
| rwe | no | | | | |
|
61
|
+
| rwl | no | | | | |
|
62
|
+
| rws | no | | | | |
|
63
|
+
| w0crs | yes | read-write | zeroToClear | set | no |
|
64
|
+
| w1crs | yes | read-write | oneToClear | set | no |
|
65
|
+
| wcrs | yes | read-write | clear | set | no |
|
66
|
+
| w0src | yes | read-write | zeroToSet | clear | no |
|
67
|
+
| w1src | yes | read-write | oneToSet | clear | no |
|
68
|
+
| wsrc | yes | read-write | set | clear | no |
|
69
|
+
| w0trg | no | | | | |
|
70
|
+
| w1trg | no | | | | |
|
71
|
+
| w1 | yes | read-writeOnce | not specified | not specified | no |
|
72
|
+
| wo1 | yes | writeOnce | not specified | don't care | no |
|
73
|
+
| reserved | yes | don't care | don't care | don't care | yes |
|
74
|
+
|
37
75
|
## Contact
|
38
76
|
|
39
77
|
Feedbacks, bug reports, questions and etc. are wellcome! You can post them by using following ways:
|
data/lib/rggen/duh.rb
CHANGED
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RgGen
|
4
|
+
module DUH
|
5
|
+
class ParseError < RgGen::Core::LoadError
|
6
|
+
def initialize(message, file_name, reason)
|
7
|
+
super(message, file_name, reason)
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
class ValidationError < RgGen::Core::LoadError
|
12
|
+
def initialize(message, file_name, errors)
|
13
|
+
error_info = errors.map(&JSONSchemer::Errors.method(:pretty)).join("\n")
|
14
|
+
super(message, file_name, error_info)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -16,6 +16,14 @@ RgGen.define_value_extractor(:register_map, :duh, :bit_field, :type) do
|
|
16
16
|
wo: {
|
17
17
|
access: 'write-only', modified_write_value: 'default', reserved: false
|
18
18
|
},
|
19
|
+
wrc: {
|
20
|
+
access: 'read-write', modified_write_value: 'default',
|
21
|
+
read_action: 'clear', reserved: false
|
22
|
+
},
|
23
|
+
wrs: {
|
24
|
+
access: 'read-write', modified_write_value: 'default',
|
25
|
+
read_action: 'set', reserved: false
|
26
|
+
},
|
19
27
|
rc: {
|
20
28
|
access: 'read-only', read_action: 'clear', reserved: false
|
21
29
|
},
|
@@ -27,6 +35,13 @@ RgGen.define_value_extractor(:register_map, :duh, :bit_field, :type) do
|
|
27
35
|
access: 'read-write', modified_write_value: 'oneToClear',
|
28
36
|
read_action: 'default', reserved: false
|
29
37
|
},
|
38
|
+
wc: {
|
39
|
+
access: 'read-write', modified_write_value: 'clear',
|
40
|
+
read_action: 'default', reserved: false
|
41
|
+
},
|
42
|
+
woc: {
|
43
|
+
access: 'write-only', modified_write_value: 'clear', reserved: false
|
44
|
+
},
|
30
45
|
rs: {
|
31
46
|
access: 'read-only', read_action: 'set', reserved: false
|
32
47
|
},
|
@@ -38,6 +53,13 @@ RgGen.define_value_extractor(:register_map, :duh, :bit_field, :type) do
|
|
38
53
|
access: 'read-write', modified_write_value: 'oneToSet',
|
39
54
|
read_action: 'default', reserved: false
|
40
55
|
},
|
56
|
+
ws: {
|
57
|
+
access: 'read-write', modified_write_value: 'set',
|
58
|
+
read_action: 'default', reserved: false
|
59
|
+
},
|
60
|
+
wos: {
|
61
|
+
access: 'write-only', modified_write_value: 'set', reserved: false
|
62
|
+
},
|
41
63
|
w0t: {
|
42
64
|
access: 'read-write', modified_write_value: 'zeroToToggle',
|
43
65
|
read_action: 'default', reserved: false
|
@@ -54,6 +76,10 @@ RgGen.define_value_extractor(:register_map, :duh, :bit_field, :type) do
|
|
54
76
|
access: 'read-write', modified_write_value: 'oneToClear',
|
55
77
|
read_action: 'set', reserved: false
|
56
78
|
},
|
79
|
+
wcrs: {
|
80
|
+
access: 'read-write', modified_write_value: 'clear',
|
81
|
+
read_action: 'set', reserved: false
|
82
|
+
},
|
57
83
|
w0src: {
|
58
84
|
access: 'read-write', modified_write_value: 'zeroToSet',
|
59
85
|
read_action: 'clear', reserved: false
|
@@ -62,6 +88,10 @@ RgGen.define_value_extractor(:register_map, :duh, :bit_field, :type) do
|
|
62
88
|
access: 'read-write', modified_write_value: 'oneToSet',
|
63
89
|
read_action: 'clear', reserved: false
|
64
90
|
},
|
91
|
+
wsrc: {
|
92
|
+
access: 'read-write', modified_write_value: 'set',
|
93
|
+
read_action: 'clear', reserved: false
|
94
|
+
},
|
65
95
|
w1: {
|
66
96
|
access: 'read-writeOnce', modified_write_value: 'default',
|
67
97
|
read_action: 'default', reserved: false
|
data/lib/rggen/duh/loader.rb
CHANGED
@@ -12,18 +12,26 @@ module RgGen
|
|
12
12
|
private
|
13
13
|
|
14
14
|
def read_file(file_name)
|
15
|
-
duh =
|
15
|
+
duh = load_json5(file_name)
|
16
16
|
validation? && validate(duh, file_name)
|
17
17
|
duh
|
18
18
|
end
|
19
19
|
|
20
|
+
def load_json5(file_name)
|
21
|
+
JsonRefs.dereference(RbJSON5.load_file(file_name))
|
22
|
+
rescue RbJSON5::ParseError => e
|
23
|
+
reason = e.parse_failure_cause.ascii_tree.strip
|
24
|
+
raise ParseError.new(e.message, file_name, reason)
|
25
|
+
end
|
26
|
+
|
20
27
|
def validation?
|
21
28
|
!@disable_validation
|
22
29
|
end
|
23
30
|
|
24
31
|
def validate(duh, file_name)
|
25
32
|
errors = Schema.validate(duh)
|
26
|
-
errors.empty? ||
|
33
|
+
errors.empty? ||
|
34
|
+
(raise ValidationError.new('input DUH file is invalid', file_name, errors))
|
27
35
|
end
|
28
36
|
|
29
37
|
SUB_LAYERS = {
|
data/lib/rggen/duh/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rggen-duh
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Taichi Ishitani
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-08-
|
11
|
+
date: 2020-08-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json_refs
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.1.
|
19
|
+
version: 0.1.4
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.1.
|
26
|
+
version: 0.1.4
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: json_schemer
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -44,14 +44,14 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 0.
|
47
|
+
version: 0.3.0
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 0.
|
54
|
+
version: 0.3.0
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: bundler
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -80,15 +80,15 @@ files:
|
|
80
80
|
- lib/rggen/duh/duh-schema/LICENSE
|
81
81
|
- lib/rggen/duh/duh-schema/README.md
|
82
82
|
- lib/rggen/duh/duh-schema/schema.json
|
83
|
+
- lib/rggen/duh/exceptions.rb
|
83
84
|
- lib/rggen/duh/extractor/bit_assignment.rb
|
84
85
|
- lib/rggen/duh/extractor/simple_extractors.rb
|
85
86
|
- lib/rggen/duh/extractor/type.rb
|
86
87
|
- lib/rggen/duh/loader.rb
|
87
88
|
- lib/rggen/duh/schema.rb
|
88
89
|
- lib/rggen/duh/setup.rb
|
89
|
-
- lib/rggen/duh/validation_failed.rb
|
90
90
|
- lib/rggen/duh/version.rb
|
91
|
-
homepage: https://github.com/rggen/rggen-
|
91
|
+
homepage: https://github.com/rggen/rggen-duh
|
92
92
|
licenses:
|
93
93
|
- MIT
|
94
94
|
metadata:
|
@@ -114,5 +114,5 @@ requirements: []
|
|
114
114
|
rubygems_version: 3.1.2
|
115
115
|
signing_key:
|
116
116
|
specification_version: 4
|
117
|
-
summary: rggen-dut-0.
|
117
|
+
summary: rggen-dut-0.2.0
|
118
118
|
test_files: []
|
@@ -1,21 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module RgGen
|
4
|
-
module DUH
|
5
|
-
class ValidationFailed < RgGen::Core::LoadError
|
6
|
-
def initialize(file_name, errors)
|
7
|
-
super("input DUH file is invalid: #{file_name}")
|
8
|
-
@errors = errors
|
9
|
-
end
|
10
|
-
|
11
|
-
attr_reader :errors
|
12
|
-
|
13
|
-
def to_s
|
14
|
-
[
|
15
|
-
super,
|
16
|
-
*errors.map { |error| " - #{JSONSchemer::Errors.pretty(error)}" }
|
17
|
-
].join("\n")
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|