使用 Atmel Studio 作为通用 C 编译器

Posted

技术标签:

【中文标题】使用 Atmel Studio 作为通用 C 编译器【英文标题】:Use Atmel Studio as General C Compiler 【发布时间】:2015-01-28 21:30:24 【问题描述】:

我正在尝试深入学习 C。我的最终目标是更深入地研究 AVR 编程和硬件,因此我下载了 AtmelStudio。

我正在阅读一本 C 入门书,想知道如何在 AtmelStudio 中编写控制台程序?所有项目类型似乎都以 AVR/ARM 为重点(有道理),并且需要我选择一个设备。

我可以使用 AtmelStudio 来编译简单的程序并在 cmd 窗口中运行它们吗?

【问题讨论】:

【参考方案1】:

据我所知,这是不可能的。您只能使用模拟器来研究微控制器的模拟内部状态,仅此而已。

那里有 avrtest 或 simavr 这样的东西,但我不确定这是否适合你。

如果您只是想在进入微控制器开发之前学习 C - 这是一个相当不错的主意 - 只需获取另一个 IDE,例如 Eclipse C/C++ 并从它开始。掌握基础知识后,您也可以仅使用 AVR 模拟器调试微控制器。

Here 是您想要的另一种(可能)解决方案,但我想这不是您作为初学者想要得到的答案。

【讨论】:

【参考方案2】:

对于打算在 Windows 控制台窗口中运行的程序,我可以建议使用 MinGW 吗?那是 GCC C/C++/etc 的一个端口。 Atmel Studio 使用的编译器和 Code::Blocks IDE 非常适合 Windows 下的编译器。我通常不推荐软件包,但有一个方便的二进制下载 codeblocks.org,其中包含稳定的 Code::Blocks 和最近稳定的 MinGW。

Code::Block Binary Downloads

至于使用 AtmelStudio 编译程序以在“cmd”窗口中运行,所使用的编译器将是某种 CPU 和操作系统的交叉编译器,而不是您正在运行的操作系统。除非你有一个在 Windows 控制台中运行的目标平台的模拟器,否则我认为你不走运。嵌入式系统通常没有键盘或控制台设备,所以真正的程序不会有经典的 Unix 风格的main() 函数。您仍然可以编写和测试不执行控制台 I/O 或系统调用的函数。正确编码后,它们将重新编译,无需更改即可在任一环境中运行。

【讨论】:

感谢您的建议。我很乐意使用最好的东西。我只是想知道是否有办法在 AtmelStudio 中实现这一点,这样当我在 AVR 芯片上做更多事情时,我就可以了解我在 IDE 周围的方式。

以上是关于使用 Atmel Studio 作为通用 C 编译器的主要内容,如果未能解决你的问题,请参考以下文章

如何在不创建新项目的情况下更改 Atmel Studio 6 中 C++ 的 avr32-gcc C 编译器?

Atmel Studio 7-静态库未定义函数参考

Atmel Studio:行尾出现垃圾错误

系统调用在 Atmel AVR Studio(使用 ASF)中不起作用

Atmel Studio 中的 Arduino 产量

给宇宙最强Visual Studio Code配置编译和运行C/C++