From deaaef96f0e9eb50555c125c2fee58eb8539cf6d Mon Sep 17 00:00:00 2001 From: Florian Echtler Date: Thu, 17 Mar 2016 15:15:10 +0100 Subject: [PATCH 1/4] erase UICR when mass-erasing --- nrf51.rb | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/nrf51.rb b/nrf51.rb index b65e221..ae80f0d 100644 --- a/nrf51.rb +++ b/nrf51.rb @@ -78,6 +78,12 @@ def mass_erase sleep 0.01 end + self.ERASEUICR = 1 + while !self.READY.ready + Log(:nrf51, 1){ "waiting for UICR erase completion" } + sleep 0.01 + end + self.CONFIG.WEN = :REN # enable read if self.CONFIG.WEN != :REN From fb755c733a7515b03cf03a99ad3bbf45f6cbb94f Mon Sep 17 00:00:00 2001 From: Florian Echtler Date: Thu, 17 Mar 2016 20:52:18 +0100 Subject: [PATCH 2/4] fix some typos, add missing method --- adiv5-swd.rb | 2 +- swd-bitbang.rb | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/adiv5-swd.rb b/adiv5-swd.rb index 3de5f0d..ac1dd52 100644 --- a/adiv5-swd.rb +++ b/adiv5-swd.rb @@ -54,7 +54,7 @@ def read(port, addr, opt={}) if !opt[:count] reply = @drv.transfer(req) else - req[:count] = readcount + req[:val] = readcount reply = @drv.transfer_block(req) end diff --git a/swd-bitbang.rb b/swd-bitbang.rb index eb5c1ec..8488fd2 100644 --- a/swd-bitbang.rb +++ b/swd-bitbang.rb @@ -80,7 +80,7 @@ def transfer(req) # reads to the AP are posted, so we need to get the result in a # separate transfer. if req[:port] == :ap - rdbufret = transfer(dir: :read, port: :dp, addr: Adiv5Swd::RDBUFF) + rdbufret = transfer(op: :read, port: :dp, addr: Adiv5Swd::RDBUFF) ret[:ack] = rdbufret[:ack] data = rdbufret[:val] end @@ -109,4 +109,7 @@ def calc_parity(data) def hexify(str) str.unpack('C*').map{|e| "%02x" % e}.join(' ') end + + def flush! + end end From b0e340dfbc4c936f3e22bbf5619c4de1a8e4bf16 Mon Sep 17 00:00:00 2001 From: Florian Echtler Date: Fri, 18 Mar 2016 12:56:03 +0100 Subject: [PATCH 3/4] use :count instead of :val for all drivers --- adiv5-swd.rb | 2 +- swd-bitbang.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/adiv5-swd.rb b/adiv5-swd.rb index ac1dd52..3de5f0d 100644 --- a/adiv5-swd.rb +++ b/adiv5-swd.rb @@ -54,7 +54,7 @@ def read(port, addr, opt={}) if !opt[:count] reply = @drv.transfer(req) else - req[:val] = readcount + req[:count] = readcount reply = @drv.transfer_block(req) end diff --git a/swd-bitbang.rb b/swd-bitbang.rb index 8488fd2..0eb0a5d 100644 --- a/swd-bitbang.rb +++ b/swd-bitbang.rb @@ -21,7 +21,7 @@ def raw_out(seq, seqlen=nil) end def transfer_block(req) - seq = req[:val] + seq = req[:count] seq = seq.times unless seq.respond_to? :each ret = req.dup From af4964bb9668ad5325b630001e3ab4dc953e3a82 Mon Sep 17 00:00:00 2001 From: Florian Echtler Date: Sun, 20 Mar 2016 11:43:13 +0100 Subject: [PATCH 4/4] swap everything back :-/ --- adiv5-swd.rb | 2 +- swd-bitbang.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/adiv5-swd.rb b/adiv5-swd.rb index 3de5f0d..ac1dd52 100644 --- a/adiv5-swd.rb +++ b/adiv5-swd.rb @@ -54,7 +54,7 @@ def read(port, addr, opt={}) if !opt[:count] reply = @drv.transfer(req) else - req[:count] = readcount + req[:val] = readcount reply = @drv.transfer_block(req) end diff --git a/swd-bitbang.rb b/swd-bitbang.rb index 0eb0a5d..8488fd2 100644 --- a/swd-bitbang.rb +++ b/swd-bitbang.rb @@ -21,7 +21,7 @@ def raw_out(seq, seqlen=nil) end def transfer_block(req) - seq = req[:count] + seq = req[:val] seq = seq.times unless seq.respond_to? :each ret = req.dup