2016-12-13 12:48 PM
Hello
In my Engineering Thesis i make a SPC56 BAM bootloader using CAN. A board with STM32 f103 'sending' code via CAN to CAN on taget board with SPC560B and program uP using BAM.
Can i do this in SPC5 studio? Becouse i cant find any options and configuration in program.
Best regards
2016-12-14 12:49 AM
Hello Mateusz ,
Yes , it is possible , better to use user.ld to customize your own linker file
you can find any information in the RM SPC56B (reference manual) (chap 6 Microcontroller boot) (Bolero B)
Between 2 boards , you should use some CAN Transceivers between the 2 boards.
Best regards
Erwan
2017-02-23 03:04 PM
Ok thanks, i used transceivers between the 2 boards. Now i want to run uC in BAM mode. I generate a CAN example using project wizard, can i change here application.ld file to make BAM mode or how i can make a user.ld?
I make some standalone_ram.ld in ghs, here is my file, it is correct to ran uC in BAM mode?
Here is code:
MEMORY {
// 384k Internal Flash
flash_rsvd1 : ORIGIN = 0x00000000, LENGTH = 8 flash_memory : ORIGIN = ., LENGTH = 384K-8 flash_rsvd2 : ORIGIN = ., LENGTH = 0// 24KB of internal SRAM starting at 0x40000000 dram_rsvd1 : ORIGIN = 0x40000000, LENGTH = 0 dram_reset : ORIGIN = ., LENGTH = 0 dram_memory : ORIGIN = ., LENGTH = 24K-256 heap_reserve:origin = ., LENGTH = 8K stack_reserve:origin = ., LENGTH = 8K dram_rsvd2 : ORIGIN = ., LENGTH = 16}
DEFAULTS {stack_reserve = 4K
heap_reserve = 4K}
//// Program layout for running out of RAM.////SECTIONS
{ .PPC.EMB.sdata0 ABS : > dram_memory .PPC.EMB.sbss0 CLEAR ABS : > ..text : > dram_memory
.vletext : > . .syscall : > . .rchw NOCHECKSUM : > . .secinfo : > . .rodata : > . .sdata2 : > . .fixaddr : > . .fixtype : > ..sdabase ALIGN(16) : > dram_memory
.sdata : > . .sbss : > . .data : > . .bss : > . .heap ALIGN(16) PAD(heap_reserve) : > . .stack ALIGN(16) PAD(stack_reserve) : > .//
// These special symbols mark the bounds of RAM and ROM memory.// They are used by the MULTI debugger.// __ghs_ramstart = MEMADDR(dram_rsvd1); __ghs_ramend = MEMENDADDR(dram_memory); __ghs_romstart = MEMADDR(flash_rsvd1); __ghs_romend = MEMENDADDR(flash_rsvd2); _ram_image_heap = ENDADDR (heap_reserve); _ram_image_stack = ENDADDR (stack_reserve); _ram_image_end = ENDADDR (.bss); }Best regards
Mateusz