Skip to content
Open
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion adiv5-swd.rb
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ def read(port, addr, opt={})
if !opt[:count]
reply = @drv.transfer(req)
else
req[:count] = readcount
req[:val] = readcount
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From looking at cmsis-dap.rb, it seems that :count is the "new" way of passing this information...

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably we should change the bitbang driver to accept :count instead of :val

reply = @drv.transfer_block(req)
end

Expand Down
6 changes: 6 additions & 0 deletions nrf51.rb
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,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
Expand Down
5 changes: 4 additions & 1 deletion swd-bitbang.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -109,4 +109,7 @@ def calc_parity(data)
def hexify(str)
str.unpack('C*').map{|e| "%02x" % e}.join(' ')
end

def flush!
end
end