2009-11-21 7:54 AM
Unable to run Bootloader code from RAM in STM8S105K6
2011-05-17 6:04 AM
Hi,
I'm writing a bootloader which does only programming of flash. I took the input from ST application notes. I'm trying to run the bootloader from RAM, control is able to ''Bootloadermain()'' @ RAM (bootloader main fun) but failing to run from that location. I'm using _fctcpy('') for copying the bootloader code to RAM supported only in COSMIC compiler. Please give me your input to resolve the problem. Best regards, Raghavendra2011-05-17 6:04 AM
I think you should copy the flash_write and erase function to ram rather than the total iap application.
The stm8s_flash.c locate these functions in .FLASH_CODE section. Then you should add it in the project setting -> linker -> category -> input ->ram. Don't forget to change the option to -ic. Then you can use the fctcpy to copy it to ram.2011-05-17 6:04 AM
Thank you for reply. Since my RAM code does only reading from UART and writing to FLASH(Size of bootloader code is 300bytes). Can't I directly run from RAM? as you told, I have defined FLASH_CODE section in RAM
Thanks, Raghavendra [ This message was edited by: raghavendra.hn on 20-08-2009 12:23 ]2011-05-17 6:04 AM
Hi Raghavendra,
You must add the dedicated FLASH byte operation functions that you use in your application (copie/paste the needed functions in the stm8s_flash.c after the FLASH_CODE section definition) Yes you can run from RAM if your code lowers than RAM size. Regards mozra2011-05-17 6:04 AM
Hi,
Thanks for the input. I'm unable to erase the flash from my bootloader code. I could only erase part of flash i.e., only i could erase first two blocks of the FLASH. It is not erasing from 0x8100. Please help me to resolve this issue. Thanks, Raghavendra2011-05-17 6:04 AM
Hi Raghavendra,
Can you please check the size of the user boot code area by checking the user boot code (UBC) option byte value, normally the bootloader area is read/write protected. For more details you can refer to user boot code area as described in reference manual (RM0016) ''Section 4.4.1: User boot area (UBC)''. Regards mozra2011-05-17 6:04 AM
Hi Mozra,
Thanks for the input. Please note I'm not using UBC. I'm copying the code to RAM. Code size is 700Bytes which is within RAM size(2K). But still i could erase using RAM code. Regards, Raghavendra2011-05-17 6:04 AM
Hi Raghavendra,
What is the clock speed used in your application? if higher than 16MHz please try with wait state = 1 and keep us informed Regards mozra2011-05-17 6:04 AM
Hello
In my application i need the bootloader to be able to update firmware without rainsonance programmer. I have never used the bootloader and boot loader manual (um560) gives no guidance on how to start with bootloader. Could you please give me a step by step giude how to enable boot loader support on STM8s207 and how to use flash loader demonstration to upload new BIN file to this microcontroller? Regards jackkplWe’re moving the ST Community to a new platform to give you a better and more reliable community experience.