gnupic: Re: [gnupic] [ANN] Pikme PIC Bootloader (for 16F819 etc)


Previous by date: 26 Jul 2006 19:15:09 +0100 Re: [gnupic] Interfacing with linux over rs-232, Pete Harlow
Next by date: 26 Jul 2006 19:15:09 +0100 Re: [gnupic] Interfacing with linux over rs-232, Iain Duncan
Previous in thread: 26 Jul 2006 19:15:09 +0100 Re: [gnupic] [ANN] Pikme PIC Bootloader (for 16F819 etc), Tamas Rudnai
Next in thread: 26 Jul 2006 19:15:09 +0100 Re: [gnupic] [ANN] Pikme PIC Bootloader (for 16F819 etc), Robert Pearce

Subject: Re: [gnupic] [ANN] Pikme PIC Bootloader (for 16F819 etc)
From: "Frank Sergeant" ####@####.####
Date: 26 Jul 2006 19:15:09 +0100
Message-Id: <13896.1153937731@bed.utoh.org>

Tamas Rudnai ####@####.#### wrote:

> 1. Let's say you have that programming connector or that hole that you are
> use for the purpose. Is not that makes easier for anybody to hack your
> product -- or who cares about that?

I've been sloppy with my terminology.  What I have been calling
"high-voltage hardware programming" (to distinguish it from programming
via a bootloader) I believe is called "high-voltage in-circuit serial
programming" (ICSP) or sometimes "high-voltage programming mode" by
Microchip.  (There is also the related low voltage ICSP which I will
ignore.)

The holes for the connector into which you temporarily place a connector
if you ever need to reprogram (or the holes for the connector with a
connector soldered in permanently) are for connecting a high-voltage
programmer.  Even if you omitted those holes and/or the connector,
someone could tack solder 5 wires or could use a DIP-clip (if it would
fit) or could use some sort of bed-of-nails approach.  So, omitting the
connector or holes would make it only slightly harder for someone to
reprogram your product's PIC chip.  I believe if you use code/data
protection, it is supposed to be very difficult for someone to read the
flash contents.  So, someone could change the flash contents, but not
necessarily read the flash contents (without going to a great deal of
trouble). 

I haven't looked carefully into just what code/data protection would
need to be foregone to allow the bootloader to work -- not all of it, as
I understand the (briefly skimmed) data sheet, as the restrictions
against accessing flash under program control (as the bootloader would
do) are different from the restrictions via a high-voltage programmer.

I question the value of code/data protection but am sure there are
arguments on multiple sides of the question.
 
> 2. Can you use the in-circuit serial programming to store data onto the
> program memory area? I mean that your firmware / bootloader / whatever
> decides to put or change data which is semi-permanent / semi-constant. (I
> know, use EEPROM, but just wondering...)

I may not fully understand the question.  By "in-circuit serial
programming" do you mean Microchip's high-voltage ICSP?  If so, yes, you
can program code and data into the program memory area (i.e. the program
flash).  If you mean my bootloader or bootloaders in general, then yes,
program code and data can be programmed into the program flash.

Do you mean "could the application itself reprogram some of the flash to
alter data?" then, again, yes.  On the 16F818/819, the erasure must be
done in 32-word blocks, but the reprogramming can be done in 4-word
blocks.

If I didn't quite cover what you were looking for, please explain
further or maybe someone else will give better answers.


-- 
Frank

Previous by date: 26 Jul 2006 19:15:09 +0100 Re: [gnupic] Interfacing with linux over rs-232, Pete Harlow
Next by date: 26 Jul 2006 19:15:09 +0100 Re: [gnupic] Interfacing with linux over rs-232, Iain Duncan
Previous in thread: 26 Jul 2006 19:15:09 +0100 Re: [gnupic] [ANN] Pikme PIC Bootloader (for 16F819 etc), Tamas Rudnai
Next in thread: 26 Jul 2006 19:15:09 +0100 Re: [gnupic] [ANN] Pikme PIC Bootloader (for 16F819 etc), Robert Pearce


Powered by ezmlm-browse 0.20.