Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как собирать проект в Keil?
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
Iptash
Здравствуйте все.
Никак не могу понять как создавать рабочий проект. Если по шагам, тол делаю так. Открываю новый проект, выбираю девайс(например STM32F101C8), жму ОК далее
он предлагает загрузить загрузчик, в данном случае startup_stm32f10x_md.s, соглашаюсь, создаю новый файл и добавляю в проект
Код
#include <stm32f10x_lib.h>                 // STM32F10x Library Definitions

/*----------------------------------------------------------------------------
   Wait function - delay flashing
*---------------------------------------------------------------------------*/
void wait (void) {
  unsigned int countDown = 300000;         // arbitrary int to count down

  while(countDown--);                      // count down
}

/*----------------------------------------------------------------------------
   MAIN function
*---------------------------------------------------------------------------*/
int main (void) {
  unsigned int leds = 0x01;                // declare and init LEDs

  while (1) {                              // Loop forever
    if (leds > 0x8000) (leds = 0x01);      // check for max value
    GPIOB->ODR = leds;                     // defined in library
    leds <<= 0x1;                          // shift
    wait();                                // delay flashing
  }
}

все, компилирую, выдает ошибку:
prj2.axf: Error: L6218E: Undefined symbol SystemInit (referred from startup_stm32f10x_md.o).
Target not created

если в место загрузочного файла startup_stm32f10x_md.s цепляю STM32F10x.s из ..StartUp\ST\, то компиляция проходит успешно.
Как же правильно собирать проект?
esaulenka
Цитата(Iptash @ Oct 30 2011, 00:24) *
prj2.axf: Error: L6218E: Undefined symbol SystemInit (referred from startup_stm32f10x_md.o).
Target not created

Надо подключить ещё и C:\Keil\ARM\Startup\ST\STM32F10x\system_stm32f10x.c
Желательно скопировать этот файл к себе в проект и подключать уже его - всё-таки это не библиотека, а некий черновик кода инициализации.

Ну а вообще этот вопрос легко решается, например, поиском слова "SystemInit" по всем исходникам в каталоге кейла.

Первая же ссылка в гугле: http://www.keil.com/forum/18804/
Iptash
Цитата(esaulenka @ Oct 31 2011, 14:25) *
Надо подключить ещё и C:\Keil\ARM\Startup\ST\STM32F10x\system_stm32f10x.c
Желательно скопировать этот файл к себе в проект и подключать уже его - всё-таки это не библиотека, а некий черновик кода инициализации.

Ну а вообще этот вопрос легко решается, например, поиском слова "SystemInit" по всем исходникам в каталоге кейла.

Первая же ссылка в гугле: http://www.keil.com/forum/18804/

Спасибо большое за ответ.

Подключил system_stm32f10x.c, но появилась другая ошибка:
D:\Keil\ARM\INC\ST\STM32F10x\stm32f10x.h(80): error: #35: #error directive: "Please select first the target STM32F10x device used in your application (in stm32f10x.h file)"
Target not created
esaulenka
Цитата(Iptash @ Oct 31 2011, 18:13) *
Подключил system_stm32f10x.c, но появилась другая ошибка:
D:\Keil\ARM\INC\ST\STM32F10x\stm32f10x.h(80): error: #35: #error directive: "Please select first the target STM32F10x device used in your application (in stm32f10x.h file)"
Target not created


Адский ад эти ваши STM32!

Почитайте этот stm32f10x.h в районе 45-й строки, должно помочь.


PS статья "STM32 для самых маленьких" sm.gif
http://we.easyelectronics.ru/STM32/stm32-v...ogo-starta.html

PPS сам я с этим контроллером не работал. Нам NXP в лице МТ-систем более вкусные цены предоставил ;-)
Iptash
В принципе я разобрался с STM. Также МК от NXP нравятся, я позовчера заказал отладочную плату с LPC1788.

Цитата(esaulenka @ Nov 1 2011, 16:24) *
Почитайте этот stm32f10x.h в районе 45-й строки, должно помочь.


Да, действительно: Uncomment the line below according to the target STM32 device used in your application

Офигеть, можно же препроцессором выбрать устройство.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.