Przyk?ady dla STM32 + STM32F10x Standard Peripherals Library |
Written by Freddie Chopin
|
Wednesday, 11 January 2012 21:35 |
Page 3 of 6
Sposób 1 - pliki bazowe z przyk?adów, biblioteka w folderze projektu
Jest to najprostsza metoda osi?gni?cia za?o?onego celu. W sposobie tym kopiujemy po prostu wszystkie potrzebne pliki biblioteki do folderu projektu.
W projekcie (dla wi?kszego porz?dku) tworzymy folder (menu File > New > Folder lub - jak zwykle - menu kontekstowe katalogu projektu) o dowolnej nazwie - np lib - i importujemy do niego (sposób importowania plików przedstawiony zosta? nieco wcze?niej w tym artykule) nast?puj?ce zasoby:
- z folderu c:\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport - wszystkie pliki (core_cm3.c i core_cm3.h),
- z folderu c:\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x - plik stm32f10x.h oraz system_stm32f10x.h (dla porz?dku mo?na te? zaimportowa? do folderu lib plik system_stm32f10x.c a nast?pnie skasowa? go z g?ównego katalogu projektu, lub mo?na go pó?niej przenie??),
- z folderu c:\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\inc - wszystkie pliki,
- z folderu c:\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\src - wszystkie pliki.
Teraz nale?y doda? do pliku Makefile kilka opcji, które umo?liwi? poprawn? kompilacj? plików biblioteki. Po otwarciu pliku Makefile w edytorze dokonujemy w nim nast?puj?cych zmian:
- w liniach CXX_DEFS i C_DEFS dodajemy nast?puj?ce definicje: -DUSE_STDPERIPH_DRIVER -DHSE_VALUE=8000000 (warto?? HSE_VALUE oczywi?cie uzale?niona od u?ywanego rezonatora kwarcowego), spowoduje to do??czenie do kodu odpowiednich nag?ówków (definicja symbolu USE_STDPERIPH_DRIVER) i odpowiedni? konfiguracj? funkcji które korzystaj? z warto?ci cz?stotliwo?ci zewn?trznego rezonatora kwarcowego (warto?? symbolu HSE_VALUE),
- w linii C_DEFS dodatkowo dopisujemy jeszcze -DSystemInit=low_level_init_1 - spowoduje to wywo?aniem funkcji SystemInit() (z biblioteki) w startupie tu? przed wywo?aniem funkcji main() - jest to wymagane przez aktualn? konwencj? biblioteki,
- w liniach INC_DIRS i SRCS_DIRS dodajemy nazw? stworzonego przez nas katalogu - np. lib,
- z linii C_WARNINGS usuwamy pozycj? -Wstrict-prototypes, aby niezgodne z "czystym" standardem j?zyka C deklaracje funkcji z CMSISa nie zasypa?y nas ostrze?eniami, ?e "function declaration isn't a prototype".
W tym momencie mo?liwa jest ju? bezb??dna i bezproblemowa kompilacja ca?ego projektu.
|
Last Updated on Monday, 15 October 2012 22:24 |