EmbeddedRelated.com
Forums

Boot loader

Started by bbalend April 14, 2005

Where can I find a serial bootloader written in C?

Thank you
balend



"bbalend" <bbalend@bbal...> wrote:

> Where can I find a serial bootloader written in C?

Why in C?

What exactly shall the bootloader do?

Oliver
--
Oliver Betz, Muenchen


I wrote a bootloader that for the 9S12, but in assembler. The smallest
protected block is 2K and part of that has to be reserved for the interrupt
table, and the pseudovector reference table. Once those pieces are taken out
there is not much room to write a C bootloader, especially if the bootloader
is to have any decryption capability.

-Dave _____

From: Oliver Betz [mailto:list_ob@list...]
Sent: Thursday, April 14, 2005 8:43 AM
To: 68HC12@68HC...
Subject: Re: [68HC12] Boot loader "bbalend" <bbalend@bbal...> wrote:

> Where can I find a serial bootloader written in C?

Why in C?

What exactly shall the bootloader do?

Oliver
--
Oliver Betz, Muenchen
_____

> .




The bootloader will do the following functionality:
Erase Flash EPOROM
Reprogram the Flash
Run application load
listen I2C and SCI bus

Operational sequence:
On powerup, the control will be transferred to the bootloader, which
initializes the controller and performs CRC check on the application
load.

If the CRC fails, then the bootloader waits for a new load. [This pat
is for when the application load is corrupted or has never had a load]

If the CRC passes, then the bootloader will check whether it has to
perform any application load upgrade.

If yes, then it erases the existing load and reprograms with the new
load. Otherwise, it simply jups to the operation code which re-
initializes the controller as it wishes and starts running.

Then the application is operational. Application load will montors
the I2C or SCI bus.

Thank you.
Balend --- In 68HC12@68HC..., "David Wild" <david.wild@a...> wrote:
> I wrote a bootloader that for the 9S12, but in assembler. The
smallest
> protected block is 2K and part of that has to be reserved for the
interrupt
> table, and the pseudovector reference table. Once those pieces are
taken out
> there is not much room to write a C bootloader, especially if the
bootloader
> is to have any decryption capability.
>
> -Dave > _____
>
> From: Oliver Betz [mailto:list_ob@g...]
> Sent: Thursday, April 14, 2005 8:43 AM
> To: 68HC12@68HC...
> Subject: Re: [68HC12] Boot loader > "bbalend" <bbalend@y...> wrote:
>
> > Where can I find a serial bootloader written in C?
>
> Why in C?
>
> What exactly shall the bootloader do?
>
> Oliver
> --
> Oliver Betz, Muenchen >
> _____
>
> > .




Why C? Well, I am much comfortable with C rather than Motrolla
Assembly. I haven't done since my school.

--- In 68HC12@68HC..., "bbalend" <bbalend@y...> wrote:
>
> The bootloader will do the following functionality:
> Erase Flash EPOROM
> Reprogram the Flash
> Run application load
> listen I2C and SCI bus
>
> Operational sequence:
> On powerup, the control will be transferred to the bootloader,
which
> initializes the controller and performs CRC check on the
application
> load.
>
> If the CRC fails, then the bootloader waits for a new load. [This
pat
> is for when the application load is corrupted or has never had a
load]
>
> If the CRC passes, then the bootloader will check whether it has to
> perform any application load upgrade.
>
> If yes, then it erases the existing load and reprograms with the
new
> load. Otherwise, it simply jups to the operation code which re-
> initializes the controller as it wishes and starts running.
>
> Then the application is operational. Application load will montors
> the I2C or SCI bus.
>
> Thank you.
> Balend > --- In 68HC12@68HC..., "David Wild" <david.wild@a...> wrote:
> > I wrote a bootloader that for the 9S12, but in assembler. The
> smallest
> > protected block is 2K and part of that has to be reserved for the
> interrupt
> > table, and the pseudovector reference table. Once those pieces
are
> taken out
> > there is not much room to write a C bootloader, especially if the
> bootloader
> > is to have any decryption capability.
> >
> > -Dave
> >
> >
> > _____
> >
> > From: Oliver Betz [mailto:list_ob@g...]
> > Sent: Thursday, April 14, 2005 8:43 AM
> > To: 68HC12@68HC...
> > Subject: Re: [68HC12] Boot loader
> >
> >
> > "bbalend" <bbalend@y...> wrote:
> >
> > > Where can I find a serial bootloader written in C?
> >
> > Why in C?
> >
> > What exactly shall the bootloader do?
> >
> > Oliver
> > --
> > Oliver Betz, Muenchen
> >
> >
> >
> > _____
> >
> > > .
> >
> >
> >
> >
> >




I will be using the MC9S12E128 controller and according to the data
sheet, I can have, 0.5k to 4k protector sector in $4000-$7FFF space
and 2k to 16k protected boot sector in $C000-$FFFF space.

--- In 68HC12@68HC..., "David Wild" <david.wild@a...> wrote:
> I wrote a bootloader that for the 9S12, but in assembler. The
smallest
> protected block is 2K and part of that has to be reserved for the
interrupt
> table, and the pseudovector reference table. Once those pieces are
taken out
> there is not much room to write a C bootloader, especially if the
bootloader
> is to have any decryption capability.
>
> -Dave > _____
>
> From: Oliver Betz [mailto:list_ob@g...]
> Sent: Thursday, April 14, 2005 8:43 AM
> To: 68HC12@68HC...
> Subject: Re: [68HC12] Boot loader > "bbalend" <bbalend@y...> wrote:
>
> > Where can I find a serial bootloader written in C?
>
> Why in C?
>
> What exactly shall the bootloader do?
>
> Oliver
> --
> Oliver Betz, Muenchen >
> _____
>
> > .



Yes....

Obviously it is more convenient if the bootloader is placed in the same area
as the interrupt vectors. If you have little application space requirement
you could make the bootloader occupy the 4K block rather than the 2K block.
I view that as undesireable because it increases the constraints on any
software developed for the platform. _____

From: bbalend [mailto:bbalend@bbal...]
Sent: Thursday, April 14, 2005 10:16 AM
To: 68HC12@68HC...
Subject: [68HC12] Re: Boot loader
I will be using the MC9S12E128 controller and according to the data
sheet, I can have, 0.5k to 4k protector sector in $4000-$7FFF space
and 2k to 16k protected boot sector in $C000-$FFFF space.

--- In 68HC12@68HC..., "David Wild" <david.wild@a...> wrote:
> I wrote a bootloader that for the 9S12, but in assembler. The
smallest
> protected block is 2K and part of that has to be reserved for the
interrupt
> table, and the pseudovector reference table. Once those pieces are
taken out
> there is not much room to write a C bootloader, especially if the
bootloader
> is to have any decryption capability.
>
> -Dave > _____
>
> From: Oliver Betz [mailto:list_ob@g...]
> Sent: Thursday, April 14, 2005 8:43 AM
> To: 68HC12@68HC...
> Subject: Re: [68HC12] Boot loader > "bbalend" <bbalend@y...> wrote:
>
> > Where can I find a serial bootloader written in C?
>
> Why in C?
>
> What exactly shall the bootloader do?
>
> Oliver
> --
> Oliver Betz, Muenchen >
> _____
>
> > .


_____

> .