srec 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/srec.rb +27 -1
  3. metadata +5 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 95267ac3800d4f13d42b6602cf1520cddfcf8437
4
- data.tar.gz: 445799bb6521c0e56546f9150e423775a94c2463
3
+ metadata.gz: 17e7683e7f20cc5387a2430210ad96f0b0d1e321
4
+ data.tar.gz: 373e63647343c83b0b13a6fb7d467915bf75f957
5
5
  SHA512:
6
- metadata.gz: 0282d665d8b3faf0463af672eafbc1042ade6b8a51434d6bad25ed2c1d46c3266132873d7af4c254446ee4bd765561d242f566a9d2fbd5da2c0ed74b7b73d578
7
- data.tar.gz: 2544c64f010c38b153725d6adcebbac2cedefc7ab02b8aef5226b61ce82b8a2fd406bd450598f989920b58725ed5f133bc01f34500c296f8ca110d69598a84e1
6
+ metadata.gz: 3135453cdb5672a4d1be1b0552de321102a9776a48d21c8705b88b19c826ad9d17d96cacaef06318667c983000af99c749ebfaff3943c2a3241977f162df5b6d
7
+ data.tar.gz: 434bebbe7e4ad3a6bfa5c93c0b040a545cd8d3b584869373dacf2e2636be471dc453c2a358c722a1e5712bb0e272db4e03fcc3cd5564738729fbeca42c58d484
data/lib/srec.rb CHANGED
@@ -4,6 +4,7 @@
4
4
  require "pp"
5
5
 
6
6
  class Srec
7
+ attr_accessor :min,:max
7
8
  def initialize(hash={})
8
9
  if hash[:file]
9
10
  if not File.exist? hash[:file]
@@ -18,6 +19,8 @@ class Srec
18
19
  @lines=@data.split "\n"
19
20
  @mem={}
20
21
  @bytes=0
22
+ @min=nil
23
+ @max=nil
21
24
  @lines.each do |l|
22
25
  if l[0]=='S'
23
26
  type=l[1].to_i
@@ -42,6 +45,8 @@ class Srec
42
45
  @bytes+=b.size
43
46
  if [1,2,3].include? type
44
47
  @mem[addr]=b
48
+ @min=addr if not @min or addr<@min
49
+ @max=(addr+b.length) if not @max or addr+b.length>@max
45
50
  elsif [7,8,9].include? type
46
51
  @boot=b
47
52
  elsif type==0
@@ -51,8 +56,9 @@ class Srec
51
56
  end
52
57
  end
53
58
  end
54
- puts "'#{@info}': #{@mem.length} Records, #{@bytes} Bytes"
59
+ puts "'#{@info}': #{@mem.length} Records, #{@bytes} Bytes [#{@min.to_s(16)}..#{@max.to_s(16)}]"
55
60
  end
61
+
56
62
  def to_blocks min,max,size
57
63
  blks={}
58
64
  @mem.each do |a,b|
@@ -70,4 +76,24 @@ class Srec
70
76
  end
71
77
  blks
72
78
  end
79
+
80
+ def self.diff b,b_old
81
+ todo={}
82
+ b.each do |k,v|
83
+ if b_old[k]
84
+ dc=0
85
+ v.each_with_index do |byte,i|
86
+ if byte!=b_old[k][i]
87
+ #printf "diff %d:%d %02X -- %02X\n",k,i,byte,b_old[k][i]
88
+ dc+=1
89
+ end
90
+ end
91
+ if dc==0
92
+ next
93
+ end
94
+ end
95
+ todo[k]=v
96
+ end
97
+ todo
98
+ end
73
99
  end
metadata CHANGED
@@ -1,17 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: srec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ari Siitonen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-29 00:00:00.000000000 Z
11
+ date: 2015-01-04 00:00:00.000000000 Z
12
12
  dependencies: []
13
- description: Pure Ruby Motorola s-record support for ruby -- library to access and
14
- manipulate srec-files
13
+ description: Pure Ruby Motorola s-record support -- library to access and manipulate
14
+ srec-files
15
15
  email: jalopuuverstas@gmail.com
16
16
  executables: []
17
17
  extensions: []
@@ -41,5 +41,5 @@ rubyforge_project:
41
41
  rubygems_version: 2.2.2
42
42
  signing_key:
43
43
  specification_version: 4
44
- summary: Pure Ruby Motorola s-record support for ruby
44
+ summary: Pure Ruby Motorola s-record support
45
45
  test_files: []