origen_swd 0.3.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 +7 -0
- data/config/application.rb +59 -0
- data/config/commands.rb +51 -0
- data/config/development.rb +15 -0
- data/config/environment.rb +1 -0
- data/config/users.rb +19 -0
- data/config/version.rb +8 -0
- data/lib/origen_swd.rb +11 -0
- data/lib/origen_swd/driver.rb +55 -0
- data/lib/origen_swd/dut.rb +24 -0
- data/pattern/example.rb +59 -0
- data/templates/web/index.md.erb +82 -0
- data/templates/web/layouts/_basic.html.erb +16 -0
- data/templates/web/partials/_navbar.html.erb +22 -0
- metadata +85 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: f760d7e0b8b2b523a41db1db1c4408b59003f5a8
|
4
|
+
data.tar.gz: e7901ced8faff7f18ad00345ec9c0a67f0e5bfad
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 968243cdbf15859e482874e51526e3a7ef58edc628e39cd101328bd9cf1dd9cc597c3a84e3ef7606a218154701259ce9129e0c413380c888f987d3a334cc31ad
|
7
|
+
data.tar.gz: a5171a1d4a1f8f3d2a6f147a5b2e9c58d5ba1f4cdd10f8693a2d75183cc63e238e340ef9d6a65e194d8ba777b8db9c42a0cc505120199137d1009bec4144a8b0
|
@@ -0,0 +1,59 @@
|
|
1
|
+
class OrigenSWDApplication < Origen::Application
|
2
|
+
|
3
|
+
# This information is used in headers and email templates, set it specific
|
4
|
+
# to your application
|
5
|
+
config.name = "Origen SWD"
|
6
|
+
config.initials = "OrigenSWD"
|
7
|
+
|
8
|
+
self.name = "origen_swd"
|
9
|
+
self.namespace = "OrigenSWD"
|
10
|
+
config.rc_url = "git@github.com/Origen-SDK/origen_swd.git"
|
11
|
+
config.release_externally = true
|
12
|
+
|
13
|
+
# To enable deployment of your documentation to a web server (via the 'origen web'
|
14
|
+
# command) fill in these attributes.
|
15
|
+
config.web_directory = "git@github.com:Origen-SDK/Origen-SDK.github.io.git/swd"
|
16
|
+
config.web_domain = "http://origen-sdk.org/swd"
|
17
|
+
|
18
|
+
config.semantically_version = true
|
19
|
+
|
20
|
+
config.lint_test = {
|
21
|
+
# Require the lint tests to pass before allowing a release to proceed
|
22
|
+
run_on_tag: true,
|
23
|
+
# Auto correct violations where possible whenever 'origen lint' is run
|
24
|
+
auto_correct: true,
|
25
|
+
# Limit the testing for large legacy applications
|
26
|
+
#level: :easy,
|
27
|
+
# Run on these directories/files by default
|
28
|
+
#files: ["lib", "config/application.rb"],
|
29
|
+
}
|
30
|
+
|
31
|
+
# Ensure that all tests pass before allowing a release to continue
|
32
|
+
def validate_release
|
33
|
+
if !system("origen examples") #|| !system("origen specs")
|
34
|
+
puts "Sorry but you can't release with failing tests, please fix them and try again."
|
35
|
+
exit 1
|
36
|
+
else
|
37
|
+
puts "All tests passing, proceeding with release process!"
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
# Run code coverage when deploying the web site
|
42
|
+
def before_deploy_site
|
43
|
+
Dir.chdir Origen.root do
|
44
|
+
system "origen examples -c"
|
45
|
+
dir = "#{Origen.root}/web/output/coverage"
|
46
|
+
FileUtils.remove_dir(dir, true) if File.exists?(dir)
|
47
|
+
system "mv #{Origen.root}/coverage #{dir}"
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
# Deploy the website automatically after a production tag
|
52
|
+
def after_release_email(tag, note, type, selector, options)
|
53
|
+
command = "origen web compile --remote --api"
|
54
|
+
Dir.chdir Origen.root do
|
55
|
+
system command
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
data/config/commands.rb
ADDED
@@ -0,0 +1,51 @@
|
|
1
|
+
# This file should be used to extend the origen command line tool with tasks
|
2
|
+
# specific to your application.
|
3
|
+
#
|
4
|
+
# Also see the official docs on adding commands:
|
5
|
+
# http://origen-sdk.org/origen/latest/guides/custom/commands/
|
6
|
+
|
7
|
+
# Map any command aliases here, for example to allow origen -x to refer to a
|
8
|
+
# command called execute you would add a reference as shown below:
|
9
|
+
aliases ={
|
10
|
+
# "-x" => "execute",
|
11
|
+
}
|
12
|
+
|
13
|
+
# The requested command is passed in here as @command, this checks it against
|
14
|
+
# the above alias table and should not be removed.
|
15
|
+
@command = aliases[@command] || @command
|
16
|
+
|
17
|
+
# Now branch to the specific task code
|
18
|
+
case @command
|
19
|
+
|
20
|
+
when "examples"
|
21
|
+
Origen.load_application
|
22
|
+
status = 0
|
23
|
+
|
24
|
+
# Pattern generator tests
|
25
|
+
ARGV = %w(example -t debug -r approved)
|
26
|
+
load "#{Origen.top}/lib/origen/commands/generate.rb"
|
27
|
+
|
28
|
+
if Origen.app.stats.changed_files == 0 &&
|
29
|
+
Origen.app.stats.new_files == 0 &&
|
30
|
+
Origen.app.stats.changed_patterns == 0 &&
|
31
|
+
Origen.app.stats.new_patterns == 0
|
32
|
+
|
33
|
+
Origen.app.stats.report_pass
|
34
|
+
else
|
35
|
+
Origen.app.stats.report_fail
|
36
|
+
status = 1
|
37
|
+
end
|
38
|
+
puts
|
39
|
+
exit status
|
40
|
+
|
41
|
+
# Always leave an else clause to allow control to fall back through to the
|
42
|
+
# Origen command handler.
|
43
|
+
# You probably want to also add the command details to the help shown via
|
44
|
+
# origen -h, you can do this be assigning the required text to @application_commands
|
45
|
+
# before handing control back to Origen. Un-comment the example below to get started.
|
46
|
+
else
|
47
|
+
@application_commands = <<-EOT
|
48
|
+
examples Run the examples (tests), -c will enable coverage
|
49
|
+
EOT
|
50
|
+
|
51
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# This file is similar to environment.rb and will be loaded
|
2
|
+
# automatically at the start of each invocation of Origen.
|
3
|
+
#
|
4
|
+
# However the major difference is that it will not be loaded
|
5
|
+
# if the application is imported by a 3rd party app - in that
|
6
|
+
# case only environment.rb is loaded.
|
7
|
+
#
|
8
|
+
# Therefore this file should be used to load anything you need
|
9
|
+
# to setup a development environment for this app, normally
|
10
|
+
# this would be used to define some dummy classes to instantiate
|
11
|
+
# your objects so that they can be tested and/or interacted with
|
12
|
+
# in the console.
|
13
|
+
module OrigenSWD
|
14
|
+
autoload :DUT, "origen_swd/dut"
|
15
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
require "origen_swd"
|
data/config/users.rb
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
# This file defines the users associated with your project, it is basically the
|
2
|
+
# mailing list for release notes.
|
3
|
+
#
|
4
|
+
# You can split your users into "admin" and "user" groups, the main difference
|
5
|
+
# between the two is that admin users will get all tag emails, users will get
|
6
|
+
# emails on external/official releases only.
|
7
|
+
#
|
8
|
+
# Users are also prohibited from running the "origen tag" task, but this is
|
9
|
+
# really just to prevent a casual user from executing it inadvertently and is
|
10
|
+
# not intended to be a serious security gate.
|
11
|
+
module Origen
|
12
|
+
module Users
|
13
|
+
def users
|
14
|
+
@users ||= [
|
15
|
+
|
16
|
+
]
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/config/version.rb
ADDED
data/lib/origen_swd.rb
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
module OrigenSWD
|
2
|
+
# To use this driver the owner model must define the following pins (an alias is fine):
|
3
|
+
# :swd_clk
|
4
|
+
# :swd_dio
|
5
|
+
#
|
6
|
+
class Driver
|
7
|
+
# Returns the parent object that instantiated the driver, could be
|
8
|
+
# either a DUT object or a protocol abstraction
|
9
|
+
attr_reader :owner
|
10
|
+
|
11
|
+
def initialize(owner, options = {})
|
12
|
+
@owner = owner
|
13
|
+
@current_apaddr = 0
|
14
|
+
@orundetect = 0
|
15
|
+
end
|
16
|
+
|
17
|
+
# Hardware interface
|
18
|
+
def send_data(data, size, options = {})
|
19
|
+
if options.key?(:overlay)
|
20
|
+
$tester.label(options[:overlay])
|
21
|
+
size.times do |bit|
|
22
|
+
owner.pin(:swd_clk).drive(1)
|
23
|
+
$tester.label("// SWD Data Pin #{bit}")
|
24
|
+
owner.pin(:swd_dio).drive(data[bit])
|
25
|
+
$tester.cycle
|
26
|
+
end
|
27
|
+
owner.pin(:swd_dio).dont_care
|
28
|
+
else
|
29
|
+
size.times do |bit|
|
30
|
+
owner.pin(:swd_clk).drive(1)
|
31
|
+
owner.pin(:swd_dio).drive(data[bit])
|
32
|
+
$tester.cycle
|
33
|
+
end
|
34
|
+
owner.pin(:swd_dio).dont_care
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def get_data(size, options = {})
|
39
|
+
should_store = $dut.pin(:swd_dio).is_to_be_stored?
|
40
|
+
owner.pin(:swd_dio).dont_care
|
41
|
+
size.times do |bit|
|
42
|
+
$tester.store_next_cycle($dut.pin(:swd_dio)) if should_store
|
43
|
+
$dut.pin(:swd_dio).assert(options[:compare_data][bit]) if options.key?(:compare_data)
|
44
|
+
$tester.cycle
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
def swd_dio_to_0(size)
|
49
|
+
owner.pin(:swd_dio).drive(0)
|
50
|
+
size.times do |bit|
|
51
|
+
$tester.cycle
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module OrigenSWD
|
2
|
+
# This is a dummy DUT model which is used
|
3
|
+
# to instantiate and test the SWD locally
|
4
|
+
# during development.
|
5
|
+
#
|
6
|
+
# It is not included when this library is imported.
|
7
|
+
class DUT
|
8
|
+
include OrigenSWD
|
9
|
+
include Origen::Callbacks
|
10
|
+
include Origen::Registers
|
11
|
+
include Origen::Pins
|
12
|
+
|
13
|
+
def initialize(options = {})
|
14
|
+
add_reg :test, 0x0, 32, data: { pos: 0, bits: 32 },
|
15
|
+
bit: { pos: 0 }
|
16
|
+
add_pin :swd_clk
|
17
|
+
add_pin :swd_dio
|
18
|
+
end
|
19
|
+
|
20
|
+
def startup(options)
|
21
|
+
$tester.set_timeset('swd', 40)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
data/pattern/example.rb
ADDED
@@ -0,0 +1,59 @@
|
|
1
|
+
Pattern.create do
|
2
|
+
|
3
|
+
address = 0x00002020
|
4
|
+
rwb = 0
|
5
|
+
ap_dp = 1
|
6
|
+
wdata = 0xAAAA5555
|
7
|
+
start = 1
|
8
|
+
apndp = 1
|
9
|
+
rnw = rwb
|
10
|
+
addr = address >> 2
|
11
|
+
parity_pr = ap_dp ^ rwb ^ (addr >> 3) ^ (addr >> 2) & (0x01) ^ (addr >> 1) & (0x01) ^ addr & 0x01
|
12
|
+
trn = 0
|
13
|
+
data = wdata
|
14
|
+
require_dp = 0
|
15
|
+
line_reset = 0
|
16
|
+
stop = 0
|
17
|
+
park = 1
|
18
|
+
|
19
|
+
cc 'SWD transaction'
|
20
|
+
cc 'Packet Request Phase'
|
21
|
+
|
22
|
+
annotate 'Send Start Bit'
|
23
|
+
$dut.swd.send_data(start, 1)
|
24
|
+
cc('Send APnDP Bit (DP or AP Access Register Bit)', prefix: true)
|
25
|
+
$dut.swd.send_data(apndp, 1)
|
26
|
+
c2 'Send RnW Bit (read or write bit)'
|
27
|
+
$dut.swd.send_data(rnw, 1)
|
28
|
+
c2 'Send Address Bits (2 bits)'
|
29
|
+
$dut.swd.send_data(addr, 2)
|
30
|
+
c2 'Send Parity Bit'
|
31
|
+
$dut.swd.send_data(parity_pr, 1)
|
32
|
+
c2 'Send Stop Bit'
|
33
|
+
$dut.swd.send_data(stop, 1)
|
34
|
+
c2 'Send Park Bit'
|
35
|
+
$dut.swd.send_data(park, 1)
|
36
|
+
|
37
|
+
cc 'Acknowledge Response phase'
|
38
|
+
$dut.swd.send_data(0xf, trn + 1)
|
39
|
+
$dut.swd.get_data(3)
|
40
|
+
|
41
|
+
cc 'Write Data Phase'
|
42
|
+
cc 'Write'
|
43
|
+
cc 'Send ACK Bits'
|
44
|
+
$dut.swd.send_data(0xf, trn + 1)
|
45
|
+
cc 'SWD 32-Bit Write Start'
|
46
|
+
$dut.swd.send_data(data, 32, overlay: 'write_ovl')
|
47
|
+
cc 'SWD 32-Bit Write End'
|
48
|
+
cc 'Send Write Parity Bit'
|
49
|
+
xor = 0
|
50
|
+
32.times do |bit|
|
51
|
+
xor ^= (data >> bit) & 0x01
|
52
|
+
end
|
53
|
+
xor
|
54
|
+
$dut.swd.send_data(xor, 1)
|
55
|
+
|
56
|
+
cc 'SWD DIO to 0 for 10 cycles'
|
57
|
+
$dut.swd.swd_dio_to_0(10)
|
58
|
+
|
59
|
+
end
|
@@ -0,0 +1,82 @@
|
|
1
|
+
% render "layouts/basic.html" do
|
2
|
+
|
3
|
+
%# HTML tags can be embedded in mark down files if you want to do specific custom
|
4
|
+
%# formatting like this, but in most cases that is not required.
|
5
|
+
<h1><%= Origen.app.namespace %> <span style="font-size: 14px">(<%= Origen.app.version %>)</span></h1>
|
6
|
+
|
7
|
+
### Purpose
|
8
|
+
|
9
|
+
This application provides a SWD driver.
|
10
|
+
|
11
|
+
### How To Import
|
12
|
+
|
13
|
+
In your Gemfile add:
|
14
|
+
|
15
|
+
~~~ruby
|
16
|
+
gem "origen_swd", ">= <%= Origen.app.version %>"
|
17
|
+
~~~
|
18
|
+
|
19
|
+
or if your application is a plugin add this to your <code>.gemspec</code>
|
20
|
+
|
21
|
+
~~~ruby
|
22
|
+
spec.add_development_dependency "origen_swd", ">= <%= Origen.app.version %>"
|
23
|
+
~~~
|
24
|
+
|
25
|
+
__NOTE:__ You will also need to include <code>require 'origen_swd'</code> somewhere in your environment. This can be done in <code>config/environment.rb</code> for example.
|
26
|
+
|
27
|
+
|
28
|
+
### How To Use
|
29
|
+
|
30
|
+
Include the <code>OrigenSWD</code> module to add a JTAG driver to your class and
|
31
|
+
define the required pins.
|
32
|
+
|
33
|
+
Including the module adds a <code>swd</code> method which will return an instance of
|
34
|
+
[<code>OrigenSWD::Driver</code>](<%= path "api/OrigenSWD/Driver.html" %>).
|
35
|
+
|
36
|
+
Here is an example integration:
|
37
|
+
|
38
|
+
~~~ruby
|
39
|
+
|
40
|
+
class DUT
|
41
|
+
include OrigenSWD
|
42
|
+
include Origen::Pins
|
43
|
+
|
44
|
+
def initialize(options = {})
|
45
|
+
add_pin :swd_clk
|
46
|
+
add_pin :swd_dio
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
|
51
|
+
DUT.new.swd # => An instance of OrigenSWD::Driver
|
52
|
+
~~~
|
53
|
+
|
54
|
+
|
55
|
+
### How To Setup a Development Environment
|
56
|
+
|
57
|
+
[Clone the repository from Github](https://github.com/Origen-SDK/origen_swd).
|
58
|
+
|
59
|
+
An instance of the OrigenSWD driver is hooked up to a dummy DUT
|
60
|
+
object for use in the console:
|
61
|
+
|
62
|
+
~~~
|
63
|
+
origen i
|
64
|
+
|
65
|
+
> $dut.swd
|
66
|
+
=> #<OrigenSWD::Driver:0x0000001ee48e78>
|
67
|
+
~~~
|
68
|
+
|
69
|
+
Follow the instructions here if you want to make a 3rd party app
|
70
|
+
workspace use your development copy of the OrigenSWD plugin:
|
71
|
+
[Setting up a Plugin Development Environment](http://origen-sdk.org/origen/latest/guides/plugins)
|
72
|
+
|
73
|
+
This plugin also contains a test suite, makes sure this passes before committing
|
74
|
+
any changes!
|
75
|
+
|
76
|
+
~~~
|
77
|
+
origen examples
|
78
|
+
~~~
|
79
|
+
|
80
|
+
<%= disqus_comments %>
|
81
|
+
|
82
|
+
% end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
---
|
2
|
+
title: <%= options[:title] || Origen.config.name %>
|
3
|
+
analytics: UA-64455560-1
|
4
|
+
---
|
5
|
+
<%= render "templates/web/partials/navbar.html", :tab => options[:tab] %>
|
6
|
+
|
7
|
+
<div class="row">
|
8
|
+
%# The markdown attribute is important if you are going to include content written
|
9
|
+
%# in markdown, without this is will be included verbatim
|
10
|
+
<div class="span12" markdown="1">
|
11
|
+
<%= yield %>
|
12
|
+
|
13
|
+
<%= disqus_comments %>
|
14
|
+
|
15
|
+
</div>
|
16
|
+
</div>
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<nav class="navbar navbar-inverse navbar-fixed-top">
|
2
|
+
<div class="container">
|
3
|
+
<div class="navbar-header">
|
4
|
+
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
|
5
|
+
<span class="sr-only">Toggle navigation</span>
|
6
|
+
<span class="icon-bar"></span>
|
7
|
+
<span class="icon-bar"></span>
|
8
|
+
<span class="icon-bar"></span>
|
9
|
+
</button>
|
10
|
+
<a class="navbar-brand" href="<%= path "/" %>">Home</a>
|
11
|
+
</div>
|
12
|
+
<div id="navbar" class="collapse navbar-collapse">
|
13
|
+
<ul class="nav navbar-nav">
|
14
|
+
<li class="<%= options[:tab] == :api ? 'active' : '' %>"><a href="<%= path "/api/" %>">API</a></li>
|
15
|
+
<li class="<%= options[:tab] == :coverage ? 'active' : '' %>"><a href="<%= path "/coverage" %>">Coverage</a></li>
|
16
|
+
<li class="<%= options[:tab] == :release ? 'active' : '' %>"><a href="<%= path "/release_notes" %>">Release Notes</a></li>
|
17
|
+
<li><a href="https://github.com/Origen-SDK/origen_swd">Github</a></li>
|
18
|
+
</ul>
|
19
|
+
<%= import "origen/web/logo.html" %>
|
20
|
+
</div><!--/.nav-collapse -->
|
21
|
+
</div>
|
22
|
+
</nav>
|
metadata
ADDED
@@ -0,0 +1,85 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: origen_swd
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.3.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Ronnie Lajaunie
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-08-18 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: origen
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0.2'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0.2'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: origen_doc_helpers
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.2.0
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 0.2.0
|
41
|
+
description:
|
42
|
+
email:
|
43
|
+
- Ronnie.Lajaunie@freescale.com
|
44
|
+
executables: []
|
45
|
+
extensions: []
|
46
|
+
extra_rdoc_files: []
|
47
|
+
files:
|
48
|
+
- config/application.rb
|
49
|
+
- config/commands.rb
|
50
|
+
- config/development.rb
|
51
|
+
- config/environment.rb
|
52
|
+
- config/users.rb
|
53
|
+
- config/version.rb
|
54
|
+
- lib/origen_swd.rb
|
55
|
+
- lib/origen_swd/driver.rb
|
56
|
+
- lib/origen_swd/dut.rb
|
57
|
+
- pattern/example.rb
|
58
|
+
- templates/web/index.md.erb
|
59
|
+
- templates/web/layouts/_basic.html.erb
|
60
|
+
- templates/web/partials/_navbar.html.erb
|
61
|
+
homepage: http://origen-sdk.org/origen_swd
|
62
|
+
licenses: []
|
63
|
+
metadata: {}
|
64
|
+
post_install_message:
|
65
|
+
rdoc_options: []
|
66
|
+
require_paths:
|
67
|
+
- lib
|
68
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
69
|
+
requirements:
|
70
|
+
- - ">="
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: 1.9.3
|
73
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
74
|
+
requirements:
|
75
|
+
- - ">="
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 1.8.11
|
78
|
+
requirements: []
|
79
|
+
rubyforge_project:
|
80
|
+
rubygems_version: 2.2.2
|
81
|
+
signing_key:
|
82
|
+
specification_version: 4
|
83
|
+
summary: Driver for single-wire-debug interface.
|
84
|
+
test_files: []
|
85
|
+
has_rdoc:
|