STM32F103ZE COMPILE ошибка

Gasparobr
Чт 22 февраля 2018 г. 14:11
Привет, ребята!

У меня есть проект, у которого очень сумасшедшая ошибка.

Когда я загружаю проект, он работает. Но когда я включаю его в режим запуска, он начнет мигать, и не запускайте код.

Я также замечаю, что когда программа не перестанет работать в режиме запуска, функция Millis () не работает.

Самое странное, что программа «Дифференцировать одну», которая не работает в режиме запуска другой, которая не работает в режиме запуска, почти ничего:

Этот код запускается (в режиме запуска): volatile int __sbrk_stack_reserve = 256; void *_sbrk(int incr) { static void * pbreak = NULL; /* current program break */ void * ret; if (pbreak == NULL) { pbreak = CONFIG_HEAP_START; } //if ((CONFIG_HEAP_END - pbreak < incr) || if (((void*)&ret - pbreak < incr + __sbrk_stack_reserve) || (pbreak - CONFIG_HEAP_START < -incr)) { errno = ENOMEM; return (void *)-1; } ret = pbreak; pbreak += incr; return ret; }

Стивестронг
Чт 22 февраля 2018 г. 14:54
Я думаю, что проблема заключается в содержании массива io_led [].
В конце концов вы перезаписываете некоторые зарезервированные булавки для чего -то другого (например, USB).
Как инициализировать этот массив?

Я предлагаю вам использовать булавки в форме PXY (PA1, PC13) вместо необработанных чисел (1, 13).

[Gasparobr - Чт 22 февраля 2018 г., 14:11] - Сериал.println (serial (f ("teste"))); <= Это не работает
Я думаю, это нормально, что это не работает.
Чего именно вы хотите достичь с этим?

Mrburnette
Чт 22 февраля 2018 г. 15:06
У меня есть проект, у которого очень сумасшедшая ошибка. : шок:

Если вы хотите знать, что делает макрос "F", это хорошее объяснение: http: // форум.Ардуино.CC/INDEX.PHP?Тема = 91314.0
extern "C" char* sbrk(int incr); static int FreeStack() { char top = 't'; return &top - reinterpret_cast(sbrk(0)); }

Gasparobr
Пт 23 февраля 2018 г. 1:14
Спасибо за ответ:

Определение IO_LED: maple.build.ldscript <= mapleMini.build.ldscript

Рик Кимбалл
Пт 23 февраля 2018 г. 1:37
Что такое режим запуска?

Mrburnette
Пт 23 февраля 2018 г., 2:09
[Рик Кимбалл - Пт. 23 февраля 2018 г. 1:37 утра] - Что такое режим запуска?
Рик,

Я воспринял это, чтобы означать движущийся boot0 от +3.3 (загрузка) в GND (нормальный/запуск?). Но Opt никогда не заявил, что.

Луча

Mrburnette
Пт 23 февраля 2018 г., 2:15
[Gasparobr - Пт. 23 февраля 2018 г. 1:14 утра] - ...
Определение IO_LED: BluePill.name=Blue Pill BluePill.vid.0=0x1EAF BluePill.pid.0=0x0004 BluePill.build.variant=generic_stm32f103c BluePill.build.vect=VECT_TAB_ADDR=0x8000000 BluePill.build.core=maple BluePill.build.board=GENERIC_STM32F103C BluePill.upload.use_1200bps_touch=false BluePill.upload.file_type=bin BluePill.upload.auto_reset=true BluePill.upload.tool=maple_upload BluePill.upload.protocol=maple_dfu ## STM32F103C8 ------------------------- BluePill.menu.device_variant.STM32F103C8=Published flash size (20k RAM. 64k Flash) BluePill.menu.device_variant.STM32F103C8.build.cpu_flags=-DMCU_STM32F103C8 BluePill.menu.device_variant.STM32F103C8.build.ldscript=ld/jtag_c8.ld BluePill.menu.device_variant.STM32F103C8.upload.maximum_size=65536 BluePill.menu.device_variant.STM32F103C8.upload.maximum_data_size=20480 ## STM32F103CB ------------------------- BluePill.menu.device_variant.STM32F103CB=Undocumented flash size (20k RAM. 64k Flash) BluePill.menu.device_variant.STM32F103CB.build.cpu_flags=-DMCU_STM32F103CB BluePill.menu.device_variant.STM32F103CB.build.ldscript=ld/jtag.ld BluePill.menu.device_variant.STM32F103CB.upload.maximum_size=131072 BluePill.menu.device_variant.STM32F103CB.upload.maximum_data_size=20480 #---------------------------- UPLOAD METHODS --------------------------- BluePill.menu.upload_method.DFUUploadMethod=STM32duino bootloader BluePill.menu.upload_method.DFUUploadMethod.upload.protocol=maple_dfu BluePill.menu.upload_method.DFUUploadMethod.upload.tool=maple_upload BluePill.menu.upload_method.DFUUploadMethod.build.upload_flags=-DSERIAL_USB -DGENERIC_BOOTLOADER BluePill.menu.upload_method.DFUUploadMethod.build.vect=VECT_TAB_ADDR=0x8002000 BluePill.menu.upload_method.DFUUploadMethod.build.ldscript=ld/bootloader_20.ld BluePill.menu.upload_method.DFUUploadMethod.upload.usbID=1EAF:0003 BluePill.menu.upload_method.DFUUploadMethod.upload.altID=2 BluePill.menu.upload_method.serialMethod=Serial BluePill.menu.upload_method.serialMethod.upload.protocol=maple_serial BluePill.menu.upload_method.serialMethod.upload.tool=serial_upload BluePill.menu.upload_method.serialMethod.build.upload_flags=-DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG BluePill.menu.upload_method.STLinkMethod=STLink BluePill.menu.upload_method.STLinkMethod.upload.protocol=STLink BluePill.menu.upload_method.STLinkMethod.upload.tool=stlink_upload BluePill.menu.upload_method.STLinkMethod.build.upload_flags=-DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG=1 -DSERIAL_USB -DGENERIC_BOOTLOADER BluePill.menu.upload_method.BMPMethod=BMP (Black Magic Probe) BluePill.menu.upload_method.BMPMethod.upload.protocol=gdb_bmp BluePill.menu.upload_method.BMPMethod.upload.tool=bmp_upload BluePill.menu.upload_method.BMPMethod.build.upload_flags=-DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG BluePill.menu.upload_method.jlinkMethod=JLink BluePill.menu.upload_method.jlinkMethod.upload.protocol=jlink BluePill.menu.upload_method.jlinkMethod.upload.tool=jlink_upload BluePill.menu.upload_method.jlinkMethod.build.upload_flags=-DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG=1 -DSERIAL_USB -DGENERIC_BOOTLOADER #-- CPU Clock frequency BluePill.menu.cpu_speed.speed_72mhz=72Mhz (Normal) BluePill.menu.cpu_speed.speed_72mhz.build.f_cpu=72000000L BluePill.menu.cpu_speed.speed_48mhz=48Mhz (Slow - with USB) BluePill.menu.cpu_speed.speed_48mhz.build.f_cpu=48000000L BluePill.menu.cpu_speed.speed_128mhz=Overclocked 128Mhz NO USB SERIAL. MANUAL RESET NEEDED TO UPLOAD BluePill.menu.cpu_speed.speed_128mhz.build.f_cpu=128000000L #-- Optimizations BluePill.menu.opt.osstd=Smallest (default) BluePill.menu.opt.osstd.build.flags.optimize=-Os BluePill.menu.opt.osstd.build.flags.ldspecs= BluePill.menu.opt.oslto=Smallest Code with LTO BluePill.menu.opt.oslto.build.flags.optimize=-Os -flto BluePill.menu.opt.oslto.build.flags.ldspecs=-flto BluePill.menu.opt.o1std=Fast (-O1) BluePill.menu.opt.o1std.build.flags.optimize=-O1 BluePill.menu.opt.o1std.build.flags.ldspecs= BluePill.menu.opt.o1lto=Fast (-O1) with LTO BluePill.menu.opt.o1lto.build.flags.optimize=-O1 -flto BluePill.menu.opt.o1lto.build.flags.ldspecs=-flto BluePill.menu.opt.o2std=Faster (-O2) BluePill.menu.opt.o2std.build.flags.optimize=-O2 BluePill.menu.opt.o2std.build.flags.ldspecs= BluePill.menu.opt.o2lto=Faster (-O2) with LTO BluePill.menu.opt.o2lto.build.flags.optimize=-O2 -flto BluePill.menu.opt.o2lto.build.flags.ldspecs=-flto BluePill.menu.opt.o3std=Fastest (-O3) BluePill.menu.opt.o3std.build.flags.optimize=-O3 BluePill.menu.opt.o3std.build.flags.ldspecs= BluePill.menu.opt.o3lto=Fastest (-O3) with LTO BluePill.menu.opt.o3lto.build.flags.optimize=-O3 -flto BluePill.menu.opt.ogstd=Debug (-g) BluePill.menu.opt.o3lto.build.flags.ldspecs=-flto BluePill.menu.opt.ogstd.build.flags.optimize=-Og BluePill.menu.opt.ogstd.build.flags.ldspecs=

Стивестронг
Пт 23 февраля 2018 г. 9:32
Так что сначала сообщите нам, что такое режим запуска и что сразу после загрузки.

Какой метод загрузки вы используете?

Gasparobr
Пт 23 февраля 2018 г., 18:02
[Стивестронг - Пт. 23 февраля 2018 г. 9:32 утра] - Так что сначала сообщите нам, что такое режим запуска и что сразу после загрузки.

Какой метод загрузки вы используете?
Режим запуска: это когда положить загрузку 0 в режиме запуска.

Сразу после загрузки: когда загрузка 0 находится в режиме загрузки, и загрузите прошивку из Serial. Программа работает автоматически.

В случае Secoud все коды работают без проблем (с небольшой ошибкой на таймере Millis ());
В первом случае только одна работа кода, другой делает выход PB1.

Я надеюсь, что на этот раз я смогу прояснить!

Спасибо за внимание!

Gasparobr
Пт 23 февраля 2018 г., 18:12
Спасибо за внимание, Рэй.

Не только этот код сделал его ошибкой. Есть функция, которая никогда не вызывается в программе, что, когда я ставлю ее в любом месте, она останавливает работу так же, почему:

БЫВШИЙ:
BluePill.name=Blue Pill # copy most stuff from MapleMini BluePill.* <= MapleMini.* # but override MapleMini.build.* or MapleMini.upload.* or MapleMini.bootloader_version.* ! BluePill.build.* ! BluePill.upload.* ! BluePill.bootloader_version.* ## STM32F103C8 ------------------------- BluePill.menu.device_variant.STM32F103C8=Published flash size (20k RAM. 64k Flash) BluePill.menu.device_variant.STM32F103C8.build.cpu_flags=-DMCU_STM32F103C8 BluePill.menu.device_variant.STM32F103C8.build.ldscript=ld/jtag_c8.ld BluePill.menu.device_variant.STM32F103C8.upload.maximum_size=65536 BluePill.menu.device_variant.STM32F103C8.upload.maximum_data_size=20480 ## STM32F103CB ------------------------- BluePill.menu.device_variant.STM32F103CB=Undocumented flash size (20k RAM. 64k Flash) BluePill.menu.device_variant.STM32F103CB.build.cpu_flags=-DMCU_STM32F103CB BluePill.menu.device_variant.STM32F103CB.build.ldscript=ld/jtag.ld BluePill.menu.device_variant.STM32F103CB.upload.maximum_size=131072 BluePill.menu.device_variant.STM32F103CB.upload.maximum_data_size=20480

Mrburnette
Сб 24 февраля 2018 г. 12:04
Если светодиод на борту Maple Mini мигает, это означает, что плата находится в режиме «вечная загрузчика». Я использую исключительно клоны Maple Mini. У других на форуме есть клоны Maple Mini, но со временем голубые доски стали очень популярными, потому что они стоят менее 2 долларов США. Чрезвычайно похожи на две доски.

Я думаю, что у меня может быть старая синяя доска. Главным образом, я вышел за рамки STM32 в ESP32 66 и на ESP32, где я провожу большую часть своего игрового времени. Также RPI_ZERO-W. Итак, когда я отвечаю на вопрос на этом форуме, я основываю его на 18 -месячном опыте. .. Если я не пойду в свою маленькую лабораторию, вытащите Maple Mini из ящика и подключите его к моей записной книжке Linux Development.

Я немного озадачен тем, что у вас есть проблемы. Первоначально, годы SGO, я написал/перенес все общие примеры для Maple. Я не видел ни одной из странностей, которую вы сообщаете ... Есть ли шанс, что ваш процесс разработки использует другую версию цепочки инструментов? STM32DUINO должен использовать инструменты «Arduino Dued», установленные через Arduinoide.

Луча


Пса... Я думаю, что кто-то на форуме давно доказал, что компилятор исключил незванные функции. Если я смогу найти синюю доску, я собираюсь запустить на нее фрагмент кода.
Список используемых досок: http: // wiki.STM32duino.com/index.PHP?тип ... 103_boards