2016-01-23 03:23 AM
Hi everyone,
I have problem with bootloader in STM32F0. I used Coocox and I read many topics about bootloader and RAM remap on this procesor and I've done everything with this. Debug is working fine I can go inside into my C code, but IRQ handlers doesn't work. It seems like Interrupt Vector Table doesn't work. Could you help me?2016-01-23 05:35 AM
Sorry I don't use CooCox or have a crystal ball.
Should function like other GNU/GCC based products. Would start by suggesting you print out the 32-bit vectors you currently have at 0x20000000 and 0x00000000. Showing your work. Make sure you are enabling the SYSCFG clock, not resetting it.2016-01-23 06:13 AM
Attachments
My code : __IO uint32_t VectorTable[48] __attribute__((at(0x20000000))); for(i = 0; i < 48; i++) { VectorTable[i] = *(__IO uint32_t*)(0x08005000 + (i<<2)); } RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE); // Clock not Reset SYSCFG_MemoryRemapConfig(SYSCFG_MemoryRemap_SRAM); ________________ Attachments : RAM_ROM.jpg : https://st--c.eu10.content.force.com/sfc/dist/version/download/?oid=00Db0000000YtG6&ids=0680X000006I0uf&d=%2Fa%2F0X0000000bfV%2FS4mjrtJfGHfpMNlboiVB023.rZUitk19W7vg5qwWv.I&asPdf=false2016-01-23 06:28 AM
__IO uint32_t VectorTable[48] __attribute__((at(0x20000000)));
This is not elegant. Probably this is reason to working only on debuger. You should edit Linker script. 8005000 this is adres aplication or bootloader? Bootloader start address? You can write to me directly tadzik85@o2.pl (Polak)2016-01-23 06:43 AM
2016-01-23 09:28 AM
On F030 the vector table cannot be at 0x20000000. The vector table is at 0x0000. You can control what goes at 0x0000000 by poking the right values into the syscfg register....
Yes, the remap shadows it at both addresses.2016-01-23 09:36 AM
Unfortunately the graphic lacks context. If the base of one is 0x20000000 and 0x08005000 you've already lost alignment of the table.
You'll need to look at where this code is, how control is past, etc.Does the loader enable interrupts? SysTick, or whateverDo you have serials ports, or LEDs you can use to identify where things are stuck when the debugger isn't used2016-01-23 10:33 AM