Re: Bootloaders and configs
Quote:
My question is which of them must go in the bootloader and which can be part of the new .HEX file to be loaded
Put them all in the bootloader.
I'd be very leery of letting your bootloader reprogram config settings. If you get them wrong or things hiccup you can end up with a board that won't boot.
Re: Bootloaders and configs
Thanks, Tumleweed.
Are we are talking all configs only?
The defines can and will be programmed by the new .HEX file. True?
Nick
Re: Bootloaders and configs
Yeah, I'm talking only about the CONFIG settings.
Everything else is either a program or register setting that gets done at run-time, so you can always change these.
Re: Bootloaders and configs
Thanks again.
This makes it clear even for a beginner like me.
Nick
Re: Bootloaders and configs
The CONFIGs definitely needs to be in the bootloader code that gets programmed to the chip using a real device programmer.
You should not allow the downloaded "application" to change the CONFIG (besides it's not even possible on all PICs) because it might brick it. For example, if the bootloader is written for a board using a HSPLL oscillator running at 32MHz and the user, by mistake or unknowingly, downloads a piece of code that changes the oscillator CONFIG to INTOSC. This bricks the device and you need to reprogram it with a device programmer.
/Henrik.
Re: Bootloaders and configs
Thank you Henrik for the extra information.
In my case it should be simple since I’m using an old fashion chip (PIC16F819).
I’m stuck with quite a few of them in my inventory and I would like to make use of them.
I will include all the configs in the bootloader and I will make sure the new HEX will have none.
Thanks again,
Nick
Re: Bootloaders and configs
Hex isn't problem. You can have configs in hex, but application that parse hex file should ignore configs and send only program and eeprom to bootloader. I post simple bootloader code somewhere on forum.
Re: Bootloaders and configs
The 16F series isn't even capable of reprogramming their own CONFIG word(s). For example, on the 16F819, the CONFIG word is at address 2007h and the datasheet says
Quote:
It is important to note that address 2007h is beyond the
user program memory space which can be accessed
only during programming.
It also says
Quote:
Accessing a location above the
physically implemented address will cause a
wraparound.
So if you TRIED to write to the CONFIG word you'd actually write to another location possibly corrupting the program.
So yeah, you need to be carefull of what you're doing. I'm curious, the 16F819 doesn't have an UART, are you planning to use bitbanged serial for the download or are you going to inject the new firmware image in some other way (SPI, I2C)?
/Henrik.
Re: Bootloaders and configs
Hi Team,
Pedja089 I will search for your post, thank you.
Henrik, I will have a friend of mine, who knows more assembly than I do, helping with this project.
We are trying to make small changes, to fit our needs, to this project I found in my research:
http://pygmy.utoh.org/pikme/
Right now we are collecting as much information as we can to make sure we are taking the right path.
Thank you for your advices and interest.
Nick