Changing a bootloader is always a risky thing.
Especially since the MSPs with re-writable bootloader also have the software 
JTAG fuse in the dame flash area, so if things go wrong, both, JTAG and BSL are 
no longer working.
However, once you got a working BSL replacement on your development devices 
(which you may have to replace several times during development because things 
did go wrong),
you can safely install it on every device without risk. Just ensure that it is 
working properly before you do.

The other solution is to use a copy-loader.
It has been discussed in the TI E2E forum 
(http://e2e.ti.com/support/microcontrollers/msp43016-bit_ultra-low_power_mcus/default.aspx?pi22628=1)
 more than once.
The basic idea is to
- download new firmware through the running application into an unused area of 
flash (this means the maximum firmware size is 1/2 of total flash), with CRC 
and completeness-checks
- have a small copy function that is called on reset that checks for a new 
firmware version and copies it over, then deletes the copy. This way, the copy 
process will be either complete or repeated, in case soethign gfoes 
wrong.
- to ensure that the device is always in a workable state, the area of the 
copy-load including the interrupt table is never replaced. Application and its 
vector table are placed below the copy-loader. interrupt calls are 
forwarded (introducing 5 clock cycles additional ISR latency)

Of course if you have a new firmware, you mus tensure that at least the 
firmware download mechanism is 100% tested and working.
The advantage is that you can use any means of data transfer that are already 
supported by the application. And the update may happen during normal operation 
(except for the final copy procedure)

On E2E, there have also been many threads about replacing the BSL itself, so if 
you want to go that way, do a search there too.

JMGross



----- Ursprüngliche Nachricht -----
Von: Robert Henig
An: mspgcc-users@lists.sourceforge.net
Gesendet am: 20 Aug 2012 22:53:43
Betreff: [Mspgcc-users] C calling convention compatibility with IAR

Apologies if this is no the right list to ask this question.  Please redirect 
me if it is.

I have an existing product that implements a bootloader compiled with the IAR 
workbench version 5.  To save 
space we implement the I2C driver once in the bootloader and then call if from 
the main firmware code based on 
known function addresses.  I would like to write all new firmware using mspgcc. 
 The firmware it upgradable but the 
bootloader is not.  Does anyone know if the calling conversion of the two 
versions is the same or what the 
differences are?

Thanks,
Bob.



------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Mspgcc-users mailing list
Mspgcc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mspgcc-users

Reply via email to