У меня есть рабочий проект uVision 5.13 для процессора STM32F407, я также использую операционную систему RTX, и я пытаюсь использовать некоторые функции C++ 11, такие как скопированные перечисления но когда я ставлю опцию --cpp11 компилятора я получаю эту ошибку от одного из заголовков cmsis:C++ 11 на MicroVision 5.13 и ARMCC 5.05
compiling RTX_Conf_CM.c...
C:\Keil\ARM\PACK\ARM\CMSIS\4.2.0\CMSIS_RTX\INC\RTX_CM_lib.h(250): error: #390: function "main" may not be called or have its address taken osThreadDef_t os_thread_def_main = {(os_pthread)main, osPriorityNormal, 1, 4*OS_MAINSTKSIZE };
RTE\CMSIS\RTX_Conf_CM.c: 0 warnings, 1 error**
That's компиляции тех же источников, что работает нормально без опции --cpp11.
Затем, если добавить один из поддерживаемых C++ 11 функций, например:
namespace TestNamespace
{
enum class Test : std::int16_t
{
TestValue1 = 0
};
class TestClass
{
//All the class code here
};
}
тогда я начинаю получать сообщения из окон, что «ARM C/C++ Compiler перестал работать» каждый раз, когда файл заголовка, содержащий скопированное перечисление, скомпилирован. Это проблема в окнах:
Problem Event Name: APPCRASH
Application Name: ArmCC.exe
Application Version: 5.5.0.106
Application Timestamp: 547650a9
Fault Module Name: ArmCC.exe
Fault Module Version: 5.5.0.106
Fault Module Timestamp: 547650a9
Exception Code: c0000005
Exception Offset: 003f566a
OS Version: 6.1.7601.2.1.0.256.1
Locale ID: 1033
Additional Information 1: 0a9e
Additional Information 2: 0a9e372d3b4ad19135b953a78882e789
Additional Information 3: 0a9e
Additional Information 4: 0a9e372d3b4ad19135b953a78882e789
Итак, я делаю что-то неправильно или это ошибки ARMCC?
Моя uVision версия 5,13 и версия компилятора 5,05 обновление 1 билд 106.
Спасибо за ваш ответ, я опубликовал ответ, полученный мной от ARM по обоим вопросам. Надеюсь, они исправит эти две проблемы в ближайшем будущем. – jcgalveza