GDB->OpenOCD flash varning
Postat: 20 februari 2011, 00:36:48
Godagens!
När jag flashar min NXP LPC1769 (Cortex-M3) med GDB via OpenOCD så får jag en konstig varning; "No flash at address 0x10000000".
Det som ligger där är min stack som jag vill ha först i minnet.
Och jag förstår inte varningen som jag får, då jag inte skriver nå data utan bara allokerar utrymmet.
Samt gör man en objdump så stämmer allt, stacken ligger först som den ska.
Vet någon hur man fixar bort denna varning?
Mvh
Emil
Link.T :
Kod:
Utdrag ur objdump:
Flash script för GDB:
När jag flashar min NXP LPC1769 (Cortex-M3) med GDB via OpenOCD så får jag en konstig varning; "No flash at address 0x10000000".
Det som ligger där är min stack som jag vill ha först i minnet.
Och jag förstår inte varningen som jag får, då jag inte skriver nå data utan bara allokerar utrymmet.
Samt gör man en objdump så stämmer allt, stacken ligger först som den ska.
Vet någon hur man fixar bort denna varning?
Mvh
Emil
Link.T :
Kod: Markera allt
MEMORY
{
FLASH (rx) : ORIGIN = 0x0, LENGTH = 512k
SRAM (rwx) : ORIGIN = 0x10000000, LENGTH = 32k
/* SRAM2 (rwx) : ORIGIN = 0x20000000, LENGTH = 32k */
}
SECTIONS
{
.text : {
*(.vectors)
*(.text)
*(.lookup)
. = ALIGN(4);
_DATA_FLASH_START = .;
} > FLASH
.stackarea : {
*(.stackarea)
} > SRAM
.bss : {
. = ALIGN(4);
PROVIDE(_BSS_START = .);
*(.bss)
PROVIDE(_BSS_END = .);
} > SRAM
.data : {
. = ALIGN(4);
_DATA_START = .;
*(.data)
_DATA_END = .;
} > SRAM AT > FLASH
}
Kod: Markera allt
#define STACK_SIZE 1024
__attribute__((section(".stackarea"))) int stack[STACK_SIZE];
Kod: Markera allt
Disassembly of section .stackarea:
10000000 <stack>:
...
Disassembly of section .bss:
10001000 <_BSS_START>:
10001000: 00000000 andeq r0, r0, r0
10001004 <ADC_struct>:
...
Disassembly of section .data:
10001024 <ADC_values>:
10001024: 10001004 andne r1, r0, r4
10001028 <SystemFrequency>:
10001028: 00b71b00 adcseq r1, r7, r0, lsl #22
Kod: Markera allt
monitor reset halt
monitor mww 0x400fc040 1
monitor flash erase_address 0x00000000 0x00080000
monitor flash write_image main.elf 0 elf
file main.elf
monitor reset halt
monitor wait_halt