ARM EABI工具链:如何在windows 10上启用异常的情况下重建newlib nano? 我使用McxPrSO和一个C++项目在皮质M0+。

ARM EABI工具链:如何在windows 10上启用异常的情况下重建newlib nano? 我使用McxPrSO和一个C++项目在皮质M0+。,arm,cortex-m,Arm,Cortex M,今天我遇到了一个问题:我的非常简单的try-catch块不起作用,它总是调用终止处理程序 我发现这个问题是由于newlib nano在默认情况下禁用了异常处理。看 在这个项目中,我不想使用newlib,它根本不适合我正在使用的芯片的小闪存 我正在使用异常重新使用大量代码,我宁愿花一些时间添加对newlib nano的支持,也不愿修改所有现有的代码库 因此,对于从未构建过ARM库的人来说,在Windows上启用异常的情况下构建libstdc++(nano版本,工具链版本8.3.1)需要遵循哪些步骤

今天我遇到了一个问题:我的非常简单的
try-catch
块不起作用,它总是调用终止处理程序

我发现这个问题是由于newlib nano在默认情况下禁用了异常处理。看

在这个项目中,我不想使用newlib,它根本不适合我正在使用的芯片的小闪存

我正在使用异常重新使用大量代码,我宁愿花一些时间添加对newlib nano的支持,也不愿修改所有现有的代码库


因此,对于从未构建过ARM库的人来说,在Windows上启用异常的情况下构建libstdc++(nano版本,工具链版本8.3.1)需要遵循哪些步骤?

不幸的是,在GCC ARM Embedded和newlib(-nano)中使用异常至少需要100KiB的闪存和大量的SRAM,所以你可能不得不离开它们生活。你绝对不应该在本机Windows 10上尝试这样做。您应该使用WSL或WSL2,或者安装VirtualBox和Ubuntu LTS Linux。不幸的是,使用GCC ARM Embedded和newlib(-nano)的异常至少需要100KiB的闪存和大量SRAM,因此您可能不得不离开它们。您绝对不应该尝试在本机Windows 10上这样做。您应该使用WSL或WSL2,或者安装VirtualBox和Ubuntu LTS Linux。