我发现 KDevelop 总体上是一个非常好的 IDE,并且我已经在使用它为运行嵌入式 Linux 的 ARM9 CPU 的交叉编译和调试软件方面拥有了很好的经验。现在我有一些小型项目的Arduino板,我发现它们是一个非常好的和简单的平台,但是它的 IDE 在功能、代码自省等方面远远落后于 Kdevelop,所以我想调整 Kdevelop 来编译和编程 arduino板代替。
目标是也可以使用 arduino 库在纯 C/C++ 或常规 C++ 中进行软件开发(这个答案有助于使这成为可能),绕过 arduino 为使初学者更容易而施加的人为限制。我打算使用 CMake 作为构建系统,因为它可以很好地与 Kdevelop 集成,并且可以轻松进行交叉编译。作为旁注,您可以使用此工具链文件使 CMake 使用avr-gcc交叉编译器:
INCLUDE(CMakeForceCompiler)
# the name of the target operating system
#SET(CMAKE_SYSTEM_NAME Linux)
# which C and C++ compiler to use
CMAKE_FORCE_C_COMPILER(avr-gcc GNU)
CMAKE_FORCE_CXX_COMPILER(avr-g++ GNU)
# here is the target environment located
SET(CMAKE_FIND_ROOT_PATH /usr/avr)
# adjust the default behaviour of the FIND_XXX() commands:
# search headers and libraries in the target environment, search
# programs in the host environment
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
由于 arduino在幕后使用avr-gcc和avrdude来编译和编程目标 AVR 微控制器,我发现了一些有趣的方向,例如AVR Tutorial、Programming Arduino Uno in pure C和Program Arduino with AVR-GCC,但我仍然没有知道如何在 Kdevelop 的界面上添加一个按钮来调用 avrdude ,以便将编译后的二进制文件上传到微控制器的闪存。任何人都可以帮我这样做吗?