Atollic TrueSTUDIO 9.0.0 dahili driver dosyaları Low-Layer Driver desteklemiyor

Başlatan Cemre., 10 Mart 2018, 19:51:07

Cemre.

Merhaba,

Bugün karşılaştığım bir problemi paylaşmak istiyorum. Çözümü ile ilgili bilgisi olan arkadaşlar yazabilirlerse sevinirim.

TrueStudio ile yeni bir proje oluşturup ST'nin LL driver'larını projeye dahil ettim ve Blink kodunu yazmak için stm32f0xx_ll_gpio.h dosyasını projeye dahil ettim. Ancak derlemeye çalıştığımda aşağıdaki hata ile karşılaştım.

18:04:53 **** Incremental Build of configuration Debug for project 030_Try1 ****
Info: Internal Builder is used for build
arm-atollic-eabi-gcc -c ..\Drivers\STM32F0xx_HAL_Driver\Src\stm32f0xx_ll_gpio.c -mthumb -mcpu=cortex-m0 -std=gnu11 -DSTM32F030x6 -DHSI48_VALUE=((uint32_t)48000000) -DUSE_FULL_LL_DRIVER -I../src -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F0xx/Include -I../Drivers/STM32F0xx_HAL_Driver/Inc -O0 -ffunction-sections -fdata-sections -g -fstack-usage -Wall -specs=nano.specs -o Drivers\STM32F0xx_HAL_Driver\Src\stm32f0xx_ll_gpio.o 
In file included from ../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_gpio.h:45:0,
                 from ..\Drivers\STM32F0xx_HAL_Driver\Src\stm32f0xx_ll_gpio.c:38:
../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_gpio.h: In function 'LL_GPIO_SetAFPin_0_7':
../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_gpio.h:555:60: error: 'GPIO_AFRL_AFSEL0' undeclared (first use in this function)
   MODIFY_REG(GPIOx->AFR[0], ((((Pin * Pin) * Pin) * Pin) * GPIO_AFRL_AFSEL0),
                                                            ^
../Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f0xx.h:212:41: note: in definition of macro 'WRITE_REG'
 #define WRITE_REG(REG, VAL)   ((REG) = (VAL))
                                         ^~~
../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_gpio.h:555:3: note: in expansion of macro 'MODIFY_REG'
   MODIFY_REG(GPIOx->AFR[0], ((((Pin * Pin) * Pin) * Pin) * GPIO_AFRL_AFSEL0),
   ^~~~~~~~~~
../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_gpio.h:555:60: note: each undeclared identifier is reported only once for each function it appears in
   MODIFY_REG(GPIOx->AFR[0], ((((Pin * Pin) * Pin) * Pin) * GPIO_AFRL_AFSEL0),
                                                            ^
../Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f0xx.h:212:41: note: in definition of macro 'WRITE_REG'
 #define WRITE_REG(REG, VAL)   ((REG) = (VAL))
                                         ^~~
../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_gpio.h:555:3: note: in expansion of macro 'MODIFY_REG'
   MODIFY_REG(GPIOx->AFR[0], ((((Pin * Pin) * Pin) * Pin) * GPIO_AFRL_AFSEL0),
   ^~~~~~~~~~
../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_gpio.h: In function 'LL_GPIO_GetAFPin_0_7':
../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_gpio.h:585:61: error: 'GPIO_AFRL_AFSEL0' undeclared (first use in this function)
                              ((((Pin * Pin) * Pin) * Pin) * GPIO_AFRL_AFSEL0)) / (((Pin * Pin) * Pin) * Pin));
                                                             ^
../Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f0xx.h:208:41: note: in definition of macro 'READ_BIT'
 #define READ_BIT(REG, BIT)    ((REG) & (BIT))
                                         ^~~
../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_gpio.h: In function 'LL_GPIO_SetAFPin_8_15':
../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_gpio.h:616:92: error: 'GPIO_AFRH_AFSEL8' undeclared (first use in this function)
   MODIFY_REG(GPIOx->AFR[1], (((((Pin >> 8U) * (Pin >> 8U)) * (Pin >> 8U)) * (Pin >> 8U)) * GPIO_AFRH_AFSEL8),
                                                                                            ^
../Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f0xx.h:212:41: note: in definition of macro 'WRITE_REG'
 #define WRITE_REG(REG, VAL)   ((REG) = (VAL))
                                         ^~~
../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_gpio.h:616:3: note: in expansion of macro 'MODIFY_REG'
   MODIFY_REG(GPIOx->AFR[1], (((((Pin >> 8U) * (Pin >> 8U)) * (Pin >> 8U)) * (Pin >> 8U)) * GPIO_AFRH_AFSEL8),
   ^~~~~~~~~~
../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_gpio.h: In function 'LL_GPIO_GetAFPin_8_15':
../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_gpio.h:647:93: error: 'GPIO_AFRH_AFSEL8' undeclared (first use in this function)
                              (((((Pin >> 8U) * (Pin >> 8U)) * (Pin >> 8U)) * (Pin >> 8U)) * GPIO_AFRH_AFSEL8)) / ((((Pin >> 8U) *
                                                                                             ^
../Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f0xx.h:208:41: note: in definition of macro 'READ_BIT'
 #define READ_BIT(REG, BIT)    ((REG) & (BIT))
                                         ^~~

18:04:54 Build Finished (took 860ms)


Problemin çözümü ise CMSIS/Device klasörü altındaki stm32f030x6.h dosyasını STM32F0 Cube 1.9.0 Firmware'in içinden çıkan stm32f030x6.h dosyası ile değiştirmek.

Buradan anladığım kadarıyla IDE ile gelen MCU spesifik header dosyaları Low Layer Driver ile uyumlu değil ya da güncellenmemiş. Bu dosyaların güncellenmesi mümkün mü? Mümkün ise nasıl yapılır?

Bu arada TrueSTUDIO için de bir alt bölüm açılabilir bence...

İyi akşamlar, teşekkürler.

kantirici

Cmsis projesi oluşturmak ve kullanmak için user manuel de bir bölüm var, bakmakta fayda var.

Cemre.

Alıntı yapılan: kantirici - 10 Mart 2018, 20:18:59
Cmsis projesi oluşturmak ve kullanmak için user manuel de bir bölüm var, bakmakta fayda var.
Hocam, hangi user manual? Mümkünse paylaşabilir misiniz?

kantirici

Atollic kurulum klasörünün içinde var. Tam adını ve yerini hatırlamıyorum maalesef.

Cemre.

Alıntı yapılan: kantirici - 10 Mart 2018, 20:54:11
Atollic kurulum klasörünün içinde var. Tam adını ve yerini hatırlamıyorum maalesef.

Tekrar merhaba,

Öneriniz faydalı olacak sanırım. Orada gördüğüm bir ekran alıntısı sayesinde IDE'de CMSIS Pack Manager perspektifi olduğunu gördüm. Oradan çözülecek gibi...

Ek: Maalesef. Embedded C Project altından proje oluşturulduğunda kullanılan kaynaklara müdahale edilmiyor...