Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

EP 11/2016 - HTS221 mały czujnik o sporych możliwościach

wakeup
-
-
Posty: 2
Rejestracja: 2 lut 2017, o 14:28

EP 11/2016 - HTS221 mały czujnik o sporych możliwościach

Postautor: wakeup » 19 mar 2017, o 22:51

Witam,
kompilacja projektu kończy się niepowodzeniem, proszę o pomoc

korzystam z NUCLEO-F411RE

STM32CubeMX Version 4.20.1 STM32Cube V1.0
System Workbench for STM32 Version: 1.1.0.201703061529

Pliki znajdują się w lokalizacjach jak poniżej:
/home/pio/workspace/1_HTS221_LIB
/home/pio/workspace/STM32_LIBRARIES
/home/pio/workspace/DispHum_01

Korzystam z narzędzi zarówno pod Windows jak i Linux, opisany problem z kompilacją jest identyczny na obydwu środowiskach. Same środowiska i ich konfiguracja nie są problemem, udało mi się skompilować i uruchomić jeden z kolejnych tutoriali z diodą RGB.

Pierwsza niejasność pojawia się podczas generowania projektu w STM32CubeMX
przy ustawianiu zegara, po wprowadzeniu opcji opisanych w artykule “ABP1 Prescaler” i “ABP1 peripheral clocks” zostają podświetlone na czerwono, tu dodatkowo przestawiam “ABP1 Prescaler” na wartość “/2”

Import do Workbencha i pierwsza kompilacja przechodzi bez problemu
następnie zgodnie z artykułem dodaje foldery i pliki
mały błąd w opisie przy dodawaniu “Includes”,
jest ”Properties->C/C++ Build->Tools Settings->Includes”, powinno być
”Properties->C/C++ Build->Settings->MCU GCC Compiler->Includes”

Do tego momentu wydaje się że wszystko jest ok, kompilacja nadal przechodzi.
Jednak po próbie wywołania
TM_SSD1306_Init();
podczas kompilacji pojawia się komunikat

Invoking: MCU GCC Linker
arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16 -specs=nosys.specs -specs=nano.specs -T"../STM32F411RETx_FLASH.ld" -Wl,-Map=output.map -Wl,--gc-sections -lm -o "Hts221Sds1306.elf" @"objects.list"
Src/main.o: In function `main':
/home/pio/workspace/Hts221Sds1306/Debug/../Src/main.c:85: undefined reference to `TM_SSD1306_Init'
makefile:35: polecenia dla obiektu 'Hts221Sds1306.elf' nie powiodły się
collect2: error: ld returned 1 exit status
make: *** [Hts221Sds1306.elf] Błąd 1

Tu pojawia się cała seria problemów których nie potrafię rozwiązać.
Wydaje się że artykuł jest niepełny.

Include dla "tm_stm32_ssd1306.h" w “main.c” powoduje konieczność dodania “stm32fxxx_hal.h” i odkomentowanie odpowiedniego STMa
tylko po co wtedy “#include "stm32f4xx_hal.h" w “main.c”?

projekt do pobrania
https://drive.google.com/open?id=0B9y-e ... Es0NnZKR28

czy są dostępne źródła dla tego przykładu, gdzie można je pobrać? na ftp nie udało mi się ich znaleźć

pozdrawiam,
Piotr

Awatar użytkownika
Jacek Bogusz
-
-
Posty: 470
Rejestracja: 12 maja 2010, o 17:37
Lokalizacja: Poznań
Kontaktowanie:

Re: EP 11/2016 - HTS221 mały czujnik o sporych możliwościach

Postautor: Jacek Bogusz » 23 mar 2017, o 14:48

W załączeniu plik źródłowy, który - zgodnie ze słowami autora - kompiluje się bezbłędnie.

https://www.dropbox.com/sh/xr6jzxddtxxk ... nGeya?dl=0

Plik właśnie się synchronizuje. Będzie ze 5 minut ;)

wakeup
-
-
Posty: 2
Rejestracja: 2 lut 2017, o 14:28

Re: EP 11/2016 - HTS221 mały czujnik o sporych możliwościach

Postautor: wakeup » 1 kwie 2017, o 21:36

Witam,
dziękuję za odpowiedź
problemem było wyłączenie dodanych folderów z kompilacji, tzn.
TM_SSD1306 -> Properties -> C/C++ Build -> Exclude resource from build
domyślnie po dodaniu folderu opcja była zaznaczona przez co pliki nie były kompilowane
Pozdrawiam,
Piotr

Wróć do „ARM (STM32, NXP, Stellaris i inne)”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 5 gości