Russian Qt Forum
Апрель 24, 2024, 21:31 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Настройки QBS для сборки под STM32f429I-DISCO  (Прочитано 15060 раз)
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4349



Просмотр профиля
« Ответ #15 : Март 23, 2016, 21:07 »

Чудес не бывает. Какие-то отличия в опциях все таки есть. Чего-то мы упускаем.
У меня как-то компилятор молча выбрасывал обработчик прерывания, считая его не используемым, т.к. прямого вызова его нигде не было. Прошивка не работала, хотя без опций удаления не используемых функций все было хорошо. Вот тогда map-файл и дизассемблер мне сильно помогли.
Записан
ЙадоФитый ПлюсЧ
Новичок

Offline Offline

Сообщений: 40


Просмотр профиля
« Ответ #16 : Март 24, 2016, 07:10 »

Разбил опции компиляции на строки (везде заменил полный путь на относительный). Порядок опций сохранил.
Для проекта Coocox и собираемый GCC из консоли:
Код
Bash
arm-none-eabi-gcc \
-mcpu=cortex-m4 \
-mthumb -mfpu=fpv4-sp-d16 \
-mfloat-abi=softfp \
-g2 \
-Wall \
-O0 \
-c \
-DSTM32F4XX \
-DUSE_STDPERIPH_DRIVER \
-D__ASSEMBLY__ \
-DSTM32F429_439xx \
-DARM_MATH_CM4 \
-D__FPU_USED \
-D__FPU_PRESENT=1 \
-I../STM32F429-Disco_FreeRTSOS/src/Libs/cmsis_lib/include \
-I../STM32F429-Disco_FreeRTSOS/src/Libs/cmsis \
-I../STM32F429-Disco_FreeRTSOS/src/Libs/cmsis_lib \
-I../STM32F429-Disco_FreeRTSOS/src/AppLib/fft_lib \
-I../STM32F429-Disco_FreeRTSOS/src/Libs/cmsis_boot \
-I../STM32F429-Disco_FreeRTSOS/src/AppLib/ub_lib \
-I../STM32F429-Disco_FreeRTSOS/src/AppLib/uboszi_lib \
-I../STM32F429-Disco_FreeRTSOS/src ../STM32F429-Disco_FreeRTSOS/src/AppLib/uboszi_lib/oszi.c ../STM32F429-Disco_FreeRTSOS/src/AppLib/ub_lib/stm32_ub_sdram.c ../STM32F429-Disco_FreeRTSOS/src/AppLib/fft_lib/arm_cfft_radix4_f32.c ../STM32F429-Disco_FreeRTSOS/src/Libs/cmsis_lib/source/stm32f4xx_dma2d.c ../STM32F429-Disco_FreeRTSOS/src/AppLib/fft_lib/arm_common_tables.c ../STM32F429-Disco_FreeRTSOS/src/AppLib/fft_lib/arm_rfft_f32.c ../STM32F429-Disco_FreeRTSOS/src/AppLib/ub_lib/stm32_ub_i2c3.c ../STM32F429-Disco_FreeRTSOS/src/Libs/cmsis_lib/source/stm32f4xx_usart.c ../STM32F429-Disco_FreeRTSOS/src/AppLib/uboszi_lib/fft.c ../STM32F429-Disco_FreeRTSOS/src/Libs/cmsis_lib/source/stm32f4xx_ltdc.c ../STM32F429-Disco_FreeRTSOS/src/Libs/cmsis_boot/startup/startup_stm32f4xx.c ../STM32F429-Disco_FreeRTSOS/src/AppLib/ub_lib/stm32_ub_led.c ../STM32F429-Disco_FreeRTSOS/src/App/main.c ../STM32F429-Disco_FreeRTSOS/src/Libs/cmsis_lib/source/stm32f4xx_rcc.c ../STM32F429-Disco_FreeRTSOS/src/AppLib/fft_lib/arm_rfft_init_f32.c ../STM32F429-Disco_FreeRTSOS/src/Libs/cmsis_lib/source/stm32f4xx_adc.c ../STM32F429-Disco_FreeRTSOS/src/AppLib/ub_lib/stm32_ub_systick.c ../STM32F429-Disco_FreeRTSOS/src/Drivers/stdio/printf.c ../STM32F429-Disco_FreeRTSOS/src/AppLib/ub_lib/stm32_ub_button.c ../STM32F429-Disco_FreeRTSOS/src/AppLib/ub_lib/font/ub_font_arial_7x10.c ../STM32F429-Disco_FreeRTSOS/src/AppLib/ub_lib/stm32_ub_uart.c ../STM32F429-Disco_FreeRTSOS/src/AppLib/fft_lib/arm_cmplx_mag_f32.c ../STM32F429-Disco_FreeRTSOS/src/AppLib/ub_lib/stm32_ub_graphic2d.c ../STM32F429-Disco_FreeRTSOS/src/AppLib/uboszi_lib/menu.c ../STM32F429-Disco_FreeRTSOS/src/AppLib/ub_lib/stm32_ub_lcd_ili9341.c ../STM32F429-Disco_FreeRTSOS/src/AppLib/ub_lib/bilder/GUI1.c ../STM32F429-Disco_FreeRTSOS/src/Libs/cmsis_lib/source/stm32f4xx_gpio.c ../STM32F429-Disco_FreeRTSOS/src/AppLib/ub_lib/stm32_ub_font.c ../STM32F429-Disco_FreeRTSOS/src/Libs/cmsis_boot/system_stm32f4xx.c ../STM32F429-Disco_FreeRTSOS/src/Syscalls/syscalls.c ../STM32F429-Disco_FreeRTSOS/src/AppLib/ub_lib/stm32_ub_spi5.c ../STM32F429-Disco_FreeRTSOS/src/AppLib/ub_lib/bilder/GUI2.c ../STM32F429-Disco_FreeRTSOS/src/Libs/cmsis_lib/source/stm32f4xx_dma.c ../STM32F429-Disco_FreeRTSOS/src/AppLib/uboszi_lib/adc.c ../STM32F429-Disco_FreeRTSOS/src/Libs/cmsis_lib/source/stm32f4xx_fmc.c ../STM32F429-Disco_FreeRTSOS/src/Libs/cmsis_lib/source/stm32f4xx_spi.c ../STM32F429-Disco_FreeRTSOS/src/Libs/cmsis_lib/source/stm32f4xx_i2c.c ../STM32F429-Disco_FreeRTSOS/src/Libs/cmsis_lib/source/misc.c ../STM32F429-Disco_FreeRTSOS/src/AppLib/ub_lib/stm32_ub_touch_stmpe811.c ../STM32F429-Disco_FreeRTSOS/src/AppLib/fft_lib/arm_max_f32.c ../STM32F429-Disco_FreeRTSOS/src/AppLib/fft_lib/arm_cfft_radix4_init_f32.c ../STM32F429-Disco_FreeRTSOS/src/Libs/cmsis_lib/source/stm32f4xx_tim.c
 

Для проекта QBS
Код
Bash
/usr/bin/arm-none-eabi-gcc \
-g \
-O0 \
-Wall \
-Wextra \
-pipe \
-fvisibility=default \
-mcpu=cortex-m4 \
-mthumb -mfpu=fpv4-sp-d16 \
-mfloat-abi=softfp \
-g2 \
-O0 \
-w \
-std=c99 \
-c \
-DSTM32F4XX \
-DSTM32F429ZI \
-DUSE_STDPERIPH_DRIVER \
-D__ASSEMBLY__ \
-DSTM32F429_439xx \
-DARM_MATH_CM4 \
-std=gnu99 \
-DSTM32F4XX \
-DUSE_STDPERIPH_DRIVER \
-DHSE_VALUE=180000000 \
-DDEBUG \
-I../STM32F429-Disco_FreeRTSOS/src/App \
-I../STM32F429-Disco_FreeRTSOS/src/AppLib \
-I../STM32F429-Disco_FreeRTSOS/src/AppLib/fft_lib \
-I../STM32F429-Disco_FreeRTSOS/src/AppLib/ub_lib \
-I../STM32F429-Disco_FreeRTSOS/src/AppLib/ub_lib/bilder \
-I../STM32F429-Disco_FreeRTSOS/src/AppLib/ub_lib/font \
-I../STM32F429-Disco_FreeRTSOS/src/AppLib/uboszi_lib \
-I../STM32F429-Disco_FreeRTSOS/src/Drivers \
-I../STM32F429-Disco_FreeRTSOS/src/Drivers/stdio \
-I../STM32F429-Disco_FreeRTSOS/src/Libs \
-I../STM32F429-Disco_FreeRTSOS/src/Libs/cmsis \
-I../STM32F429-Disco_FreeRTSOS/src/Libs/cmsis_boot \
-I../STM32F429-Disco_FreeRTSOS/src/Libs/cmsis_boot/startup \
-I../STM32F429-Disco_FreeRTSOS/src/Libs/cmsis_lib \
-I../STM32F429-Disco_FreeRTSOS/src/Libs/cmsis_lib/include \
-I../STM32F429-Disco_FreeRTSOS/src/Libs/cmsis_lib/source \
-I../STM32F429-Disco_FreeRTSOS/src/Syscalls \
-c ../STM32F429-Disco_FreeRTSOS/src/AppLib/ub_lib/stm32_ub_led.c \
-o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/d67faf4c2e97d91e/stm32_ub_led.c.o
и аналогичная команда для других c-файлов.
Записан
ЙадоФитый ПлюсЧ
Новичок

Offline Offline

Сообщений: 40


Просмотр профиля
« Ответ #17 : Март 24, 2016, 07:19 »

Разбил опции линковки на строки (везде заменил полный путь на относительный). Порядок опций сохранил.
Для проекта Coocox и собираемый GCC из консоли:
Код
Bash
arm-none-eabi-gcc \
-mcpu=cortex-m4 \
-mfpu=fpv4-sp-d16 \
-mfloat-abi=softfp \
-mthumb \
-g2 \
-nostartfiles \
-Wl,-Map=stm32f429.map \-O0 \
-Wl,--gc-sections \
-L../STM32F429-Disco_FreeRTSOS/src \
-Wl,-T../STM32F429-Disco_FreeRTSOS/ldscripts/ub_linkerscript_stm32f429i_disco.ld \
-g \
-o stm32f429.elf \
../obj/stm32f4xx_gpio.o ../obj/stm32f4xx_usart.o ../obj/stm32f4xx_dma.o ../obj/stm32_ub_led.o ../obj/GUI2.o ../obj/stm32f4xx_ltdc.o ../obj/oszi.o ../obj/stm32f4xx_spi.o ../obj/arm_rfft_f32.o ../obj/misc.o ../obj/stm32f4xx_adc.o ../obj/arm_cfft_radix4_f32.o ../obj/syscalls.o ../obj/stm32f4xx_fmc.o ../obj/stm32f4xx_i2c.o ../obj/arm_max_f32.o ../obj/arm_rfft_init_f32.o ../obj/arm_cmplx_mag_f32.o ../obj/printf.o ../obj/ub_font_arial_7x10.o ../obj/stm32_ub_i2c3.o ../obj/arm_common_tables.o ../obj/stm32_ub_touch_stmpe811.o ../obj/startup_stm32f4xx.o ../obj/stm32f4xx_rcc.o ../obj/stm32_ub_graphic2d.o ../obj/stm32_ub_font.o ../obj/adc.o ../obj/system_stm32f4xx.o ../obj/stm32_ub_uart.o ../obj/arm_cfft_radix4_init_f32.o ../obj/stm32_ub_button.o ../obj/stm32_ub_spi5.o ../obj/GUI1.o ../obj/stm32f4xx_tim.o ../obj/menu.o ../obj/stm32_ub_sdram.o ../obj/stm32f4xx_dma2d.o ../obj/stm32_ub_lcd_ili9341.o ../obj/main.o ../obj/fft.o ../obj/stm32_ub_systick.o \
-lm \
-lgcc \
-lc
Для QBS:
Код
Bash
/usr/bin/arm-none-eabi-g++ \
../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/1bf4303e4ce6d9a8/ub_font_arial_7x10.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/2ef5d228e5150bb6/misc.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/2ef5d228e5150bb6/stm32f4xx_adc.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/2ef5d228e5150bb6/stm32f4xx_dma.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/2ef5d228e5150bb6/stm32f4xx_dma2d.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/2ef5d228e5150bb6/stm32f4xx_fmc.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/2ef5d228e5150bb6/stm32f4xx_gpio.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/2ef5d228e5150bb6/stm32f4xx_i2c.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/2ef5d228e5150bb6/stm32f4xx_ltdc.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/2ef5d228e5150bb6/stm32f4xx_rcc.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/2ef5d228e5150bb6/stm32f4xx_spi.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/2ef5d228e5150bb6/stm32f4xx_tim.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/2ef5d228e5150bb6/stm32f4xx_usart.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/99ec59a75f921e9d/GUI1.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/99ec59a75f921e9d/GUI2.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/a89734a4c67740af/adc.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/a89734a4c67740af/fft.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/a89734a4c67740af/menu.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/a89734a4c67740af/oszi.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/b3fbddc16f9be6a9/printf.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/c483ae70643438df/syscalls.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/c9b3de592116f4ec/arm_cfft_radix4_f32.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/c9b3de592116f4ec/arm_cfft_radix4_init_f32.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/c9b3de592116f4ec/arm_cmplx_mag_f32.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/c9b3de592116f4ec/arm_common_tables.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/c9b3de592116f4ec/arm_max_f32.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/c9b3de592116f4ec/arm_rfft_f32.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/c9b3de592116f4ec/arm_rfft_init_f32.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/d289b27da2b899ad/startup_stm32f4xx.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/d67faf4c2e97d91e/stm32_ub_button.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/d67faf4c2e97d91e/stm32_ub_font.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/d67faf4c2e97d91e/stm32_ub_graphic2d.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/d67faf4c2e97d91e/stm32_ub_i2c3.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/d67faf4c2e97d91e/stm32_ub_lcd_ili9341.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/d67faf4c2e97d91e/stm32_ub_led.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/d67faf4c2e97d91e/stm32_ub_sdram.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/d67faf4c2e97d91e/stm32_ub_spi5.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/d67faf4c2e97d91e/stm32_ub_systick.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/d67faf4c2e97d91e/stm32_ub_touch_stmpe811.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/d67faf4c2e97d91e/stm32_ub_uart.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/e4a5378b16003ec3/system_stm32f4xx.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/fc4a695f02a8a53a/main.c.o \
-g \
-O0 \
-Wall \
-Wextra \
'-Wl,-rpath,$ORIGIN' \
-T../STM32F429-Disco_FreeRTSOS/ldscripts/ub_linkerscript_stm32f429i_disco.ld \
-Wl,--unresolved-symbols=ignore-in-shared-libs \
-mcpu=cortex-m4 \
-mthumb \
-mfpu=fpv4-sp-d16 \
-mfloat-abi=softfp \
-g2 \
-nostartfiles \
-Wl,-Map=stm32f429.map \
-O0 \
-Xlinker \
--gc-sections \
-o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/stm32f429.elf
Записан
ЙадоФитый ПлюсЧ
Новичок

Offline Offline

Сообщений: 40


Просмотр профиля
« Ответ #18 : Март 24, 2016, 09:22 »

В мапах есть серьезные различия в секции Linker script and memory map:
1. В том, что собирается  QBS в начале идут LOAD-ы
Код
ASM
Linker script and memory map
 
LOAD ../.obj/1bf4303e4ce6d9a8/ub_font_arial_7x10.c.o
<....>
LOAD /usr/lib/gcc/arm-none-eabi/4.9.2/../../../../arm-none-eabi/lib/armv7e-m/softfp/libm.a
LOAD /usr/lib/gcc/arm-none-eabi/4.9.2/armv7e-m/softfp/libgcc.a
LOAD /usr/lib/gcc/arm-none-eabi/4.9.2/../../../../arm-none-eabi/lib/armv7e-m/softfp/libc.a
START GROUP
LOAD /usr/lib/gcc/arm-none-eabi/4.9.2/armv7e-m/softfp/libgcc.a
LOAD /usr/lib/gcc/arm-none-eabi/4.9.2/../../../../arm-none-eabi/lib/armv7e-m/softfp/libg.a
LOAD /usr/lib/gcc/arm-none-eabi/4.9.2/../../../../arm-none-eabi/lib/armv7e-m/softfp/libc.a
END GROUP
2. Другой порядок расположения объектных файлов в секции линковки, LOAD-ах и .ARM.attributes.
3. Секция .HeapMemSection в qbs-ной версии map-а пустая
Код
ASM
.HeapMemSection
*(.HeapMemSection)
OUTPUT(/home/yamah/Develop/build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/stm32f429.elf elf32-littlearm)

Мапы во вложении.
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.158 секунд. Запросов: 22.
Как выбрать профессиональные коньки для фигурного катания ProSkating.