rpicsim 0.4.0 → 1.0.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/.yardopts +3 -1
- data/Introduction.md +1 -3
- data/README.md +1 -3
- data/docs/ChangeLog.md +13 -0
- data/docs/KnownIssues.md +2 -2
- data/docs/Manual.md +0 -1
- data/docs/RSpecIntegration.md +24 -1
- data/docs/SupportedMPLABXVersions.md +2 -0
- data/lib/rpicsim.rb +6 -1
- data/lib/rpicsim/composite_memory.rb +3 -0
- data/lib/rpicsim/flaws.rb +28 -4
- data/lib/rpicsim/label.rb +7 -0
- data/lib/rpicsim/memory.rb +4 -0
- data/lib/rpicsim/memory_watcher.rb +11 -4
- data/lib/rpicsim/mplab.rb +1 -0
- data/lib/rpicsim/mplab/mplab_assembly.rb +0 -1
- data/lib/rpicsim/pin.rb +7 -0
- data/lib/rpicsim/program_counter.rb +4 -0
- data/lib/rpicsim/program_file.rb +20 -17
- data/lib/rpicsim/rspec.rb +6 -3
- data/lib/rpicsim/rspec/helpers.rb +13 -5
- data/lib/rpicsim/rspec/persistent_expectations.rb +5 -3
- data/lib/rpicsim/rspec/sim_diagnostics.rb +1 -0
- data/lib/rpicsim/sim.rb +8 -3
- data/lib/rpicsim/stack_pointer.rb +6 -0
- data/lib/rpicsim/stack_trace.rb +32 -1
- data/lib/rpicsim/storage/memory_integer.rb +1 -0
- data/lib/rpicsim/symbol_set.rb +3 -1
- data/lib/rpicsim/variable.rb +14 -0
- data/lib/rpicsim/variable_set.rb +2 -0
- data/lib/rpicsim/version.rb +4 -1
- data/lib/rpicsim/xc8_sym_file.rb +63 -11
- metadata +2 -7
- data/docs/PreventingCallStackOverflow.md +0 -92
- data/lib/rpicsim/call_stack_info.rb +0 -303
- data/lib/rpicsim/instruction.rb +0 -337
- data/lib/rpicsim/mplab/mplab_disassembler.rb +0 -20
- data/lib/rpicsim/search.rb +0 -20
@@ -1,20 +0,0 @@
|
|
1
|
-
require_relative 'mplab_instruction'
|
2
|
-
|
3
|
-
module RPicSim::Mplab
|
4
|
-
class MplabDisassembler
|
5
|
-
# @param disasm [com.microchip.mplab.mdbcore.disasm.DisAsm]
|
6
|
-
def initialize(disasm)
|
7
|
-
@disasm = disasm
|
8
|
-
end
|
9
|
-
|
10
|
-
def disassemble(address)
|
11
|
-
begin
|
12
|
-
instr = @disasm.Disassemble(address, nil, nil)
|
13
|
-
rescue Java::ComMicrochipMplabMdbcoreDisasm::InvalidInstructionException
|
14
|
-
# The instruction is invalid.
|
15
|
-
return :invalid
|
16
|
-
end
|
17
|
-
MplabInstruction.new instr
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
data/lib/rpicsim/search.rb
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
module RPicSim
|
2
|
-
module Search
|
3
|
-
# Performs a depth first search.
|
4
|
-
# No measures are taken to avoid processing the same node multiple
|
5
|
-
# times, so this is only suitable for acyclic graphs.
|
6
|
-
# Every time a node is processed, it will be yielded as the first
|
7
|
-
# and only argument to the block.
|
8
|
-
#
|
9
|
-
# This is used by {CallStackInfo#code_paths} to search the instruction
|
10
|
-
# graph backwards in order to find code_paths for a given instruction.
|
11
|
-
def self.depth_first_search_simple(root_nodes)
|
12
|
-
unprocessed_nodes = root_nodes.reverse
|
13
|
-
until unprocessed_nodes.empty?
|
14
|
-
node = unprocessed_nodes.pop
|
15
|
-
nodes = yield node
|
16
|
-
unprocessed_nodes.concat(nodes.reverse)
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|