Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Падает исполняемый файл на stm32f0discovery
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Отладочные платы
Roldo
main.c:
Код
#include "stm32f0xx.h"

void SystemInit(void)
{

// Включить тактирование порта C
RCC->AHBENR |= RCC_AHBENR_GPIOCEN;

// 9, 10 выводы - на выход (general purpose output mode)
GPIOC->MODER |= GPIO_MODER_MODER8_0 | GPIO_MODER_MODER9_0;
}

void delay(uint32_t Value)
{
volatile uint32_t Counter = Value;

while(Counter--) { }
}

void led_On(void)
{
GPIOC->BSRR = GPIO_BSRR_BS_9; // Установить бит 9
GPIOC->BSRR = GPIO_BSRR_BS_8;
}

void led_Off(void)
{
GPIOC->BSRR = GPIO_BSRR_BR_9; // Сбросить бит 9
GPIOC->BSRR = GPIO_BSRR_BR_8;
}

int main(void)
{
while(1)
{
led_On();
delay(1000000UL);
led_Off();
delay(1000000UL);
}
}


Makefile:
Код
CC=arm-none-eabi-gcc
AS=arm-none-eabi-as
LD=arm-none-eabi-ld

CCFLAGS=-mcpu=cortex-m0 -mthumb -g
ASFLAGS=-mcpu=cortex-m0 -mthumb -g
OBJS= startup.o \
main.o
main.elf : $(OBJS)
$(LD) $(OBJS) -T linker_script.ld --cref -Map main.map -nostartfiles -o main.elf
main.o: main.c
$(CC) -c $(CCFLAGS) main.c -o main.o

startup.o: startup.s
$(AS) $(ASFLAGS) startup.s -asghl=startup.lst -o startup.o
clean:
rm $(OBJS)
rm main.elf


Для отладки использую st-util + gdb:
Код
./st-util
2013-11-14T22:35:54 INFO src/stlink-common.c: Loading device parameters....
2013-11-14T22:35:54 INFO src/stlink-common.c: Device connected is: F0 device, id 0x20006440
2013-11-14T22:35:54 INFO src/stlink-common.c: SRAM size: 0x2000 bytes (8 KiB), Flash: 0x10000 bytes (64 KiB) in pages of 1024 bytes
Chip ID is 00000440, Core ID is 0bb11477.
KARL - should read back as 0x03, not 60 02 00 00
init watchpoints
Listening at *:4242...

Код
make
arm-none-eabi-as -mcpu=cortex-m0 -mthumb -g startup.s -asghl=startup.lst -o startup.o
arm-none-eabi-gcc -c -mcpu=cortex-m0 -mthumb -g main.c -o main.o
arm-none-eabi-ld startup.o main.o -T linker_script.ld --cref -Map main.map -nostartfiles -o main.elf

Код
arm-none-eabi-gdb main.elf
(gdb) target remote localhost:4242
Remote debugging using localhost:4242
0xfffffffe in ?? ()

Код
Chip ID is 00000440, Core ID is  0bb11477.
KARL - should read back as 0x03, not 60 02 00 00
init watchpoints
Listening at *:4242...
GDB connected.
recv: qSupported:qRelocInsn+
query: Supported;qRelocInsn+
send: PacketSize=3fff;qXfer:memory-map:read+
recv: Hg0
send:
recv: ?
send: S05
recv: Hc-1
send:
recv: qC
send:
recv: qAttached
query: Attached;
send:
recv: g
send: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffd8fffffff9fffffffeffffff
recv: qXfer:memory-map:read::0,fff
query: Xfer;memory-map:read::0,fff
Xfer: type:memory-map;op:read;annex:;addr:0;length:4095
send: m<?xml version="1.0"?><!DOCTYPE memory-map PUBLIC "+//IDN gnu.org//DTD GDB Memory Map V1.0//EN"     "http://sourceware.org/gdb/gdb-memory-map.dtd"><memory-map>  <memory type="rom" start="0x00000000" length="0x10000"/>  <memory type="ram" start="0x20000000" length="0x2000"/>  <memory type="flash" start="0x08000000" length="0x10000">    <property name="blocksize">0x400</property>  </memory>  <memory type="ram" start="0x40000000" length="0x1fffffff"/>  <memory type="ram" start="0xe0000000" length="0x1fffffff"/>  <memory type="rom" start="0x1fffec00" length="0xc00"/>  <memory type="rom" start="0x1ffff800" length="0x10"/></memory-map>
recv: qXfer:memory-map:read::27c,d83
query: Xfer;memory-map:read::27c,d83
Xfer: type:memory-map;op:read;annex:;addr:636;length:3459
send: l
recv: mfffffffe,1
send: 00
recv: qTStatus
query: TStatus;
send:
recv: qSymbol::
query: Symbol;:
send:
recv: g
send: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffd8fffffff9fffffffeffffff
recv: qfThreadInfo
query: fThreadInfo;
send:
recv: qL1200000000000000000
send:
recv: qL1200000000000000000
send:
recv: mfffffffe,1
send: 00
recv: mfffffff8,4
send: 80000000
recv: p19
send: 030000c1
recv: mfffffff8,4
send: 80000000
recv: qL1200000000000000000
send:
recv: qL1200000000000000000
send:
recv: m0,2
libusb_submit_transfer(-4)
[!] send_recv
send: 8000
recv: m2,2
libusb_submit_transfer(-4)
[!] send_recv
send: 0000
recv: m4,2
libusb_submit_transfer(-4)
[!] send_recv
send: 8000
recv: m6,2
libusb_submit_transfer(-4)
[!] send_recv
send: 0000
recv: m8,2
libusb_submit_transfer(-4)
[!] send_recv
send: 8000
recv: ma,2

На этом все, компилятор пробовал от CodeSourcery и 4.6.3 и 4.7.3 все равно без изменений.
grikukan
У Вас функция systemInit какая-то очень примитивная.
Ее надо специальной тулзой делать
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.