Jump to content

    

Keil. Stack usage overflow

Я не против совершенствования. В этом новом компиляторе выбираются разные стандарты, вплоть до С11 и С++14. Займусь в свободное от досуга время. :biggrin:

Считайте, что полсотни ошибок на 20000 строк исходников - это и есть изредка несколько. :rolleyes:

Не зря этот компилятор не включается по умолчанию.

1. Есть С99.

2. Не путайте ошибки и предупреждения.

3. Компилятор работает файл за файлом. Так и устраняйте и ошибки и предупреждения. Если у Вас один файл в 20000 линий, то это, извините, неизлечимо. Вообще-то, надо стремитьса чтобы файл был до 500 линий.

Не берусь никого учить: научить нельзя, можно помочь научиться.

Share this post


Link to post
Share on other sites

Нет, не один файл. Под 20. Но все равно много строк, согласен. В новом проекте разобью мельче.

Включал и С99, естественно. В ошибки не всматривался, не до того было (см. тему). Однако, компилятор 5.06 компилирует то же без ошибок. Кто не прав?

Share this post


Link to post
Share on other sites
1. Есть С99.

2. Не путайте ошибки и предупреждения.

3. Компилятор работает файл за файлом. Так и устраняйте и ошибки и предупреждения. Если у Вас один файл в 20000 линий, то это, извините, неизлечимо. Вообще-то, надо стремитьса чтобы файл был до 500 линий.

Не берусь никого учить: научить нельзя, можно помочь научиться.

Не знаю, у кого как, а у меня шестая версия C++ вываливает кучу варнингов и ошибок из заголовочных файлов CMSIS и STM32_DFP. Их тоже все исправлять? :rolleyes: Или надо какой-то режим компиляции правильно выбрать?

Share this post


Link to post
Share on other sites

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

Разбивать на файлы надо исходя из принципа инкапсуляции - только то, что совершенно необходимо. Никаких глобальных переменных, все или автоматические или статические. Для доступа из других файлов применяются функции. Кстати, большинство функций тоже статические.

Однако, компилятор 5.06 компилирует то же без ошибок. Кто не прав?

А не прав разработчик, написавший непереносимый или плохо переносимый код! Если достатпчно часто приходиться переносить разнообразные функции в совершенно другую среду - тут переносимость(portability) очень дорогого стоит.

Share this post


Link to post
Share on other sites
Не знаю, у кого как, а у меня шестая версия C++ вываливает кучу варнингов и ошибок из заголовочных файлов CMSIS и STM32_DFP. Их тоже все исправлять? :rolleyes: Или надо какой-то режим компиляции правильно выбрать?

Если предупреждения из-за того что включили педантичный режим, то можно например так:

// core_cm0_wo_warn.h:


#ifndef CHIP_CORE_CM0_WO_WARN_H_
#define CHIP_CORE_CM0_WO_WARN_H_

#if defined(__GNUC__)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wpedantic"
#include "core_cm0.h"
#pragma GCC diagnostic pop
#elif defined(_MSC_VER)
#else
#error Included core_cm0_wo_warn but not __GNUC__!
#endif

#endif /* CHIP_CORE_CM0_WO_WARN_H_ */

Ну и включать этот файл вместо оригинального естственно. Если всё еще вылезают предупреждения поотключать их дополнительно можно в этом же файле. Без этого лично мне работать очень некомфортно.

Share this post


Link to post
Share on other sites
Код, поставляемый STM, не подлежит обсуждению ввиду очень низкого качества.

Так он поставляется не для того, чтобы использовать в проектах, а только для примера и когда есть какие-то непонятки по даташитам и что-то не работает.

Share this post


Link to post
Share on other sites
Так он поставляется не для того, чтобы использовать в проектах, а только для примера и когда есть какие-то непонятки по даташитам и что-то не работает.

К сожалению, вынужден не согласиться. Этот код существенно ускоряет создание... демошки, что по определению и есть FSH(food second hand), но часто преподносится как готовый продукт. Вы можете найти требование знания и умения использования Cube к кандидатам на работу. В самом деле, так много мозгов не надо, а за мозги приходиться платить, т.е. очевидная прямая "экономия". Ну еще можно удаленно заказать в какой-нибудь Индии - вот еще экономия. Ну то, что продукт дерьмо, так его GUI украсит и, потом, он не то, чтобы совсем не работает, а так, между изредка и частенько.

Кроме того, силикон развивается быстро и за ним без Индии не угнаться, а что ожидать оттуда?! Опыт подсказывает, что миллиард населения хочет жрать, ну и надо этот миллиард создавать.

 

А кроме шуток, я тоже использую этот продукт дле reference only - все таки он лучше их документации, написанной не по-английски, хотя английскими словами.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this